Resumen Dfds

25
Resumen DFD’s Autor: Carlos Jiménez Autor: Carlos Jiménez Testera Testera

Transcript of Resumen Dfds

Page 1: Resumen Dfds

Resumen DFD’s

Autor: Carlos Jiménez TesteraAutor: Carlos Jiménez Testera

Page 2: Resumen Dfds

ÍNDICE

DFDDFD REGLAS / GUIAS DE REGLAS / GUIAS DE

CONSTRUCCIONCONSTRUCCION Reglas de construcción de un Reglas de construcción de un

DFDDFD Herramientas de especificación Herramientas de especificación

de procesosde procesos DICCIONARIO DE DATOSDICCIONARIO DE DATOS

Page 3: Resumen Dfds

DFD

Elaboración de un modelo lógico de procesos que Elaboración de un modelo lógico de procesos que represente el sistema, con independencia de las represente el sistema, con independencia de las restricciones físicas del entorno. Modeliza el QUÉ. restricciones físicas del entorno. Modeliza el QUÉ. (De Marco).(De Marco).

Hatley y Pitball ampliaron el DFD con procesos y Hatley y Pitball ampliaron el DFD con procesos y flujos de control METRICA tambien contempla las flujos de control METRICA tambien contempla las extensiones de control.extensiones de control.

Page 4: Resumen Dfds

DFD

El diccionario de datos es una descripción de los El diccionario de datos es una descripción de los elementos que componen el DFD (que contiene el elementos que componen el DFD (que contiene el almacén de datos, especificación de procesos almacén de datos, especificación de procesos primitivos, composición de los flujos de datos. .etc). primitivos, composición de los flujos de datos. .etc).

En METRICA se hace referencia al Dicc. de Datos de En METRICA se hace referencia al Dicc. de Datos de pasada, pero la mayoria de las herramientas CASE pasada, pero la mayoria de las herramientas CASE para DFDs contemplan el llamado "repositorio" para DFDs contemplan el llamado "repositorio" (diccionario de datos).(diccionario de datos).

Page 5: Resumen Dfds

DFD

Diagrama de ContextoDiagrama de Contexto

Se relacióna el sistema con los usuarios, otras Se relacióna el sistema con los usuarios, otras aplicaciones, etc.aplicaciones, etc.

Las Entidades externas sólo aparecen en este nivel. Las Entidades externas sólo aparecen en este nivel. Una entidad externa puede ser generadora de Una entidad externa puede ser generadora de información, consumidora de información o bien información, consumidora de información o bien ambas.(doble flecha).ambas.(doble flecha).

Solo hay un proceso: El sistema (DFD-nivel 0)Solo hay un proceso: El sistema (DFD-nivel 0)

Page 6: Resumen Dfds

DFD

Explosión del procesoExplosión del proceso

El proceso se descompone en otros procesos en un El proceso se descompone en otros procesos en un DFD de nivel inferior. DFD de nivel inferior.

Hay que validar el balanceo, de forma que los flujos Hay que validar el balanceo, de forma que los flujos de entrada y salida del proceso padre, coincidan con de entrada y salida del proceso padre, coincidan con los flujos de E/S el DFD hijo.los flujos de E/S el DFD hijo.

Page 7: Resumen Dfds

DFD

Flujos de DatosFlujos de Datos

NO son activadores de procesos, NO son activadores de procesos, NO llevan control.NO llevan control.

Page 8: Resumen Dfds

DFD ProcesosProcesos

Transforman flujos de entrada en flujos de salidaTransforman flujos de entrada en flujos de salidaLos procesos de primer nivel se numeran de 1 a Los procesos de primer nivel se numeran de 1 a

N. N.  Procesos PrimitivosProcesos Primitivos  

Son procesos que yo no se descomponen Son procesos que yo no se descomponen en más DFDs. en más DFDs.

Pueden aparecer en cualquier nivel de Pueden aparecer en cualquier nivel de descomposición.descomposición.

DFD de menor nivel es aquel que sólo tiene DFD de menor nivel es aquel que sólo tiene funciones primitivas. funciones primitivas. 

Page 9: Resumen Dfds

DFD

Almacenes de DatosAlmacenes de Datos

Información del Sistema Almacenado de forma Información del Sistema Almacenado de forma temporal.temporal.

