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

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

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. • Cuando un proceso almacena 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. Análisis y Diseño Sistemas 4 . 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. y por tanto. • Sirve para conectar el resto de los componentes de un DFD. • No es un activador de procesos. escritura. • Los datos no pueden ser creados ni destruidos por un flujo de datos. 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.

se detallará la entrada y salida que tenga. hasta llegar a un nivel suficiente de detalle. además de la descripción asociada que explique lo que realiza. 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 .Varios DFD en niveles intermedios . • Representar el DFD de primer nivel. En ellos.DFD : Descomposición por Niveles • El sistema deberá contener: .Un Diagrama de contexto (primer nivel) . Análisis y Diseño Sistemas DFD : Construcción • Representar el diagrama de contexto. indicando los distintos subsistemas funcionales en que se descompone nuestro sistema. • Se recomienda el utilizar cuatro niveles de descomposición de diagramas. • Descomponer cada uno de los procesos que aparecen en el DFD de primer nivel.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).

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 .DIAGRAMA DE CONTEXTO PROCESO MATRICULA (Nivel 0) Identificación Diagrama elaborado con Process Analyst de PowerDesigner 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 .[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.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.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 .USED AT: . 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: .

necesaria para expresar : – composición (secuencia ?) – cómo un item esta compuesto de unidades planas (sus atributos).USED AT: . etc.items que no siempre estan presentes.) listas. – opcionalidad . arreglos (arrays). Análisis y Diseño Sistemas 9 .g. – selección – valores para items a seleccionar desde alternativas. 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 – items que son repetidos en (e.

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

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

• Se necesitan métodos que remuevan ambiguedades desde la descripción del sistema.Métodos utilizados para Especificar Procesos • Todos los procesos en un DFD deben ser descritos. • Los métodos usados para describir procesos de alto nivel. 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 los otros utilizando un lenguaje estructurado. y que pueda ser facilmente comprendido por usuarios y programadores. • Los primeros son descritos usualmente utilizando lenguaje natural. Análisis y Diseño Sistemas 12 . difieren de aquellos utilizados para describir procesos detallados.

removiendo ambiguedades lógicas. Análisis y Diseño Sistemas 13 . • Las técnicas de decisión se utilizan donde una de un número de acciones va a ser seleccionada.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. dependiendo de un número de condiciones.

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. Not equal to Análisis y Diseño Sistemas 16 . Greater than or equal to • Equals . Subtract . Divide . 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. en las sentencias imperativas. Less than • Less than or equal to .

.......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 .Lógica del Inglés Estructurado • • • • • • • BEGIN ……. UNTIL WHILE ………DO IF ……...THEN ………. . END CASE REPEAT…….

Análisis y Diseño Sistemas 18 . 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.

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 .

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 .02 Send ‘DESCUENTO AUTORIZADO’ END END.00 THEN BEGIN CANT_DESCUENTO = SALE-VALUE * 0.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.

Send ‘ Resumen Ventas ’ CASE TYPE OF ‘Cuenta ’: BEGIN Send ‘ Cuenta Correo ’ IF Valor_Venta = 500.02 send ‘ Descuento Autorizado ’ END.00 THEN BEGIN Cant_Descuento = Valor_Vta* 0..Z’ son valores que pueden ser tomados por ‘name’. END Análisis y Diseño Sistemas 21 . 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.. Write Ventas record. 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...b) Selección Múltiple Valor Test Grupo A sentencias .

END ‘Credito’: BEGIN Send ‘Recibir’.‘Contado’. 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 .01 send ‘Datos Factura’ END END END.’Cheque’: BEGIN Send ‘Recibir’. END ‘Credito’: BEGIN Cant_Factura = Valor_Vta + Valor_Vta* 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 .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.

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