Sie sind auf Seite 1von 40

Ingeniera del Software

Profesor: Juan Antonio Lpez Quesada. Facultado de Informtica. http://dis.um.es/~lopezquesada

Tema 5. Diseo Estructurado


Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 1

Diseo Estructurado
El proceso de diseo Modelos de diseo. Diseo estructurado.
Diagramas de estructura. Estrategias de diseo:
Anlisis de transformaciones. Anlisis de transacciones.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

Bibliografa
(Piattini et al. 96) Captulo 8. Apartado 8.1. (Molina et al. 97) A. Molina, P. Letelier, P.Snchez, J. Snchez. Metodologa y Tecnologa de la Programacin . Servicio de Publicaciones. UPV. 1997. (Pressman 01) Captulo 13 y aptdos. 14.5 a 14.8. (MAP 95) Ministerio de Administraciones Pblicas. Gua de Tcnicas de Mtrica v.2.1. 1995. (MAP 01) Gua de tcnicas y prcticas de Mtrica v.3. http://www.map.es/csi/metrica3 (Page-Jones 88) M. Page-Jones. The Practical Guide to Structured Systems Design . Yourdon Press. 1988.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

Diseo Estructurado: El Proceso de Diseo


El proceso de aplicar distintas tcnicas y principios con el propsito de definir un dispositivo, un proceso o un sistema con suficiente detalle como para permitir su realizacin fsica . Proceso iterativo a travs del cual se traducen los requisitos en una representacin del software.
Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 4

Diseo Estructurado: El Proceso de Diseo


ERS Anlisis (Qu) Lenguaje comprensible por el usuario
Organizacin lgica

E-R
Diseo de alto nivel (arquitectnico)

DFD

Enfoque de datos Modelo lgico de datos

Enfoque funcional Arquitectura de procesos Estructura detallada: programas y mdulos

Diseo (Cmo)

Modelo fsico de datos


Diseo de bajo nivel (detallado)

Esquema de BD y ficheros

Cuadernos de carga Codificacin y Diseo Estructurado pruebas

Decisiones concretas: organizacin y rendimiento

(Piattini et al. 96)


Profesor: Juan Antonio Lpez Quesada

Implementacin Lenguaje comprensible por la mquina


5

Diseo Estructurado: El Proceso de Diseo


Diseo de datos.
Transforma el modelo del dominio de la informacin del anlisis en las estructuras de datos necesarias para la implementacin. Esquema Lgico de Datos Modelo Relacional .

Estructura modular del programa/aplicacin. Diagramas de Estructuras.

Diseo arquitectnico. Diseo de interfaz.

Interfaces del sw. con

otros sistemas y con los usuarios. Descripcin procedimental de los componentes del sw.
Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 6

Diseo procedimental.

Diseo Estructurado
Objetivos:
Desarrollar la estructura modular del programa. Definir las relaciones entre mdulos.

Tcnica Principal: Diagrama de Estructura. Documentacin de partida: DFDs Anlisis Estructurado. Estrategias de diseo - Tipos de Esquemas:
Anlisis de transformaciones Anlisis de transacciones

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

Diseo 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 lgico de datos del sistema.
Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 8

Diseo estructurado
Tareas a realizar:
Mdulos obtenidos en el anlisis. Procesos Terminales (primitivos). Organizar la estructura de estos mdulos y definir las conexiones entre los mismos. Describir el pseudocdigo para cada mdulo. Tcnicas descritas en el Tema 3 III.

Se basa en los siguiente Principios:


Abstraccin Modularidad Encapsulamiento y Ocultamiento de informacin

No confundir con programacin estructurada.


Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 9

Diseo Estructurado: Diagrama de estructura (Diagrama de estructura de


cuadros de Constantine).

Diseo de la Arquitectura del Sistema: Diagrama de mdulos funcionales. Identifica qu mdulos se necesitan, as como sus inputs/outputs (caja negra). Refleja la comunicacin de datos y control y la jerarqua entre mdulos. Diagrama de estructura. Elementos constituyentes :
Mdulos. Conexiones. Comunicaciones.
Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 10

Diseo Estructurado: Diagrama de estructura. Mdulo.

Aquella parte de cdigo que se puede llamar . (Page-Jones 88). Representa un programa, subprograma o rutina, dependiendo del lenguaje que se vaya a utilizar. Admite parmetros de llamada y retorna algn valor, si es preciso. Tamao ideal: 40-50 lneas
pero hay muchas opiniones!

