You are on page 1of 163

Fundamentos de

Ingeniera del Software

Captulo 3. Anlisis de Requisitos


Anlisis Estructurado

Situacin en el
programa de teora
1.
2.
3.
4.
5.
6.
7.
8.

Actividades iniciales.
Tcnicas de recogida de la informacin.
Requisitos y anlisis de requisitos.
Actividades generales de anlisis de requisitos.
Documentos de especificacin de requisitos.
Anlisis estructurado.
Introduccin a los casos de uso.
Prototipado.

6.1. Introduccin Visin


panormica del AE
ANLISIS ESTRUCTURADO
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.

Introduccin - Visin panormica del AE


Diagramas de flujo de datos
Diccionario de datos
Modelado de la lgica de los procesos
Modelado de datos
Historia de vida de las entidades
El proceso de Yourdon

Introduccin
Anlisis Estructurado
Mtodo clave en el desarrollo estructurado
o convencional
Aparece a finales de los 70
Facilita la comunicacin en el proceso de
desarrollo de un sistema de informacin
anlisis y diseo
usuarios y analistas

Sencillo, fcil de entender y fcil de aprender

Caractersticas principales
Amplia difusin
Descomposicin funcional
(Originariamente) Orientada a procesos
(Originariamente)
(Originariamente) Top/down

Presente en numerosas metodologas


p.ej. Mtrica, SSADM, information
engineering, Merise

Herramientas CASE disponibles

Bibliografa
 Texto de referencia
 Yourdon, E., Anlisis estructurado moderno. 1993: Prentice-Hall
Hispanoamericana
Introduccin
Captulo 4. Herramientas del anlisis estructurado
Captulo 7. Cambios en el anlisis de sistemas

Tcnicas

Captulo 9. Diagramas de flujo de datos.


Captulo 10. El diccionario de datos.
Captulo 11. Especificaciones de proceso.
Captulo 14. Balanceo de modelos.

El proceso de anlisis

Captulo 17. El modelo esencial.


Captulo 18. El modelo ambiental.
Captulo 19. Construccin de un primer modelo de comportamiento.
Captulo 20. Completando el modelo de comportamiento.

Bibliografa (II)
 Entre la bibliografa bsica...
 Piattini, M., et al., Anlisis y diseo detallado de Aplicaciones Informticas de
Gestin. 2004: Ra-ma.
 MAP, MTRICA versin 2.1. Gua de Tcnicas. 1995, Madrid: Ministerio de
Administraciones Pblicas. Secretara de Estado para la Administracin Pblica.
Consejo Superior de Informtica.

 En castellano y en la biblioteca...
 Barranco de Aruba, J., Metodologa del Anlisis Estructurado de Sistemas (2
edicin). 2001, Madrid: Publicaciones de la Universidad Pontificia de Comillas.
 Hawryszkiewycz, I. T. Introduccin al anlisis y diseo de sistemas con
ejemplos prcticos. 1 ed., Madrid : Anaya Multimedia, 1990.

 Referencias clsicas...
 DeMarco, T., Structured analysis and system specification. 1979, Englewood
Cliffs, New Jersey: Yourdon Press.
 Gane, C. and T. Sarson, Anlisis estructurado de sistemas. 1990, Buenos Aires:
El Ateneo (traduccin de Gane, C. and T. Sarson, Structured systems analysis,
tools and techniques. Software series. 1979, New Jersey: Prentice-Hall.)

AE utiliza...
 Modelado funcional
 DFD (Diagrama de Flujo de Datos, Dataflow diagram)

 Modelado de datos
 Diagrama E-R (Entidad-Relacin), o alternativamente,
DED (Diagrama de Estructura de Datos)
 Modelado del comportamiento
 Diagramas HVE (Historia de Vida de las Entidades)
 Diagramas de Transicin de Estados (STD, State Transition
Diagram)

AE utiliza...
Lgica de procesos
Lenguaje estructurado
Pre y post-condiciones
Tablas de decisin
rboles de decisin

Diccionario de Datos (DD)

Visin panormica AE
DFDs
Visin general de las funciones y
transformaciones de datos en una
organizacin
Modelo lgico y grfico del sistema
tambin como modelo fsico

Identifica entradas, salidas, procesos y


relaciones con el exterior
...a nivel general
 ...por refinamiento, a nivel detallado

Visin panormica AE
DFDs (II)
Tipos de smbolos en los DFDs
(notacin de Yourdon/De Marco)
P1
ENTIDAD
EXTERNA

flujo de datos

Proceso

D ALMACN DE
DATOS

Visin panormica AE
DFDs (III)
Ejemplo
Sistema de distribucin sin inventario
Se trata de un sistema que sirve pedidos de libros
a unos clientes, con la particularidad de que no
mantiene un stock o inventario interno. El sistema
puede agrupar los pedidos que clientes distintos
hacen a un mismo editor, de manera que se puedan
conseguir descuentos.
Adaptado del captulo 2 de Gane, C. and T. Sarson, Anlisis estructurado de sistemas.
1990, Buenos Aires: El Ateneo.

Visin panormica AE
DFDs (IV)
Anlisis de los procesos del sistema
Aplicamos la visin sistmica
Diagrama de contexto
CLIENTE

pedidos
rdenes de compra

libros entregados

en principio, no
son materiales,
son datos

0.
Sistema de
Pedidos

EDITOR
libros pedidos

Visin panormica AE
DFDs (V)
0. Sistema de pedidos
pedidos

D LIBROS
rdenes de compra
pedidos vlidos

1.
Verificar
validez
de pedido

estado del crdito


D CLIENTES

D PEDIDOS
PENDIENTES

pedidos por ttulo

2.
Armar
pedidos
a editores

D RDENES DE
COMPRA

pedidos en lote

direccin

libros entregados
libros entregados =
albarn + lista-novedades

5.
Armar
entrega
a clientes

DD

libros por
clientes

4.
Asignar
libros a
pedidos

3.
Verificar
envo
de editores

libros
recibidos
libros recibidos =
{ttulo + cantidad}

DD

libros pedidos

Visin panormica AE
DFDs (V)
0. Sistema de pedidos
pedidos

D LIBROS
rdenes de compra
pedidos vlidos

1.
Verificar
validez
de pedido

estado del crdito


D CLIENTES

D PEDIDOS
PENDIENTES

pedidos por ttulo

2.
Armar
pedidos
a editores

D RDENES DE
COMPRA

pedidos en lote

direccin

libros entregados

5.
Armar
entrega
a clientes

libros por
clientes

4.
Asignar
libros a
pedidos

libros
recibidos

3.
Verificar
envo
de editores

libros pedidos

Visin panormica AE
DFDs (VI)
 El DFD del ejemplo pertenece al nivel lgico
 un FD puede estar contenido en una nota, una factura, una
llamada telefnica, etc.
 un almacn de datos puede ser una BD o un fichero en papel
 no se dice qu deber ser automtico o manual.

... en el nivel lgico


 se evita caer en decisiones fsicas prematuras
 se maneja la complejidad

 En un DFD 0 real, se hara una autntica divisin en


subsistemas
 Se obvian los FD de error
 En el ej. no se muestran las funciones de creacin,
mantenimiento y consulta de almacenes de datos

Visin panormica AE
Diccionario de Datos
 Es un conjunto de metadatos, es decir, de
informacin (datos) sobre datos
 Contiene las definiciones de todos los elementos
de los diagramas
 Implementacin
 Manual
 Procesador de textos
 Base de datos
 Automtico e integrado

Visin panormica AE
Diccionario de Datos (II)
Flujo de datos: entrega
Descripcin: Conjunto de libros enviados por un
proveedor a la biblioteca, basado en la relacin
que previamente haba recibido.
Sinnimos: *** none ***
Componente de: *** none ***
Composicin:
Libros
+ { Albarn }
Informacin de entrada y salida
Origen
Destino
*** Off the diagram ***
Compra libros
PROVEEDORES
Biblioteca

Visin panormica AE
Diccionario de Datos (III)
Fichero o base de datos: Facturas
Descripcin: Informacin, por nmero de factura, sobre
facturas en el sistema actual.
Sinnimos: *** none ***
Composicin:
@Nmero-factura
+ Fecha-factura
+ Direccin-cliente
+ { Nmero-producto
+ Cantidad-producto
+ Costo-unidad-producto }
+ Costo-envo
+ Tasa-de-descuento
+ Neto-factura
+ Estado-factura

