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

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

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

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

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.

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 .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 .

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: .

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

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..e.] Horario = HoraInicio + "-" + HoraTermino HoraInicio = ["9" |"10" |"11" |"12"…. = + {} n{ }m [||] () "" ** significa ‘es definido como'. i..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 + ". repetición significa entre n y m (inclusive) significa que uno de los atributos entre las barras esta presente. informalmente.] Análisis y Diseño Sistemas 10 ." + Digito Digito = ["1" |"2" |"3" |"4" |…. significa que el item entre parentesis es opcional incluye literales (valor a utilizar) incluye comentarios – define el significado de datos.

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

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

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

Greater than or equal to • Equals . Not • Greater than . en las sentencias imperativas. Divide . Análisis y Diseño Sistemas Operadores Aritméticos y Booleanos • Multiply • Add • Exponential • Or . Not equal to Análisis y Diseño Sistemas 16 . Less than • Less than or equal to . Subtract .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. • Por ejemplo : ADD Salario_Persona to Total_Salario • Pueden utilizarse operadores Booleanos y aritméticos.

...... END CASE REPEAT……..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 .. UNTIL WHILE ………DO IF …….

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 .

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

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

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 .

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. 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 .

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