You are on page 1of 35

Ingeniera del Software 3 de I.T.I.S.

Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software


Tema 8: Diseo estructurado

Dr. Francisco Jos Garca Pealvo (fgarcia@usal.es)


3 I.T.I.S. Fecha de ltima modificacin: 15-12-2005 Universidad de Salamanca Departamento de Informtica y Automtica

Ingeniera del Software Diseo estructurado

Resumen
El objetivo principal de este tema es explicar la forma correcta de pasar del anlisis al diseo dentro del paradigma estructurado, haciendo hincapi en el uso de los denominados diagramas de estructuras que provienen de los diagramas de flujo de datos, es decir, en el diseo arquitectnico. Aunque tambin se har un ligero repaso del paso de un modelo conceptual de datos a su correspondiente modelo lgico relacional. En el primero de los cuatro apartados principales en que se organiza el tema se hace una introduccin al diseo estructurado. El segundo apartado se dedica al estudio de la tcnica fundamental del diseo arquitectnico dentro del paradigma estructurado, los diagramas de estructura. En el tercero se estudian las estrategias de diseo, que son aqullas que se emplean para la transformacin del modelo funcional basado en DFDs en los diagramas de estructuras que constituyen el diseo arquitectnico. Por ltimo, en el cuarto apartado se aborda el paso del modelo conceptual al modelo lgico de datos y la teora de la normalizacin Diseo estructurado; Diagrama de estructuras; Tabla de interfaz; Estrategias de diseo; Anlisis de transformacin; Anlisis de transaccin; Centro de transformacin; Centro de transaccin; Modelo relacional; Normalizacin [Piattini et al., 2004] Captulo 8 [Pressman, 2002] Captulo 14

Resumen

Descriptores Bibliografa

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Esquema Introduccin Diagrama de estructuras Diseo arquitectnico Diseo de datos Aportaciones principales del tema Ejercicios Lecturas complementarias Referencias

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

Ingeniera del Software Diseo estructurado

1. Introduccin

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Introduccin (i) Objetivos principales


Desarrollo de una estructura modular de programa Representacin de las relaciones entre mdulos

Combinacin de la estructura de programa y de la estructura de datos Posibilita el establecimiento de la transicin de los modelos del anlisis a los modelos del diseo
Fundamentalmente de los DFDs a una descripcin de la estructura del programa El diseo estructurado est muy centrado en el diseo arquitectnico

Diagrama de estructuras

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

Ingeniera del Software Diseo estructurado

Introduccin (ii)

Diseo Procedimental

e Esp

de Da tos

cri pc in

Diseo de Interfaz
Diseo Arquitectnico

o ces Pro de i n cac cifi FD

De s

DE R

DD
DTE

Especificacin de Control

Diseo de Datos
Modelo de diseo dise
Dr. Francisco J. Garca Pealvo

Modelo de anlisis an
Universidad de Salamanca Departamento de Informtica y Automtica

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Relacin entre las actividades de diseo


ERS E-R
Enfoque de datos Diseo de alto nivel (arquitectnico) Diseo de bajo nivel (detallado)
Anlisis (Qu)

Lenguaje comprensible para el usuario/cliente Enfoque funcional Decisiones generales y abstractas (organizacin lgica) Arquitectura de procesos
Diseo (Cmo)

DFD

Modelo lgico de datos

Modelo fsico de datos

Estructura detallada: programas y mdulos

Decisiones concretas y especficas (optimizacin y rendimiento)

Esquema de BD y ficheros

Cuadernos de carga Implementacin

Codificacin

Lenguaje comprensible por la mquina

[Piattini et al., 2004]


Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

Ingeniera del Software Diseo estructurado

Definicin de diseo estructurado

Es el arte de disear los componentes de un sistema y la relacin entre ellos de la mejor forma posible [Yourdon y Constantine, 1979] Es el proceso de decidir la forma en la cual componentes interconectados resolvern un problema bien especificado [Yourdon y Constantine, 1979]

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

2. Diagrama de estructuras

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

Ingeniera del Software Diseo estructurado

