tema 8 - diseño estructurado
TRANSCRIPT
Ingeniera del Software 3 de I.T.I.S. Departamento de Informtica y Automtica Universidad de Salamanca
Ingeniera del SoftwareTema 8: Diseo estructurado
Dr. Francisco Jos Garca Pealvo ([email protected])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
ResumenEl 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
2
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
3
Ingeniera del Software Diseo estructurado
1. Introduccin
Universidad de Salamanca Departamento de Informtica y Automtica
Dr. Francisco J. Garca Pealvo
4
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 principalesDesarrollo 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 diseoFundamentalmente 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
5
Ingeniera del Software Diseo estructurado
Introduccin (ii)
Diseo Procedimental
e Esp
de Da tos
cri pc in
Diseo de InterfazDiseo Arquitectnico
o ces Pro de i n cac cifi FD
D
De s
DE R
DDDTE
s
Especificacin de Control
Diseo de DatosModelo de diseo dise Dr. Francisco J. Garca Pealvo
Modelo de anlisis anUniversidad de Salamanca Departamento de Informtica y Automtica
6
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 diseoERS E-REnfoque 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 procesosDiseo (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
7
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
8
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
9
Ingeniera del Software Diseo estructurado
Introduccin Tcnica tambin conocida comoStructure chartDiagrama 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 organigramaUniversidad 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 MduloRepresenta una rutina, subprograma o programa Se representa mediante un rectngulo con el nombre del mdulo
Conexiones entre mdulosSe representan mediante flechas
Comunicacin entre mdulosLos mdulos pueden comunicarse entre s por medio de estructuras de datos o de controlcontrol datos
Universidad de Salamanca Departamento de Informtica y Automtica
Dr. Francisco J. Garca Pealvo
11
Ingeniera del Software Diseo estructurado
Comunicacin entre mdulosControles o flagsPaso de control entre mdulosUn 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 flagsLos 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 mdulosUniversidad 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 predefinidoNombre
Almacn de datosNombre
Dispositivo fsicoDispositivo
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
EjemploMdulo Conexin intermodular Estructura repetitivapet _aceptada pet _aceptada
Gestionar pedidos
Nombre del mdulo DatosInformePrestamo
InformePrestamo
Consultar stockpet _prestamo
Tratar peticinpet _rechazada
Informar peticin
Leer peticin prstamo
Rechazar peticin
Mdulo Predefinido
Estructura alternativaUniversidad 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 estructurasFacilitan su compresin
Recoge para cada llamadaEl 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 formalf(x, y) x y S No
SalidaNo S
UsoP M
Significado parmetroFecha-Nacimiento Edad
NemotcnicoP M T C
SignificaEl 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
I
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 diseoContar 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 programa1. 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 flujoFlujo de transformacinAnlisis de transformacin
Flujo de transaccinAnlisis 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 transformacinLa 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.2Flujo 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 transaccinDesencadena 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 transaccinUniversidad 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.2Camino de accin 2
1
3.1
3.2Camino 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 transformacinRevisin 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 sistemaDFD 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 transaccinEl 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 salidaEl 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 interpretacinUniversidad 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)
a
1.1
b
1.2e
c
1.4g
f h
1.5
d
1.3
1.6i
1.7Centro de la transformacin
j
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 estructurasEl 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
b
1.2e
c
1.4g
f h
1.5
d
1.3
1.6i
1.7Salida
Primer nivel de factorizacin
Cm
j
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 factorizacinConversin 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)Cme c e c i i
Cec e
Ct
Csi
1.2b
1.3
e
g g h f h i
1.7j
c d
f
1.1a
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 softwareSe puede aumentar o disminuir el nmero de mdulosProducir 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)Cmc e e c i i
1.2
1.3
Ct
Csi
b d
e c
g g f f h h i
1.7j
1.1a
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 transaccinUniversidad 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 transformacinRevisin 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 accinEl 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 DFDConocer 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 estructurasEl flujo de transacciones se convierte en una estructura de programa formada por una bifurcacin de entrada y una bifurcacin de salidaPara 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 accinUniversidad 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
A
b
Cm
D
P
CeQ
D
C1Rz 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 factorizacinSe desarrolla cada camino de accin dependiendo de su tipo de flujoa
A
Cmb
D
P
Ce A Q C1Leer a
D
C2 Q
C3 REscribir z
P Rz 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 ISAPosibilidad 1El 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 2Crear una nica tabla que tenga por campos la unin de los campos de la generalizacin y de las especializaciones
Posibilidad 3Crear 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 valor1FN 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 completaVENTA (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 porHay 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 candidataUn 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 temaUniversidad de Salamanca Departamento de Informtica y Automtica Dr. Francisco J. Garca Pealvo
49
Ingeniera del Software Diseo estructurado
Aportaciones principalesSe 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 trataEn 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 mdulosUniversidad 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 seleccionadoEl flujo principal de este sistema es de transformacin. As que se llevar a cabo un Anlisis de transformacinUniversidad 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 datosDocumentos Almacn = Histrico de Ventas + Pedido Rellenado Pedido Global = Notificacin PedidoDocumentos Almacn0 Gestionar Central de Compras
Almacn
Pedido Global
Almacn
Notificacin PedidoPreveedor
Catlogo
Preveedor
Diagrama de contextoUniversidad 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 Ventas2.1 Recibir histrico ventas
Histrico Ventas RecibidoHistrico
Histrico Ventas Recibido
2.3 Ajustar pedidos almacn
CorregidoPedidos Corregidos
Corregido Pedido Rellenado RecibidoPedidos 2.4 Hacer pedido global
Pedido Rellenado
2.2 Recibir Pedidos Rellenados
Pedido Rellenado Recibido Pedido Global
Mejor Oferta Notificacin Pedido Catlogo1.1 Recibir Catlogo
Catlogo Recibido
Catlogos
Catlogo Recibido
1.2 Calcular mejores ofertas
Mejor OfertaMejores 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 RecibidoHistrico
Histrico Ventas Recibido
2.3 Ajustar pedidos almacn
CorregidoPedidos Corregidos
Corregido Pedido Rellenado RecibidoPedidos 2.4 Hacer pedido global
Pedido Rellenado
2.2 Recibir Pedidos Rellenados
Pedido Rellenado Recibido Pedido Global
Mejor Oferta Notificacin Pedido Catlogo1.1 Recibir Catlogo
Catlogo Recibido
Catlogos
Catlogo Recibido
1.2 Calcular mejores ofertas
Mejor OfertaMejores 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 ComprasPRR HVR CR PRR HVR Corregido CR MO MO Corregido
Recibir DocumentacinHVR PRR Catlogo
Recibir Catlogo
Ajustar Pedidos Almacn
Calcular Mejores OfertasNotificacin Pedido
Hacer Pedido GlobalPedido Global
Recibir Histrico Ventas
Recibir Pedidos RellenadosPR
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 DocumentacinCat
Recibir CatlogoCR HVR
Ajustar Pedidos AlmacnCorregido PRR
Calcular Mejores Ofertas
Hacer Pedido Global
NP MO
PG
Recibir Histrico VentasHV HVR
Recibir Pedidos RellenadosPR 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 tratamientosEl 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)CarnetUsuario 0 Gestionar Piscina
EntradaUsuario
Diagrama de contexto2 Tratar Estudiante
Carnet Estudiante
Entrada
Carnet
1 Seleccionar Tipo Carnet
Diagrama de sistemaCarnet Trabajador3 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 Estudiante2.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 PiscinaCarnet Carnet
Leer CarnetCarnet estudiante
Seleccionar Tipo CarnetCarnet trabajador
Tratar Estudiante Tratar Estudiante
Tratar Trabajador Tratar Trabajador
Tratar EstudianteCarnet estudiante Carnet validado Entrada estudiante
Entrada estudiante
Tratar TrabajadorCarnet trabajador Carnet validado Entrada trabajador
Entrada trabajador
Comprobar Carnet Estudiante
Numerar Taln Estudiante
Entregar Entrada EstudianteEntrada
Comprobar Carnet Trabajador
Numerar Taln Trabajador
Entregar Entrada TrabajadorEntrada
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 PiscinaTipo Carnet Tipo Carnet
Leer Carnet
Seleccionar Tipo Carnet
Tratar Estudiante Tratar Estudiante
Tratar Trabajador Tratar Trabajador
Tratar EstudianteCarnet validado Entrada estudiante
Entrada estudiante
Tratar TrabajadorCarnet validado Entrada trabajador
Entrada trabajador
Comprobar Carnet Estudiante
Numerar Taln Estudiante
Entregar Entrada EstudianteEntrada
Comprobar Carnet Trabajador
Numerar Taln Trabajador
Entregar Entrada TrabajadorEntrada
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 ejerciciosDeterminar 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 complementariasMinisterio de Administraciones Pblicas. MTRICA 3.0, Volmenes 13. Ministerio de Administraciones Pblicas, 2001Es interesante destacar la parte de diseo estructurado de esta metodologa
Miguel, A. de, Piattini, M. Fundamentos y Modelos de Bases de Datos. Ra-ma, 1997Libro 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, 1979Libro 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 SoftwareTema 8: Diseo estructurado
Dr. Francisco Jos Garca Pealvo ([email protected])3 I.T.I.S. Fecha de ltima modificacin: 15-12-2005 Universidad de Salamanca Departamento de Informtica y Automtica
Tema 8: Diseo estructurado