DIAGRAMAS DE FLUJO DE DATOS (DFD

)
Ing. Luis Zuloaga Rotta

Análisis y Diseño Sistemas

DFD’s
• Muestran en forma visual sólo el flujo de datos entre los distintos procesos, entidades externas y almacenes que conforman un sistema. • Cuando los analistas de sistemas indagan sobre los requerimientos de información de los usuarios, deben ser capaces de concebir la manera en que los datos fluyen a través del sistema u organización, los procesos que sufren estos datos y sus tipos de salidas.
Análisis y Diseño Sistemas

1

Elementos de un Diagrama Flujo Datos (DFD)
ALUMNOS

Entidad Externa

Persona, grupo de personas o unidad de negocio que entrega yo recibe información. Conjunto de actividades de negocio que explican que se hace y como se llevan a cabo. Señala el flujo de datos de una entidad externa a un proceso y viceversa, de un proceso a otro, y de un proceso a un almacén de datos y viceversa. Lugar físico donde se almacenan los datos procesados o desde donde se recuperan para apoyar un proceso.

1 MATRICULA

Proceso

+
Flujo Datos Almacén Datos

ALUMNOS

Análisis y Diseño Sistemas

Otros símbolos para los elementos de un DFD
Entidad Externa

Proceso

Almacén de Datos Flujo Datos
Análisis y Diseño Sistemas

2

Análisis y Diseño Sistemas 3 . aunque normalmente sólo aparecerá en el diagrama de contexto. • Un proceso puede trasformar un dato en varios. • Pueden aparecer varias veces en un mismo diagrama. • Suministra información acerca de la conexión del sistema con el mundo exterior. esto no se contemplaría en el diagrama. para evitar entrecruzamientos de líneas. sólo lugar de transformación de ellos. Análisis y Diseño Sistemas Procesos • Cuando un flujo de datos entra en un proceso sufre una transformación.Entidad Externa • Representa personas. por estar fuera del ámbito de nuestro sistema • Puede aparecer en los distintos niveles de DFD para mejorar su comprensión. • En el caso de que las entidades externas se comunicasen entre sí. • Un proceso puede representarse señalando una localización. o sistemas que no pertenecen al sistema. La localización expresa la unidad o área dentro de la organización donde se realiza el proceso. organizaciones. • Es necesario un proceso entre una Entidad Externa y un Almacén de datos. Un proceso no es origen ni final de los datos.