Introduccin Tcnica tambin conocida como


Structure chart
Diagrama de Estructura de Cuadros de Constantine (Mtrica v3) [MAP, 2001]

Tcnica que permite definir cundo, bajo qu condiciones y cuntas veces se tienen que realizar los tratamientos identificados en los procesos de un DFD [MAP, 1995] Los datos se contemplan como la interfaz entre tratamientos sucesivos Ofrece una visin de arquitectura de sistemas Paso de anlisis a diseo ms sencillo cuanto mayor sea el nivel de detalle al que se haya llegado en los DFD Un diagrama de estructuras no es un organigrama
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

10

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Elementos de un diagrama de estructuras Mdulo


Representa una rutina, subprograma o programa Se representa mediante un rectngulo con el nombre del mdulo

Conexiones entre mdulos


Se representan mediante flechas

Comunicacin entre mdulos


Los mdulos pueden comunicarse entre s por medio de estructuras de datos o de control
control datos

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

11

Ingeniera del Software Diseo estructurado

Comunicacin entre mdulos


Controles o flags
Paso de control entre mdulos
Un mdulo comunica a otro mdulo que ha terminado su proceso y traspasa al mdulo 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

Diferencias entre datos y flags


Los datos son la informacin compartida por los mdulos, tanto por el llamado como por el que llama Algo esencial es que los datos se van a procesar, mientras que los controles no Los controles van a indicar al mdulo que llama la terminacin, o error del mdulo llamado Los controles deben ir siempre en sentido ascendente Los datos tienen gran importancia para el sistema en s mismo, hacia exterior. Los controles tienen importancia en la comunicacin de informacin en el interior; son los que sincronizan la operativa de los mdulos
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

12

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Notacin (i) Secuencia

Iteracin

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

13

Ingeniera del Software Diseo estructurado

Notacin (ii) Decisin

Mdulo predefinido
Nombre

Almacn de datos
Nombre

Dispositivo fsico
Dispositivo

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

14

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Ejemplo
Mdulo Conexin intermodular Estructura repetitiva
pet _aceptada pet _aceptada

Gestionar pedidos

Nombre del mdulo Datos


InformePrestamo

InformePrestamo

Consultar stock
pet _prestamo

Tratar peticin
pet _rechazada

Informar peticin

Leer peticin prstamo

Rechazar peticin

Mdulo Predefinido

Estructura alternativa
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

15

Ingeniera del Software Diseo estructurado

Tabla de interfaz (i) Representa los parmetros que se pasan los diferentes mdulos Apoyo a los diagramas de estructuras
Facilitan su compresin

Recoge para cada llamada


El mdulo llamado Cada parmetro formal Si el parmetro es de entrada (marcando la columna correspondiente) Si el parmetro es de salida (marcando la columna correspondiente) El uso de cada parmetro El significado de cada parmetro

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

16

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Tabla de interfaz (ii)


Mdulo Parmetro Entrada formal
f(x, y) x y S No

Salida
No S

Uso
P M

Significado parmetro
Fecha-Nacimiento Edad

Nemotcnico
P M T C

Significa
El parmetro es PROCESADO: a = b + 2 El parmetro es MODIFICADO: a = 3 + b El parmetro es TRANSFERIDO por el mdulo llamado a otro mdulo que ste llama, sin modificar su valor El parmetro es usado como una VARIABLE DE CONTROL, quizs para actuar como ndice conmutador, como un valor de un flag o para la especificacin de una funcin que es usada por el mdulo llamado El parmetro es TRANSFERIDO a otro mdulo y es MODIFICADO en este segundo mdulo
Dr. Francisco J. Garca Pealvo

Universidad de Salamanca Departamento de Informtica y Automtica

17

Ingeniera del Software Diseo estructurado

3. Diseo arquitectnico

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

18

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Estrategias de diseo
Contar exclusivamente con un conjunto de principios y reglas convertira el proceso de diseo en una tarea tediosa Estrategias para convertir un DFD en una estructura de programa
1. 2. 3. 4. 5.

Se Se Se Se Se

