Está en la página 1de 7

Diseño Estructurado 


Materiales
de Alto Nivel
❖ Libro
❖ Edward Yourdon, “Análisis Estructurado Moderno”, Prentice-
Hall Hispanoamericana, 1993
❖ Edward Yourdon, “Modern Structured Analysis”, Prentice-
Hall, 1989
❖ Edward Yourdon, “Just Enough Structured Analysis”.
Disponible en pdf y wiki: http://www.yourdon.com/strucanalysis
Según “Diseño
❖ Esta presentación (dfds.pdf)
Estructurado Moderno”
Ed Yourdon

1 2

PARTE I

Organización de las clases INTRODUCCIÓN

❖ Introducción al tema y Teoría (breve) ❖ Hay dos paradigmas principales de


❖Parte I. Introducción construcción de sistemas software
❖ Parte II. Notaciones ❖Estructurado
❖ Parte III. Proceso de Construcción
❖Orientado a Objetos
❖ “Taller” de diseño estructurado: Realización de
❖ El estructurado se basa en
prácticas, por grupos. Resolución de dudas.
❖Top-down
❖ Normalmente, tras este tema, se continuaba con:
❖Sistemas como funciones
Análisis Estructurado de Bajo Nivel (Constantine)
❖ No este año ! ❖Datos y funciones separados

3 4

Análisis vs. Diseño (1/3) Análisis vs. Diseño (2/3)


❖ Lenguajes de alto nivel en el pasado son ❖ El análisis pretende comprender algo QUE YA EXISTE:
lenguajes de bajo nivel del futuro estudiarlo, delimitarlo, clasificarlo...
❖ Son tareas de análisis, por ejemplo
❖Ejercicio: ¿Que es la “Programación automática”?
❖Realizar un estudio de mercado antes de lanzar un producto
❖ Igualmente, técnicas de “análisis” de ayer son ❖Encontrar las causas del fracaso de un proyecto software
❖Estudiar las características del terreno donde se construirá un edificio
técnicas de “diseño” hoy ❖En general, comprender un problema antes de resolverlo (REQUISITOS)

❖ ¿Por qué? Los problemas reales de los usuarios son ❖ El diseño busca crear ALGO QUE AÚN NO EXISTE:
problemas de organización, de monitorización, de elaborar un plan antes de comenzar a construir.
control, etc. ❖ Son tareas de diseño, por ejemplo
❖Crear un producto para ser lanzado al mercado
❖Por tanto, los problemas no son ni “estructurados” ❖Establecer una serie de procedimientos que impidan el fracaso de futuros proyectos software

ni “OO”. ❖Elaborar los planos de un edificio


❖En general, utilizar cierta tecnología para resolver un problema (DFDs, OO)
❖ LAS SOLUCIONES SÍ SON ESTRUCTURADAS U OO. ❖ ¿Que entendíamos por “análisis de requisitos”?
5 6
Enfoque de Yourdon
Análisis vs. Diseño (3/3)
❖ En Ingeniería de Software se denominaba “Análisis” ❖ Se basa en una serie de notaciones bastante
de problemas a lo que, en realidad, era un “Diseño” conocidas (DFDs, E/R, etc.)
de soluciones. ❖ Se mantiene una relación entre las notaciones
❖ Las técnicas de “análisis” estructurado u OO ❖ Su objetivo es elaborar un “Modelo esencial” del
❖surgen a partir del diseño estructurado u OO, sistema (Y no del problema, por tanto. Por eso es diseño, repetimos)
❖que surgen a partir de la programación estructurada u OO. ❖ No es top-down, sino “middle-up, middle-down” (?)
❖ Por tanto, tales técnicas de “análisis” se encuentran ❖ La construcción del DFD es “dirigida por
más cerca del espacio de la solución que del acontecimientos”
espacio del problema: Son diseño.
❖ Pese a ser “moderno” es “antiguo”, pero no tanto
❖ AVISO: A pesar de que el libro de Yourdon se denomina “Análisis
Estructurado Moderno” lo consideraremos como si fuera diseño: Su como el enfoque puramente “top-down”
técnica no sirve para describir problemas, sino soluciones (tecnológicas).
7 8

PARTE II

NOTACIONES DFDs
1
❖DFDs ❖Procesos Verbo+
Nombre
❖DDs
❖Flujos Nombre
❖Especificación de Procesos
❖Entidad/Relación (E/R) ❖Almacenes 2
Nombre en plural
❖Diagramas de Transición de Estado (NO los
usaremos) ❖Terminadores (Entidades Externas)
Nombre

9 10

