50
1 Modelo de Desarrollo Modelo de Desarrollo Estructurado Estructurado Temario Temario A. Modelo de desarrollo estructurado A. Modelo de desarrollo estructurado 1. Desarrollo estructurado de un 1. Desarrollo estructurado de un programa (7 semanas) programa (7 semanas) 1.1. Ciclo de vida del software 1.1. Ciclo de vida del software 1.2. Desarrollo estructurado aplicando la 1.2. Desarrollo estructurado aplicando la metodolog metodologí a orientada al flujo de datos a orientada al flujo de datos 1.3. An 1.3. Análisis estructurado lisis estructurado 1.4. Dise 1.4. Diseño estructurado o estructurado 1.5. Implementaci 1.5. Implementación estructurada n estructurada 1.6. Ejemplo y definici 1.6. Ejemplo y definición de la pr n de la práctica ctica

Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

Embed Size (px)

Citation preview

Page 1: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

1

Modelo de Desarrollo Modelo de Desarrollo EstructuradoEstructurado

TemarioTemarioA. Modelo de desarrollo estructuradoA. Modelo de desarrollo estructurado

1. Desarrollo estructurado de un 1. Desarrollo estructurado de un programa (7 semanas)programa (7 semanas)1.1. Ciclo de vida del software1.1. Ciclo de vida del software1.2. Desarrollo estructurado aplicando la 1.2. Desarrollo estructurado aplicando la

metodologmetodologíía orientada al flujo de datosa orientada al flujo de datos1.3. An1.3. Anáálisis estructuradolisis estructurado1.4. Dise1.4. Diseñño estructuradoo estructurado1.5. Implementaci1.5. Implementacióón estructurada n estructurada 1.6. Ejemplo y definici1.6. Ejemplo y definicióón de la prn de la práácticactica

Page 2: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

2

SoftwareSoftware•• Conjunto de programasConjunto de programas•• TiposTipos::

–– Programas de controlProgramas de control–– Programas de procesoProgramas de proceso–– Programas de aplicaciProgramas de aplicacióónn

•• Software de sistema:Software de sistema:–– Control + ProcesoControl + Proceso

•• Desarrollo de programasDesarrollo de programas–– Para software de aplicaciPara software de aplicacióónn–– Proceso de ingenierProceso de ingenierííaa

•• IngenierIngenieríía del Softwarea del Software–– Crisis del software (aCrisis del software (añños 60)os 60)–– ObjetivoObjetivo

Ciclo de Vida ClCiclo de Vida Cláásicosico

Planificación

Desarrollo

Mantenimiento

Ingeniería delSistema

Análisis Req. Software

Diseño

Codificación

Pruebas

Mantenimiento

Page 3: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

3

IngenierIngenieríía del Sistemaa del Sistema•• ObjetivoObjetivo: an: anáálisis global, viabilidadlisis global, viabilidad•• Hay tareas manualesHay tareas manuales•• ProductosProductos::

–– EspecificaciEspecificacióón del Sisteman del Sistema::Objetivos, Requisitos de cada elemento, AnObjetivos, Requisitos de cada elemento, Anáálisis lisis TTéécnico, Ancnico, Anáálisis Econlisis Econóómico, Viabilidad, mico, Viabilidad, Arquitectura, Pruebas globalesArquitectura, Pruebas globales

–– Plan softwarePlan software::Objetivos, R. Software, R. BD, ArquitecturaObjetivos, R. Software, R. BD, Arquitectura

MP

CD

ARSIS

AnAnáálisis lisis ReqReq. Software. SoftwareMP

CD

ISARS

•• Proceso de descubrimiento, refinado, Proceso de descubrimiento, refinado, modelado y especificacimodelado y especificacióónn

•• ProductoProducto::–– EspecificaciEspecificacióón de Requisitos Softwaren de Requisitos Software::

1.1. DescripciDescripcióón de la Informacin de la Informacióón n 2.2. DescripciDescripcióón Funcionaln Funcional3.3. DescripciDescripcióón del Comportamienton del Comportamiento4.4. Criterios de ValidaciCriterios de Validacióón (del software)n (del software)

Page 4: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

4

DiseDiseññooMP

C

ARSIS

D

•• ObjetivoObjetivo: modelo detallado de la : modelo detallado de la implementaciimplementacióónn

•• Parte central del desarrolloParte central del desarrollo•• DiseDiseñño preliminaro preliminar::

–– Est. de datos + estructura modular + interfazEst. de datos + estructura modular + interfaz–– Producto: Producto: DocDoc de Disede Diseñño Generalo General::

DiseDiseñño de datos, Diseo de datos, Diseñño arquitecto arquitectóónico (mnico (móódulos), Disedulos), Diseñño o de la interfaz hombrede la interfaz hombre--mmááquina, Pruebas de integraciquina, Pruebas de integracióónn

•• DiseDiseñño Detalladoo Detallado::–– Detalles de mDetalles de móódulos + refinamientodulos + refinamiento–– Producto: Producto: DocDoc. De Dise. De Diseñño Detalladoo Detallado (o final) (o final)

DiseDiseñño detallado de los datos, Diseo detallado de los datos, Diseñño arquitecto arquitectóónico, Disenico, Diseñño o de interfaz hombrede interfaz hombre--mmááquina, Disequina, Diseñño o procedimentalprocedimental de cada de cada mmóódulo, Pruebas para cada mdulo, Pruebas para cada móódulodulo

CodificaciCodificacióónnMP

DARS

IS

C

•• ObjetivoObjetivo: : –– CreaciCreacióón de programasn de programas–– Aplicando un paradigmaAplicando un paradigma–– Utilizando lenguaje de programaciUtilizando lenguaje de programacióónn

•• ProductoProducto::–– CCóódigo fuentedigo fuente

•• ComprensibleComprensible•• Bien comentado y documentadoBien comentado y documentado•• Siguiendo convenciones de la organizaciSiguiendo convenciones de la organizacióónn

Page 5: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

5

PruebasPruebasM

CD

ARSIS

P

•• ObjetivoObjetivo: descubrir errores en el software: descubrir errores en el software•• Elemento crElemento críítico para calidadtico para calidad•• Tipos (por Tipos (por áámbito): mbito):

–– SistemaSistema–– ValidaciValidacióónn–– IntegraciIntegracióónn–– UnidadUnidad

•• Tipos (por diseTipos (por diseñño):o):–– Caja negra (funcionales)Caja negra (funcionales)–– Caja blanca (estructurales)Caja blanca (estructurales)

Desarrollo y pruebasDesarrollo y pruebas

Proceso de desarrollo

Proceso de pruebas

Codificación

Diseño

Especificación derequisitos del Sw

Ingeniería del Sistema

Prueba del sistema

Prueba de validación

Prueba de integración

Prueba de unidadPU

PV

PI

C

D

ERS

IS

PS

M