establece el tipo de flujo de informacin indican los lmites del flujo convierte el DFD en la estructura del programa define la jerarqua de control descomponindola mediante particiones refina la estructura resultante usando medidas y heursticas de diseo

Tipos de flujo
Flujo de transformacin
Anlisis de transformacin

Flujo de transaccin
Anlisis de transaccin

Estrategias de diseo

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

19

Ingeniera del Software Diseo estructurado

Flujo de transformacin (i) Flujo de transformacin


La informacin entra en el sistema mediante caminos que transforman los datos externos a un formato interno y se identifica como flujo de entrada En el interior del software se produce una transformacin La informacin entrante se pasa a travs de un centro de transformacin y empieza a moverse a lo largo de caminos que ahora conducen hacia el exterior del software Los datos que se mueven a lo largo de estos caminos se denominan flujos de salida El flujo general de datos ocurre de manera secuencial y sigue uno, o unos pocos, caminos directos

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

20

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Flujo de transformacin (ii)


Flujo de salida

Representacin externa

Flujo de entrada

Informacin

Flujo de transformacin

Representacin interna

Tiempo
[Pressman, 1997]

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

21

Ingeniera del Software Diseo estructurado

Flujo de transformacin (iii)

1.1

1.2 3 2.2 4.1 4.2


Flujo de entrada Flujo de transformacin Flujo de salida

2.1

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

22

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Flujo de transaccin (i) El flujo de informacin est caracterizado a menudo por un nico elemento de datos denominado transaccin
Desencadena otros flujos de informacin a lo largo de los muchos caminos posibles

El flujo de transaccin se caracteriza por datos que se mueven a lo largo de un camino de entrada que convierte la informacin del mundo exterior en una transaccin La transaccin se evala y, basndose en ese valor, se inicia el flujo a lo largo de uno de muchos caminos de accin El centro del flujo de informacin del que parten los caminos de accin se denomina centro de la transaccin
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

23

Ingeniera del Software Diseo estructurado

Flujo de transaccin (ii)


Camino de accin 1 Centro de Transaccin

2.1

2.2
Camino de accin 2

3.1

3.2
Camino de accin 3

4.1

4.2

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

24

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (i) Conjunto de pasos de diseo que permiten convertir un DFD obtenido en la fase de anlisis, con caractersticas de flujo de transformacin, en una estructura (o plantilla) predefinida del sistema Un DFD con caractersticas de transformacin es aqul en que se pueden distinguir tres zonas Flujo de llegada Flujo de transformacin o centro de transformacin Flujo de salida

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

25

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (ii)

Datos de entrada

Informacin de salida Sentido descendente

Datos de entrada

Proceso de datos Informacin de entrada Sentido ascendente Nuevos datos

Datos de salida

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

26

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (iii) Pasos del anlisis de transformacin


Revisin del modelo fundamental del sistema Determinar si el DFD tiene caractersticas de transformacin o de transaccin Aislar el centro de transformacin, especificando los lmites del flujo de llegada y de salida Realizar el primer nivel de factorizacin del diagrama de estructuras Elaboracin del segundo nivel de factorizacin Refinamiento de la estructura del sistema utilizando medidas y guas (heursticas de diseo) para mejorar la calidad del software Asegurarse del trabajo realizado por el diseo obtenido

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

27

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (iv)


Revisin del modelo fundamental del sistema
DFD de nivel 0 y la informacin que lo soporta Evaluacin de la especificacin del sistema y de la especificacin de requisitos del software Mnimo tres niveles de profundidad (diagrama de contexto, diagrama de sistema y diagramas de nivel 2) en el anlisis estructurado para poder aplicar el diseo estructurado con el nivel suficiente detalle

Determinar si el DFD tiene caractersticas de transformacin o de transaccin


El flujo de informacin dentro del sistema puede representarse siempre como transformacin

Aislar el centro de transformacin, especificando los lmites del flujo de llegada y de salida
El centro de transformacin es la parte del DFD que contiene las funciones esenciales del sistema, independientemente de la implementacin particular de la entrada y de la salida Hay que especificar los lmites del flujo de llegada y salida Los lmites del flujo de llegada y salida estn abiertos a interpretacin
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