Ejemplo DFD
DFDs: Reglas
Pedidos Cancelados
Factura Gestión
CLIENTES ALMACÉN
de Clientes

❖ Nombres con significado


Pedidos Cantidades
Cobro
Informes compra

Pedidos
DIAGRAMA DE CONTEXTO
❖ Numerar los procesos NO implica
Cancelados

secuencia
CLIENTES ALMACÉN
Pedidos

❖ Evitar DFDs complejos


Pedidos
Cantidades
1 Nombre, Dirección
Recibir 2

Información
Pedidos
Clientes Contabilizar
Envíos
❖ Todo DFD se redibuja varias veces (7?)
de Cuentas
Nombre, Dirección Informes
compra
Facturas

3 Factura

CLIENTES
Cobrar
DIAGRAMA Nivel 0 Cobro
11 12
Regla del Balanceo Consistencia lógica de un DFD

❖Mantener consistencia entre las entradas y ❖ Evitar


❖Sumideros infinitos
salidas de una burbuja padre y las entradas y ❖Generaciones espontáneas
salidas de todas sus burbujas hijas ❖Flujos y procesos no etiquetados
X
a ❖Cuidado con los almacenes de sólo lectura o sólo escritura
8
8.1
8.2
Z
MiProc
Y Recoger
Formatear

Stock 4
Z
Incorrecto 4 4
b 4 Nadie me escribe?
Nadie me lee?
Los almacenes utilizados internamente 8.3
Incorrecto
por un proceso se muestran cuando se Y Calcular En el DD:
descompone el proceso (nunca antes) X=a+b
13 14

Diccionario de Datos (DD) Notación


❖ = (“se define como”)
❖ + (“y”)
❖Es una lista organizada de todos los datos ❖ () opcional
❖ {} iteración
❖Describe el significado de los flujos y ❖ [] separa alternativas
almacenes del DFD ❖ *...* Define datos elementales
❖ ** Comentario
❖Describe la composición de los flujos y ❖ @ identificador (clave)
❖ | alternativa
almacenes ❖ Ejemplos:
❖Describe las relaciones entre almacenes ❖

Nombre = Título+Nombre_persona+(segundo_nombre)+apellido
Título = [Sr.|Sra.|Dr.|Dra.]
mediante un E/R ❖ Nombre_persona=*nombre que figura en DNI*
❖ Apellido=*primer apellido según DNI*
❖ Cliente=@DNI+Nombre+Dirección

15 16

Especificaciones de proceso Presentación por niveles


❖ Sólo para los procesos (burbujas) de más ❖ Los DFDs se presentan TOP-DOWN. Esto NO
bajo nivel. quiere decir que se construyan TOP-DOWN
❖ Se puede utilizar: ❖ El orden de presentación es: Diagrama de
❖Lenguaje estructurado Contexto, Diagrama 0, Diagrama 1, etc...
❖Pre/post ❖ ¿Hasta donde?: Se detiene la descomposición
❖Tablas de decisión cuando las burbujas pueden especificarse como
❖Gráficas procesos sencillos (en menos de una página)
❖Lenguaje natural ❖ Sistemas sencillos: 2-3 niveles en total; medianos:
3-6; grandes: 5-8.
❖Flow-charts
17 18
Entidad/Relación Ejemplo E/R
❖ Entidades
❖Representan conjuntos de individuos Cliente
Trabaja
en
Empresa

❖ Cada individuo puede identificarse de manera única


❖ Cada uno juega un papel necesario en el sistema Negocia
precio
❖ Yourdon NO utiliza atributos en el diagrama
❖ pero sí en el DD.
❖ Relaciones Vendedor Agente

❖ Representan conjuntos de conexiones


❖ Con sus cardinalidades. La relación “Trabaja en”, por ejemplo, representa un conjunto de conexiones entre
❖ Entidades asociativas. Pueden verse como “entidades “Cliente” y “Empresa”, como puedan ser:
•El cliente #3432 trabaja en la empresa #9898
que contienen los atributos de una relación”. •El cliente #2355 trabaja en las empresas #9872 y #7820
❖ Indicadores de tipo/subtipo (no los usaremos) •El cliente #2394 trabaja en la empresa #8266
•Etc...
19 20

Entidades Asociativas Reglas construcción E/R


❖ Se utilizan para representar relaciones acerca de las
cuales se quiere guardar alguna información ❖ Entrevistas, documentos: permiten la
❖ Ejemplo: Un cliente compra artículos y queremos guardar información acerca del día y hora de la
compra. “Día” y “Hora” serían propiedades de la relación, pero no de “Cliente” ni de “Artículo” identificación de entidades
❖Se refinan y desarrollan en paralelo a los
DFDs y DDs. Mantener consistencia.
Cliente Artículo