Se representa en el diagrama mediante un rectngulo.


Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 11

Diseo Estructurado: Diagrama de estructura. Representacin de los


Mdulos.

MODULO OBTENER DATOS CLIENTES

MODULO PREDEFINIDO IMPRIMIR CHEQUE DE PAGO CONECTOR 1

En Mtrica tambin se dispone de: Almacenes de datos Dispositivos fsicos


NOMBRE

DISPOSITIVO

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

12

Diseo Estructurado: Diagrama de estructura. Conexin entre Mdulos.

La conexin entre mdulos se representa mediante una lnea. En la figura:


A llama a B. B hace su funcin. B retorna a A, inmediatamente despus del lugar donde se produjo la llamada de A a B.
CONEXION

MODULO QUE LLAMA

MODULO LLAMADO

El diagrama no dice nada sobre el cdigo de A ni sobre el de B, lo nico que sabe es que en A existe una sentencia del tipo CALL B.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

13

Diseo Estructurado: Diagrama de estructura. Conexin entre Mdulos. Estructura repetitiva

A Estructura alternativa

Orden de ejecucin de los mdulos: de izquierda a derecha y de arriba abajo (Piattini et al. 96).
Segn (Molina et al. 97) el orden no importa.
Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 14

Diseo Estructurado: Diagrama de estructura. Conexin entre Mdulos. Ejemplo tpico de men: Men login

Procesos para Agentes externos

Procesos para departamentos

Procesos Generales

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

15

Diseo Estructurado: Diagrama de estructura. Comunicacin entre Mdulos.

Los signos para llevar a cabo la comunicacin entre mdulos son:

campo alfabtico correcto

EOR

Obtener datos clientes

campo

campo correcto EOR campo Validar campo alfabtico

Flags o controles Datos


Obtener campo siguiente

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

16

Diseo Estructurado: Diagrama de estructura. Flags o controles.

Mediante los flags o controles, se puede representar:


Paso de control entre mdulos: un mdulo comunica a otro mdulo que ha terminado su proceso y traspasa al mdulo llamado el control del sistema. Comunicacin de que se ha producido un error en el proceso. Comunicacin de que se puede proceder a una operacin concreta.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

17

Diseo Estructurado: Diagrama de estructura. Diferencias entre Comunicadores.


Los datos se procesan. Los datos son la informacin compartida por los mdulos. La posicin de la flecha (hacia arriba o hacia abajo) indica el sentido de la comunicacin. Los datos tienen importancia para el mundo exterior, estn relacionados con el problema. Los controles slo sirven para comunicar condiciones entre los mdulos. Los controles indican al mdulo que llama la terminacin EOF, o un error del mdulo llamado, y deben ir siempre en sentido ascendente. Los flags tienen importancia en la comunicacin de informacin en el interior; son los que sincronizan la operativa de los mdulos.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

18

Diseo Estructurado: Diagrama de estructura. Parmetros.

Se pueden representar mediante tablas de interfaz.


Mdulo Parmetro formal x y Entrada Salida Uso Significado

F(x,y)

S No

No S

P M

Fecha nacimiento Edad

Uso:

P p procesado M p modificado (...)


Diseo Estructurado 19

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado: Diagrama de estructura. Ejemplo.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

20

Diseo Estructurado: Diagrama de estructura. Ejemplo.


Jerarqua Iterativa
Cuerpo del Bucle
EL ENTERO ES VLIDO ENTERO

ENTERO VLIDO

FIN DE FICHERO
CONSEGUIR ENTERO VLIDO

ENTERO FIN DE FICHERO


LEER ENTERO DE FICHERO

CONSEGUIR ENTERO VLIDO: ... LEER_ENTERO( fin_fichero, entero ) ;

VALIDAR ENTERO

... if VALIDAR_ENTERO( entero ) then ... ...

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

21

Diseo Estructurado: Diagrama de estructura. Ejemplo I.


EMISIN CHEQUES DE PAGO NMERO EMPLEADO REGISTRO PAGO PAGO NETO JORNALERO FIN REGISTROS PAGO NETO EMPLEADO REGISTRO PAGO JORNALERO REGISTRO PAGO EMPLEADO OBTENER REGISTRO PAGO CALCULAR PAGO NETO JORNALEROS CALCULAR PAGO NETO EMPLEADOS IMPRIMIR CHEQUE PAGO IMPORTE PAGO NOMBRE EMPLEADO

RETRIBUCIN DIARIA