28

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (v)

1.1

1.2
e

1.4
g

f h

1.5

1.3

1.6
i

1.7
Centro de la transformacin

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

29

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (vi) Realizar el primer nivel de factorizacin de diagrama de estructuras


El propsito del anlisis de transformacin es convertir un DFD en un diagrama de estructuras para este tipo de operacin Esta traduccin es necesaria, pues el diagrama de estructuras describe una estructura jerrquica y el DFD no La estructura del sistema representa una distribucin descendente del control Da como resultado una estructura del sistema en la que los mdulos de nivel superior toman las decisiones de ejecucin y los mdulos de nivel inferior ejecutan la mayora del trabajo de entrada, de clculo y de salida Mdulos de nivel intermedio ejecutan algn control y realizan cantidades de trabajo moderadas

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

30

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (vii)


Entrada a Transformacin

1.1

1.2
e

1.4
g

f h

1.5

1.3

1.6
i

1.7
Salida

Primer nivel de factorizacin

Cm

Ce

Ct

Cs
Dr. Francisco J. Garca Pealvo

Universidad de Salamanca Departamento de Informtica y Automtica

31

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (viii) Elaboracin del segundo nivel de factorizacin


Conversin de las transformaciones de cada proceso de un DFD en los mdulos correspondientes del diagrama de estructuras Se comienza en el lmite del centro de transformacin, dirigindose hacia fuera a lo largo de los caminos de llegada y salida Las transformaciones (procesos del DFD) se convierten en mdulos subordinados de la estructura Ser necesario la introduccin de mdulos predefinidos que proporcionen las diferentes entradas y/o salidas que necesita y/o genera el sistema

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

32

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (ix)


Cm
e c e c i i

Ce
c e

Ct

Cs
i

1.2
b

1.3

g g h f h i

1.7
j

c d

1.1
a

Leer

Leer

1.4

1.5

1.6

Escribir

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

33

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (x) Refinamiento de la estructura del sistema utilizando medidas y guas (heursticas de diseo) para mejorar la calidad del software
Se puede aumentar o disminuir el nmero de mdulos
Producir una factorizacin lgica que tenga una buena calidad y una estructura que se implemente sin dificultad, se pruebe sin confusin y se mantenga sin problemas

Los refinamientos estn dictados por consideraciones prcticas y de sentido comn, adems de por los requisitos del software

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

34

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Anlisis de transformacin (xi)


Cm
c e e c i i

1.2

1.3

Ct

Cs
i

b d

e c

g g f f h h i

1.7
j

1.1
a

Leer

Leer

1.4

1.5

1.6

Escribir

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

35

Ingeniera del Software Diseo estructurado

Anlisis de transaccin (i) Un solo elemento de datos determina caminos alternativos por los que puede transitar el flujo de informacin Dependiendo del camino tomado vara la funcin realizada sobre el dato tratado El elemento de datos se denomina transaccin Este elemento desencadena otro flujo de datos a lo largo de uno de los muchos caminos El centro del flujo de informacin desde el que emanan muchos caminos de accin, exclusivos entre s, se llama centro de transaccin El flujo de informacin a lo largo de un camino de accin puede ser tanto de transformacin como de transaccin
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

36

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Anlisis de transaccin (ii) Pasos similares a los pasos para el anlisis de transformacin
Revisin del modelo fundamental del sistema Determinar si el DFD tiene caractersticas de transformacin o de transaccin Aislar el centro de transaccin y las caractersticas del flujo de cada camino de accin Realizar el primer nivel de factorizacin del diagrama de estructuras Elaboracin del segundo nivel de factorizacin Refinamiento de la estructura del sistema utilizando medidas y guas (heursticas de diseo) para mejorar la calidad del software Asegurarse del trabajo realizado por el diseo obtenido

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

37

Ingeniera del Software Diseo estructurado

Anlisis de transaccin (iii)