CD

ARSIS

P

Page 6: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

6

Desarrollo y pruebasDesarrollo y pruebas

Proceso de desarrollo

Proceso de pruebas

Codificación

Diseño

Especificación derequisitos del Sw

Ingeniería del Sistema

Prueba del sistema

Prueba de validación

Prueba de integración

Prueba de unidadPU

PV

PI

C

D

ERS

IS

PS

M

CD

ARSIS

P

Implementación = codificación + pruebas

Implementación = codificación + pruebas

MantenimientoMantenimientoIS

ARSD

CP

M

•• RealizaciRealizacióón de cambios en el softwaren de cambios en el software•• Motivos:Motivos:

–– Errores encontradosErrores encontrados–– Cambios en el entornoCambios en el entorno–– Ampliaciones o mejorasAmpliaciones o mejoras

CorrectivoAdaptativoPerfectivo

Page 7: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

7

Complejidad de desarrolloComplejidad de desarrollo•• YourdonYourdon, 1979:, 1979:

–– Trivial (1.000, 1p, pocos m) Trivial (1.000, 1p, pocos m) AyudanAyudan–– Simple (10.000, 3Simple (10.000, 3--4 p, 64 p, 6--12m) 12m) MantenibleMantenible–– DifDifíícil (100.000, 6cil (100.000, 6--12p, 212p, 2--3a) 3a) Terminar en tiempo Terminar en tiempo

y plazoy plazo–– Complejo (1M, 50Complejo (1M, 50--100p, 3100p, 3--5a) 5a) TerminarTerminar–– Casi imposible (10M, ...) Casi imposible (10M, ...) ObjetosObjetos–– Imposible (>10M)Imposible (>10M)

•• ProgramaciProgramacióón en n en pequepequeññoo–– Fase de desarrolloFase de desarrollo–– Desarrollo de programasDesarrollo de programas

•• ProgramaciProgramacióón en n en grandegrande–– Fases de planificaciFases de planificacióón, mantenimiento y gestin, mantenimiento y gestióónn–– Desarrollo de softwareDesarrollo de software

M.D.PM.D.P•• Modelo de desarrolloModelo de desarrollo: :

–– FilosofFilosofíía para obtener un software de unas a para obtener un software de unas determinadas caracterdeterminadas caracteríísticassticas

•• MetodologMetodologíía de desarrolloa de desarrollo::–– Proceso concreto que implementa el Proceso concreto que implementa el

modelo de desarrollomodelo de desarrollo

•• En este curso:En este curso:1.1. Modelo orientado a Modelo orientado a procedimientos y datosprocedimientos y datos

•• MetodologMetodologíía orientada al flujo de datosa orientada al flujo de datos

2.2. Modelo Modelo orientado a objetosorientado a objetos•• MetodologMetodologíía ba báásica de desarrollo orientado a sica de desarrollo orientado a

objetosobjetos

Page 8: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

8

TemarioTemarioA. Modelo de desarrollo estructuradoA. Modelo de desarrollo estructurado

1. Desarrollo estructurado de un 1. Desarrollo estructurado de un programa (7 semanas)programa (7 semanas)1.1. Ciclo de vida del software1.1. Ciclo de vida del software1.2. Desarrollo estructurado 1.2. Desarrollo estructurado

aplicando la metodologaplicando la metodologíía orientada a orientada al flujo de datosal flujo de datos

1.3. An1.3. Anáálisis estructuradolisis estructurado1.4. Dise1.4. Diseñño estructuradoo estructurado1.5. Implementaci1.5. Implementacióón estructuradan estructurada1.6. Ejemplo y definici1.6. Ejemplo y definicióón de la prn de la práácticactica

Met. orientada al flujo de datosMet. orientada al flujo de datos

•• Problema = flujo de datosProblema = flujo de datos–– Datos de Datos de entradaentrada (fuentes)(fuentes)–– Transformaciones Transformaciones (procesos)(procesos)–– Flujos de Flujos de salidasalida (sumideros)(sumideros)

Page 9: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

9

Met. orientada al flujo de datosMet. orientada al flujo de datos

1. Examen(survey)

1. Examen(survey)

2. Análisisestructurado2. Análisis

estructurado3. Diseño

estructurado3. Diseño

estructurado

4. Implement.estructurada

4. Implement.estructurada

5. GeneraciónPr. Aceptación5. GeneraciónPr. Aceptación

6. Control de Calidad

6. Control de Calidad

Esquema delproyecto

Especificaciónestructurada

Especificaciónestructurada

Especificaciónde diseño

Documentosde prueba

Sistemaintegrado

Sistemaaceptado

1. Examen(survey)

1. Examen(survey)

2. Análisisestructurado2. Análisis

estructurado3. Diseño

estructurado3. Diseño

estructurado

4. Implement.estructurada

4. Implement.estructurada

5. GeneraciónPr. Aceptación5. GeneraciónPr. Aceptación

6. Control de Calidad

6. Control de Calidad

Requisitos yRestricciones

Esquema delproyecto

Especificaciónestructurada

Especificaciónestructurada

Especificaciónde diseño

Documentosde prueba

Sistemaintegrado

Sistemaaceptado

Restricciones

Restricciones

Informe de Costes/Beneficios

Met. orientada al flujo de datosMet. orientada al flujo de datos

11 ExamenExamen ((surveysurvey))22 AnAnáálisislisis EstructuradoEstructurado

AA Modelo ambientalModelo ambiental

BB Modelo de comportamientoModelo de comportamientoCC Modelo de implantaciModelo de implantacióón del usuarion del usuario

33 DiseDiseññoo estructuradoestructuradoAA Modelo de implantaciModelo de implantacióón del sisteman del sistema

BB Modelo de implantaciModelo de implantacióón de programasn de programas

44 ImplementaciImplementacióónn estructuradaestructurada

Page 10: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

10

Examen (Examen (surveysurvey))•• Estudio inicial del sistema que determina su Estudio inicial del sistema que determina su

viabilidadviabilidad•• No se aplica en programas pequeNo se aplica en programas pequeññosos•• ObjetivosObjetivos::

–– Identificar usuarios responsables y definir la Identificar usuarios responsables y definir la actividad del sistemaactividad del sistema

–– Identificar las deficiencias actuales Identificar las deficiencias actuales –– Establecer metas y objetivos del nuevo sistemaEstablecer metas y objetivos del nuevo sistema–– Determinar si es factible automatizarDeterminar si es factible automatizar–– Preparar el esquema del proyectoPreparar el esquema del proyecto

AnAnáálisis Estructurado (1)lisis Estructurado (1)Modela una especificaciModela una especificacióón estructurada n estructurada del sistemadel sistema

AA Modelo AmbientalModelo AmbientalModela el exterior del sistemaModela el exterior del sistema