Almacén de Datos • Representa la información en reposo • No puede crear. la flecha de flujo de datos se indica en la dirección del almacén de datos y a la inversa si es el proceso el que lee datos en el almacén. • Cuando un proceso almacena datos. Análisis y Diseño Sistemas 4 . actualización) Análisis y Diseño Sistemas Flujo de Datos • El concepto de flujo de datos es similar al concepto de tubería a través del cual fluye información de estructura conocida. destruir ni transformar datos • No puede estar comunicado directamente con otro almacén o Entidad externa • El flujo de datos (Entrada y Salida) no lleva nombre cuando incide sobre su contenido completo • No debe estar referido al entorno físico. no se diferencian los ficheros convencionales de las bases de datos • No se representa la clave de acceso a este almacén sino sólo la operación que se realiza (lectura. • Sirve para conectar el resto de los componentes de un DFD. • Los datos no pueden ser creados ni destruidos por un flujo de datos. y por tanto. escritura. • No es un activador de procesos.

Varios DFD en el último nivel de detalle • En cualquier momento nos puede aparecer un proceso que no necesite descomposición y es lo que denominaremos Proceso Primitivo (PP). En ellos. se detallará la entrada y salida que tenga. • Descomponer cada uno de los procesos que aparecen en el DFD de primer nivel.Varios DFD en niveles intermedios . además de la descripción asociada que explique lo que realiza. Análisis y Diseño Sistemas DFD : Construcción • Representar el diagrama de contexto.DFD : Descomposición por Niveles • El sistema deberá contener: .Un Diagrama de contexto (primer nivel) . • Representar el DFD de primer nivel. indicando los distintos subsistemas funcionales en que se descompone nuestro sistema. hasta llegar a un nivel suficiente de detalle. • Se recomienda el utilizar cuatro niveles de descomposición de diagramas. Nivel 0: Diagrama de contexto Nivel 1: Subsistemas Nivel 2: Funciones de cada subsistema Nivel 3: Subfunciones asociadas Nivel 4: Procesos necesarios para el tratamiento de cada subfunción Análisis y Diseño Sistemas 5 .

DIAGRAMA DE CONTEXTO PROCESO MATRICULA (Nivel 0) Identificación Diagrama elaborado con Process Analyst de PowerDesigner 6.0 Estadísticas Matricula Requerimiento Matricula ALUMNOS 1 Horarios MATRICULA Documentos Matricula COMISION MATRICULA + Alumnos Matriculados Constancia Matricula OERA Análisis y Diseño Sistemas 1 Documentos Verificados VERIFICAR DOCUMENTOS [Documentos Matricula] DIAGRAMA DE PRIMER NIVEL DOCUMENTOS 2 VERIFICAR IDENTIFICACION ALUMNOS Datos Identificación ALUMNOS [Identificación] Datos Alumno [Constancia Matricula] [Requerimiento Matricula] Datos Matricula 5 EMITIR CONSTANCIA MATRICULA Datos Matricula CURSOS MATRICULADOS Datos Matricula OERA [Alumnos Matriculados] 6 ELABORAR ESTADISTICAS 3 REGISTRO CURSOS SECCION + Datos Cursos CURSOS Datos Estadística Datos Programación Datos Cursos Sección HORARIOS [Estadísticas Matricula] Datos Cursos Sección COMISION MATRICULA [Horarios] 4 CARGAR HORARIOS Análisis y Diseño Sistemas 6 .

2 CURSOS VERIFICAR CRUCES HORARIOS [Datos Matricula] CURSOS MATRICULADOS [Datos Matricula] [Datos Programación] Diagrama de Segundo Nivel EMITIR CONSTANCIA MATRICULA Análisis y Diseño Sistemas USED AT: AUTHOR: Luis Zuloaga Rotta .1 VERIFICAR IDENTIFICACION ALUMNOS [Requerimiento Matricula] REGISTRAR CURSOS SECCION [Datos Cursos] Datos Cursos Registrados Datos Cursos Cruce [Datos Cursos Sección] [Datos Estadística] 3.[Datos Alumno] 3. PROJECT: SISTEMA CADEMICO CURSO A&DS NOTES: 1 2 3 4 5 6 7 8 9 10 DATE: 16/06/2001 REV: 16/06/2001 WORKING DRAFT RECOMMENDED PUBLICATION READER DATE CONTEXT: TOP Identificación Documentos Matricula 1 ALUMNO Requerimiento Matricula Constancia Matricula $0 0 Alumnos Matriculados 3 MATRICULA OERA Estadisticas Matricula 2 COMISION MATRICULA Horarios Diagrama Contexto elaborado con BPWin 2.5 de Platinum NODE: TITLE: NUMBER: A-0 Análisis y Diseño Sistemas MATRICULA 1 7 .

Curso A&DS AUTHOR: Luis Zuloaga Rotta PROJECT: SISTEMA CADEMICO DATE: 16/06/2001 REV: 16/06/2001 WORKING DRAFT RECOMMENDED PUBLICATION READER DATE CONTEXT: NOTES: 1 2 3 4 5 6 7 8 9 10 A0 1 ALUMNO Requerimiento Matricula $0 31 Datos Cursos 5 CURSOS REGISTRAR CURSO SECCION Datos Cursos Cruce Datos Estadística 3 Datos Alumno Datos Curso Sección Datos Cursos Registrados HORARIOS $0 32 Datos Matricula Datos Programación VERIFICAR CRUCES Datos Matricula 6 CURSOS MATRICULADOS NODE: TITLE: REGISTRO CURSOS SECCIÓN NUMBER: 3 A3 Análisis y Diseño Sistemas 8 . Curso A&DS AUTHOR: Luis Zuloaga Rotta PROJECT: SISTEMA CADEMICO DATE: 16/06/2001 REV: 16/06/2001 WORKING DRAFT RECOMMENDED READER DATE CONTEXT: NOTES: 1 2 3 4 5 6 7 8 9 10 1 PUBLICATION A-0 ALUMNO Documentos Matricula 1 $0 1 Documentos Verificados 2 Datos Identificación $0 2 DOCUMENTOS ALUMNOS Datos Matricula 6 VERIFICAR DOCUMENTOS Identificación CURSOS MATRICULADOS 3 VERIFICAR IDENTIFICACIÓN Datos Alumno Constancia Matricula $0 EMITIR CONSTANCIA MATRICULA Requerimiento Matricula 4 Datos Matricula Datos Cursos 5 CURSOS OERA $0 3 REGISTRO CURSOS SECCIÓN Datos Curso Sección Datos Programación $0 5 Alumnos Matriculados 2 COMISION MATRICULA Horarios $0 6 Datos Estadística 3 ELABORAR ESTADISTICAS CARGAR HORARIOS Estadisticas Matricula HORARIOS NODE: TITLE: NUMBER: A0 Análisis y Diseño Sistemas MATRICULA 2 USED AT: .USED AT: .

– selección – valores para items a seleccionar desde alternativas. Análisis y Diseño Sistemas 9 .) listas. etc. – Repetición – items que son repetidos en (e. – opcionalidad . arreglos (arrays).g.items que no siempre estan presentes. necesaria para expresar : – composición (secuencia ?) – cómo un item esta compuesto de unidades planas (sus atributos).USED AT: . Curso A&DS AUTHOR: Luis Zuloaga Rotta PROJECT: SISTEMA CADEMICO DATE: 16/06/2001 REV: 16/06/2001 WORKING DRAFT RECOMMENDED PUBLICATION READER DATE CONTEXT: NOTES: 1 2 3 4 5 6 7 8 9 10 A3 Datos Matricula $0 323 PROCESAR MATRICULA 6 CURSOS MATRICULADOS Datos Matricula Datos Estadística 3 HORARIOS Datos Cursos Cruce $0 MOSTRAR CRUCES 322 Datos Cursos Cruce Datos Cursos Registrados Datos Cursos Registrados $0 321 COMPARAR HORARIOS Datos Programación NODE: TITLE: VERIFICAR CRUCES NUMBER: 4 A32 Análisis y Diseño Sistemas Diccionario de Datos (DD) • Notación para representar la estructura de items de datos.

.. repetición significa entre n y m (inclusive) significa que uno de los atributos entre las barras esta presente.Símbolos usados en la notación del DD notació Asigne un nombre significativo a cada item de datos básico o compuesto. • ListaSeminarios = Titulo + NumeroVersion + Fecha + { DiaSemana + Horario + Aula + {Nombre + ApellidoPaterno} } • NumeroVersion = Digito + ".] Análisis y Diseño Sistemas 10 . i.." + Digito Digito = ["1" |"2" |"3" |"4" |….e.] Horario = HoraInicio + "-" + HoraTermino HoraInicio = ["9" |"10" |"11" |"12"…. Análisis y Diseño Sistemas Ejemplo : Lista Seminarios • ListaSeminarios = Titulo + NumeroVersion + Fecha + {DetalleSeminario} • DetalleSeminario = DiaSemana + Horario + Aula + {ListaEstudiantes} • ListaEstudiantes = {Nombre + Apellido Paterno} • o…. o ‘esta hecho de' significa ‘ y ' significa cero o mas de cualquier cosa que este dentro de las llaves. informalmente. significa que el item entre parentesis es opcional incluye literales (valor a utilizar) incluye comentarios – define el significado de datos. = + {} n{ }m [||] () "" ** significa ‘es definido como'.

Análisis y Diseño Sistemas ESPECIFICACIÓN DE PROCESOS Análisis y Diseño Sistemas 11 .] • SemanaInstruccion = 2{DetalleExposicion}2 + (ListaSeminarios) + (TrabajoPractico) • DetalleExposicion = *Descripcion del contenido Exposicion* • FechaInicio = Fecha FechaDePlan = Fecha Fecha = *fecha en formato "dd-mmm-yy"* • etc.Un nuevo Ejemplo : PlanCurso • PlanCurso = FechaDePlan + NroVersion + Titulo + {DetalleSemanal} • DetalleSemanal = NroSemana + FechaInicio + [SemanaInstruccion|SemanaNoInstruccion] • SemanaNoInstruccion = [“administrativa"| "introduccion"| “aprendizaje centrado estudiante"| . etc...

• Los métodos usados para describir procesos de alto nivel. Análisis y Diseño Sistemas 12 . difieren de aquellos utilizados para describir procesos detallados.Métodos utilizados para Especificar Procesos • Todos los procesos en un DFD deben ser descritos. • Los primeros son descritos usualmente utilizando lenguaje natural. y los otros utilizando un lenguaje estructurado. • Se necesitan métodos que remuevan ambiguedades desde la descripción del sistema. Análisis y Diseño Sistemas Que es lo que el proceso hace ? • Los procesos a bajo nivel deben ser descritos en forma precisa y sin ambiguedades. y que pueda ser facilmente comprendido por usuarios y programadores.

Técnicas del Análisis Estructurado • • • • Inglés Estructurado Inglés Extendido Tablas de Decisión Árbol de Decisión Análisis y Diseño Sistemas Inglés Estructurado y Extendido Tabla y Árbol de Decisi ón • Las dos técnicas del inglés permiten construir descripciones verbales dentro de una estructura lógica. Análisis y Diseño Sistemas 13 . removiendo ambiguedades lógicas. dependiendo de un número de condiciones. • Las técnicas de decisión se utilizan donde una de un número de acciones va a ser seleccionada.

Inglés Estructurado IF limite crédito excedido THEN IF cliente tiene mala historia de pago THEN rechase crédito ELSE IF compra es mayor de 200 $ THEN rechase crédito ELSE pasar a administrador ELSE permitir crédito Análisis y Diseño Sistemas Inglés Extendido IF nivel de crédito excedido THEN (limite crédito excedido) IF cliente tiene mala historia de pago THEN rechazar crédito ELSE (cliente tiene buena historia de pago) IF compra es mayor a 200 $ THEN rechazar crédito ELSE (compra es menor a 200 $) pasar a administrador ELSE (nivel de crédito no excedido) permitir crédito Análisis y Diseño Sistemas 14 .

TABLA DE DECISIÓN Acciones Condiciones Límite crédito excedido Cliente con buena historia de pago V V V V V F V V F F F F F V V F F F F X Compra arriba de 200 $ V F Permitir crédito Rechazar crédito Pasar a administrador X X V F V X X X X X Análisis y Diseño Sistemas Árbol de Decisión Buena historia pago Limite Crédito Excedido Compra arriba 200$ Rechazar crédito Pasar administrador Compra abajo 200$ Rechazar crédito Mala historia pago Limite Crédito no Excedido Análisis y Diseño Sistemas Permitir crédito 15 .

Inglés Estructurado • Sentencias imperativas: usualmente consiste de un verbo imperativo seguido por el contenido de uno o mas almacenamiento s de datos sobre los cuales el verbo opera. Análisis y Diseño Sistemas Operadores Aritméticos y Booleanos • Multiply • Add • Exponential • Or . Not • Greater than . • Por ejemplo : ADD Salario_Persona to Total_Salario • Pueden utilizarse operadores Booleanos y aritméticos. Divide . Subtract . Not equal to Análisis y Diseño Sistemas 16 . en las sentencias imperativas. Less than • Less than or equal to . Greater than or equal to • Equals .

...... END CASE REPEAT……. UNTIL WHILE ………DO IF ……... .THEN ……….Lógica del Inglés Estructurado • • • • • • • BEGIN ……..ELSE DO FOR Análisis y Diseño Sistemas Orden Preliminar = Nro_Orden + {Nro_Parte + Cantidad } Orden Finalizada Precio_Parte = Nro_Parte + Precio_Unitario Finalizar Orden Descripción del Proceso : Finalizar Orden Análisis y Diseño Sistemas = + + + + + Nro_Orden {Nro_Parte Cantidad Precio_Unitario Valor_Parte} Valor_Orden 17 .

Send ‘ Resumen Ventas ’ END.Descripción del proceso : Registro de Ventas Reporte de Venta = + + + Cliente Nro_Parte Cantidad_Vendida Precio_Unitario VENTAS = Nro_Parte + Cantidad_Total + Valor_Total Registro de Ventas Resúmen de Ventas = Cliente + Valor_de_Venta Análisis y Diseño Sistemas BEGIN Receive ‘ REPORTE VENTA ’ Get VENTAS record for Nro PARTE in ‘REPORTE VENTA’ CANT_TOTAL = CANT_TOTAL+ CANT_VENDIDA VALOR_VTA = CANT_VENDIDA * PRECIO_UNIT VALOR_TOT = VALOR_TOT + VALOR_VTA Write VENTAS record. Análisis y Diseño Sistemas 18 .

Descripción de proceso : Sumando Descuentos Emisión de Autorización de Descuentos = CLIENTE + IMPORTE DEL DESCUENTO Descuentos Registro de Ventas = + + + Cliente Nro_Parte Cantidad_Vendida Precio_Unitario Registro de Ventas Resúmen de Ventas = Cliente + Tipo + Valor_de_Venta VENTAS = Nro_Parte + Cantidad_Total + Valor_Total Análisis y Diseño Sistemas Descripción del proceso: Registro Ventas Emisión de descuentos Notificación de Descuento = Cliente + Importe_Descuento Envío de Cuentas Recepción = Cliente + Valor_Venta Informe de Ventas = Cliente + Nro_Parte + Cantidad_Vendida + Precio_Unitario + Tipo Emisión de Facturas Registro de Ventas Cuentas de Correo = Cliente + Valor_de_Venta Resumen de Ventas = Cliente + Tipo + Valor_de_Venta Datos de la Factura = Cliente + Nro_Parte + Importe_de_Factura VENTAS = Nro_Parte + Cantidad_Total + Valor_Total Análisis y Diseño Sistemas 19 .

02 Send ‘DESCUENTO AUTORIZADO’ END END. Send ‘RESUMEN VENTAS ’ IF VALOR_VENTA > 500. Análisis y Diseño Sistemas Estructura de Decisión a) Selección de dos maneras Condición Grupo A sentencias Grupo B sentencias IF condition THEN BEGIN Group A sentences END ELSE BEGIN Group B sentences END Análisis y Diseño Sistemas 20 .BEGIN Receive ‘ REPORTE VENTA ’ Get VENTAS record for NRO_PARTE in ‘REPORTE VENTA’ CANT_TOTAL = CANT_TOTAL + CANT_VENDIDA VALOR_VENTA = CANT_VENDIDA * PRECIO_UNIT VALOR_TOTAL = VALOR_TOTAL + VALOR_VENTA Write VENTAS record.00 THEN BEGIN CANT_DESCUENTO = SALE-VALUE * 0.

.02 send ‘ Descuento Autorizado ’ END.Z’ son valores que pueden ser tomados por ‘name’. BEGIN Receive ‘Reporte Ventas ’ Get Ventas record for Nro_Parte in ‘ Reporte Ventas ’ Cant_Total = Cant_Total + Cant_Vendida Cant_Vendida = Cant_Vendida * Precio_Unit Valor_TOTAL = Valor_TOTAL + Valor_Venta..b) Selección Múltiple Valor Test Grupo A sentencias . Write Ventas record. Send ‘ Resumen Ventas ’ CASE TYPE OF ‘Cuenta ’: BEGIN Send ‘ Cuenta Correo ’ IF Valor_Venta = 500. END Análisis y Diseño Sistemas 21 ...00 THEN BEGIN Cant_Descuento = Valor_Vta* 0. Grupo k sentencias Grupo L sentencias Grupo Z sentencias Case (name) of A : BEGIN Group A sentences END Z : BEGIN Group Z sentences END Análisis y Diseño Sistemas Aqui ’name’ es una variable y ‘A.