Identificacin del centro de transaccin y la caractersticas del flujo de cada camino de accin
El centro de transaccin est ligado al origen de varios caminos de informacin que fluyen radialmente de l Normalmente, el proceso del DFD que corresponde a la transaccin no se refleja en dicho DFD
Conocer bien el sistema para darse cuenta de que se tienen entradas al sistema que son exclusivas entre s

El camino de llegada y todos los caminos de accin debe ser aislados tambin Cada camino de accin debe evaluarse en funcin de las caractersticas individuales de flujo (tipo transformacin o tipo transaccin)

Realizar el primer corte del diagrama de estructuras


El flujo de transacciones se convierte en una estructura de programa formada por una bifurcacin de entrada y una bifurcacin de salida
Para el caso de la entrada se hace igual que en el anlisis de transformacin Para el caso de la salida, se aade un mdulo controlador por cada camino de flujo de accin

El mdulo que se corresponde con el centro de transaccin refleja la exclusividad de los diferentes caminos por medio de un rombo del cual parten los diferentes mdulos controladores de cada camino de accin
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

38

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Anlisis de transaccin (iv)


a

Cm

Ce
Q

C1
R
z Camino 3 Camino 2 Camino 1

C2

C3

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

39

Ingeniera del Software Diseo estructurado

Anlisis de transaccin (v) Realizar el segundo nivel de factorizacin


Se desarrolla cada camino de accin dependiendo de su tipo de flujo
a

Cm
b

Ce A Q C1
Leer a

C2 Q

C3 R
Escribir z

P R
z Camino 3 Camino 2 Camino 1 Leer b

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

40

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

4. Diseo de datos

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

41

Ingeniera del Software Diseo estructurado

Paso del diagrama E/R al modelo relacional (i) Todo tipo de entidad se convierte en una relacin Todo tipo de asociacin (relacin) N:N se transforma en una relacin Todo tipo de asociacin (relacin) 1:N se traduce en el fenmeno de propagacin de clave o se crea una nueva relacin Todo tipo de asociacin (relacin) 1:1 se traduce en el fenmeno de propagacin de clave o se crea una nueva relacin. Se considera una particularizacin de 1:N

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

42

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Paso del diagrama E/R al modelo relacional (ii) Relaciones ISA


Posibilidad 1
El conjunto de entidades correspondiente a la generalizacin se modela como una tabla en la que cada campo se corresponde con un atributo de dicho conjunto de entidades El conjunto de entidades correspondiente a las especializaciones toma sus atributos de la unin de los atributos de la generalizacin con sus propios atributos

Posibilidad 2
Crear una nica tabla que tenga por campos la unin de los campos de la generalizacin y de las especializaciones

Posibilidad 3
Crear una tabla con todos los datos comunes de la generalizacin, y otras tablas relacionadas con la primera, con los atributos especializados de cada especializacin

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

43

Ingeniera del Software Diseo estructurado

Normalizacin (i)
El procedimiento de normalizacin es la reduccin sucesiva de un conjunto dado de relaciones a una forma ms deseable [Date, 1995] Difundida Aplicable en un plano conceptual y en un plano lgico Ayuda a los diseadores a prevenir problemas de redundancias y anomalas de modificacin, insercin o borrado en los esquemas de datos Penaliza la recuperacin de datos Consiste en ir descomponiendo los registros en otros de menor tamao de forma que satisfagan una serie de restricciones especficas que definen lo que se conoce como forma normal

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

44

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Normalizacin (ii)

Relaciones

1NF 2NF 3NF BCNF 4NF 5NF DKNF

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

45

Ingeniera del Software Diseo estructurado

Normalizacin (iii) Se dice que una relacin est en primera forma normal (1FN) si no existen en ella grupos repetitivos, es decir, si cada atributo tiene un nico valor
1FN obliga que todos los campos sean atmicos

Se dice que una relacin est en segunda forma normal (2FN) cuando, adems de estar en 1FN, todos los campos que no formen parte de ninguna clave candidata suministran informacin acerca de la clave completa
VENTA (Cod_Pieza, Cod_Almacn, Cantidad, Direccin_Almacn)
VENTA (Cod_Pieza, Cod_Almacn, Cantidad) ALMACEN (Cod_Almacn, Direccin_Almacn)

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