•• Interfaces sistema Interfaces sistema ⇔⇔ exteriorexterior•• QuQuéé forma parte del sistema y quforma parte del sistema y quéé nono

A.1A.1 DeclaraciDeclaracióón de objetivosn de objetivosDeclaraciDeclaracióón textual del propn textual del propóósito del sistema desde sito del sistema desde el punto de vista del usuarioel punto de vista del usuario

EJEMPLOEJEMPLO: Agenda personal: Agenda personal

Page 11: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

11

AgendaAgenda: : objetivos (1)objetivos (1)

Se trata de realizar un programa que gestione una agenda personal. En esta agenda el usuario podrá almacenar dos tipos de elementos: datos de las personas que conoce y datos de las citas que tiene con esas personas– Personas: nombre completo (apellido1,

apellido 2 y nombre), número de teléfono y dirección de correo electrónico

– Citas: fecha, horas de comienzo y fin, persona con la que se establece y el lugar

AgendaAgenda: : objetivos (2)objetivos (2)

Las operaciones que puede realizar el usuario con su agenda son de dos tipos: modificación de la agenda y consulta de la información almacenada– Agregar elementos en la agenda (personas

y citas), para lo cual deberá proporcionar todos los datos correspondientes al tipo de elemento creado

– Eliminar elementos, identificando el elemento que desee eliminar. Para ello deberá proporcionar el nombre completo (para las personas) o la fecha y hora de comienzo (para las citas)

Page 12: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

12

AgendaAgenda: : objetivos (3)objetivos (3)

– Consultar la información contenida en la agenda. Por un lado podrá solicitar todos los datos de una persona, dado su nombre completo. Por otro, podrá obtener una lista de todas las citas pendientes para un día concreto

Por último, deben tenerse en cuenta las siguientes restricciones al funcionamiento de la agenda– Las personas deben ordenarse

alfabéticamente por el nombre completo. Las citas deben ordenarse por fecha de celebración y, si hay dos citas el mismo día, se ordenarán por hora de comienzo

AgendaAgenda: : objetivos (4)objetivos (4)

– No pueden existir dos personas que tengan el mismo nombre completo. El programa deberácomprobarlo cuando se metan datos de una nueva persona

– No pueden existir dos citas el mismo día y a la misma hora. El programa deberácomprobarlo cuando se creen nuevas citas

– Todas las citas que se introduzcan deberán ser con personas que aparezcan en la agenda. El programa deberá comprobarlo cuando se creen nuevas citas

Page 13: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

13

AnAnáálisis Estructurado (2)lisis Estructurado (2)AA Modelo AmbientalModelo Ambiental

A.1A.1 DeclaraciDeclaracióón de objetivosn de objetivosA.2A.2 Diagrama de contextoDiagrama de contexto

•• Define las fronteras del sistemaDefine las fronteras del sistema•• Describe entidades, flujos de datos Describe entidades, flujos de datos

y almacenes externosy almacenes externos•• NotaciNotacióón: DFDn: DFD

D. Contexto AgendaD. Contexto Agenda

AgendaUsuario Usuario

datos_alta_persona

datos_consulta_persona

datos_baja_persona

datos_alta_cita

datos_consulta_cita

datos_baja_cita

inf_alta_persona

inf_consulta_ persona

inf_baja_persona

inf_alta_cita

inf_consulta_cita

inf_baja_cita

datos_erróneos inf_error_datos

Page 14: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

14

AnAnáálisis Estructurado (2)lisis Estructurado (2)AA Modelo AmbientalModelo Ambiental

A.3A.3 Lista de SucesosLista de Sucesos•• Sucesos (eventos) externos a los Sucesos (eventos) externos a los

cuales debe responder el sistemacuales debe responder el sistema•• Consistente con D. ContextoConsistente con D. Contexto

AnAnáálisis Estructurado (3)lisis Estructurado (3)BB Modelo de comportamientoModelo de comportamiento

Modela el comportamiento interno del Modela el comportamiento interno del sistema de acuerdo con el modelo sistema de acuerdo con el modelo ambientalambiental

B.1B.1 Modelo de procesoModelo de procesoDesarrolla:Desarrolla:

•• DFD: DFD: Grafos de flujo de datosGrafos de flujo de datos

Page 15: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

15

DFD por nivelesDFD por niveles

12

3

1.1 1.2 3.1 3.23.3

Nivel 0 (Contexto)

Nivel 1 (Diagrama 0)

Nivel 2 (Diagrama 1) Nivel 2 (Diagrama 3)

Agenda Agenda –– diagrama 0diagrama 0

1Leer Datos

2Tratar Persona

3Tratar Cita

Persona

datos_op_persona

datos_op_cita

datos Cita4

Escribirresultado

resultado_persona

resultado_cita

informe

error_datos

Page 16: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

16

2.1Agregarpersona

2.2ConsultarPersona

2.3Eliminarpersona

Persona

datos_op_alta_personares_alta_persona

datos_op_consulta_persona res_consulta_persona

datos_op_baja_persona

res_baja_persona

Cita

Agenda Agenda –– diagrama 2diagrama 2

3.1Agregar

cita

3.2Consultar

cita

3.3Eliminar

cita

Cita

datos_op_alta_cita

res_alta_cita

datos_op_consulta_citares_consulta_cita

datos_op_baja_cita

res_baja_cita

Persona

Agenda Agenda –– diagrama 3diagrama 3

Page 17: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

17

AnAnáálisis Estructurado (3)lisis Estructurado (3)BB Modelo de comportamientoModelo de comportamiento

Modela el comportamiento interno del Modela el comportamiento interno del sistema de acuerdo con el modelo sistema de acuerdo con el modelo ambientalambiental

B.1B.1 Modelo de procesoModelo de procesoDesarrolla:Desarrolla:

•• DFD: DFD: Grafos de flujo de datosGrafos de flujo de datos•• Especificaciones de proceso: Especificaciones de proceso: describen describen

cada uno de los procesos finales de los cada uno de los procesos finales de los DFDDFD

EspecificaciEspecificacióón de proceson de proceso•• Proceso <Proceso <idid>: <nombre>>: <nombre>

–– EntradaEntradaFlujos de datos y almacenesFlujos de datos y almacenes

–– ProcesoProcesoControl + Acciones Control + Acciones

–– SalidaSalidaFlujos de datos y almacenesFlujos de datos y almacenes

Page 18: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

18

AgendaAgenda•• Proceso 1: Leer DatosProceso 1: Leer Datos

–– EntradaEntradadatos // tipo_operacidatos // tipo_operacióón + datos_operacin + datos_operacióónn

–– ProcesoProcesoPedir tipo_operaciPedir tipo_operacióónncase case tipo_operacitipo_operacióónn

= 1= 1 Pedir datos_operaciPedir datos_operacióón_alta_personan_alta_personaifif error de formatoerror de formatothenthen