DEDUCCIONES NORMALES PAGO BRUTO JORNALERO

SUELDO BASE PAGO BRUTO EMPLEADO IRPF COMPLEMENTOS

JORNADAS TRABAJADAS IRPF CALCULAR PAGO BRUTO JORNALEROS CALCULAR DEDUCCIONES NORMALES

CALCULAR PAGO BRUTO EMPLEADOS

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

22

Diseo Estructurado: Diagrama de estructura. Ejemplo II.


program EMISION_CHEQUES ; type
treg_pago : RECORD...END ; treg_jornalero : RECORD...END ; treg_empleado : RECORD...END ; var importe : 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 ; begin OBTENER_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 ) ;

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

23

Diseo Estructurado: Diagrama de estructura. Especificacin de Mdulos.

Interfaz-funcin (mdulo, entradas, salidas, funcin). Pseudo-cdigo.


Ms preciso que el usado en anlisis Deja cierto grado de libertad al programador No trata aspectos de eficiencia, a menos que estn directamente relacionados con requisitos Permite verificar la calidad del diseo

Herramientas complementarias:
Diagramas de flujo Nassi-Schneiderman Tablas y rboles de decisin
Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 24

Diseo Estructurado: Estrategias de Diseo.


Pasos generales a seguir para obtener un buen diseo a partir de un DFD de procesos primitivos A veces hay que refinar el DFD de partida. Dos estrategias:
Anlisis de transformaciones. Anlisis de transacciones.

Importante: disear el DE de forma que:


Los mdulos de nivel superior toman las decisiones de ejecucin (coordinan). Los de nivel inferior realizan la mayor parte del trabajo de entrada, de clculo y de salida.
Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 25

Diseo Estructurado: Estrategias de Diseo.


Revisar el modelo fundamental del sistema
DFD procesos primitivos
no hace falta crear el DFD de procesos primitivos se aaden procesos, si hace falta recomendado, como mnimo, tener 3 niveles de profundidad

Determinar si el DFD tiene caractersticas de transformacin o de transaccin.


indica expresamente la caracterstica del DFD!

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

26

Diseo Estructurado: Estrategias de Diseo.


Segn sea de transformacin o transaccin:
a) Aislar el centro de la transformacin, especificando los lmites del flujo de llegada y de salida ...o bien... b) Identificar el centro de la transaccin y las caractersticas del flujo de cada camino de accin. indica expresamente los elementos anteriores!

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

27

Diseo Estructurado: Estrategias de Diseo.


Realizar el primer corte del diagrama de estructuras. Realizar el segundo nivel de factorizacin. Refinar la estructura del programa. Asegurarse del trabajo realizado por el diseo obtenido.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

28

Diseo Estructurado: Anlisis de Transformacin.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

29

Diseo Estructurado: Anlisis de Transformacin. 1 Nivel de Factorizacin.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

30

Diseo Estructurado: Anlisis de Transformacin. 2 Nivel de Factorizacin.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

31

Diseo Estructurado: Anlisis de Transaccin.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

32

Diseo Estructurado: Anlisis de Transaccin. 1 Nivel de Factorizacin.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

33

Diseo Estructurado: Anlisis de Transaccin. 2 Nivel de Factorizacin.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

34

Diseo Estructurado: Anlisis de Transformacin. Ejemplo.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

35

Diseo Estructurado: Anlisis de Transformacin. Ejemplo.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

36

Diseo Estructurado: Anlisis de Transaccin. Ejemplo.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

37

Diseo Estructurado: Anlisis de Transaccin. Ejemplo.

Profesor: Juan Antonio Lpez Quesada

Diseo Estructurado

38

Diseo Estructurado: Centros de Transaccin.

Normalmente el esquema de transaccin no es tan claro: el proceso de transaccin no aparece explcitamente en el DFD solucin: examinar el diagrama de contexto y la lista de eventos para determinar los tipos de transacciones en el sistema
Profesor: Juan Antonio Lpez Quesada Diseo Estructurado 39

Diseo Estructurado: Anlisis de Transaccin. Ejemplo.


P datos-venta Realizar venta

(Molina et al. 97) p.172

DPTO. SERVICIO A CLIENTES datos-devolucin P Realizar devolucin

...

P datos-pago Admitir pago

Seleccione la opcin deseada: 1. Realizar venta 2. Realizar devolucin


Profesor: Juan Antonio Lpez Quesada Diseo Estructurado

3. Admitir pago

40