Procesos asociados: Segn DFD general


Proc_cancelacin
Proc_consultas

Proc_pago
Adjuntar_albarn

Visin panormica AE
Diccionario de Datos (IV)
Proceso: Verificar estado del socio
Nmero: 1.1.1
Descripcin: Se examina si el socio no est sancionado
Miniespecificacin:
Recibir Socio ID del socio
Leer SOCIOS para
Leer Flag-de-precaucin
Si OK, enviar Socio ID vlido
Complejidad:
Ratio de transacciones:

Prioridad:
Memoria requerida (Kb):
Tiempo de proceso:

Visin panormica AE
Modelado de datos
Diagramas E-R y DED (Diagrama de
Estructura de Datos)
DED es, bsicamente, un E-R limitado:
no relaciones ternarias
slo cardinalidades 1:N
no atributos multivaluados ni compuestos

Por defecto, usaremos diagramas E-R

DED. Ejemplo
Departamento

Diagrama E-R

(1,n)

[EN2002] (Chen)

pertenece

(1,1)
Empleado

asignado
(0,n)

Proyecto
(1,m)

Departamento

DED

Proyecto

pertenece

Empleado

requiere

tiene

Asignacin

Visin panormica AE
Lgica de procesos
Tcnicas para describir la lgica de los
procesos primitivos
Lenguaje estructurado
Pre y post-condiciones
Tablas de decisin
rboles de decisin

Visin panormica AE
Lgica de procesos (II)
Lenguaje estructurado
 SI la factura excede de 300

SI la cuenta del cliente tiene alguna factura sin pagar ms


de 60 das, dejar la confirmacin pendiente de este pago.
SI NO (la cuenta est en buen estado)
hacer confirmacin y factura

 SI NO (la factura es de 300 o menos)

SI la cuenta del cliente tiene alguna factura sin pagar ms


de 60 das hacer la confirmacin, la factura y escribir un
mensaje sobre informe de crdito
SI NO (la cuenta est en buen estado)
hacer confirmacin y factura

 FIN-SI.

Visin panormica AE
Lgica de procesos (III)
Pre y post-condiciones
Pre1 (la factura excede de 300) Y (la cuenta del cliente tiene alguna factura sin
pagar ms de 60 das)
Pos1 (confirmacin pendiente de este pago)
Pre2 (la factura excede de 300) o (la cuenta del cliente no tiene ninguna factura
sin pagar ms de 60 das)
Pos2 (confirmacin y factura realizadas)
Pre3 (la factura no excede de 300) Y (la cuenta del cliente tiene alguna factura
sin pagar ms de 60 das)
Pos3 (confirmacin y factura realizadas) Y (mensaje impreso sobre informe de
crdito)
Pre4 (la factura no excede de 300) Y (la cuenta del cliente no tiene ninguna
factura sin pagar ms de 60 das)
Pos4 (confirmacin y factura realizadas)

Visin panormica AE
Lgica de procesos (IV)
Tablas de decisin
ESTADO DE LA
CUENTA

CORRECTO

IMPAGADO

CORRECTO

IMPAGADO

NETO-FACTURA

>300

>300

<=300

<=300

CONFIRMACIN
PENDIENTE

HACER
CONFIRMACIN

HACER FACTURA

ESCRIBIR MENSAJE

Visin panormica AE
Lgica de procesos (V)
rboles de decisin
Cuentas impagadas
ms de 60 das
Factura
excede de
300

Cuentas en buen estado

1. Dejar confirmacin
pendiente de los pagos
debidos.
2. Hacer confirmacin y
factura

Poltica
contable

Factura
menos de
300

Cuentas impagadas
ms de 60 das
Cuentas en buen estado

3. Hacer confirmacin y factura y


escribir mensaje sobre informe de
crdito
4. Hacer confirmacin y
factura

Y despus del AE?


DISEO ESTRUCTURADO (DE)
El diseo lgico de los requisitos del nuevo
sistema de informacin se convierte en un
modelo de la aplicacin, plasmado en un
DIAGRAMA DE ESTRUCTURA.
En el paso AE DE,
Anlisis de transacciones
Anlisis de transformaciones

Ejemplo de diagrama de
estructuras
Evaluar
peticiones

pet aceptada

informe prstamo
pet aceptada

Recibir
peticiones

pet prstamo

informe prstamo

Elaborar
informe

pet rechazada

pet prstamo

Leer
peticiones

ok

Consultar
stock

Rechazar
peticin

Informar
peticin

Visin panormica AE
Esquema resumen
Diagrama de
flujo de datos

B
Z

DESTINO

PROC

PROC

PROC
V

Paso al
diseo

Y
FUENTE

Descrip.
E. E.

PROC

Descripcin
del proceso

PROC

Definicin
del FD

D ALMACN DE
DATOS

Diagrama E-R
(o DED)

Diccionario
de Datos
Definiciones
de la BD
Definiciones de
los mdulos

Diagrama de
estructuras

Visin panormica AE
Proceso de aplicacin
 Aproximacin clsica
1. Anlisis del sistema actual
Modelo fsico, modelo lgico

2.
3.
4.
5.
6.
7.

Anlisis de requisitos del nuevo sistema


Diseo de soluciones alternativas
Evaluacin de las soluciones
Seleccin y documentacin de una solucin
Diseo estructurado
Codificacin y pruebas

6.2 Diagramas de Flujo de


Datos (DFDs)
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.

Introduccin - Visin panormica del AE


Diagramas de flujo de datos
Diccionario de datos
Modelado de la lgica de los procesos
Modelado de datos
Historia de vida de las entidades
El proceso de Yourdon

Smbolos del DFD


(notacin Yourdon/De Marco)
P
Proceso

Entidad Externa

Flujo de datos

Flujo de eventos

D ALMACN DE
DATOS

Transformaciones o procesos (funciones,


clculo, seleccin)
Terminadores (Fuentes o Destinos)
(personas, entidades)
Flujos de informacin
(inputs-outputs)
Flujos de control (Ward & Mellor 85)
Ficheros o depsitos temporales de
informacin (base de datos, armario,
clasificador, etc.)

Smbolos del DFD


(notacin Mtrica/SSADM)

ID

Localizacin

Proceso

Transformaciones o procesos

Entidad
Externa

Terminadores (Fuentes o Destinos)

Flujo de datos

ALMACN DE
DATOS

Flujos de informacin

Ficheros o depsitos temporales de


informacin

Procesos
TRANSFORMACIN
(clculo, operacin)
FILTRO
(verificacin fecha, validacin transaccin)
DISTRIBUCIN
(men, seleccin transaccin)
E1
P

Un consejo: Keep it simple!

E2
E3

Transformacin

S1
S2

Procesos (II)
 Nombres nicos, significativos y concisos
 Preferiblemente expresados en funcin de las
entradas y salidas
 Recomendacin:
verbo (no ambiguo) + objeto
 Evitar verbos ambiguos

procesar, gestionar, manejar...

 objeto est definido en el DD

 Los procesos se descomponen en subprocesos,


hasta llegar a los procesos primitivos

Diagrama de contexto
Es el DFD ms general de todos
Est formado por un solo macroproceso
(el sistema), las entidades externas
(fuentes y destinos) y sus relaciones con
el macroproceso
Delimita el sistema y su entorno

Entidades externas
Sealan los lmites del sistema y
establecen sus relaciones con el entorno
FUENTE

DESTINO

FUENTE

FUENTE

Sistema

DESTINO

DESTINO

Los identificadores (nombres) de las entidades externas sern


nicos, significativos y concisos

Lmites del sistema


Actividad crtica y difcil
Puede haber problemas,
tanto por ser demasiado ambicioso, como poco ambicioso
Entorno

Facturacin
P
Sistema
de
pedidos

Informacin
sobre el crdito

Gestin de
caja (pagos)

Gestin del
almacn

Entorno

Flujos de datos
 Los nombres de los FD deben ser nicos,
significativos y concisos
 Son datos, as que nmbralos como datos.
 Pueden estar indistintamente en singular o en
plural, ya que en los DFDs no se representan
cantidades (Barranco 95)
 Los nombres no sirven slo para identificar los
datos, sino tambin la informacin que se tiene
sobre ellos
P.ej. Informacin (fecha-vlida) > Informacin (fecha)

Flujos de datos (II)


Flujos de datos interactivos (dialog flows)
 Cuando dos FD establecen un dilogo o comparten una accin