error_datos = error_datos = ““Error datos alta personaError datos alta persona””Ir al proceso 4Ir al proceso 4

elseelseIr al proceso 2.1Ir al proceso 2.1

endifendif......

AgendaAgenda•• Proceso 1: Leer Datos Proceso 1: Leer Datos ((cont.cont.))

–– ProcesoProcesodefaultdefault: :

error_datos = error_datos = ““Comando desconocidoComando desconocido””Ir al proceso 4Ir al proceso 4

endcaseendcaseendend proceso 1proceso 1

–– SalidaSalidadatos_op_personadatos_op_persona | | datos_op_citadatos_op_cita | error_datos| error_datos

Page 19: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

19

AgendaAgenda•• Proceso 2.1: Agregar PersonaProceso 2.1: Agregar Persona

–– EntradaEntradadatos_op_alta_personadatos_op_alta_persona // nombre_competo + tel// nombre_competo + telééfono +fono +

emailemailPersona (almacPersona (almacéén)n)

–– ProcesoProcesoexiste = existe = BuscarPersona(nombreBuscarPersona(nombre, Persona), Persona)ifif existeexistethenthen

res_alta_persona = res_alta_persona = ““Persona ya existe: Persona ya existe: ”” + + nombre_completonombre_completo

Ir a proceso 4Ir a proceso 4

AgendaAgenda•• Proceso 2.1: Agregar Persona Proceso 2.1: Agregar Persona ((contcont))

–– ProcesoProcesoelseelse

AlmacenarNuevaPersona(datos_op_alta_personaAlmacenarNuevaPersona(datos_op_alta_persona,,Persona)Persona)

res_alta_persona = res_alta_persona = ““Persona agregada con Persona agregada con ééxito: xito: ”” ++nombre_completonombre_completo

Ir a Proceso 4Ir a Proceso 4endifendifendend procesoproceso 2.12.1

–– SalidaSalidares_alta_persona // [res_alta_persona // [““Persona ya existe: Persona ya existe: ”” | |

// // ““Persona agregada con Persona agregada con ééxito: xito: ””]]// + nombre_completo// + nombre_completo

Persona (almacPersona (almacéén)n)

Page 20: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

20

AgendaAgenda•• Proceso 3.2: Consultar CitasProceso 3.2: Consultar Citas

–– EntradaEntradadatos_op_consulta_citadatos_op_consulta_cita // fecha [d// fecha [díía, mes, aa, mes, añño]o]Cita (almacCita (almacéén)n)

–– ProcesoProcesocitas = citas = ObtenerCitas(fechaObtenerCitas(fecha, Cita), Cita)ifif no hay citasno hay citasthenthen

res_consulta_cita = "No hay citas ese dres_consulta_cita = "No hay citas ese díía: " + fechaa: " + fechaIr a Proceso 4Ir a Proceso 4

elseelseres_consulta_cita = Vacres_consulta_cita = Vacííoo......

AgendaAgenda•• Proceso 3.2: Consultar Citas Proceso 3.2: Consultar Citas ((contcont))

–– ProcesoProceso......forallforall c c in in citascitas

res_consulta_cita = res_consulta_cita + datos de cres_consulta_cita = res_consulta_cita + datos de cendforallendforallIr al proceso 4 // Con datos de citasIr al proceso 4 // Con datos de citas

endifendifendend proceso proceso 3.23.2

–– SalidaSalidares_consulta_cita // res_consulta_cita // ““No hay citas ese dNo hay citas ese díía: a: ”” + fecha |+ fecha |

Datos de las citasDatos de las citas

Page 21: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

21

AnAnáálisis Estructurado (3)lisis Estructurado (3)BB Modelo de comportamientoModelo de comportamiento

Modela el comportamiento interno del Modela el comportamiento interno del sistema de acuerdo con el modelo sistema de acuerdo con el modelo ambientalambiental

B.1B.1 Modelo de procesoModelo de procesoDesarrolla:Desarrolla:

•• DFD: DFD: Grafos de flujo de datosGrafos de flujo de datos•• Especificaciones de proceso: Especificaciones de proceso: describen describen

cada uno de los procesos finales de los cada uno de los procesos finales de los DFDDFD

•• Diccionario de datos: Diccionario de datos: describe los flujos describe los flujos y almacenesy almacenes

Agenda: D. DatosAgenda: D. Datosdatosdatos = tipo_operaci= tipo_operacióón + datos_operacin + datos_operacióónn

tipo_operacitipo_operacióónn = [ 1 *agregar_persona* | 2 *consultar_persona* | = [ 1 *agregar_persona* | 2 *consultar_persona* | 3 *eliminar_persona*| 4 *agregar_cita3 *eliminar_persona*| 4 *agregar_cita*| *| 5 *consultar_cita*| 6 *eliminar_cita*5 *consultar_cita*| 6 *eliminar_cita*||otro *comando_errotro *comando_erróóneo_o_desconocido* ]neo_o_desconocido* ]

datos_operacidatos_operacióónn = [datos_operaci= [datos_operacióón_persona | datos_operacin_persona | datos_operacióón_cita]n_cita]

datos_operacidatos_operacióón_personan_persona=[datos_operaci=[datos_operacióón_alta_persona | n_alta_persona | datos_operacidatos_operacióón_consulta_persona |n_consulta_persona |datos_operacidatos_operacióón_baja_persona]n_baja_persona]

datos_operacidatos_operacióón_alta_personan_alta_persona = nombre_completo + tel= nombre_completo + telééfono +fono +emailemail

datos_alta_personadatos_alta_persona = tipo_operaci= tipo_operacióón + datos_operacin + datos_operacióón_alta_personan_alta_persona

CitaCita = {fecha + hora_inicio + hora_final + = {fecha + hora_inicio + hora_final + nombre_completo + lugar}nombre_completo + lugar}nn

......

Page 22: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

22

AnAnáálisis Estructurado (4)lisis Estructurado (4)BB Modelo de comportamientoModelo de comportamiento

B.1B.1 Modelo de procesoModelo de procesoB.2B.2 Modelo de datosModelo de datos

•• Desarrolla el Desarrolla el Diagrama EDiagrama E--RR para para describir los datos almacenados en el describir los datos almacenados en el sistema y la relacisistema y la relacióón existente entre n existente entre ellosellos

Diagrama EDiagrama E--R AgendaR Agenda

Persona

#NombreTeléfonoE-mail

Cita

# Fecha# Hora inicio

Hora finLugar

0:N1:1

Agenda

0:N

1:1

0:N

1:1

Contiene

Persona citada

Contiene

Page 23: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

23

AnAnáálisis Estructurado (4)lisis Estructurado (4)BB Modelo de comportamientoModelo de comportamiento

B.1B.1 Modelo de procesoModelo de procesoB.2B.2 Modelo de datosModelo de datosB.3B.3 Diagrama de transiciDiagrama de transicióón de n de estadosestados