❖ Simplificar
Compra ❖ Eliminar objetos de instancia única
❖ Eliminar relaciones derivadas (calculables)
•En el DD tendríamos ❖Regla heurística: si no somos capaces de imaginar
•Cliente = @DNI+Nombre+Dirección+Tfno.
•Artículo = @Código+Descripción+Precio al menos 3 registros de una entidad, malo.
•Compra = @DNI+@Código+Día+Hora 21 22

Relación entre notaciones (1/4) Relación entre notaciones (2/4)

❖ DFD y DD ❖Esp. Proceso con DFD y DD


❖Todo flujo y almacén del DFD deben definirse en el DD ❖Los datos referenciados en la esp. proceso deben
❖Y viceversa
coincidir
❖ DFD y Esp. Proceso ❖ Con nombres de flujos o almacenes conectados a la
❖Toda burbuja del DFD debe asociarse con: burbuja
❖ Una burbuja de nivel inferior ❖O ser término local (variable local)
❖ O con una esp. de proceso,
❖ O ser un componente del flujo o almacén
❖ Pero no ambos
❖Toda esp. de proceso debe asociarse a una burbuja de ❖DD con DFD y Esp. Proceso
bajo nivel ❖Toda entrada del DD debe tener referencia en
❖Las entradas y salidas deben coincidir una Esp. Proc, un DFD o en el propio DD
23 24
Relación entre notaciones (3/4) Relación entre notaciones (4/4)
❖ ER con DFD y Esp. Proceso
❖Todo almacén del DFD debe corresponder a una entidad o ❖ E/R: Extensiones al DD
entidad asociativa ❖En general, las entidades se nombran en singular
❖Toda entidad, relación o entidad asociativa del E/R debe y los almacenes en plural
reflejarse en algún almacén del DFD.
❖Los atributos de las entidades se pueden
❖Los nombres deben coincidir: plural en DFD, singular en
ER. Deben definirse ambas en el DD (ver a continuación) especificar en el DD
❖Las instancias de las entidades y las relaciones del ER ❖En el DD tendríamos, por ejemplo
deben ser creadas o eliminadas por algún proceso ❖CLIENTES: Almacén del DFD
❖Alguna burbuja del DFD define valores para cada ❖ CLIENTES = {CLIENTE}
componente de datos
❖CLIENTE: Entidad correspondiente en el E/R
❖ Alguna burbuja del DFD usa los valores de cada
componente de datos ❖CLIENTE =
25 @DNI+nombre+domicilio+telefono 26

PARTE III

PROCESO DE CONSTRUCCIÓN Pasos de la construcción
❖Consiste en elaborar los dos componentes
del llamado “Modelo Esencial”:
❖Modelo Ambiental ❖ Paso 1: Construcción del Modelo Ambiental
❖Descripción propósito del sistema (un párrafo) ❖ Paso 2: Construcción de un Modelo
❖Diagrama de contexto
❖Lista de acontecimientos preliminar de Comportamiento
❖Modelo de Comportamiento ❖ Paso 3: Terminado del modelo
❖DFD
❖DD
❖E/R
❖Especificación de procesos
27 28

Construcción Modelo Ambiental Construcción Modelo Ambiental


(1/3) (2/3)
❖ Escribir en un párrafo el propósito del sistema ❖ Ejemplos de acontecimientos:
❖ Construir el diagrama de contexto (preliminar) ❖AC01: “El cliente hace un pedido”
❖Se identifican las entidades externas ❖AC34: “El departamento de contabilidad solicita un informe de
ventas”
❖ Construir lista de acontecimientos
❖AC45: “El departamento de contabilidad solicita un informe diario
❖Es una lista narrativa de los estímulos que ocurren en el de ventas” (Acontecimiento temporal)
mundo exterior a los cuales el sistema debe responder. ❖AC18: “El almacén envía el pedido al cliente”
Los hay de tres tipos:
❖Flujo: Se asocian con la llegada de algún flujo ❖ Los acontecimientos deben contemplarse de
❖Temporal: Se disparan a una determinada hora (o a intervalos) fuera del sistema hacia dentro del sistema
❖Control: NO LOS TRATAMOS
❖MAL: “El sistema recibe el pedido del cliente”
❖ Flujos y acontecimientos son cosas distintas. No hay
❖ BIEN: “El cliente hace un pedido”
correspondencia uno-uno entre flujos y acontecimientos
29 30
Construcción Modelo Ambiental Construcción Modelo preliminar
(3/3) de Comportamiento (1/2)
❖ La construcción de la lista de acontecimientos se
realiza a partir de las entidades externas
❖ El Diagrama de Contexto y la lista de acontecimientos se ❖ Consiste en desarrollar un DFD y un
pueden hacer en paralelo. Uno refina a otro. diagrama E/R preliminares, además de las
❖ Los flujos del Diagrama de Contexto son el medio entradas iniciales del DD.
utilizado para la comunicación sistema-entorno
❖ Flujos de entrada son utilizados por acontecimientos
❖ Se opone al enfoque clásico en que no es
❖ Flujos de salida son respuestas a acontecimientos top-down
❖ Todo acontecimiento no temporal debe tener
entradas para que el sistema pueda detectarlo
❖ Todo acontecimiento debe producir una salida
inmediata y/o un almacenamiento de datos
31 32