de estmulo-respuesta, pueden dibujarse como un nico FD de
doble flecha, donde ambos extremos deben llevar el nombre del
FD que representan.
P
Determinar
estado
pedido

peticin estado pedido


respuesta estado pedido

pago
autorizacin crdito
P
solicitud crdito
Aceptar pago
recibo

denegacin
crdito

P
Analizar
Peticin
crdito

Flujos de datos (III)


Las flechas dobles con sentidos opuestos
que transportan los mismos datos pueden
sustituirse por flechas doblemente
encabezadas
Pero slo si transportan los mismos datos!
P
A

P
B

P
A

P
B

Flujos de datos (IV)


 Se puede representar, si se desea, el FLUJO DE
MATERIAL, usando flechas de trazo grueso
P1

EDITORIALES

Selecc. y
pedir nuevos
libros

Notacin Gane & Sarson

INTERVENTOR

nuevas ofertas

pedidos de libros nuevos


libros nuevos
ajuste de inventario

D3

INVENTARIO

Registrar libros
ajuste de signaturas
nuevos

D4

SIGNATURAS

P3

P2
Examinar
nuevos libros

libros nuevos
nuevos libros

libros nuevos

D9

CARRITO
LIBROS NUEVOS

libros nuevos

D1 LISTA MAESTRA
DE ISBN

P4

P5

Enviar al dpto.
comprador

Poner libros
nuevos en
estantes

libros nuevos

libros nuevos
D2

ESTANTES

Flujos de datos (V)


Se pueden considerar flechas convergentes o
divergentes, con un mismo nombre
P
A

cod postal

P
Validar
cod postal

direccin cli
telef

nmero de cuenta

calle
P
B

P
Validar
calle

P
Validar
Telef.

Observaciones:
Slo los procesos pueden separar FD (Piattini et al. 04)
No poner FD como seales de activacin (Yourdon 93)

Flujos de datos (VI)


Notacin System Architect. Ejemplos
FD divergentes (conectores XOR y AND)
P
Imprimir
lista
empaquetado
datos de
P
empaquetado
Determinar datos de envo
prods.para
datos de facturacin
enviar
XOR
cuando los datos son
divididos en subconjuntos
P
Imprimir
factura
cliente

P
Rellenar
prescripcin
P
Determinar
prescripcin

prescripcin

AND
cuando todos los datos
siguen por ambos caminos

P
Actualizar
registro
paciente

Flujos de datos (VII)


Notacin System Architect. Ejemplos
FD convergentes (conectores XOR y AND)
P
Aceptar pago
en metlico

P
Confirmar
empleo
datos de pago

P
Aceptar pago
a crdito

XOR
cuando los mismos
datos provienen de
cualquier direccin

P
Transferir
pago

historial
de crdito
P
Confirmar
historial de
crdito

historial de
empleo

historia
combinada

AND
cuando los subconjuntos
son combinados en uno

P
Conceder
tarjeta de
crdito

Flujos de datos (VIII)


pedido

P
Evaluar pedido

criterios valoracin

El proceso pide el FD pedido?


El proceso necesita ambos FD?

No
No lo sabemos, no importa:
Los aspectos procedurales no se manifiestan
en los DFDs
Si tales aspectos son relevantes, se deben
incluir en las miniespecificaciones

Flujos de control
 En los DFDs no se muestra el control ni el orden
de ejecucin
 No se puede mostrar:
 Procesos que se realizan antes que otros
 Sincronizacin
 Periodificacin

 Extensiones al AE para sistemas en tiempo real:


 (Ward & Mellor 85)
 (Hatley & Pirbhai 87)

Flujos de control (II)


 Seales de activacin ON/OFF
 Sirven para Habilitar/Deshabilitar procesos
 Tambin hay:
 Procesos de control

Coordinan el resto de procesos


Usualmente uno por DFD
Se describen mediante Diagramas de transicin de estados

 Almacenes de control

Almacenes de eventos

 FD discretos
 FD continuos

Flujos de control (III)


clave codificada
P
Verificar
clave
D

clave

CUENTAS

CLIENTE
clave OK
saldo

cantidad
pago
P
Efectuar
reintegro

Flujos de control (IV)

datos satlite

habilitar proc satlite

seal satlite

Monitorizar datos
satlite

P
Controlar sistema
vigilancia

seal radar

DATOS DE
VIGILANCIA

habilitar proc radar

Monitorizar datos
radar

datos radar

Almacenes de datos
 Nombre nico, significativo y conciso
 Convenciones de nombres en los FD a/desde un
almacn:
 No lleva etiqueta

El FD se refiere a un paquete (instancia) completo de la


informacin contenida en el almacn

 La etiqueta es la misma que la del almacn

El FD se refiere a uno o ms paquetes completos


(instancias) de la informacin contenida en el almacn

 La etiqueta es distinta de la del almacn

El FD se refiere a uno o ms componentes (atributos) de


una o ms instancias del almacn

Consistencia DFD / E-R

(MAP 95)

 Para facilitar validaciones cruzadas entre DFDs y


E-R (o DED)...
 Correspondencia entre los almacenes de datos
principales (permanentes) del DFD y las
entidades del E-R
Cada almacn de un DFD representa una o
varias entidades del E-R
Cada entidad del E-R pertenece a un nico
almacn principal de un DFD

Consistencia DFD / E-R (II)


ETIQUETA DE LOS ALMACENES
Segn explosione a
Entidad de datos Plural nombre entidad
Diagrama E-R (o DED) Nombre diagrama

 DEFINICIN DE LOS ALMACENES


1. Pocos almacenes
 Para cada uno, diagrama E-R (o DED)
2. Tantos almacenes como entidades se hayan
identificado
 Preferible (si no hay muchas entidades)

Descomposicin funcional
 Cada proceso se puede explotar, refinar o
descomponer en un DFD ms detallado
 El DFD de un sistema es realmente un conjunto
de DFDs dispuestos jerrquicamente
 Los niveles de la jerarqua estn determinados
por la descomposicin funcional de los procesos
 La raz de la jerarqua es el diagrama de
contexto, que es el ms general de todos

Descomposicin funcional
A

P
Sist

DESTINO

FUENTE
P
f2

P
f4

P
f5

V
Y
A

P
f1

P
f3

P
f43

x1

x2

P
f41

y2
y1

P
f45

P
f42

P
f44

(II)

Descomposicin funcional
A

P
Sist

DESTINO

FUENTE
P
f2

P
f4

P
f5

V
Y
A

P
f1

P
f3

P
f43

x1

x2

P
f41

y2
y1

P
f45

P
f42

P
f44

(II)

Consistencia en el DFD
Cada proceso en un diagrama padre es
una consolidacin del DFD hijo
Balanceo de DFDs
Las E/S de un proceso padre deben
corresponderse con las E/S del DFD hijo
que lo explica
Excepciones: errores y salidas triviales

Descomposicin paralela
Descomposiciones de funciones
Proceso en subprocesos (DFD)

Descomposicin de flujos de datos


La regla de balanceo se aplica teniendo en
cuenta la descomposicin paralela

Descomposicin paralela (II)


 Ejemplo:

pedido = autorizacin + cupn de pedido + pago


P2

P1
envo
P6
P5

pedido

envo

autorizacin

P6.2

P4
P3
cupn de
pedido

P6.1

P6.3
pago

Jerarqua de DFDs
 En un DFD completo cada proceso tiene un
nmero nico que lo identifica en funcin de su
situacin en la jerarqua
 Cada DFD tiene tambin un nmero nico que
coincide con el proceso que describe
 Las hojas o nodos terminales corresponden a
procesos primitivos o indescomponibles
 Para cada proceso primitivo existir una
miniespecificacin.
Localizacin
Proceso

Proceso primitivo en Mtrica

Jerarqua de DFDs (II)


P 1.2
Proceso A

B = X + Y DD

DFD 1.2
P 1.2.2
f2

V
Y

P 1.2.1
f1
A

P 1.2.3
f3

Jerarqua de DFDs
DFD 0
El primer diagrama general que sigue al
de contexto es el nmero 0 por convenio
En el DFD 0 se hace una
descomposicin en subsistemas, es
decir, se indican los procesos ms
importantes en el sistema
Han de ser SUBSISTEMAS

Descomposicin funcional y
almacenes de datos
Los almacenes aparecen lo ms tarde
posible
En un nivel superior nicamente cuando
son interfaz entre procesos
Una vez que aparezca en un DFD, el
almacn aparecer otra vez en cada DFD
de nivel ms bajo relacionado