•• Modela el comportamiento en tiempo Modela el comportamiento en tiempo real: reaccireal: reaccióón ante sucesosn ante sucesos

•• Relaciona sucesos y estados: cambios de Relaciona sucesos y estados: cambios de estado al al recibir eventos estado al al recibir eventos (transiciones)(transiciones)

DTE: ajedrezDTE: ajedrez

Juegan blancas

Juegannegras

Ganan negras

Tablas

Ganan blancas

ahog

ado

comienzo

ahogado

Mueven blancas

jaque mate

Tablero con

fichas

Mueven

blancas

jaque mate

Mueven negras

Page 24: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

24

DTE: AgendaDTE: Agenda

Agregar persona

Consulta persona

Eliminar persona[nº personas = 1]

Consulta persona

Agregar cita

Consulta cita

Crear agenda

Destruir agenda

Eliminar persona[nº personas > 1]

Eliminar cita[nº citas = 1]

Agregar personaAgregar persona

Agregar cita

Eliminar cita[nº citas > 1]

AgendaVacía

Agenda conPersonas

Agenda conPersonas y

Citas

Eliminar persona[nº personas > 1 y persona

con todas las citas]

Eliminar persona[nº personas = 1]

Eliminar persona[nº personas > 1 y persona

no tiene todas las citas]

AnAnáálisis Estructurado (5)lisis Estructurado (5)CC Modelo de ImplantaciModelo de Implantacióón del usuarion del usuario

Modela caracterModela caracteríísticas del sistema adaptadas a las sticas del sistema adaptadas a las peculiaridades del usuariopeculiaridades del usuarioC.1C.1 Establecer lEstablecer líímite Hombre mite Hombre -- MMááquinaquina

Indicar quIndicar quéé procesos reciben tratamiento manual y procesos reciben tratamiento manual y cucuááles noles no

C.2C.2 Definir la interfaz de usuarioDefinir la interfaz de usuario•• Dispositivos E/S utilizadosDispositivos E/S utilizados•• Formularios de E/SFormularios de E/S•• DiseDiseñño de pantallas (gro de pantallas (grááficas o texto)ficas o texto)•• Secuencia de navegaciSecuencia de navegacióónn

Page 25: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

25

Interfaz de usuario (texto)Interfaz de usuario (texto)

Interfaz de usuario (Interfaz de usuario (grafgraf.).)

Agenda

Agregarpersona

Consultarpersona

Borrarpersona

Agregarcita

Consultarcita

Borrarcita

Salir

Agregar persona

CancelarAceptar

Nombre:

Teléfono:

Email:

Page 26: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

26

AnAnáálisis Estructurado (6)lisis Estructurado (6)CC Modelo de ImplantaciModelo de Implantacióón del usuarion del usuario

C.3C.3 Actividades adicionales manualesActividades adicionales manuales•• Normas de verificaciNormas de verificacióón de datos y resultadosn de datos y resultados

•• Normas para salvaguarda de datosNormas para salvaguarda de datos

C.4C.4 Restricciones operativasRestricciones operativas•• Tiempos de respuestaTiempos de respuesta

•• Restricciones de configuraciRestricciones de configuracióón, ambientales, n, ambientales, tamatamañños, ...os, ...

•• Fiabilidad (MTBF) Fiabilidad (MTBF)

•• MantenibilidadMantenibilidad (MTTR)(MTTR)

•• Disponibilidad (MTBF/(MTBF+MTTR))Disponibilidad (MTBF/(MTBF+MTTR))

•• SeguridadSeguridad

DiseDiseñño estructurado (1)o estructurado (1)AA Modelo de ImplantaciModelo de Implantacióón del n del sistemasistema

A.1A.1 Modelo de procesadorModelo de procesador

Asigna el modelo esencial entre los distintos Asigna el modelo esencial entre los distintos procesadores asignados al sistemaprocesadores asignados al sistemaA.2A.2 Modelo de tareasModelo de tareas

Asigna funcionalidad a las diferentes tareas Asigna funcionalidad a las diferentes tareas de un procesadorde un procesador

Page 27: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

27

DiseDiseñño estructurado (2)o estructurado (2)BB Modelo de implantaciModelo de implantacióón de n de programasprogramasDiseDiseññar el diagrama de estructura, refinarlo, ar el diagrama de estructura, refinarlo, disediseññar mar móódulos, bases de datos y empaquetar dulos, bases de datos y empaquetar el diseel diseññoo

B.1B.1 DiseDiseññar el diagrama de estructuraar el diagrama de estructuraAplicar el anAplicar el anáálisis de transformaciones y de lisis de transformaciones y de transaccionestransaccionesDiagrama de estructura: Diagrama de estructura: áárbol de mrbol de móódulosdulos

DiseDiseñño o -- Tipos de mTipos de móódulosdulos

OrdenarOrdenar

Leer datosLeer datos Ordenar datosOrdenar datos Escribir resultadoEscribir resultado

nºels

elem

ento

s

d.

or d

d. ord

elsnº

Aferente EferenteTransformación

Coordinador

Page 28: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

28

AnAnáálisis de Transformacioneslisis de Transformaciones•• Estrategia descendenteEstrategia descendente•• ModularModular•• Basada en morfologBasada en morfologíía centrada en a centrada en

transformaciones transformaciones –– ConstantineConstantine–– Equilibrio entre ramas aferentes y eferentesEquilibrio entre ramas aferentes y eferentes

•• Produce diagramas de estructura equilibrados, Produce diagramas de estructura equilibrados, modulares y bien dimensionadosmodulares y bien dimensionados

MAINCOORDONADOR

A-1AFERENTE

A-2FUENTE

A-3AFORENTE

T-2TRANSF.

T-1TRANSFOR.

T-3TRANSF.

T-4TRANSF.

E-1EFERENTE

T-5TRANSF.

E-3TRANSF.

E-2EFERENTE

T-6TRANSF.

E-4POZO

SUMIDERO

I-4FUENTE

T-7TRANSF.

T-6TRANSF.

T-9TRANSF.

T-10TRANSF.

T-11TRANSFOR.

E-5POZO

MAINCOORDINADOR

A-1AFERENTE

A-1AFERENTE

A-2FUENTE

A-3AFORENTE

T-2TRANSF.

A-2FUENTE

A-3AFERENTE

T-2TRANSF.

T-1TRANSFOR.

T-1TRANSFOR.

T-3TRANSF.

T-3TRANSF.

T-4TRANSF.

T-4TRANSF.

E-1EFERENTE

E-1EFERENTE

T-5TRANSF.

T-5TRANSF.

E-3TRANSF.

E-3EFERENTE

E-2EFERENTE

E-2EFERENTE

T-6TRANSF.

T-6TRANSF.

E-4POZO

SUMIDERO

E-4SUMIDERO

I-4FUENTE

A-4FUENTE