Independientes del dispositivo físico utilizadoIndependientes del dispositivo físico utilizado Se situará en el nivel más alto donde sirva de Se situará en el nivel más alto donde sirva de

interconexión con 2 o más procesosinterconexión con 2 o más procesos

Page 10: Resumen Dfds

DFD

Diccionario de DatosDiccionario de Datos

Contiene las descripciones de los flujos, Contiene las descripciones de los flujos, almacenes de datos y funciones primitivas almacenes de datos y funciones primitivas (y de algún proceso importante, si es (y de algún proceso importante, si es necesario).necesario).

Page 11: Resumen Dfds

Reglas de construcción DFD

Almacenes:Almacenes:

  No redundancia: El flujo de datos no lleva nombre No redundancia: El flujo de datos no lleva nombre cuando incide sobre su contenido completo. (si cuando incide sobre su contenido completo. (si tenemos un almacén "NOMINAS", no hace falta tenemos un almacén "NOMINAS", no hace falta poner el nombre "nomina" a un flujo de Entrada o poner el nombre "nomina" a un flujo de Entrada o salida).salida).

  Consistencia con el diagrama Entidad/Relación: Consistencia con el diagrama Entidad/Relación: Con las entidades del diagrama de E/R: Cada Con las entidades del diagrama de E/R: Cada almacén principal representa una o varias almacén principal representa una o varias entidades, pero una entidad pertenece a un único entidades, pero una entidad pertenece a un único almacén.almacén.

Page 12: Resumen Dfds

Consejos de identificación de procesos

La tarea no es mecánica. Requiere de la La tarea no es mecánica. Requiere de la creatividad e ingenio del analista.creatividad e ingenio del analista.

Funciones organizativas o administrativas propias Funciones organizativas o administrativas propias ("gestión alumnos")("gestión alumnos")

Homogenidad de las funciones ("dar de baja")Homogenidad de las funciones ("dar de baja") localización geográfica de los procesos ("gestión localización geográfica de los procesos ("gestión

averías coches").averías coches"). Procesos que actualizan los mismos almacenes Procesos que actualizan los mismos almacenes

Page 13: Resumen Dfds

Identificación de procesos DOWN-TOPDOWN-TOP

A la hora de contruir un DFD, se puede hacer bien A la hora de contruir un DFD, se puede hacer bien agrupando procesos pequeños en uno mas grande agrupando procesos pequeños en uno mas grande (bottom - up).Por ejemplo, si tenemos dos procesos: (bottom - up).Por ejemplo, si tenemos dos procesos: "Anular pedido", y "Solicitar pedido" podriamos crea un "Anular pedido", y "Solicitar pedido" podriamos crea un proceso en un DFD superior, llamado "Gestión Pedidios". proceso en un DFD superior, llamado "Gestión Pedidios".

  TOP-DOWNTOP-DOWN Tambien se puede hacer un analisis Top-down. Si Tambien se puede hacer un analisis Top-down. Si

tenemos un proceso "Gestión Alumno", al que le entran tenemos un proceso "Gestión Alumno", al que le entran dos flujos de datos "datos_alta" y dos flujos de datos "datos_alta" y "solicitud_matricula_curso", pensariamos en dos "solicitud_matricula_curso", pensariamos en dos procesos de nivel inferior llamados "Dar_alta" y "gestion procesos de nivel inferior llamados "Dar_alta" y "gestion matriculas" (por ejemplo).matriculas" (por ejemplo).

Page 14: Resumen Dfds

Reglas de construcción de un DFD Los nombres deben ser unívocos en el conjunto de diagramas. Los nombres deben ser unívocos en el conjunto de diagramas. Los procesos y ficheros no pueden procesar sólo flujos de entrada o Los procesos y ficheros no pueden procesar sólo flujos de entrada o

solo flujos de salida. Es decir, no se permiten sumideros de solo flujos de salida. Es decir, no se permiten sumideros de información o fuentes de información. En ese caso, seria una entidad información o fuentes de información. En ese caso, seria una entidad externa.externa.

En los flujos de datos no puede viajar información de control En los flujos de datos no puede viajar información de control (activador/desactivador de procesos)(activador/desactivador de procesos)