46

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Normalizacin (iv) Se dice que una relacin est en tercera forma normal (3FN) cuando, adems de estar en 2FN, los campos que no forman parte de la clave candidata deben facilitar informacin slo acerca de la(s) clave(s) candidata(s), y no acerca de otros campos Los campos del registro deben ser mutuamente independientes y completamente dependientes de la(s) clave(s) candidatas EMPLEADO (Cod_Empleado, Cod_Dpto, Nombre_Dpto)
EMPLEADO (Cod_Empleado,Cod_Dpto) DEPARTAMENTO (Cod_Dpto, Nombre_Dpto)

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

47

Ingeniera del Software Diseo estructurado

Normalizacin (v) La 3FN falla por


Hay varias claves candidatas Esas claves candidatas son compuestas Las claves compuestas se solapan, es decir, tienen por lo menos un atributo en comn

Forma normal Boyce/Codd (FNBC)


Formal normal Boyce/Codd si y slo si todo determinante es una clave candidata
Un determinante es atributo del cual depende funcionalmente por completo algn otro atributo

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

48

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

4. Aportaciones principales del tema


Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

49

Ingeniera del Software Diseo estructurado

Aportaciones principales
Se distinguen dos tipos de flujos de datos: el flujo de transformacin y el flujo de transaccin El flujo de transformacin reproduce fielmente el patrn entrada/proceso/salida, de manera que las decisiones las toman los mdulos de mbito superior y las operaciones se llevan a cabo por los mdulos de orden inferior El flujo de transaccin establece dos mdulos principales, uno que analiza la transaccin a ser tratada y otro que encamina hacia el mdulo que la trata
En estos sistemas se tienen diferentes caminos de accin, independientes los unos de los otros, de forma que la transaccin servir de elemento discriminador para determinar el camino a elegir

La existencia de dos tipos de flujos de datos origina dos estrategias de diseo, la primera de ellas, el anlisis de transformacin, se aplica en aquellos sistemas donde la caracterstica fundamental sea de flujo de trasformacin, mientras que la segunda, el anlisis de la transaccin, se aplica en los sistemas cuya caracterstica principal sea de transaccin Llama la atencin lo artificial del proceso seguido para pasar de un DFD a diagrama de estructuras, que obliga a cambiar de modelo subyacente en la tcnica de modelado: de los procesos del DFD se pasa a la jerarqua de mdulos
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

50

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

5. Cuestiones y ejercicios

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

51

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (i)


Se va a desarrollar una aplicacin que apoye a la gestin de una central de compras que permita hacer pedidos globales por temporadas (juguetes en Navidad, material de acampada en verano...). La funcin de la central de compras consiste en obtener, a partir del catlogo de los proveedores y del archivo histrico de ventas de los almacenes, el pedido global teniendo en cuenta los pedidos individuales (pedido rellenado). No obstante, la central de compras puede modificar al alta o a la baja la cantidad pedida por almacn en funcin de una serie de factores (umbrales de descuento por diversas cantidades...), notificndoselo a cada almacn (notificacin de pedido) a la vez que comunica el pedido global (cantidades definitivas de los productos) de todos los almacenes a cada proveedor seleccionado
El flujo principal de este sistema es de transformacin. As que se llevar a cabo un Anlisis de transformacin
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

52

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (ii) Se tiene el siguiente diccionario de datos


Documentos Almacn = Histrico de Ventas + Pedido Rellenado Pedido Global = Notificacin Pedido
Documentos Almacn
0 Gestionar Central de Compras

Almacn

Pedido Global

Almacn

Notificacin Pedido
Preveedor

Catlogo

Preveedor

Diagrama de contexto
Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo

53

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (iii)


Mejores Ofertas

Documentos Almacn

1 Seleccionar Mejores Ofertas

2 Hacer Pedidos Segn Ofertas

Pedido Global

Notificacin Pedido

Diagrama de sistema

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

54

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (iv)