Descomposicin funcional y
almacenes de datos (II)
P
A

FICH

P
B.1

P
A.1

D
P
A.2

P
B

FICH

P
B.2

FICH

Tamao de la jerarqua de
DFDs
 Cada DFD debera tener alrededor de 7 procesos
o menos (Miller 57) Miller, G.A. The magical number seven, plus or minus two: Some limits on
our capacity for processing information. Psycological Review, vol. 63, pp.81-97.

 En general, habr varios niveles intermedios,


dependiendo del tamao y complejidad del
sistema que se est modelando
 Cuntos niveles son convenientes?
Yourdon: depende del problema

Mtrica

Diagrama
Diagrama
Diagrama
Diagrama
Diagrama

de
de
de
de
de

contexto / sistema
subsistemas
funciones
subfunciones
procesos (opcional)

Reglas sintcticas en DFDs


El origen y/o el destino de un FD es
siempre un proceso
 Excepcin: almacenes en el diagrama de contexto
(Yourdon 93)
datos del mercado
CLIENTES
CORPORATIVOS

informes anuales
D

CENTROS DE
INVESTIGACIN

CLIENTE

datos de
investigacin

P
SIST. DE
INVESTIG. DE
MERCADOS

DATOS DEL
MERCADO

datos del mercado

Reglas sintcticas en DFDs


(II)
Todo almacn y todo proceso tienen uno o
ms FD de E y uno o ms FD de S
 EXCEPCIN: un almacn puede no tener FD de salida,
por simplificacin (p.ej. BD Histrica)
 RECOMENDACIN: si aparece un proceso fuente o
sumidero, replantearse los lmites del sistema
P
Fuente

Regla de Balanceo

P
Sumidero

Localizacin de los procesos


STAFF

PLANNING

CONTROL DE
CALIDAD

ADMIN
P

Fotocopiar
Form 55

P
P

Crear
Formulario
55

Form 55

Revisar
Form 55

REGIONES
W, S, N
Copia de
Form 55

ESCNER

D600

Revisar
Form 55

Form 55 revisado
Form 55 autorizado

Form 55

Form 55 revisado regionalmente

Revisar
Form 55
P

Det. estado
Form 55
Form 55 aceptado

Form 55 no autorizado

P
Form 55 no aceptado

Crear
Xact 55
Xact 55

DESTINO
Informe 55

DESTINO

informe 55

Crear
Informe 55

Ideas tiles para construir el


DFD
Identificar todos los elementos exgenos
Identificar sus relaciones con el sistema
Trabajar segn alguna de las siguientes
filosofas:
De inputs a outputs
De outputs a inputs
Desde una posicin intermedia hacia delante
o hacia atrs

Ideas tiles para construir el


DFD (II)
Nombrar adecuadamente todos los
objetos del DFD
Numerar adecuadamente procesos y
diagramas
Realizar una correcta divisin en
subsistemas (DFD 0)
Utilizar la descomposicin funcional
jerrquica hasta alcanzar las funciones
primitivas

Ideas tiles para construir el


DFD (III)
 La descomposicin top/down adolece de
problemas
SOLUCIN: particin de eventos
 Es importante que sea preciso y completo, pero
es muy importante que sea legible!
 El convenio de nombres de FD a/desde almacenes
ayuda a hacer el DFD ms legible
 Agregar FD en los niveles superiores
 Un poco de sentido comn

DFD 0 (Ejemplo a).

Prcticas sept. 2004

confirmacin subasta
NAVEGANTE

datos de prducto
datos de anuncio
solicitud de anuncio

confirmacin de cancelacin
solicitud de cancelacin
notificacin de pujas

MEGASUBASTA PBLICA

confirmacin de baja
1

solicitud de baja

GESTIONAR USUARIOS

confirmacin

GESTIONAR ANUNCIOS

datos de usuario
datos usuario
BANCO
datos bancarios

autorizacin
2

identificacin

confirmacin de cobro

confirmacin id.

ADMINISTRAR PUJAS
datos bancarios usuarios

solicitud de puja

D1

cobro de participacin

PARTICIPANTES

n serie

nombres usuarios
borrado usuario

consulta de datos
datos puja
registro usuario

n de serie
registro de puja

n cuenta
login usuario

revisin pujas

borrado

e-mail adjudicatario

id. usuario

id. adjudicatario

e-mail

datos anuncio
peticin anuncio

PUJAS

informacin anuncio

ANUNCIOS

listado de resultados

datos de revisin

referencia de artculo

anuncio

confirmacin de referencia

datos de subasta

solicitud de resultados

datos resultados

anuncio a cancelar
D

fecha fin edicin


anuncio revisado

RESULTADOS

consulta de resultados

resultados de pujas

id. creador
cargo de penalizacin

confirmacin de penalizacin
impago de participacin

n. anuncio
puja adjudicataria

registro anuncio

cargo
VALIDAR SUBASTA
n anuncio pujado
confirmacin de cargo
ADMINISTRADOR

n subasta
listado pujas relacionadas

pujas relacionadas
num. anuncio
datos de penalizacin

impago puja adjudicataria


cierre edicin
confirmacin de cierre

Prcticas sept. 2004

DFD 0 (Ejemplo b).

La Mega Subasta Pblica

D
peticinSobreParticipante
peticinValidarTarjeta
tarjetaValidadaOK

P1
Gestionar
Participantes

accinSobreParticipanteOK

peticinSobreEdicionesYSubasta
s
accinSobreEdicionesYSubastasO
K
avisoAnulamiento

EDICIONES

P2

P3

Gestionar
Edicin y
Subastas

Gestionar
Pujas

SUBASTAS
CIEGAS

SUBASTAS
EXTENDIDAS

PRODUCTOS

peticinConsultaResultados

peticinControlResultados

PARTICIPANTES

EDICIONES

SUBASTAS
CIEGAS

SUBASTAS
EXTENDIDAS

P4

P5

Seleccionar
Ganadores

Genstionar
Tranferencia de
Productos

respuestaControlResultados
D

avisoGanador

respuestaPuja
avisoPujaExtendid
a

respuestaConsultaResultados

peticinSobrePujas

LISTA DE
RESULTADOS

PUJAS

peticinDevolverProducto
productoDevueltoOK
productosAEntregar
productoEntregadoOK
avisoAdministrador
validarTranferencia
tranferenciaOK

DFDs - Conclusiones
Valiosa herramienta de comunicacin
Usuario, analista, diseador, programador
Se puede combinar con el uso de prototipos

Fcil de entender y de aprender


Facilita las relaciones con el usuario
Amplia difusin

DFDs Conclusiones (II)


Superado por las metodologas OO,
pero todava vigente:
educacin
industria,
administracin (Mtrica 2.1 y 3),
cuerpo de conocimiento de ingeniera del software
(SWEBOK, SEEK, etc.)

El control no aparece hasta el final de la


especificacin estructurada
No es inmediato el paso a la codificacin y
prueba Diseo estructurado

DFDs Conclusiones (III)


til para el anlisis y para el diseo del
nuevo sistema
Ms adecuado para el nivel lgico, aunque
tambin puede ser adecuado para el nivel
fsico (indicando personas concretas,
lugares geogrficos, formatos de datos,
etc.)

DFDs Conclusiones (IV)


Segn algunos autores, la aproximacin
top-down no es la ms correcta para
analizar los sistemas de informacin
Aunque no es intrnsecamente mala: se
puede usar en proyectos pequeos
Alternativamente, se puede usar:

bottom-up
de un nivel intermedio hacia arriba o hacia abajo

En proyectos grandes, particin de eventos

6.3. Diccionario de datos


6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.

Introduccin - Visin panormica del AE


Diagramas de flujo de datos
Diccionario de datos
Modelado de la lgica de los procesos
Modelado de datos
Historia de vida de las entidades
El proceso de Yourdon

Diccionario de datos (DD)


 Es un conjunto de informacin (datos) sobre
datos
 Objetivos del DD:
 Glosario de trminos
 Establecer terminologa estndar
 Proporcionar referencias cruzadas
 Proporcionar control centralizado para cambios
 Evolucin histrica: desde el directorio/diccionario de datos hasta el
diccionario de recursos de informacin

Posibles elementos para


definir en el DD
 Flujos de datos
 Procesos