En el balanceo de diagramas (explosión de un proceso), los flujos de En el balanceo de diagramas (explosión de un proceso), los flujos de entrada y salida deben coincidir. Todos los flujos del DFD hijo deben entrada y salida deben coincidir. Todos los flujos del DFD hijo deben conectarse con el proceso padre. No puede haber flujos de entrada o conectarse con el proceso padre. No puede haber flujos de entrada o salida al DFD hijo que no tengan correspondencia con el proceso salida al DFD hijo que no tengan correspondencia con el proceso padre. En tal caso habría que suprimirlos o bien direccionarlos hacia padre. En tal caso habría que suprimirlos o bien direccionarlos hacia algun proceso.algun proceso.

Ubicación de Almacenes de Datos: Donde aparezca intercambiando Ubicación de Almacenes de Datos: Donde aparezca intercambiando información con mas de un proceso (o bien un solo proceso que lee y información con mas de un proceso (o bien un solo proceso que lee y escribe en ese Almacén).escribe en ese Almacén).

Page 15: Resumen Dfds

Recomendaciones

Nombres significativosNombres significativos (no abreviaciones). (no abreviaciones). Descartamos palabras generales como procesar, Descartamos palabras generales como procesar, enviar, datos. Por ejemplo, pondríamos: Procesar enviar, datos. Por ejemplo, pondríamos: Procesar pedido, Enviar factura, datos fiscales, DNI, etc...pedido, Enviar factura, datos fiscales, DNI, etc...