Histrico Ventas
2.1 Recibir histrico ventas

Histrico Ventas Recibido


Histrico

Histrico Ventas Recibido

2.3 Ajustar pedidos almacn

Corregido
Pedidos Corregidos

Corregido Pedido Rellenado Recibido


Pedidos 2.4 Hacer pedido global

Pedido Rellenado

2.2 Recibir Pedidos Rellenados

Pedido Rellenado Recibido Pedido Global

Mejor Oferta Notificacin Pedido Catlogo


1.1 Recibir Catlogo

Catlogo Recibido

Catlogos

Catlogo Recibido

1.2 Calcular mejores ofertas

Mejor Oferta
Mejores Ofertas

DFD extendido

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

55

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (v)

Histrico Ventas

2.1 Recibir histrico ventas

Histrico Ventas Recibido


Histrico

Histrico Ventas Recibido

2.3 Ajustar pedidos almacn

Corregido
Pedidos Corregidos

Corregido Pedido Rellenado Recibido


Pedidos 2.4 Hacer pedido global

Pedido Rellenado

2.2 Recibir Pedidos Rellenados

Pedido Rellenado Recibido Pedido Global

Mejor Oferta Notificacin Pedido Catlogo


1.1 Recibir Catlogo

Catlogo Recibido

Catlogos

Catlogo Recibido

1.2 Calcular mejores ofertas

Mejor Oferta
Mejores Ofertas

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

56

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (vi)


Gestionar Central de Compras
PRR HVR CR PRR HVR Corregido CR MO MO Corregido

Recibir Documentacin
HVR PRR Catlogo

Recibir Catlogo

Ajustar Pedidos Almacn

Calcular Mejores Ofertas


Notificacin Pedido

Hacer Pedido Global


Pedido Global

Recibir Histrico Ventas

Recibir Pedidos Rellenados


PR

Leer Catlogo

Imprimir Notificacin Pedido

Imprimir Pedido Global

HV

Leer Histrico Ventas

Leer Pedidos Rellenados

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

57

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (vii)


Gestionar Central de Compras

Recibir Documentacin
Cat

Recibir Catlogo
CR HVR

Ajustar Pedidos Almacn


Corregido PRR

Calcular Mejores Ofertas

Hacer Pedido Global

NP MO

PG

Recibir Histrico Ventas


HV HVR

Recibir Pedidos Rellenados


PR PRR

Leer Cat.

Escr. Cat.

Leer H

Leer. Cat.

Escr. PCo.
MO CR

Impr. NP

Impr. PG

Corregido

Leer HV

Escr.
H

Leer PR

Escr. P

Leer Cat.

E/L MO

Leer PCo.

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

58

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (viii) La gestin de una determinada piscina municipal ha decidido permitir el acceso gratuito a los recintos de la piscina a los usuarios que sean estudiantes o trabajadores locales. Dependiendo del tipo de usuario (estudiante o trabajador) se realizarn diferentes tratamientos
El flujo principal de este sistema es de transaccin. As que se llevar a cabo un Anlisis de transaccin

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

59

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (ix)


Carnet
Usuario 0 Gestionar Piscina

Entrada
Usuario

Diagrama de contexto
2 Tratar Estudiante

Carnet Estudiante

Entrada

Carnet

1 Seleccionar Tipo Carnet

Diagrama de sistema
Carnet Trabajador
3 Tratar Trabajador

Entrada

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

60

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (x)

Carnet Estudiante

2.1 Comprobar Carnet Estudiante

Carnet Estudiante Vlido

Entrada Estudiante
2.2 Numerar Taln Estudiante 2.3 Entregar Entrada Estudiante

Entrada

Carnet

1 Seleccionar Tipo Carnet

Carnet Trabajador

3.1 Comprobar Carnet Trabajador

Carnet Trabajador Vlido

3.2 Numerar Taln Trabajador

Entrada Trabajador

3.3 Entregar Entrada Trabajador

Entrada

DFD extendido

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

61

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (xi)


Gestionar Piscina
Carnet Carnet

Leer Carnet
Carnet estudiante