Mnimo necesario
 Ficheros
 Entidades externas
 Estructuras de datos
 Datos elementales
 Cualquier otra cosa que el analista considere
conveniente

Informacin requerida para


cada elemento del DD
Nombre
Tipo de elemento
Breve descripcin
Sinnimos
Observaciones

Mnimo necesario

Informacin requerida para


cada elemento del DD (II)
 Frecuencias y fechas
 Volmenes (Ks estimadas, n lneas impresas, etc.)
 Cuellos de botella, valores mximos y mnimos (tablas,
ficheros, impresos, entradas de datos)
 Referencia o cdigo de impreso
 Rango de valores permitido y clase (numrico,
alfanumrico, etc.)
 Miniespecificaciones (slo procesos)
 Referencias cruzadas
 Usuarios afectados
 Cualquier otra informacin que se considere de inters

Soporte del DD
Manual
Editor/procesador de textos
Base de datos

Automtico e integrado
(sw. especfico)

Descomposicin top-down
de datos
A=B+C
B = B1 + B2 + B3
C = C1 + C2
A, B, C, B1, B2, B3, C1, C2
todos estn definidos en el DD

Ejemplos de descomposicin:

Ficheros en subficheros o registros


Procesos en subprocesos
Flujos en subflujos
Estructuras de datos en datos elementales

Operadores relacionales
 = es equivalente a
 + y
 <> o (inclusivo: al menos una de las
opciones)
 [ ], | o (exclusivo: slo una de las
opciones)
 1{ }N iteraciones entre 1 y N veces del
trmino entre llaves
 ( ) opcional

Operadores relacionales (II)


 Actualmente (Yourdon 93) <> no se usa
(en System Architect tampoco)
 Se utiliza [ ] , | con combinaciones de ( ) y +
 Ejemplos:
direccion-cliente = <direccion-envio, direccion-facturacion>
* se puede expresar como *
direccin-cliente = [direccion-envio | direccion-facturacion |
direccion-envio + direccion-facturacion]
* si se admite que direccion-cliente est vacio *
direccion-cliente = (direccion-envio) + (direccion-facturacion)

Operadores relacionales (III)


*...* comentario
@ identificador de campo clave en un
almacn (tambin, alternativamente, se
puede subrayar la clave)
Ejemplos:
Solicitud-destino = @nascensor + (nplanta)
= nascensor + (nplanta)
* ambas definiciones son equivalentes *

Ejemplos DD
pedido = cupon-correos + (pago-previo)
etiqueta = 1{carcter}8
n-de-telefono =
*cualquier secuencia correcta de dgitos que
provoca una llamada *
[extension-local | 9 + numero-exterior]
extension-local = * slo dentro del edificio *
primer-digito + 3{ cualquier-digito}3
primer-digito = [1|2|3|4|5|6|7]
cualquier-digito = [0|1|2|3|4|5|6|7|8|9]

Hasta cundo especificar?


El proceso de descomposicin finaliza en
los trminos autocontenidos
Ejemplo
persona = apellidos + nombre + nss + edad
 edad es autocontenido?
edad = 1{digito}2

Sinnimos
 Origen:
 Distintos usuarios dan distintos nombres a los
mismos objetos
 El analista introduce, por error, un nombre distinto
para un objeto ya nombrado
 Distintos analistas que trabajan en el mismo proyecto
dan nombres distintos a un mismo objeto

 Los sinnimos deben evitarse siempre que sea


posible

Ejemplos DD (II)
Nombre: hoja-verde
Sinnimos: peticin, solicitud
Tipo: sinnimo
Observaciones:
Nombre: estado
Sinnimos: estado-cliente, EST$
Tipo: elemento de datos
Valores y significado:
OK.- Cuenta en buen estado
C.- Cuenta cerrada
D.- Cuenta en nmeros rojos * cliente moroso *
Observaciones:

Ejemplos DD (III)
Nombre: peticion
Sinnimos: solicitud, hoja-verde
Tipo: flujo de datos
Composicin: [peticion-estado-cliente | peticion-stock | peticion-estado-de-unpedido | peticin-de-materia-prima]
Pertenece a: * ninguno *
Observaciones:
Nombre: Contabilidad de proyectos
Sinnimos: Cuentas
Tipo: fichero
Composicin: { @n-de-proyecto + descripcin-proyecto + cuenta-delgabinete + { nombre-del-empleado + fecha-ingreso } }
Organizacin: * secuencial, por nmero de proyecto *
Observaciones:

Elementos y estructuras de
datos
Son la base sobre la que se definen los
flujos de datos, los almacenes y las
entidades del diagrama E/R.
Un elemento de datos es una pieza de
informacin atmica.
Una estructura de datos es un registro,
compuesto por otras estructuras o
elementos de datos.

Ejemplos DD (IV)
(Flujo de datos) Libros prestados =
[ Libros entregados |
Libros devueltos ]
donde Libros entregados y Libros
devueltos son estructuras de datos.
 Libros entregados = {ISBN + Copia-ID }
 Libros devueltos = { ISBN + Copia-ID }
donde ISBN y Copia-ID son elementos de datos

6.4. Modelado de la lgica de


los procesos
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.

Introduccin - Visin panormica del AE


Diagramas de flujo de datos
Diccionario de datos
Modelado de la lgica de los procesos
Modelado de datos
Historia de vida de las entidades
El proceso de Yourdon

Miniespecificaciones (ME)
Proceso primitivo miniespecificacin
La ME describe las reglas sobre cmo
realizar el proceso para transformar las
entradas en salidas
La ME indica el proceso a realizar, la
transformacin de datos, no el algoritmo
(que se selecciona en el proceso de
diseo)

Herramientas para describir


la lgica de los procesos
Lenguaje estructurado
Tablas de decisin
rboles de decisin
Pre y post-condiciones
(son alternativas no excluyentes)

Lenguaje estructurado
Vocabulario (restringido) de una lengua
(espaol, ingls, etc.)
Verbos imperativos
Trminos definidos en el DD
Palabras reservadas para formulacin lgica
(maysculas)

Sintaxis de la programacin estructurada

Lenguaje estructurado (II)


 Los objetos de una ME (sujetos de las
sentencias) sern trminos del DD o bien
trminos locales
 Los trminos locales se definen explcitamente
dentro de una ME, y son conocidos, relevantes y
significativos slo dentro de esa ME (por tanto,
no es imprescindible su inclusin en el DD)
 Ejemplo:
variables utilizadas para clculos intermedios,
como sumas parciales, dentro de un proceso.

Lenguaje estructurado Sintaxis


Sentencia declarativa simple (secuencia)
Estructura de decisin
Estructura de repeticin
Combinaciones de las estructuras
anteriores

Sentencias declarativas
 Concisin
 Evitar verbos ambiguos (manejar, realizar, procesar,
etc.)
 Utilizar verbos precisos que describan acciones
concretas (imprimir, enviar, acumular...)
 Mencionar expresamente el objeto de la sentencia,
preferiblemente utilizando los trminos del DD
 Ejemplos:





Recoger INF-CLIENTE
Separar PETICION
Archivar PETICION en F-PETICION *fichero*
Enviar DATOS-CLIENTE a DPTO-CLIENTES

Estructura de decisin
SI Condicin

CASO Condicin:Accin(es)

Accin(es)

SINO
Accin(es)

 Ejemplos:
a) SI Valor-capital-actual es menor que 600
Asignar Cantidad-depreciada = Valor-capital-actual = 0

SINO
Asignar Cantidad-depreciada = 10% de Valor-capital-actual

b) Seleccionar la poltica que se aplica:


Caso 1: (Costo-de-pedido > 1000) :
enviar por avin
Caso 2: (Costo-de-pedido entre 100 y 1000) :
enviar por correo urgente
Caso 1: (Costo-de-pedido < 100) :
enviar por correo normal

Estructura repetitiva
REPETIR (condicin de seleccin)
Accin(es)

HASTA (condicin de terminacin)


MIENTRAS (condicin)
Accin(es)

FIN MIENTRAS

 Ejemplo:
REPETIR para cada registro-de-pasajero en fichero-de-reservas
Acumular Cantidad-debida en Total
Construir registro Nuevo-dbito
Escribir Nuevo-dbito en el diario

HASTA final de fichero-de-reservas

Estructura repetitiva (II)


