profesor: juan antonio lópez quesadadiseño estructurado1 ingeniería del software tema 5. diseño...

40
Profesor: Juan Antonio López Quesada Diseño Estructurado 1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado de Informática. http://dis.um.es/~lopezquesada

Upload: velasco-rivera

Post on 22-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 1

Ingeniería del Software

Tema 5. Diseño Estructurado

Profesor: Juan Antonio López Quesada.Facultado de Informática.

http://dis.um.es/~lopezquesada

Page 2: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 2

Diseño Estructurado

El proceso de diseñoEl proceso de diseñoModelos de diseño.Modelos 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.

Page 3: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 3

Bibliografía

(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.

Page 4: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 4

Diseño Estructurado:El Proceso de Diseño

“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.

Page 5: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 5

Diseño Estructurado:El Proceso de Diseño

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ón

Lenguaje comprensible por la máquina

(Piattini et al. 96)

Enfoque de datos

Enfoque funcional

Page 6: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 6

Diseño Estructurado:El Proceso de Diseño

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.

Page 7: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 7

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

Page 8: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 8

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.

Page 9: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 9

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 3 III.Se basa en los siguiente Principios:

Abstracción Modularidad Encapsulamiento y Ocultamiento de información

No confundir con programación estructurada.

Page 10: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 10

Diseño Estructurado: Diagrama de estructura (Diagrama de estructura de

cuadros de Constantine).

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.

Page 11: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 11

“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.

Diseño Estructurado: Diagrama de estructura. Módulo.

Page 12: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 12

OBTENER DATOS

CLIENTES

MODULOIMPRIMIR

CHEQUE DE PAGO

MODULO PREDEFINIDO

En Métrica también se dispone de:

Almacenes de datosDispositivos físicos

NOMBRE

DISPOSITIVO

1

CONECTOR

Diseño Estructurado: Diagrama de estructura. Representación de los Módulos.

Page 13: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 13

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

Diseño Estructurado: Diagrama de estructura. Conexión entre Módulos.

Page 14: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 14

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.

Diseño Estructurado: Diagrama de estructura. Conexión entre Módulos.

Page 15: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 15

Menú login

Procesos para departamentos

Procesos para Agentes externos

Procesos Generales

Ejemplo típico de menú:

Diseño Estructurado: Diagrama de estructura. Conexión entre Módulos.

Page 16: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 16

Los signos para llevar a cabo la comunicación entre módulos son:

Flags o controles

DatosValidar campo

alfabéticoObtener campo

siguiente

Obtener datos clientes

campo

campo correcto

EOR

EOR

campo

campo alfabético correcto

Diseño Estructurado: Diagrama de estructura. Comunicación entre Módulos.

Page 17: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 17

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.

Diseño Estructurado: Diagrama de estructura. Flags o controles.

Page 18: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 18

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.

Diseño Estructurado: Diagrama de estructura. Diferencias entre

Comunicadores.

Page 19: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 19

Se pueden representar mediante tablas de interfaz.Módulo Parámetro

formalEntrada Salida Uso Significado

F(x,y) x Sí No P Fecha nacimiento

  y No Sí M Edad

Uso: P procesado

M modificado (...)

Diseño Estructurado: Diagrama de estructura. Parámetros.

Page 20: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 20

Diseño Estructurado: Diagrama de estructura. Ejemplo.

Page 21: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 21

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 ...

...

Diseño Estructurado: Diagrama de estructura. Ejemplo.

Jerarquía Iterativa

Cuerpo del Bucle

Page 22: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 22

CALCULAR PAGOBRUTO JORNALEROS

CALCULARDEDUCCIONES

NORMALES

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 EMPLEADO

NÚMERO EMPLEADO

REGISTRO PAGO EMPLEADO

REGISTRO PAGO JORNALEROFIN REGISTROS

PAGO BRUTO EMPLEADO

DEDUCCIONES NORMALES

PAGO BRUTO JORNALERO

PAGO NETO EMPLEADO

PAGO NETO JORNALERO

REGISTRO PAGO

Diseño Estructurado: Diagrama de estructura. Ejemplo I.

Page 23: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 23

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 ) ;

Diseño Estructurado: Diagrama de estructura. Ejemplo II.

Page 24: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 24

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

Diseño Estructurado: Diagrama de estructura. Especificación de Módulos.

Page 25: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 25

Pasos generales a seguir para obtener un buen diseño a partir de un DFD de procesos primitivos

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.

Diseño Estructurado: Estrategias de Diseño.

Page 26: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 26

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!

Diseño Estructurado: Estrategias de Diseño.

Page 27: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 27

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!

Diseño Estructurado: Estrategias de Diseño.

Page 28: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 28

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.

Diseño Estructurado: Estrategias de Diseño.

Page 29: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 29

Diseño Estructurado: Análisis de Transformación.

Page 30: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 30

Diseño Estructurado: Análisis de Transformación. 1º Nivel de

Factorización.

Page 31: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 31

Diseño Estructurado: Análisis de Transformación. 2º Nivel de

Factorización.

Page 32: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 32

Diseño Estructurado: Análisis de Transacción.

Page 33: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 33

Diseño Estructurado: Análisis de Transacción. 1º Nivel de

Factorización.

Page 34: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 34

Diseño Estructurado: Análisis de Transacción. 2º Nivel de

Factorización.

Page 35: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 35

Diseño Estructurado: Análisis de Transformación. Ejemplo.

Page 36: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 36

Diseño Estructurado: Análisis de Transformación. Ejemplo.

Page 37: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 37

Diseño Estructurado: Análisis de Transacción. Ejemplo.

Page 38: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 38

Diseño Estructurado: Análisis de Transacción. Ejemplo.

Page 39: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 39

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

Diseño Estructurado: Centros de Transacción.

Page 40: Profesor: Juan Antonio López QuesadaDiseño Estructurado1 Ingeniería del Software Tema 5. Diseño Estructurado Profesor: Juan Antonio López Quesada. Facultado

Profesor: Juan Antonio López Quesada Diseño Estructurado 40

P

Admitir pago

P

Realizar devolución

P

Realizar venta

DPTO. SERVICIO ACLIENTES

datos-pago

datos-devolución

datos-venta

Seleccione la opción deseada:

1. Realizar venta

2. Realizar devolución

3. Admitir pago

(Molina et al. 97) p.172

...

Diseño Estructurado: Análisis de Transacción. Ejemplo.