Upload
vuongtram
View
220
Download
0
Embed Size (px)
Citation preview
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
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
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)
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
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
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
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
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)
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
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
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)
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
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
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
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
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
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
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
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)
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
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
......
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
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
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
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:
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
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
nº
d.
or d
d. ord
elsnº
Aferente EferenteTransformación
Coordinador
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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””
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
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
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