a) PARA CADA cliente en fichero-cuentas
Acceder al registro de cuenta del fichero-cuentas
Si estado-cuenta es moroso y balance < 10
Poner estado-cuenta en pendiente
Acumular balance-cuenta en total-pendiente
Asignar a fecha-ltima-transaccin la fecha de hoy
b)
REPETIR para cada cliente en fichero-cuentas
Acceder al registro de cuenta del fichero-cuentas
Si estado-cuenta es moroso y balance < 10
Poner estado-cuenta en pendiente
Acumular balance-cuenta en total-pendiente
Asignar a fecha-ltima-transaccin la fecha de hoy
HASTA que no haya ms clientes

Lenguaje estructurado Observaciones


Utilizar funciones o subrutinas
Subrayar los trminos del DD o usar con
maysculas
en SA, usar comillas

Evitar sentencias largas e imprecisas


Usar indentacin o notacin de bloque
Usar parntesis para las combinaciones
de condiciones lgicas (and, or, not)

Lenguaje estructurado.
Ejemplos (I) (Yourdon 93) Apndice F
PROCESO 3.1: PRODUCIR RECIBOS EFECTIVO
COMIENZA
efectivo-recolectado = 0
MIENTRAS haya ms registros en DINERO
LEER siguiente registro en DINERO
ENVIAR dinero *en (Yourdon 93) pone DESPLEGAR*
efectivo-recolectado = efectivo-recolectado + cantidad-dinero
FIN-MIENTRAS
reporte-efectivo = efectivo-recolectado
ENVIAR reporte-efectivo
D
DINERO
TERMINA
P3
PRODUCIR
RECIBOS
EFECTIVO

dinero + reporte-efectivo

Lenguaje estructurado.
Ejemplos (II) (Yourdon 93) Apndice F
reporte-diario-ventas

reporte-mensual-ventas

P2
PRODUCIR
REPORTE
DIARIO
VENTAS

P1
PRODUCIR
REPORTE
MENSUAL
VENTAS
D

CREDITOS

PEDIDOS
D

DEVOLUCIONES

Lenguaje estructurado.
Ejemplos (III) (Yourdon 93) Apndice F
PROCESO 3.2: PRODUCIR REPORTE DIARIO VENTAS
COMIENZA
total-diario = 0
MIENTRAS haya ms pedido en PEDIDOS con fecha-pedido= fecha actual
LEER siguiente pedido con fecha-pedido = fecha actual
SUMAR numero-factura, nombre-cliente, nombre-compaa, pedido-total
como nuevo rengln en reporte-diario- ventas
SUMAR total-pedidos a total-diario

FIN_MIENTRAS
SUMAR total-diario como nuevo rengln en reporte-diario-ventas
ENVIAR reporte-diario-ventas
TERMINA

Lenguaje estructurado.
Ejemplos (IV) (Yourdon 93) Apndice F
PROCESO 3.3: PRODUCIR REPORTE MENSUAL VENTAS
COMIENZA
total-ventas = 0
total-devoluciones = 0
total-crditos = 0
MIENTRAS haya ms pedido en PEDIDOS con fecha-pedido de este mes
SUMAR total-pedidos a total-ventas

FIN_MIENTRAS
MIENTRAS haya ms devolucin en DEVOLUCIONES con fecha-devolucin de este
mes
SUMAR valor-devolucin a total-devoluciones

FIN_MIENTRAS
MIENTRAS haya ms crdito en CREDITOS con fecha-crdito de este mes
SUMAR monto-de-crdito a total-crditos

FIN_MIENTRAS
reporte-mensual-ventas = total-ventas, total-devoluciones, total-crditos
ENVIAR reporte-mensual-ventas
TERMINA

Lenguaje estructurado.
Ejemplos (V) (Yourdon 93) Apndice F
D

LIBROS

P4
id-imprenta + fact-imprenta

PROCESAR
FACTURAS
IMPRENTA

factura-imprenta

factura-imprenta-aprobada

autorizacion-fact-imprenta

respuesta-fact-imprenta

Lenguaje estructurado.
Ejemplos (VI) (Yourdon 93) Apndice F
PROCESO 4.4: PROCESAR FACTURA IMPRENTA
COMIENZA
ENCONTRAR libro en LIBROS con clave-libro que corresponda con clave-libro en fact-imprenta
SI no se encuentra registro
respuesta-fact-imprenta = No existen pedidos pendientes para este libro
ENVIAR respuesta-fact-imprenta

OTRO
ENVIAR factura-imprenta (a administracin para su aprobacin)
ACEPTAR autorizacin-factura-imprenta
SI autorizacin-factura-imprenta = NO
respuesta-fact-imprenta = Factura rechazada; comunquese con la administracin para discutirlo
ENVIAR respuesta-fact-imprenta

OTRO
respuesta-factura-imprenta = Factura aceptada
ENVIAR respuesta-factura-imprenta
factura-imprenta-aprobada = fact-imprenta
ENVIAR factura-imprenta-aprobada

FIN_SI

FIN_SI
TERMINA

Lenguaje estructurado.
Ejemplos (VII) (Yourdon 93) Apndice F
PROCESO 6.1: PRODUCIR ETIQUETAS ENVIO
COMIENZA
ORDENAR CLIENTES por cdigo-postal en etiquetas-envo
ENVIAR etiquetas-envo
TERMINA

etiquetas-envo

P6
solicitud-etiquetas

CLIENTES

PRODUCIR
ETIQUETAS
ENVIO

Tablas de decisin
Encabezamiento

Reglas
Anotacin de
condicin

Estados de condicin

Anotacin de
accin

Sentencia de accin

Autorizacin de tarjeta de crdito


Compra inferior a 50
Compra entre 50 y 100
Compra superior a 100

1
Y

Autorizado automticamente
Dar nmero de autorizacin
Anotar en la cuenta
Error

Autorizacin de tarjeta de crdito


Valor de la compra p
Autorizar automticamente
Asignar autorizacin

2
N
Y

3
N
N
Y

X
X

Se han desarrollado
procesadores de
tablas de decisin
que generan
automticamente el
cdigo del proceso
correspondiente.

4
N
N
N

1
2
p > 100 50 < p < 100

3
0< p < 50
X

rboles de decisin
ao
tipo
pendiente

asociado
Cuotas de
socio
de grado

senior

cuota a pagar

primero
segundo
tercero

primero
segundo
tercero

primero
segundo
tercero

primero
segundo
tercero

3
4
4
6

6
7

4
5

Comparativa
Uso

AD

Verificacin
lgica
Visualizacin
de la
estructura
lgica

Moderada

TD

Lenguaje
Lenguaje
estructurado narrado
simplificado
Muy buena Buena
Moderada

Muy buena Moderada Buena (para


(pero slo (slo
todo)
decisiones) decisiones)

Muy buena Muy pobre


Simplicidad
Pobre (si el
Validacin por Buena
usuario no
el usuario
est
formado en
TD)
Especificacin Moderada Muy buena
de programa
Pobre
Muy buena
Editable por
la mquina
Cambios

Moderada

Pobre

Moderada
PobreModerada

Moderada
(para todo,
pero
depende del
autor)
Buena
Buena

Muy buena

Moderada

Moderada
(necesita
sintaxis)
Buena

Pobre

Buena

Pre y post-condiciones

(Yourdon 93)

 tiles para representar la accin a realizar sin


entrar en los detalles del algoritmo
 Particularmente tiles cuando:
 El usuario tiene tendencia a describir el proceso en
trminos de un algoritmo particular
 El analista est razonablemente seguro de que
existen muchos algoritmos alternativos
 El analista desea que el diseador/programador
explore varios algoritmos, pero no quiere enredarse
con el usuario en discusiones acerca del mrito
relativo de cada uno

Precondiciones
x
a

 Entradas disponibles
 llega el dato X * en (Yourdon 93) pone ocurre *

 Relaciones entre las entradas


 llegan detalles de pedido y detalles de envo con el mismo nmero de
cuenta
 llega un pedido con fecha de entrega de ms de 60 das

 Relaciones entre entradas y almacenes


 hay un pedido-de-cliente con nmero-de-cta-de-cliente que
corresponde con un nmero-de-cta-de-cliente del almacn de clientes

 Relaciones entre almacenes distintos (o dentro del mismo almacn)


 hay un pedido en el almacn de pedidos cuyo nmero-de-cta-delcliente corresponde con un nmero-de-cta-del-cliente en el almacn de
clientes
 existe un pedido en el almacn de pedidos con fecha-de-envo igual a
la fecha actual