Construcción Modelo preliminar Ejemplo de acontecimiento y su


de Comportamiento (2/2) burbuja
❖ Se dibuja una burbuja, o proceso, por cada
❖Acontecimiento 6: El cliente pregunta acerca
acontecimiento de la lista
❖ El nombre de la burbuja describe la respuesta que se del status de una factura
debe dar al acontecimiento.
❖ Se dibujan las entradas, salidas y almacenes Status_factura
apropiados (conectados a la burbuja) CLIENTE Informar
Solicitud_status_factura status
❖ Para construir el DFD preliminar, se conectan las
factura
burbujas (de los acontecimientos) mediante
almacenes
❖ EN PARALELO se construye el diagrama E/R
❖La lista de acontecimientos es util para crear tambien el E/R inicial Pedidos
(sustantivos lista de acontecimientos)
33 34

Ejemplo de acontecimiento y su Regla heurística: cada


burbuja acontecimiento, un “pantallazo”.
❖Acontecimiento 8: El Dpto. de compras emite ❖Acontecimiento 6: El cliente pregunta acerca
un pedido al proveedor. del status de una factura
Almacén

Solicitud status factura


Dpto. 

Lista_objetos_pedidos Emitir

Compras Factura #
Pedido

Status factura

Status factura campo 1


Albaran_pedido
Proveedor …
Pedidos
Status factura campo n

35
Acabado del Modelo (1/1)
❖ Nivelación ascendente (hasta llegar al DC)
❖ Los procesos (burbujas) obtenidos se agrupan por

FIN
respuestas relacionadas.
❖ Según se asciende, se ocultan los almacenes internos
a una agrupación de procesos
❖ Sugerencia: Hacer agregados de 7 +- 2 burbujas
❖ Puede requerirse nivelación descendente
❖Funciones muy complejas
❖ Funciones con muchos flujos de entrada y salida
❖ Completar el DD
❖ Completar Esp. Proceso (al final)
❖ EN PARALELO: Acabar el diagrama E/R
36 37

LA PRÁCTICA (1/3) Trazabilidad (2/3)

✓ Se elaborará una matriz de trazabilidad


✓ Se construirá el modelo esencial de un sistema Requisitos/Acontecimientos (OJO: es n,n)
✓ Organización (sugerida)
✓Req(01): Ac01, Ac06, Ac34
✓Por grupos ✓...
✓Req(0n): Ac32, Ac28,...
✓Una persona dedicada al modelo de datos (E/R y DFDs)
✓ Y se expondrá la relación
✓Una persona dedicada al puesto de “jefe” o “manager”
✓Su función principal es asegurar la COMUNICACIÓN entre los Acontecimientos/Burbujas (OJO: es 1,1)
miembros del grupo
✓Ac01 <-> Burbuja 3.4.5.2
✓El resto del grupo se encarga de los DFDs ✓...
✓Acnn <-> Burbuja a.b.c.d

38 39

Qué se debe entregar. Formato. (3/3)


✓ Índice
✓ Introducción. Referenciar ERS y otros documentos
✓ Modelo esencial
✓Modelo Ambiental
✓Descripción propósito del sistema (un párrafo)
✓Diagrama de contexto. Explicación breve.
✓Lista de acontecimientos (texto, burbuja y un esbozo de “pantallazo”)
✓Matrices de trazabilidad: Matriz Requisitos/Acontecimientos + Matriz
Acontecimientos/Burbujas
✓ Modelo de Comportamiento
✓ E/R. Explicación breve de cada Entidad y cada Relación.
✓ Para cada entidad: proporcionar 3 ejemplos de registros
✓ DFD
✓ DD
✓Especificación de procesos en pseudocódigo: No es necesario.
✓Apéndice: Opiniones, comentarios, críticas, problemas encontrados, etc.40

También podría gustarte