Seleccionar Tipo Carnet


Carnet trabajador

Tratar Estudiante Tratar Estudiante

Tratar Trabajador Tratar Trabajador

Tratar Estudiante
Carnet estudiante Carnet validado Entrada estudiante

Entrada estudiante

Tratar Trabajador
Carnet trabajador Carnet validado Entrada trabajador

Entrada trabajador

Comprobar Carnet Estudiante

Numerar Taln Estudiante

Entregar Entrada Estudiante


Entrada

Comprobar Carnet Trabajador

Numerar Taln Trabajador

Entregar Entrada Trabajador


Entrada

Coger Entrada

Coger Entrada

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

62

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

Ejercicios resueltos (xii)


Gestionar Piscina
Tipo Carnet Tipo Carnet

Leer Carnet

Seleccionar Tipo Carnet

Tratar Estudiante Tratar Estudiante

Tratar Trabajador Tratar Trabajador

Tratar Estudiante
Carnet validado Entrada estudiante

Entrada estudiante

Tratar Trabajador
Carnet validado Entrada trabajador

Entrada trabajador

Comprobar Carnet Estudiante

Numerar Taln Estudiante

Entregar Entrada Estudiante


Entrada

Comprobar Carnet Trabajador

Numerar Taln Trabajador

Entregar Entrada Trabajador


Entrada

Carnet estudiante

Carnet trabajador

Leer Carnet Estudiante

Coger Entrada

Leer Carnet Trabajador

Coger Entrada

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

63

Ingeniera del Software Diseo estructurado

Cuestiones y ejercicios
Determinar cul es el flujo dominante en los ejercicios de modelado de flujos de datos del Tema 5 Realizar los diagramas de estructuras correspondientes a los DFDs de los ejercicios de modelado funcional del Tema 5

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

64

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

6. Lecturas complementarias

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

65

Ingeniera del Software Diseo estructurado

Lecturas complementarias
Ministerio de Administraciones Pblicas. MTRICA 3.0, Volmenes 13. Ministerio de Administraciones Pblicas, 2001
Es interesante destacar la parte de diseo estructurado de esta metodologa

Miguel, A. de, Piattini, M. Fundamentos y Modelos de Bases de Datos. Ra-ma, 1997


Libro clsico de diseo de bases de datos, en el que se puede seguir el paso al modelo relacional de un diagrama entidad-relacin, as como la teora de la normalizacin

Yourdon, E., Constantine, L. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice-Hall, 1979
Libro dedicado al diseo estructurado del software

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

66

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software Diseo estructurado

7. Referencias

Universidad de Salamanca Departamento de Informtica y Automtica

Dr. Francisco J. Garca Pealvo

67

Ingeniera del Software Diseo estructurado

Referencias [Date, 1995] Date, C. J. An Introduction to Database Systems. 6th Edition, Addison-Wesley, 1995 [MAP, 1995] Ministerio de las Administraciones Pblicas. Metodologa Mtrica 2.1. Volmenes 1-3. Editorial Tecnos, 1995 [MAP, 2001] Ministerio de Administraciones Pblicas. MTRICA 3.0, Volmenes 1-3. Ministerio de Administraciones Pblicas, 2001 [Piattini et al., 2004] Piattini, M., Calvo-Manzano, J. A., Cervera, J., Fernndez, L. Anlisis y Diseo Detallado de Aplicaciones Informticas de Gestin. Ra-ma, 2004 [Pressman, 1997] Pressman, R. S. Software Engineering: A Practitioners Approach. 4th Edition. McGraw Hill, 1997 Universidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. 68 [Yourdon y Constantine, 1979] Yourdon, E.,Garca Pealvo

Tema 8: Diseo estructurado

Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca

Ingeniera del Software


Tema 8: Diseo estructurado

Dr. Francisco Jos Garca Pealvo (fgarcia@usal.es)


3 I.T.I.S. Fecha de ltima modificacin: 15-12-2005 Universidad de Salamanca Departamento de Informtica y Automtica

Tema 8: Diseo estructurado

You might also like