Post-condiciones
 Salidas producidas
 se producir una factura

 Relaciones entre entradas y salidas


 la factura-total se calcula como suma de precios-unitariosde-artculos ms costos-de-envo

 Relaciones entre salidas y almacenes


 el balance-actual en el almacn INVENTARIO se
incrementar con cantidad-recibida, y el nuevo balanceactual se producir como salida de este proceso

 Cambios en los almacenes


 el pedido se anexar al almacn de PEDIDOS
 el registro de clientes se eliminar del almacn de clientes

Pre y post-condiciones
Ejemplos (Yourdon 93)
 ESPECIFICACIN DE PROCESO 3.5: CALCULAR
EL IMPUESTO SOBRE VENTAS
 Precondicin 1

Llega DATOS-VENTA con TIPO-ITEM que corresponde con


CATEGORA-ITEM en CATEGORAS-IMPUESTO

 Postcondicin 1

IMPUESTO-SOBRE-VENTA se hace igual a MONTO-VENTA *


IMPUESTO

 Precondicin 2

Llega DATOS-VENTA con TIPO-ITEM que no concuerda con


CATEGORA-ITEM en CATEGORAS-IMPUESTO

 Postcondicin 2

Se genera mensaje de error

Pre y post-condiciones
Ejemplos (II) (Yourdon 93)
 Precondicin 1
 El comprador llega con un nmero-de-cta que corresponde con
un nmero de cuenta en CUENTAS, cuyo cdigo-de-status es
vlido

 Postcondicin 1
 Se produce una factura con nmero-de-cuenta y monto-deventa

 Precondicin 2
 La precondicin 1 falla por algn motivo (el nmero-de-cta no
se encuentra en CUENTAS, o el cdigo-de-status no es vlido)

 Postcondicin 2
 Se produce un mensaje de error

ME Otras tcnicas
 Grafos y diagramas propios del usuario
 Si son claros, se pueden agregar a la especificacin
como redundantes.

 Diagramas Nassi-Shneiderman

 Flowcharts
 Lenguaje narrativo

No recomendadas

Sirve para descripcin breve

6.5 Modelado de datos


6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.

Introduccin - Visin panormica del AE


Diagramas de flujo de datos
Diccionario de datos
Modelado de la lgica de los procesos
Modelado de datos
Historia de vida de las entidades
El proceso de Yourdon

Objetivo
 Obtener una representacin de la informacin del
sistema independiente de aplicaciones y dispositivos
fsicos
Facilitar cambios en los requisitos, SGBD, equipos fsicos

 Con el anlisis estructurado moderno de Yourdon el


modelado de datos cobra la misma importancia que el
modelado de procesos.
 Tcnicas de modelado de datos en AE:
 E/R RECOMENDADO
 DED (Diagramas de Estructura de Datos)

Representa esquemas
relacionales, jerrquicos, CODASYL

DED
BD lgica, no simplificada ni optimizada, a
efectos de validacin por el usuario
(esta especificacin pasara al
implementador de la BD)
Diseo externo, lgico

BD optimizada y normalizada, lista para


ser implementada fsicamente
Diseo fsico

DED (II)
E/R limitado
Slo interrelaciones de grado 2
Ternarias: descomponer

Cardinalidad slo 1:N

EQUIPO

JUGADOR

Otras cardinalidades:
Cardinalidad 1:1
Agrupar las dos entidades
Conservar las dos entidades, con una interrelacin en
cualquier sentido

Cardinalidad M:N
Entidad auxiliar con dos relaciones 1:N

DED. Ejemplo
Departamento

Diagrama E-R
Notacin [EN2002] (Chen) Elmasri, R.; Navathe, S.B. : "Fundamentos de
Sistemas de Bases de Datos". 3 Ed. Madrid [etc.]: Addison-Wesley,
Pearson Educacin, 2002.

(1,n)
pertenece

(1,1)
Empleado

asignado
(0,n)

Proyecto
(1,m)

Departamento

DED

Proyecto

pertenece

Empleado

requiere

tiene

Asignacin

DED. Interrelaciones
Interrelaciones OPCIONALES
Interrelacin opcional en el extremo B y
obligatoria en el A
A

 ocurrencia de A pueden o no una o


varias ocurrencias de B, y para cada
ocurrencia de B existe una ocurrencia de A
asociada

DED. Interrelaciones (II)


Interrelaciones EXCLUSIVAS
Dos o ms interrelaciones entre varias
entidades son exclusivas si la existencia de
una implica la no existencia de la otra
P.ej. En la CARM...
EMPRESA EXTERNA

TRABAJADOR

CONSEJERA

(notacin De Miguel Piattini)

6.6. Historia de vida de las


entidades
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.

Introduccin - Visin panormica del AE


Diagramas de flujo de datos
Diccionario de datos
Modelado de la lgica de los procesos
Modelado de datos
Historia de vida de las entidades
El proceso de Yourdon

HVE. Bibliografa
Para todo este apartado:
Gua de tcnicas de Mtrica v.2.1.
Ministerio de Administraciones Pblicas.
1996.

(HVE no es mencionada en Mtrica 3)

HVE
 Describe la posible evolucin de las entidades
de datos del sistema
 VISIN DEL COMPORTAMIENTO,
que complementa:
 Visin esttica (E/R o DED)
 Visin de procesos y flujos (funcional) (DFDs)

 HVE se basa en entidades de datos


(identificadas en DED), y transacciones o
eventos (de los DFDs)
 Deben ser coherentes HVE, DED, DFD

HVE. Objetivos
Registrar la secuencia de los cambios de
las entidades en el tiempo
Determinar los estados posibles
Determinar los cambios de estado
Identificar interacciones producidas por
eventos

HVE
(En principio) existe una HVE por cada
entidad del sistema
Realmente es necesario?

HVE describe la sucesin de eventos


que afectan a dicha entidad, cuyos
efectos pueden ser:
Crear/dar de baja a la entidad
Modificar sus atributos

HVE. Elementos
 Entidades de datos
 Cualquier objeto sobre el
que el sistema guarda
informacin (tienen
atributos)

 Eventos
 Sucesos que activan un
proceso que afecta los
datos del sistema

 Efectos
 Resultado de la accin de
un evento sobre una
entidad

 Nodo
 Agrupacin de eventos
en una caja

 Cajas vacas
 Representan el caso
en que ningn evento
afecta a la entidad

Eventos
EXTERNOS. Por activacin externa
ej. solicitudes de alta, baja, modificacin, etc.

PERIDICOS. Activacin dependiente del


tiempo (automticos) sin estmulo externo
ej. back up peridico

TRIGGERING. Activados internamente por


cumplimiento de determinadas
condiciones
ej. alarma activada

Efectos
 Un evento puede tener distintos efectos sobre
entidades diferentes.
 Ej.: SOLICITAR APERTURA CTA. BANCARIA
 Crea (o actualiza) entidad CLIENTE
 Crea entidad CUENTA

 Un evento puede tener efectos distintos sobre


ocurrencias de una misma entidad.
 Ej.: entidad CUENTA; ev. REALIZAR TRANSFERENCIA
 Efectos: para una ocurrencia: HACER APUNTE EN EL
DEBE
 Para la otra ocurrencia: HACER APUNTE EN EL
HABER

Efectos (II)

Tipos de efectos:
I : insertar
M : modificar
B : borrar

Nodo
Es una abstraccin grfica que mejora la
legibilidad.
ENTIDAD

CREAR

MODIFICAR

BORRAR

Entidad es un nodo que agrupa todos


los eventos que le afectan

HVE. Notacin

(MAP 95)

CUENTA

ABRIR
cta. ab.

VIDA

CERRAR

BORRAR

cierre

cta.borr.

TRANSACCIN

TRANS.
PAGO

TRANS.
DEPSITO

SECUENCIA

ITERACIN

TRANS.
ABONO

SELECCIN

HVE. Notacin (II)

(MAP 95)

CUENTA

EVENTO

NODO

EFECTO

EVENTO

EVENTO

EFECTO

EFECTO

ESTRUCTURA PARALELA
EVENTO N

NODO 1

EFECTO N

EVENTO K

EVENTO L

EVENTO M

EFECTO K

EFECTO L

EFECTO M

Tambin se pueden poner saltos: R Q (En general, RX QX)

HVE. Ejemplo
solicitud reserva

(MAP 95)

1
ACEPTAR RESERVA datos cliente

D1

CLIENTES

D2