T-7TRANSF.

T-6TRANSF.

T-7TRANSF.

T-8TRANSF.

T-9TRANSF.

T-9TRANSF.

T-10TRANSF.

T-10TRANSF.

T-11TRANSFOR.

T-11TRANSFOR.

E-5POZOE-5

POZO

MorfologMorfologíía centrada en transformacionesa centrada en transformaciones

Page 29: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

29

AnAnáálisis de Transformacioneslisis de Transformaciones1.1. DFD con DFD con procesos finalesprocesos finales2.2. Identificar Identificar ramasramas aferentes y eferentesaferentes y eferentes3.3. FactorizaciFactorizacióónn de primer nivel:de primer nivel:

•• MMóódulo principal dulo principal •• Un mUn móódulo por cada rama aferentedulo por cada rama aferente•• Un mUn móódulo por cada rama eferentedulo por cada rama eferente•• Un mUn móódulo para cada transformacidulo para cada transformacióónn

4.4. Factorizar ramasFactorizar ramas aferentes, eferentes y de aferentes, eferentes y de transformacitransformacióónn

AnAnáálisis de Transaccioneslisis de Transacciones•• AmpliaciAmpliacióón de Ann de Anáálisis de Transformacioneslisis de Transformaciones•• Se aplica cuando un proceso divide la entrada Se aplica cuando un proceso divide la entrada

en varios flujos de salida alternativosen varios flujos de salida alternativos

CTOA BB XX

DD CC

BA

Page 30: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

30

Analiza -Transaccion

AnalizaTransaccionAnaliza -

Transacción

Centro de TransaccionesCentro de TransaccionesTransaccionTransaccionTransacción

Obtiene-AnalizaObtiene - Analiza

Obtiene-Transaccion

ObtieneTransaccion

Obtiene -Transacción

HacerTipo nHacerTipo nHacerTipo ...

HacerTipo 2HacerTipo 2HacerTipo B

HacerTipo 1HacerTipo 1HacerTipo A

DespachaDespacha

AnAnáálisis de Transaccioneslisis de Transacciones1.1. DFD con DFD con procesos finalesprocesos finales2.2. Identificar Identificar ramasramas aferentes y eferentesaferentes y eferentes3.3. FactorizaciFactorizacióónn de primer nivelde primer nivel4.4. Si se detectan transacciones, definir el Si se detectan transacciones, definir el

centro de transaccionescentro de transacciones5.5. Factorizar ramasFactorizar ramas aferentes, eferentes y de aferentes, eferentes y de

transformacitransformacióónn

Page 31: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

31

Ejemplo transaccionesEjemplo transacciones

ActualizarFMUsuario

FMA

FMN

datos FMA

datos FMN

datos

inf_resultado

Ejemplo transaccionesEjemplo transacciones

datos 1LeerDatos

2Generar

Movimiento

datos_leídos

3LeerFMA

datos FMA

4Actualizar

5GrabarEn FMN

inf_err_leer inf_err_gen

movimiento

inf_err_act

reg_actualizado

reg_FM

datos_FMN

Page 32: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

32

Ejemplo transaccionesEjemplo transacciones

2.1Generar

Alta

2.3Generar

Baja

2.2Generar

Alt.

datosleídos movimiento

Ejemplo transaccionesEjemplo transacciones

datos 1LeerDatos

2Generar

Movimiento

datos_leídos

3LeerFMA

datos FMA

4Actualizar

5GrabarEn FMN

inf_err_leer inf_err_gen

movimiento

inf_err_act

reg_actualizado

reg_FM

datos_FMN

Page 33: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

33

Ejemplo transaccionesEjemplo transacciones

Tratar datos entrada

Actualizar Grabar FMNLeer FMA

Leer datos

Generar alta Generar alteración

Generarbaja

Generar transacción

eod mov

eoddatos

eofregFMA

reg act

datos mov err

db err

mov

dal err

mov

daerr

mov

movreg FMA

regact

err

Actualizar FM

CT

DFD completo AgendaDFD completo Agenda

1LeerDatos

2.1AgregarPersona

2.2ConsultarPersona

2.3EliminarPersona

3.1Agregar

Cita

3.2Consultar

Citas

3.3Eliminar

Cita

4Escribir

Resultado

Page 34: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

34

Primera Primera factorizacifactorizacióónn

LeerDatos

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

ConsultarCitas

EliminarCita

EscribirResultado

Agenda

AnAnáálisis de transaccioneslisis de transacciones

LeerDatos

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

ConsultarCitas

EliminarCita

EscribirResultado

Agenda

TratarPersonas y Citas

Page 35: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

35

AnAnáálisis de transaccioneslisis de transacciones

LeerDatos

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

ConsultarCitas

EliminarCita

EscribirResultado

Agenda

TratarPersonas y Citas

to doretld

todo

agen

da

agen

da

retp

c

resp

c

resultado retorno

doap agenda agenda rsap retap

docp agenda rscp retcpdo

ep

agen

da

agen

dars

ep

rete

p

agenda

rsac

retac

agendadoac

rscc

retcc

docc

agenda

doecagenda

agendarsecretec

resld

DiseDiseñño estructurado (2)o estructurado (2)BB Modelo de implantaciModelo de implantacióón de n de programasprogramasDiseDiseññar el diagrama de estructura, refinarlo, ar el diagrama de estructura, refinarlo, disediseññar mar móódulos, bases de datos y empaquetar dulos, bases de datos y empaquetar el diseel diseññoo

B.1B.1 DiseDiseññar el diagrama de estructuraar el diagrama de estructuraB.2B.2 RefinarloRefinarloUtilizar heurUtilizar heuríísticas de disesticas de diseññoo

Page 36: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

36

HeurHeuríísticas Disesticas Diseññoo•• Bajo AcoplamientoBajo Acoplamiento

–– Entre mEntre móódulosdulos–– Tipo de conexiTipo de conexióónn (de peor a mejor) (de peor a mejor)

•• Entorno comEntorno comúúnn: variables globales: variables globales•• ContenidoContenido: c: cóódigo anidadodigo anidado•• ControlControl: paso de elementos de control: paso de elementos de control•• DatosDatos: paso de par: paso de paráámetrosmetros

–– Complejidad de la interfazComplejidad de la interfaz::•• NNúúmero de argumentos y su complejidadmero de argumentos y su complejidad

HeurHeuríísticas Disesticas Diseññoo•• Alta CohesiAlta Cohesióónn

–– De cada mDe cada móódulodulo–– Tipos Tipos (de peor a mejor) (de peor a mejor)

•• CoincidentalCoincidental: sin relaci: sin relacióónn•• LLóógicagica: funciones similares : funciones similares •• TemporalTemporal: periodo de tiempo: periodo de tiempo•• ProceduralProcedural: parte de un algoritmo: parte de un algoritmo•• ComunicacionalComunicacional: tratan flujo datos: tratan flujo datos•• SecuencialSecuencial: serie de acciones: serie de acciones•• FuncionalFuncional: una funci: una funcióónn