END ‘Credito’: BEGIN Send ‘Recibir’.01 send ‘Datos Factura’ END END END.’Cheque’: BEGIN Send ‘Recibir’. Análisis y Diseño Sistemas Estructuras de Repetición a) Usando WHILE Condición Grupo A sentencias WHILE condition DO BEGIN GROUP A sentences END Análisis y Diseño Sistemas 22 .‘Contado’. END ‘Credito’: BEGIN Cant_Factura = Valor_Vta + Valor_Vta* 0.

b) Usando REPEAT GRUPO A sentencias Condición REPEAT BEGIN GROUP A sentences END UNTIL condition Análisis y Diseño Sistemas Get ‘Orden Preliminar’ Valor_Orden = 0. WHILE there are more Lineas Orden DO BEGIN Get next ‘Linea Orden’ Get Precios record for Nro_Parte in ‘Linea Orden’ Valor_Parte = Cant_Neces * Precio Valor_Orden= Valor_Orden + Valor_Parte Create Linea Orden in ‘Orden Finalizada ’ END Send ‘Orden Finalizada’ Análisis y Diseño Sistemas 23 .

FOR each Linea Orden in an Orden DO BEGIN Get next ‘Linea Orden’ Get Precios record for Nro_Parte in ‘Linea Orden’ Valor_Parte = Cant_Neces * Precio Valor_Orden = Valor_orden + Valor_Parte Create Linea Orden in ‘Orden Finalizda’ END Send ‘Orden Finalizada’ Análisis y Diseño Sistemas 24 .Descripción del proceso : Completando Ordenes + PRECIO = Nro PARTE PRECIOS Orden Preliminar = Nro ORDEN + {Nro PARTE + CANTIDAD REQUERIDA} Completar Ordenes Orden completa = Nro ORDEN + {Nro PARTE + CANTIDAD REQUERIDA + PRECIO + VALOR PARTE} + VALOR ORDEN Análisis y Diseño Sistemas Get ‘Orden Preliminar’ Valor_Orden = 0.

Get ‘Orden Preliminar’ Valor_Orden = 0. REPEAT BEGIN Get next ‘Linea Orden’ Get Precio record for Nro_Parte in ‘Linea Orden’ Valor_Parte = Cant_Neces * Precio Valor_Orden = Valor_Orden + Valor_Parte IF Valor_Orden < Limite_Orden THEN create Linea Orden in ‘Orden Finalizada’ END UNTIL (Valor_Orden > Limite_Orden) or (there are no more Lineas Orden) Send ‘ Orden Finalizada ’ Análisis y Diseño Sistemas Descripción de proceso: Completar Ordenes Limitadas = Nro PARTE + PRECIO Orden Preliminar = Nro ORDEN + LIMITE ORDEN + {Nro PARTE + CANTIDAD REQUERIDA} Orden completa Completar Ordenes = Nro ORDEN + { Nro PARTE + CANTIDAD REQUERIDA + PRECIO + VALOR PARTE} + VALOR ORDEN Análisis y Diseño Sistemas 25 .

Sign up to vote on this title
UsefulNot useful