tema4
TRANSCRIPT
1Tema 4: Diseño Estructurado
Fundamentos de Ingeniería del
Software
Departamento de Informática y Sistemas Facultad de Informática Campus Universitario de Espinardo - Murcia
Tema 4. Diseño Estructurado.
Asignatura: Fundamentos de Ingeniería del SoftwareTitulación: Ingeniera Técnica de Informática de GestiónCurso Académico: 2004-2005Curso: 3ºCuatrimetres: PrimeroCréditos: 6(3+3)Página Web: dis.um.es/~lopezquesadaProfesor: Juan Antonio López QuesadaDepartamento: Informática y Sistemas
2Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Índice de Contenidos.
El proceso de diseño.El proceso de diseño. Diseño estructurado.Diseño estructurado.
Diagramas de estructura.Diagramas de estructura. Estrategias de diseño:Estrategias de diseño:
• Análisis de transformaciones.Análisis de transformaciones.• Análisis de transacciones.Análisis de transacciones.
3Tema 4: Diseño Estructurado
(Piattini et al. 96) Capítulo 8. Apartado 8.1. (Molina et al. 97) A. Molina, P. Letelier,
P.Sánchez, J. Sánchez. “Metodología y Tecnología de la Programación”. Servicio de Publicaciones. UPV. 1997.
(Pressman 01) Capítulo 13 y aptdos. 14.5 a 14.8. (MAP 95) Ministerio de Administraciones Públicas.
Guía de Técnicas de Métrica v.2.1. 1995. (MAP 01) Guía de técnicas y prácticas de Métrica
v.3. http://www.map.es/csi/metrica3 (Page-Jones 88) M. Page-Jones. “The Practical Guide
to Structured Systems Design”. Yourdon Press. 1988. Métrica 3: Diseño del Sistema de Información (Proceso DSI).
Tema 4. Diseño Estructurado. Bibliografía.
4Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Métrica 3 (II). Estructura
5Tema 4: Diseño Estructurado
Objetivo: especificación de la construcción del sistema:Definición de la arquitectura del sistemaarquitecturas multinivel (p.ej. C/S)
Definición del entorno tecnológico Especificación detallada de los componentes del SI:
Especificación técnica del plan de pruebas Definición de los requisitos de implantación Diseño de los procedimientos de migración y carga inicial (cuando proceda)
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
6Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado.DSI.
Diseño del Sistema de Información (Proceso
DSI)
7Tema 4: Diseño Estructurado
Objetivo: para cada uno de los subsistemas se diseña la estructura modular de los procesos que lo integran.
Pto. de partida: modelo de procesos obtenido en ASI y catálogo de requisitos.
Técnica: Diagrama de Estructura de Cuadros de Constantine (DEC)
Se realiza el diseño detallado de la interfaz de usuario, de pantalla e impresa.
El interfaz de usuario debe corresponderse con la estructura modular.
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 5.- Diseño de la Arquitectura de módulos del Sistema
8Tema 4: Diseño Estructurado
Definiciones de la BD
Diccionariode Datos
Diagrama de flujo de datos
PROC
BZ
Y
X
W
V
A PROC
PROCPROCPROC
FUENTE
DESTINO
D ALMACÉN DE DATOS
Diagrama E-R
(o DED)
Diagrama de estructuras
Paso al diseño
Descripcióndel proceso
Definición del FD
Definiciones de los módulos
Descrip.E. E.
Visión Panorámica
9Tema 4: Diseño Estructurado
“El proceso de aplicar distintas técnicas y principios con el propósito de definir un dispositivo, un proceso o un sistema con suficiente detalle como para permitir su realización física”.
Proceso iterativo a través del cual se traducen los requisitos en una representación del software.
Tema 4. Diseño Estructurado. El Proceso de Diseño.
10Tema 4: Diseño Estructurado
E-R
ERS
DFD
Modelo lógico de datos
Modelo físico de datos
Arquitectura de procesos
Estructura detallada:
programas y módulos
Esquema de BD y ficheros
Cuadernos de carga
Codificación y pruebas
Análisis (Qué)Lenguaje comprensible por el usuario
Diseño de alto nivel (arquitectónico)
Diseño de bajo nivel (detallado)
Diseño (Cómo)
Organización lógica
Decisiones concretas: organización y rendimiento
ImplementaciónLenguaje comprensible por la máquina
(Piattini et al. 96)
Enfoque de datos
Enfoque funcional
Tema 4. Diseño Estructurado. El Proceso de Diseño.
11Tema 4: Diseño Estructurado
Diseño de datos. Transforma el modelo del dominio de la información del análisis en las estructuras de datos necesarias para la implementación. Esquema Lógico de Datos “Modelo Relacional”.
Diseño arquitectónico. Estructura modular del programa/aplicación. Diagramas de Estructuras.
Diseño de interfaz. Interfaces del sw. con otros sistemas y con los usuarios.
Diseño procedimental. Descripción procedimental de los componentes del sw.
Tema 4. Diseño Estructurado. El Proceso de Diseño.
12Tema 4: Diseño Estructurado
Se define la arquitectura general del SI: particiones físicas descomposición lógica en subsistemas de diseño
ubicación de cada subsistema en cada partición
especificación detallada de la infraestructura tecnológica
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 1.- Definición de la arquitectura del sistema.
13Tema 4: Diseño Estructurado
Definición de niveles en la arquitectura: definición de las ppales. particiones físicas del SI (nodos y comunicaciones entre nodos): gestores de datos tipos de puesto cliente tipos de dispositivos de impresión monitores de teleproceso servidores comunicaciones
se usa un diagrama de representación (formato libre) o de despliegue UML
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 1.- Definición de la arquitectura del sistema.
14Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 1.- Definición de la arquitectura del sistema. Ejemplo.
15Tema 4: Diseño Estructurado
Identificación de subsistemas de diseño: normalmente, evolución directa de los subsistemas de análisis, aunque se pueden adoptar otros criterios.
en diseño estructurado, se describen con un diagrama de estructura de alto nivel
subsistemas específicos: funcionalidades propias del SI subsistemas de soporte: servicios comunes, que proporcionan un acceso transparente a los recursos
Se ubican los subsistemas en nodos Se especifica el entorno tecnológico:
se determina la implementación concreta de los nodos y comunicaciones especificados
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 1.- Definición de la arquitectura del sistema.
16Tema 4: Diseño Estructurado
Objetivo: para cada uno de los subsistemas se diseña la estructura modular de los procesos que lo integran.
Pto. de partida: modelo de procesos obtenido en ASI y catálogo de requisitos.
Técnica: Diagrama de Estructura de Cuadros de Constantine (DEC)
Se realiza el diseño detallado de la interfaz de usuario, de pantalla e impresa.
El interfaz de usuario debe corresponderse con la estructura modular.
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 5.- Diseño de la arquitectura de módulos del sistema.
17Tema 4: Diseño Estructurado
Objetivo: definir la estructura física de datos que utilizará el sistema, a partir del modelo lógico de datos normalizado o del modelo de clases
“Paso a tablas”, si se usa un SGBDR. Se analizan los caminos de acceso a los datos persistentes, por parte de cada módulo, con el fin de mejorar los tiempos de respuesta y optimizar recursos.
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 6.- Diseño físico de datos.
18Tema 4: Diseño Estructurado
Objetivos: garantizar la calidad de las especificaciones del diseño y su viabilidad: Verificación de la calidad técnica de cada modelo
Aseguramiento de la coherencia entre varios modelos
Aceptación del diseño por parte de Explotación y Sistemas
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 7.- Verificación y aceptación de la arquitectura del sistema.
19Tema 4: Diseño Estructurado
A partir del diseño anterior, se generan las especificaciones para la construcción del SI, incluyendo: Especificación del entorno de construcción:
herramientas, compiladores, generadores de código, etc.
Descripción de componentes Especificación detallada de componentes
normalmente en pseudocódigo Especificación de la estructura física de datos definición y creación de los elementos del modelo físico de datos con el DDL del SGBD escogido
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 8.- Generación de especificaciones de construcción.
20Tema 4: Diseño Estructurado
Se especifica en detalle el plan de pruebas del SI, para los niveles de prueba: Pruebas unitarias Pruebas de integración Pruebas de implantación Pruebas de aceptación
Se especifica el entorno de las pruebas
Se definen los casos de prueba
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
DSI 10.- Especificación técnica del plan de pruebas.
21Tema 4: Diseño Estructurado
Catálogo de requisitos (se completa)
Catálogo de excepciones Catálogo de normas para el
diseño y construcción Diseño de la arquitectura del
sistema Entorno tecnológico del sistema Procedimientos de operación y
administración del sistema Procedimientos de seguridad y
control de acceso Diseño detallado de los
subsistemas de soporte Modelo físico de datos
optimizado Asignación de esquemas físicos
de datos a nodos
Además, en diseño estructurado: Diseño de la arquitectura
modular Diseño de interfaz de
usuario
Además, en diseño orientado a objetos:
Diseño de la realización de los casos de uso
Modelo de clases de diseño Comportamiento de clases de
diseño Diseño de interfaz de
usuario
Tema 4. Diseño Estructurado. Métrica 3 (II). DSI
22Tema 4: Diseño Estructurado
Objetivos: Desarrollar la estructura modular del programa.
Definir las relaciones entre módulos. Técnica Principal: Diagrama de Estructura.
Documentación de partida: DFDs – Análisis Estructurado.
Estrategias de diseño - Tipos de Esquemas: Análisis de transformaciones Análisis de transacciones
Tema 4. Diseño Estructurado. El Proceso de Diseño.
23Tema 4: Diseño Estructurado
Se dispone de: Las entradas que suministran al sistema las entidades externas.
Las salidas aportadas por el sistema a dichas entidades externas.
Las funciones descompuestas que se han de realizar en ese sistema.
El esquema lógico de datos del sistema.
Tema 4. Diseño Estructurado. El Proceso de Diseño.
24Tema 4: Diseño Estructurado
Tareas a realizar: Módulos obtenidos en el análisis. Procesos
Terminales (primitivos). Organizar la estructura de estos módulos y definir las conexiones entre los mismos.
Describir el pseudocódigo para cada módulo. Técnicas descritas en el Tema 2.
Se basa en los siguiente Principios: Abstracción Modularidad Encapsulamiento y Ocultamiento de información
No confundir con programación estructurada.
Tema 4. Diseño Estructurado. El Proceso de Diseño.
25Tema 4: Diseño Estructurado
Diseño de la Arquitectura del Sistema: Diagrama de módulos funcionales.
Identifica qué módulos se necesitan, así como sus inputs/outputs (caja negra).
Refleja la comunicación de datos y control y la jerarquía entre módulos.
Diagrama de estructura. Elementos constituyentes : Módulos. Conexiones. Comunicaciones.
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine).
26Tema 4: Diseño Estructurado
“Aquella parte de código que se puede llamar”.
(Page-Jones 88). Representa un programa, subprograma o rutina, dependiendo del lenguaje que se vaya a utilizar.
Admite parámetros de llamada y retorna algún valor, si es preciso.
Tamaño ideal: 40-50 líneas pero hay muchas opiniones!
Se representa en el diagrama mediante un rectángulo.
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Módulos.
27Tema 4: Diseño Estructurado
OBTENER DATOS
CLIENTES
MODULOIMPRIMIR CHEQUE DE
PAGO
MODULO PREDEFINID
O
En Métrica también se dispone de:
Almacenes de datosDispositivos físicos
NOMBRE
DISPOSITIVO
1
CONECTOR
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Módulos.
28Tema 4: Diseño Estructurado
La conexión entre módulos se representa mediante una línea.
En la figura: A llama a B. B hace su función. B retorna a A,
inmediatamente después del lugar donde se produjo la llamada de A a B.
El diagrama no dice nada sobre el código de A ni sobre el de B, lo único que sabe es que en A existe una sentencia del tipo CALL B.
CONEXION
MODULO QUE LLAMA
MODULO LLAMADOB
A
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Conexiones entre Módulos.
29Tema 4: Diseño Estructurado
A
CB
Estructura repetitiva
Estructura alternativa
Orden de ejecución de los módulos: de izquierda a derecha y de arriba abajo (Piattini et al. 96).
Según (Molina et al. 97) el orden no importa.
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Conexiones entre Módulos.
30Tema 4: Diseño Estructurado
Menú login
Procesos para
departamentos
Procesos para Agentes externos
Procesos Generale
s
Ejemplo típico de menú:
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Conexiones entre Módulos.
31Tema 4: Diseño Estructurado
Los signos para llevar a cabo la comunicación entre módulos son:
Flags o controles
DatosValidar campoalfabético
Obtener camposiguiente
Obtener datos clientes
campo
campo correcto
EOR
EOR
campo
campo alfabético correcto
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Comunicación entre Módulos.
32Tema 4: Diseño Estructurado
Mediante los “flags” o controles, se puede representar: Paso de control entre módulos: un módulo comunica a otro módulo que ha terminado su proceso y traspasa al módulo llamado el control del sistema.
Comunicación de que se ha producido un error en el proceso.
Comunicación de que se puede proceder a una operación concreta.
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Flag o Controles.
33Tema 4: Diseño Estructurado
Los datos se procesan.
Los datos son la información compartida por los módulos. La posición de la flecha (hacia arriba o hacia abajo) indica el sentido de la comunicación.
Los datos tienen importancia para el mundo exterior, están relacionados con el problema.
Los controles sólo sirven para comunicar condiciones entre los módulos.
Los controles indican al módulo que llama la terminación EOF, o un error del módulo llamado, y deben ir siempre en sentido ascendente.
Los flags tienen importancia en la comunicación de información en el interior; son los que sincronizan la operativa de los módulos.
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Diferencias entre comunicadores.
34Tema 4: Diseño Estructurado
Se pueden representar mediante tablas de interfaz.Módulo
Parámetro formal
Entrada
Salida
Uso Significado
F(x,y)
x Sí No P Fecha nacimiento
y No Sí M Edad
Uso: P procesadoM modificado
(...)
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Parámetros.
35Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Ejmeplo.
36Tema 4: Diseño Estructurado
FIN DE FICHERO
CONSEGUIR ENTERO VÁLIDO
LEER ENTERO DE FICHERO
VALIDAR ENTERO
ENTERO
ENTERO
ENTERO VÁLIDO FIN DE
FICHERO
EL ENTERO ES VÁLIDO “CONSEGUIR ENTERO VÁLIDO”:
...LEER_ENTERO( fin_fichero, entero ) ;...if VALIDAR_ENTERO( entero ) then ......
Jerarquía Iterativa
Cuerpo del Bucle
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Ejemplo.
37Tema 4: Diseño Estructurado
CALCULAR PAGOBRUTO JORNALEROS
CALCULARDEDUCCIONESNORMALES
CALCULAR PAGOBRUTO EMPLEADOS
IMPRIMIRCHEQUE PAGO
OBTENERREGISTRO PAGO
CALCULAR PAGONETO EMPLEADOS
CALCULAR PAGONETO JORNALEROS
EMISIÓN CHEQUESDE PAGO
JORNADAS TRABAJADAS
RETRIBUCIÓN DIARIA
IRPFIRPF
COMPLEMENTOS
SUELDO BASE
IMPORTE PAGO
NOMBRE EMPLEADONÚMERO EMPLEADO
REGISTRO PAGO EMPLEADOREGISTRO PAGO JORNALEROFIN REGISTROS
PAGO BRUTO EMPLEADO
DEDUCCIONES NORMALES
PAGO BRUTO JORNALERO
PAGO NETO EMPLEADOPAGO NETO JORNALERO
REGISTRO PAGO
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Ejemplo.
38Tema 4: Diseño Estructurado
program EMISION_CHEQUES ;type
treg_pago : RECORD...END ;treg_jornalero : RECORD...END ;treg_empleado : RECORD...END ;
varimporte : real ;importe_pago_jorn, importe_pago_empl : real ;registro_pago : treg_pago ;registro_empleado : treg_empleado ;registro_jornalero : treg_jornalero ;fin_registros : boolean ;numero_empleado : integer ;nombre_empleado : string ;
beginOBTENER_REGISTRO_PAGO (registro_pago, fin_registros) ;...importe_pago_jorn := CALCULAR_NETO_JORN (registro_jornalero) ;... importe_pago_empl := CALCULAR_NETO_EMPL (registro_empleado) ;...IMPRIMIR_CHEQUE_PAGO( numero_empleado, nombre_empleado, importe) ;...
end.
procedure OBTENER_REG_PAGO ( var rp : treg_pago; var fin_reg : boolean ) ;function CALCULAR_NETO_JORN ( rj : treg_jornalero ) : real ;function CALCULAR_NETO_EMPL ( re : treg_empleado ) : real ;function CALCULAR_BRUTO_JORN ( ret_diaria, jorn_trab : real ) : real ;function CALCULAR_BRUTO_EMPL ( sueldo_base, complem : real ) : real ;function CALCULAR_DEDUCCIONES ( pago_bruto, irpf : real ) : real ;procedure IMPRIMIR_CHEQUE_PAGO( num_emp : integer ; nom_emp : string; importe : real ) ;
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Ejemplo.
39Tema 4: Diseño Estructurado
Interfaz-función (módulo, entradas, salidas, función).
Pseudo-código. Más preciso que el usado en análisis Deja cierto grado de libertad al programador No trata aspectos de eficiencia, a menos que estén directamente relacionados con requisitos
Permite verificar la calidad del diseño Herramientas complementarias:
Diagramas de flujo Nassi-Schneiderman Tablas y árboles de decisión
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Especificación de los Módulos.
40Tema 4: Diseño Estructurado
A veces hay que refinar el DFD de partida.
Dos estrategias: Análisis de transformaciones. Análisis de transacciones.
Importante: diseñar el DE de forma que: Los módulos de nivel superior toman las decisiones de ejecución (coordinan).
Los de nivel inferior realizan la mayor parte del trabajo de entrada, de cálculo y de salida.
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Estrategias de Diseño.
41Tema 4: Diseño Estructurado
Revisar el modelo fundamental del sistema DFD procesos primitivos
no hace falta “crear” el DFD de procesos primitivos
se añaden procesos, si hace falta recomendado, como mínimo, tener 3 niveles de profundidad
Determinar si el DFD tiene características de transformación o de transacción. indica expresamente la característica del DFD!
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Estrategias de Diseño.
42Tema 4: Diseño Estructurado
Según sea de transformación o transacción:a) Aislar el centro de la transformación,
especificando los límites del flujo de llegada y de salida...o bien...
b) Identificar el centro de la transacción y las características del flujo de cada camino de acción.
indica expresamente los elementos anteriores!
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Estrategias de Diseño.
43Tema 4: Diseño Estructurado
Realizar el primer corte del diagrama de estructuras.
Realizar el segundo nivel de factorización.
Refinar la estructura del programa.
Asegurarse del trabajo realizado por el diseño obtenido.
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Estrategias de Diseño.
44Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transformación.
45Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transformación. 1º Nivel de Factorización.
46Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transformación. 2º Nivel de Factorización.
47Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transacción.
48Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transacción. 1º Nivel de Factorización.
49Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transacción. 2º Nivel de Factorización.
50Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transformación. Ejemplo.
51Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transformación. Ejemplo.
52Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transacción. Ejemplo.
53Tema 4: Diseño Estructurado
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Análisis de Transacción. Ejemplo.
54Tema 4: Diseño Estructurado
Normalmente el esquema de transacción no es tan claro: el proceso de transacción no aparece explícitamente en el
DFD solución: examinar el
diagrama de contexto y la lista de eventos para determinar los tipos de transacciones en el
sistema
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Centros de Transacción.
55Tema 4: Diseño Estructurado
PAdmitir pago
PRealizar devolución
PRealizar venta
DPTO. SERVICIO ACLIENTES
datos-pago
datos-devolución
datos-venta
Seleccione la opción deseada:1. Realizar venta2. Realizar devolución3. Admitir pago
(Molina et al. 97) p.172
.
.
.
Tema 4. Diseño Estructurado. Diagrama de estructura (Diagrama de estructura de cuadros de Constantine). Centros de Transacción.