Page 37: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

37

HeurHeuríísticas Disesticas Diseññoo•• Anchura de control (Anchura de control (fanfan--outout):):

NNºº de mde móódulos hijosdulos hijos3 3 óó 4 (54 (5±±2)2)

•• Maximizar Maximizar ““fanfan--inin””NNºº de mde móódulos que llaman al dadodulos que llaman al dado

•• ÁÁmbitombito de efecto de efecto ⊂⊂ áámbito de control mbito de control del mdel móódulodulo

•• DimensiDimensióónn apropiada de cada mapropiada de cada móódulo dulo <= 100 sentencias<= 100 sentencias

Refinar: disminuir fanRefinar: disminuir fan--outout

LeerDatos

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

ConsultarCitas

EliminarCita

EscribirResultado

Agenda

TratarPersonas

TratarCitas

Page 38: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

38

Refinar: disminuir fanRefinar: disminuir fan--outout

LeerDatos

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

ConsultarCitas

EliminarCita

EscribirResultado

Agenda

TratarPersonas

TratarCitas

to doretldresld resultado retorno

doapagenda

agenda rsap

retap

docp

agen

da rscp

retcp

rsep

retep

doep

agenda

agenda doac

agen

dars

acre

tacag

enda

rscc

retccodcc

agenda

doec

agendaagenda

rsecretec

agenda dop agenda

rsp retpdoc

agendaagenda

rscretc

toptoc

Refinar: aumentar fanRefinar: aumentar fan--inin

LeerDatos

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

ConsultarCitas

EliminarCita

Agenda

TratarPersonas

TratarCitas

EscribirResultado

Page 39: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

39

Refinar: reducir cohesiRefinar: reducir cohesióónn

LeerDatos

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

ConsultarCitas

EliminarCita

Agenda

TratarPersonas

TratarCitas

LeerDatos

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

ConsultarCitas

EliminarCita

Agenda

Refinar: reducir Refinar: reducir acoplamacoplam..

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

ConsultarCitas

EliminarCita

Agenda

TratarPersonas

TratarCitas

Agenda

doapagenda

agendaretap

docp

agen

dare

tcp

retep

doep

agenda

agenda doac

agen

da

retac

agen

da

retccodcc

agenda

doec

agendaagenda

retec

agenda dop agenda

errmdoc

agendaagenda

errm

toptoc

Page 40: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

40

Diccionario de datosDiccionario de datos•• Nuevas entradas:Nuevas entradas:

–– retapretap = [Bien | = [Bien | ErrExistePersonaErrExistePersona | | ErrMemErrMem]]–– retcpretcp = [Bien | = [Bien | ErrNoPersonasErrNoPersonas | | ErrNoExistePersonaErrNoExistePersona]]–– retepretep = [Bien | = [Bien | ErrNoPersonasErrNoPersonas | | ErrNoExistePersonaErrNoExistePersona]]–– retacretac = [Bien | = [Bien | ErrNoExistePersonaErrNoExistePersona | | ErrExisteCitaErrExisteCita | |

ErrMemErrMem]]–– retccretcc = [Bien | = [Bien | ErrNoCitasErrNoCitas | | ErrNoExisteCitaErrNoExisteCita]]–– retecretec = [Bien | = [Bien | ErrNoCitasErrNoCitas | | ErrNoExisteCitaErrNoExisteCita]]

DiseDiseñño estructurado (3)o estructurado (3)BB Modelo de implantaciModelo de implantacióón de n de programasprogramas

B.3B.3 DiseDiseññar los mar los móódulosdulosDebe detallarse el comportamiento de Debe detallarse el comportamiento de cada mcada móódulo: disedulo: diseñño detallado o detallado procedimentalprocedimentalUtilizar diagramas estructurados Utilizar diagramas estructurados arborescentes o de arborescentes o de chapinchapin

Page 41: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

41

Ordenar Ordenar -- ArborescenteArborescentevoid OrdenarAscendente(a[], n)

DOFOR

i= 0, 1, n-2 BLOCK

k ← item ← a[i]

DOFOR

IFTHENj= i+1, 1, n-1

k ← jtem ← a[j]

a[j]<tem

a[k] ← a[i]a[i] ← tem

Ordenar Ordenar -- ChapinChapinvoid OrdenarAscendente

(a[], n)

a[j]<temT F

k j; tem a[j]

a[k] a[i]; a[i] tem

j = i+1, 1, n-1

k i; tem a[i]

i = 0, 1, n-2

Page 42: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

42

Agenda Agenda -- PrincipalPrincipal

tipo_operación

Pedir nombre, teléfono,email

errm ← TratarPersonas(tipo_operación, agenda,nombre, teléfono, email)

Agenda

BLOCK

agenda ← Vacía DOUNTIL

tipo_operación = 7

Pedir tipo_operación

errm ← falso

BLOCK

CASE OF

"No hay memoria suficiente"errm

IFTHEN

=1

Pedir nombre

errm ← TratarPersonas(tipo_operación, agenda,nombre, NULL, NULL)

Pedir nombre

errm ← TratarPersonas(tipo_operación, agenda,nombre, NULL, NULL)

Pedir fecha, hini, hfin,lugar, nombre

errm ← TratarCitas(tipo_operacion,

agenda, fecha, hini,hfin, lugar, nombre)

Pedir fecha

errm ← TratarCitas(tipo_operacion,agenda, fecha,

NULL, NULL, NULL,NULL)

Pedir fecha, hini

errm ← TratarCitas(tipo_operacion,

agenda, fecha, hini,NULL, NULL, NULL)

"Comandodesconocido"

=2 =3 =4 =5 =6 =otro

Agenda Agenda –– AgAg. cita. cita

existe

existe ←ComprobarExisteCita

(agenda, datos_op_alta_cita)

Retornar ErrNoExistePersona

existe

MeterAgendaNuevaCita(agenda, cita)

RetornarErrMem

Retornar ErrNoPersonasagenda.personas = vacía

IFTHEN existe ← ComprobarExistePersona (agenda,nombre_completo) IFTHENELSE

errm ←CrearNuevaCita(datos_op_alta_cita, cita)

BLOCK

IFTHENELSE

BLOCK

Retornar Bien

BLOCK

errm

RetornarErrExisteCita

IFTHENELSE

retac AgregarCita (&agenda, datos_op_alta_cita)BLOCK

Page 43: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

43

DiseDiseñño estructurado (3)o estructurado (3)BB Modelo de implantaciModelo de implantacióón de n de programasprogramas