RESERVAS

CLIENTE
datos reserva

2
DET.
DISPONIBILIDAD
VEHICULOS

reserva conforme

3
CONFIRMAR
RESERVA

confirmacin

HVE. Construccin
1. IDENTIFICAR EVENTOS
En el DFD anterior...
E1: SOLICITUD DE RESERVA
E2: SOLICITUD DE RESERVA EFECTUADA
POR CLIENTE NUEVO
E3: CONFIRMACIN DE RESERVA
E4: ASIGNACIN DE UN CONDUCTOR A LA
RESERVA
Se te ocurren ms eventos?

HVE. Construccin (II)

(MAP 95)

2. CONSTRUIR MATRIZ ENTIDAD/


EVENTO
M : Modificar
B : Borrar

ENTIDADES

I : Insertar

EVENTOS
E1 E2 E3 E4
CLIENTE

RESERVA

CONDUCTOR

I
M M

HVE. Construccin (III)

(MAP 95)

3. CONSTRUIR HVE INICIALES PARA


TODAS LAS ENTIDADES
RESERVA

SOLICITUD
RESERVA

CONFIRMACIN
RESERVA

crea reserva

reserva confirm.

CONDUCTOR

ASIGNACIN
CONDUCTOR
conductor asig.

-------------

HVE. Construccin (IV)

(MAP 95)

4. REFINAMIENTO DE LAS HVE


NUEVO EVENTO
E5: ENVO DE FACTURA
RESERVA

SOLICITUD
RESERVA

CONFIRMACIN
RESERVA

crea reserva

reserva confirm.

ENVO FACTURA

CONDUCTOR

actualizar res.

ASIGNACIN
CONDUCTOR
conductor asig.

-------------

HVE. Construccin (V)

(MAP 95)

4. REFINAMIENTO DE LAS HVE


NUEVO EVENTO
E6: PETICIN DE CAMBIO
RESERVA

SOLICITUD
RESERVA

CONFIRMACIN
RESERVA

crea reserva

reserva confirm.

CONDUCTOR

CAMBIOS

ENVO FACTURA
actualizar res.

ASIGNACIN
CONDUCTOR
conductor asig.

-------------

PETICIN
CAMBIO

CONFIRMACIN
CAMBIO

cambio reserva

reserva confirmada

HVE. Construccin (VI)

(MAP 95)

5. AADIR INDICADORES DE ESTADO

RESERVA

SOLICITUD
RESERVA

CONFIRMACIN
RESERVA

crea reserva

reserva confirm.

-/1

CAMBIOS

CONDUCTOR

ENVO FACTURA

FIN

actualizar res.
5/6

1/2
ASIGNACIN
CONDUCTOR

-------------

conductor asig.
2/3

2/2

PETICIN
CAMBIO

CONFIRMACIN
CAMBIO

ARCHIVO
RESERVA

ARCHIVO
CLIENTE

cambio reserva

reserva confirmada

borrar reserva

borrar reserva

2,3,5/4

4/5

6/-

6/-

Modo de construccin
Para cada entidad, en principio, debe
haber un HVE
Empezar
por las
entidades
detalle

MAESTRO

DETALLE

Y al final...
examinar los
efectos de los
eventos del
maestro en
los detalles

HVE. Relaciones con otras


tcnicas
 Asegurar coherencia vista evolutiva (dinmica
o de comportamiento) (HVE) con
 Vista esttica o de datos (E/R o DED)
 Vista funcional (DFD)

 Para ello, comprobar:


 DFD: para cada evento en el HVE, existe un proceso
en los DFDs del sistema que lo trata
 E/R o DED: el modelo de datos permite reflejar las
repercusiones que la actuacin de un evento sobre
una entidad tiene sobre otras entidades del sistema

6.7. El proceso de Yourdon


6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.

Introduccin - Visin panormica del AE


Diagramas de flujo de datos
Diccionario de datos
Modelado de la lgica de los procesos
Modelado de datos
Historia de vida de las entidades
El proceso de Yourdon

Bibliografa
(Yourdon 89) o (Yourdon 93)
 Captulos 17, 18, 19 y 20.

Introduccin
En teora, hemos visto unas TCNICAS (DFDs, DED, HVE, etc.)
En prcticas, hemos visto una HERRAMIENTA (System Architect)
Ahora necesitamos un MODELO DE PROCESO
un esquema de cmo se deben aplicar las tcnicas y las herramientas para producir software:





Actividades que se deben realizar


En qu orden
Cules son los productos que dichas actividades deben generar
Etc.

En 6.1. Introduccin Visin panormica del AE, vimos un modelo de proceso clsico:









Anlisis de requisitos (realizando un anlisis del sistema actual, si procede)


Diseo de soluciones alternativas
Seleccin de una solucin
Especificacin en detalle de la solucin escogida
Diseo estructurado: diagrama de estructuras
Refinamiento del diseo
Implementacin
Mantenimiento
Veamos ahora la aproximacin de Yourdon

Aproximacin clsica
Modelo fsico actual
Datos proyecto DESARROLLAR
MODELO
FSICO
ACTUAL

DESARROLLAR
MODELO LGICO
ACTUAL

Modelo lgico actual

DESARROLLAR Nuevo modelo lgico


NUEVO MODELO
LGICO

DESARROLLAR
NUEVO MODELO
FSICO

Nuevo
modelo
fsico

demasiado t. modelando el sist. actual

Aproximacin de Yourdon
Modelo esencial
Construir un MODELO ESENCIAL:
Modelo lgico del nuevo sistema
 Un modelo de lo QUE el sist. debe hacer para
satisfacer los requisitos del usuario, diciendo tan
poco como sea posible (idealmente nada) sobre
CMO se debe implementar.

1. Modelo ambiental (o del entorno).


2. Modelo del comportamiento.

Aproximacin de Yourdon
Modelo de implementacin
No obstante, a veces conviene construir
tb. un MODELO DE IMPLEMENTACIN
centrado en el CMO

Debido tpicamente a que:


el usuario no est convencido de que los
analistas entienden el sistema
el analista decide que es preciso construir un
modelo del sistema actual para entenderlo
bien

Modelo ambiental
Define el lmite entre el sistema y el mundo
exterior
Declaracin de mbito
descripcin breve del propsito del sistema

Diagrama de contexto
Evitar especificar el protocolo de comunicacin

Lista de eventos
Ej. de eventos:

F, evento orientado a flujo


T, evento temporal
C, evento de control

Cliente enva pedido (F)


Cliente cancela pedido (F)
Mensualmente la direccin precisa informe de ventas (T)
Una orden de reimpresin llega al almacn (C)

Lista de eventos
No cada FD es un evento
A

B
SISTEMA

A, B y C son
eventos?
Coinciden estos
eventos del modelo
ambiental con los
del HVE?

Modelo del comportamiento


Define el comportamiento requerido del
interior del sistema para interactuar con
el exterior.
DFDs
ER
DD
Miniespecificaciones
HVE
...

Modelo del comportamiento.


Construccin.
 Aprox. TOP-DOWN
difcil en probs. reales.
CAUSAS:
 Parlisis del anlisis
 El fenmeno de los 6 analistas
 A veces, se hace una particin fsica arbitraria

 SOLUCIN: PARTICIN DE EVENTOS


 Ni top-down, ni bottom-up

Particin de eventos. Modelo


de comportamiento inicial
1. Se dibuja un proceso para cada evento de la
lista de eventos.
2. El proceso se nombra describiendo la respuesta
que el sistema debe producir en respuesta al
evento asociado.
3. Se dibujan los FD de entrada y salida,
almacenes auxiliares y almacenes para
comunicacin entre procesos.
4. Se verifica el balanceo con el DFD de contexto.
(El diagrama E-R se dibuja en paralelo.)

Sera vlido este DFD?


(que forma parte del modelo de comportamiento inicial)
customer order
PROCESS
CUSTOMER
ORDER
valid customer order

customer order inquiry

RESPOND
TO
CUSTOMER
INQUIRY

order status

No, ya que los eventos ocurren de forma asncrona, y se procesan de forma asncrona:
en el modelo de comportamiento inicial, todos los procesos deben estar desacoplados
usando almacenes de datos.

Particin de eventos.
Refinamientos.
El modelo inicial es muy complejo:
se refina hacia arriba y abajo (72 proc.)
1.1

1.2

DFD
PRELIMINAR

1.3

DFD
AGRUPADO

You might also like