Nombre de procesosNombre de procesos: Procurar que hagan : Procurar que hagan referencia a sus entradas y salidas. Por ejemplo: referencia a sus entradas y salidas. Por ejemplo: Validación del numero de cuenta. (habrá un flujo de Validación del numero de cuenta. (habrá un flujo de datos "cuenta" y un flujo de salida "cuenta validada".datos "cuenta" y un flujo de salida "cuenta validada".

Numero de procesosNumero de procesos por nivel: Regla de 7+-2. por nivel: Regla de 7+-2. Numero de nivelesNumero de niveles: Regla de 7+-2 : Regla de 7+-2

Page 16: Resumen Dfds

Un flujo de datos se puede dividir en 2 o más al entrar en un proceso. Por ejemplo:  Se comprueba como datos_tecnicos se divide en dos flujos: petición_información_tecnicos y datos _profesionales. También puede ocurrir al revés, que dos flujos se fundan en uno. 

1

TRATAR TECNICOS

datostecnicos

peticioninformaciontecnicos

1.1

V A LID A RD A TOSTEC N IC OS

datosprofesionales

1.2

IN FOR M A R

Page 17: Resumen Dfds

DFD

Herramientas de especificación de procesosHerramientas de especificación de procesos

Salvo que sea un proceso muy importante, solo se Salvo que sea un proceso muy importante, solo se especifican los primitivos.especifican los primitivos.

Cada proceso debe describir como transforma los Cada proceso debe describir como transforma los flujos de entrada en los flujos de salida. flujos de entrada en los flujos de salida. 

Sólo se desarrollan para los procesos de más bajo Sólo se desarrollan para los procesos de más bajo nivel en un conjunto de diagramas por niveles en un nivel en un conjunto de diagramas por niveles en un DFD. DFD. 

Los procesos de mayor nivel se definen por medio Los procesos de mayor nivel se definen por medio de la red de procesos de nivel inmediatamente de la red de procesos de nivel inmediatamente inferior.inferior.

Page 18: Resumen Dfds

DFD

Hay tres herramientas principales de Hay tres herramientas principales de especificación de procesos:especificación de procesos:

Lenguaje estructuradoLenguaje estructurado Narrativa TradicionalNarrativa Tradicional Tablas de decisiónTablas de decisión

Page 19: Resumen Dfds

DFD

El El lenguaje estructuradolenguaje estructurado presenta las siguientes presenta las siguientes características:características:

Sintaxis limitadaSintaxis limitada Utilizar verbos precisos sin ambigüedad. Utilizar verbos precisos sin ambigüedad. Los nombres utilizados deben estar en el Diccionario de Datos.Los nombres utilizados deben estar en el Diccionario de Datos.

Page 20: Resumen Dfds

DFD

Ejemplo lenguaje estructurado: Examinar una serie de registros Ejemplo lenguaje estructurado: Examinar una serie de registros de pedidos en el almacén PEDIDOS para calcular un total de pedidos en el almacén PEDIDOS para calcular un total diario:diario: total_diario = 0total_diario = 0

HACER MIENTRAS haya mas pedidos en PEDIDOS con HACER MIENTRAS haya mas pedidos en PEDIDOS con fecha_pedido = fecha_actualfecha_pedido = fecha_actual

LEER el siguiente PEDIDO en PEDIDOSLEER el siguiente PEDIDO en PEDIDOS

MOSTRAR a contabilidad número de pedido,nombre-cliente y MOSTRAR a contabilidad número de pedido,nombre-cliente y cantidad totalcantidad total

total-diario = total-diario + cantidad totaltotal-diario = total-diario + cantidad total

FIN HACERFIN HACER

RETORNAR total-diarioRETORNAR total-diario

Page 21: Resumen Dfds

DFD Ejemplo de Tabla de Ejemplo de Tabla de

Decisión:Decisión:

Edad > 21 S S S N N Sexo M M H M H Peso > 100 S N S S N

Medicamento 1 X X X Medicamento 2 X X Ninguno X

Ejemplo narrativa tradicional:

"para aplicar el descuento, el cliente debe tener una cifra de compra de más de 3 millones de pesetas / año y un buen historial de pagos o haber sido cliente mas de 5 años".

 

Page 22: Resumen Dfds

DFDDICCIONARIO DE DATOSDICCIONARIO DE DATOS   Completa la información que aparece en los DFDs aportando Completa la información que aparece en los DFDs aportando

descripciones de los flujos, ficheros, entidades externas y primitivas descripciones de los flujos, ficheros, entidades externas y primitivas funcionales (y algún proceso en el que no se describe suficiente funcionales (y algún proceso en el que no se describe suficiente con los DFDs).con los DFDs).

Notación BNF: Notación BNF: = esta compuesto de= esta compuesto de+ y+ y() optativo() optativo{} iteración{} iteración[] seleccionar una de varias alternativas[] seleccionar una de varias alternativas** comentario** comentario| separar opciones alternativas| separar opciones alternativas

Page 23: Resumen Dfds

Ejemplo de un Diccionario de Datos (almacenes y flujos de datos)ARTICULO-PEDIDOS = {articulo-pedido}ARTICULO-PEDIDOS = {articulo-pedido} articulo-pedido = @numero_factura + @cod_libro + cantidad + precio + descuentoarticulo-pedido = @numero_factura + @cod_libro + cantidad + precio + descuento    PEDIDOS = {pedido}PEDIDOS = {pedido} pedido = @num_factura + identificacion-cliente + fecha-pedido + {articulo-pedido} pedido = @num_factura + identificacion-cliente + fecha-pedido + {articulo-pedido}

+ cargos-envio + fecha-envio + (vendedor) + total-pedido+ cargos-envio + fecha-envio + (vendedor) + total-pedido    reporte-devoluciones = *informe para el departamento de contabilidad que reporte-devoluciones = *informe para el departamento de contabilidad que

muestra las devoluciones de cada libro*muestra las devoluciones de cada libro* { {id-cliente + nombre + num_factura } + total_copias + total_ventas_libro}{ {id-cliente + nombre + num_factura } + total_copias + total_ventas_libro}    respuesta_libro_agotado = ["no existe tal libro" | "El libro etá descatalogado"]respuesta_libro_agotado = ["no existe tal libro" | "El libro etá descatalogado"]   reporte-devoluciones y respuesta-libro-agotado son especificaciones de flujos de reporte-devoluciones y respuesta-libro-agotado son especificaciones de flujos de

datos.datos. Las palabras en mayusculas significa que es un almacén.Las palabras en mayusculas significa que es un almacén.

Page 24: Resumen Dfds

Ejemplo de especificación de Proceso (que se incluye en un diccionario de datos)

COMIENZACOMIENZA  

ENCONTRAR registro de libro en LIBROS con titulo_libroENCONTRAR registro de libro en LIBROS con titulo_librorespuesta-info-libro = registro librorespuesta-info-libro = registro libroRETORNAR respuesta-info-libroRETORNAR respuesta-info-libro

  TERMINATERMINA

1

PROPORCIONARINFORMACIONLIBROS

respuesta_info_libro

D2

LIBROS

titulo_libro

Page 25: Resumen Dfds