B.3B.3 DiseDiseññar los mar los móódulosdulosB.4B.4 DiseDiseññar las bases de datos o ar las bases de datos o los ficheroslos ficherosDiseDiseññar far fíísicamente las bases de datos, sicamente las bases de datos, los ficheros y tipos de datoslos ficheros y tipos de datosPartiendo de modelo de datosPartiendo de modelo de datos

Agenda Agenda –– disediseñño datoso datos

int int int int int int intd m a

fechah mhini

h mhfin persona lugar sig

TCitaTCita

TPersona char

TCita

citaspersonas

TAgendaTAgenda

tfno email sigTPersonaTPersona

char

TPersonanombre

char

long

Page 44: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

44

DiseDiseñño estructurado (3)o estructurado (3)BB Modelo de implantaciModelo de implantacióón de n de programasprogramas

B.3B.3 DiseDiseññar los mar los móódulosdulosB.4B.4 DiseDiseññar las bases de datos o ar las bases de datos o los ficheroslos ficherosB.5B.5 Empaquetar el diseEmpaquetar el diseññooDescomponer el diagrama de Descomponer el diagrama de estructura en mestructura en móódulos fdulos fíísicos sicos ejecutablesejecutables

Ejemplo Ejemplo empaqempaq. dise. diseññoo

ActualizarFM

Calcular nóminas Listar

resultados

FMA F CalculadoFMN

FMOV

Sistema retributivo

Actualización Cálculo Listado

LeerFicheroMovs

LeerFicheroAntiguo

GrabarFicheroNuevo

GrabarFichero

Calculado

LeerFicheroNuevo

ImprimirResultadoNómina

LeerFichero

Calculado

F. Mov F. MaestroNuevo

FicheroCalculado

Listado

CalcularActualizar

F. MaestroAntiguo

Page 45: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

45

ImplementaciImplementacióónn••Seleccionar el mSeleccionar el móódulo a implementardulo a implementar

••CodificarloCodificarlo

••Integrarlo en el sistemaIntegrarlo en el sistema

••Estrategias:Estrategias:–– Descendente (Descendente (toptop--downdown))–– Ascendente (Ascendente (bottombottom--upup))–– MixtaMixta

DescendenteDescendente•• Se empieza la codificaciSe empieza la codificacióón y pruebas por los n y pruebas por los

mmóódulos superioresdulos superiores•• Para pruebas de unidad e integraciPara pruebas de unidad e integracióón se n se

tienen que codificar unos mtienen que codificar unos móódulos que simulan dulos que simulan los inferioreslos inferiores

•• Estas simulaciones de denominan Estas simulaciones de denominan stubsstubs•• Produce un sistema integral de forma Produce un sistema integral de forma

progresiva e incrementalprogresiva e incremental

Page 46: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

46

A

EjemploEjemplo

B C

D E F

AscendenteAscendente•• Se empieza la codificaciSe empieza la codificacióón y pruebas por los n y pruebas por los

mmóódulos inferioresdulos inferiores•• Para las pruebas de unidad e integraciPara las pruebas de unidad e integracióón se n se

tienen que codificar unos mtienen que codificar unos móódulos ficticios que dulos ficticios que coordinan la ejecucicoordinan la ejecucióón de los de abajon de los de abajo

•• Estos mEstos móódulos son llamados dulos son llamados driversdrivers(monitores de prueba)(monitores de prueba)

•• Se prueba todo el sistema al finalSe prueba todo el sistema al final

Page 47: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

47

Complejidad Complejidad StubStub / / DriverDriver

• Interfaz• Crear casos de prueba para el inferior• Llamar al módulo inferior

Ejemplo: C F

• Interfaz• Aceptar la entrada del superior• Visualizar• Retornar al superior

Ejemplo: F

Eferente

• Interfaz• Llamar al módulo• Aceptar resultados• Visualizar

Ejemplo: B D

• Interfaz• Crear datos de prueba para probar el módulo superior• Retornarlos al módulo de llamada

Ejemplo: D

Aferente

Por un driverPor un stubMódulo sustituido

Complejidad Complejidad StubStub / / DriverDriver

• Interfaz• Crear casos de prueba• Llamar al módulo inferior• Aceptar los resultados • Visualizar

Ejemplo: B E

• Interfaz• Aceptar la entrada• Visualizar datos• Crear resultados de prueba• Retorna al superior

Ejemplo: E

Transformación

Por un driverPor un stubMódulo sustituido

•• Es mEs máás simple un s simple un ““driverdriver para un mpara un móódulo dulo aferenteaferente”” que que ““un un stubstub aferenteaferente””

•• Es mEs máás simple un s simple un ““stubstub eferenteeferente”” que que ““un un driverdriver para eferentepara eferente””

Page 48: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

48

MixtaMixta•• Estrategia ascendente (Estrategia ascendente (bottombottom--upup) sobre las ) sobre las

ramas aferentesramas aferentes•• Estrategia descendente (Estrategia descendente (toptop--downdown) para las ) para las

ramas eferentes y de transformaciramas eferentes y de transformacióónn•• Produce un sistema integralProduce un sistema integral•• Su coste de programaciSu coste de programacióón (de n (de stubsstubs y y driversdrivers) )

es inferiores inferior

Coste de implementaciCoste de implementacióónn

Interfaz (1)Crear datos prueba

(5)Llamar módulo (1)Aceptar resultados

(1)Visualizar (1)

Driverpara

transf.9

Interfaz (1)Aceptar la entrada (1)Visualizar datos (1)Crear resultados prueba (5)Retorno (1)

Stub transf.

9

Interfaz (1)Crear datos prueba

(5)Llamar módulo inf.

(1)

Driverpara

eferente7

Interfaz (1)Aceptar la entrada (1)Visualizarla (1)Retorno al superior (1)

Stubeferente

4

Interfaz (1)Llamar al módulo (1)Aceptar resultados

(1)Visualizar (1)

Driverpara

aferente4

Interfaz (1)Crear datos prueba (5)Retorno módulo sup. (1)

Stubaferente

7

Page 49: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

49

ImplementaciImplementacióón (3)n (3)

Agenda

TratarPersonas

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

TratarCitas

ConsultarCita

EliminarCita

T E T T E T

ImplementaciImplementacióón (3)n (3)

Agenda

LeerDatos

TratarPersonas

AgregarPersona

ConsultarPersona

EliminarPersona

AgregarCita

TratarCitas

ConsultarCita

EliminarCita

T E T T E T

A

Page 50: Modelo de Desarrollo Estructurado - ls.fi.upm.esls.fi.upm.es/mdp/doc/Desarrollo_estructurado_MDP_2006.pdf · Ejemplo y definición de la práctica. 2 Software • Conjunto de programas

50

El punto crítico de la Metodología Orientada al Flujo de Datos es el paso de los DFD al Diagrama de Estructura: paso de una red a una jerarquía

El punto crítico de la Metodología Orientada al Flujo de Datos es el paso de los DFD al Diagrama de Estructura: paso de una red a una jerarquía