EUI-FI UPV 1
Tema 2:
Introducción al Análisis Estructurado
Contenidos:
◆ Introducción.
◆ Diagrama de Flujo de Datos.
✦ Elementos en un DFD. ✦ Explosión de un Proceso. ✦ Niveles de DFDs.
✦ Guías para realizar los DFDs.
◆ Diccionario de Datos.
◆ Especificación de Procesos. ◆ Realización de un ejercicio.
EUI-FI UPV 2
Objetivos
■ El alumno conocerá el Análisis Estructurado como técnica para llevar a cabo la primera fase del ciclo de vida clásico. ■ El alumno aprenderá qué es el Análisis Estructurado y qué
herramientas utiliza.
■ El alumno aprenderá a interpretar el Análisis de un sistema especificado mediante la metodología Estructurada.
MTP Tema 2: Introducción al Análisis Estructurado
Bibliografía
■ Bibliografía básica:
◆ Metodología y Tecnología de la Programación. Capítulo 8. SPUPV-97.498, 1997.
◆ Ingeniería del Software. Capítulos 5, 6 y 7. R. Pressman. McGraw Hill, 1993 (3ª ed.) y 1997 (4ª ed.).
◆ Ejercicios Solucionados de Metodología y Tecnología de la Programación. SPUPV-97.960,1997.
■ Bibliografía complementaria:
◆ Análisis Estructurado Moderno. E. Yourdon. Prentice Hall, 1994. ◆ Software Engineering. Capítulos 4, 5, 6. I. Sommerville.
Addison-Wesley, 1996.
◆ The Practical Guide to Structured System Design. M.Page-Jones. Prentice Hall, 1988.
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Introducción ■ Propósitos del Análisis de Requisitos
◆ Obtener una descripción lógica del sistemaa desarrollar.
◆ Descripción del ámbito del sistema. ◆ Especificación: • funcional • de datos • de rendimiento • de interfaz • de pruebas
EUI-FI UPV 5
Introducción al Análisis Estructurado
Introducción ■ Desafíos del Análisis
◆ Analista →→→→entender con precisión lo que el usuario quiere.
◆ Usuario →→→→entender con precisión el producto que se le ofrece.
■ Clave del éxito
◆ Buena comunicación Usuario - Analista
EUI-FI UPV 6
Introducción al Análisis Estructurado
Introducción ■ Qué es el Análisis Estructurado
◆ Técnica de modelado del flujo, contenido y transformación de la información que fluye por un sistema.
◆ Nació como complemento al Diseño Estructurado. ◆ El término “Análisis Estructurado” fue popularizado por
DeMarco a fines de los 70, quien presentó y denominó los símbolos gráficos que permitirían al analista crear modelos de flujos de información.
◆ Yourdon, Gane y Sarson y otros presentaron variaciones a la propuesta original.
◆ A mediados de los 80 Ward y Mellor proponen
ampliaciones para su aplicación en sistemas de tiempo real.
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Introducción
■ Qué Herramientas utiliza el Análisis Estructurado ◆ Diagramas de Flujo de Datos (DFD)
◆ Diccionario de Datos
◆ Especificaciones de Procesos ◆ Diagramas Entidad-Relación
◆ Diagramas de Transición de Estados
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Diagrama de Flujo de Datos (DFD)
■ El DFDrepresenta un modelo del flujo de información del sistema y se caracteriza porque:
◆ Muestra el flujo de la información.
◆ Muestra las transformaciones aplicadas a los datos desde la entrada hasta la salida.
◆ Especifica QUÉ hace el sistema. ◆ Es gráfico.
◆ Es comprensible por los usuarios.
◆ Se puede usar a cualquier nivel de detalle.
◆ Permite el particionamiento del sistema en diferentes niveles de detalle.
EUI-FI UPV 9
Introducción al Análisis Estructurado
Diagrama de Flujo de Datos (DFD)
■ Un ejemplo de DFD 2.1 Verificar si el pedido es válido 2.2 Crear Petición a editores Editor Cliente Clientes Libros Editores Pedidos Pendientes
pedido valido pedido por lote
orden de compra pedido detalle libro
dirección
Estado de crédito
EUI-FI UPV 10
Introducción al Análisis Estructurado
Elementos de un DFD Entidades Externas
◆ Algo o alguien que envía o recibe información. ◆ Marcan los límites del sistema.
■ Notación ■ Ejemplos Nombre de Entidad Externa Departamento de ventas Jefe
de Personal Cliente Proveedor
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Elementos de un DFD Almacenes de datos
◆ Depósito (computacional o no) donde se guardan datos para uso posterior.
◆ P.e. Un fichero, una Base de Datos, un archivador ■ Notación
■ Ejemplos
Nombre del almacén
Solicitudes de becas Proveedores Facturas pendientes
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Elementos de un DFD Procesos
◆ Algo o alguien que transforma y/o manipula flujos de datos. ■ Notación ■ Ejemplos n Nombre del proceso Número identificador del proceso 1.2 Actualizar Inventario 5.3.1 Imprimir Expediente 3 Calcular Retención 1.1 Pedir Nombre de Usuario
EUI-FI UPV 13
Introducción al Análisis Estructurado
Elementos de un DFD Flujos de datos
■ Representan movimientos de información dentro del sistema.
■ Pueden tener 2 o más destinos simultáneamente. ■ Notación ■ Ejemplos Nombre del flujo de datos DNI Válido Informe de Ventas del mes Nombre
de usuario
EUI-FI UPV 14
Introducción al Análisis Estructurado
Conexiones permitidas en un DFD
Entidades Procesos Almacenes
Entidades
X
✓
X
Procesos
✓
✓
✓
Almacenes
X
✓
X
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Explosión de un proceso
■ Consiste en desagregar un proceso padre en un nuevo DFD de mayor detalle.
■ Se produce a medida que se conocen más actividades internas a dicho proceso.
■ Normas a seguir al explosionar un proceso:
✦ Numeración: Al explosionar el proceso “n”, se numerarán los procesos hijos como n.1, n.2, ...
✦ DFD Balanceado: Todos los flujos que entraban o salían del proceso padre deberán entrar y salir del conjunto de procesos hijos.
✦ Del DFD obtenido por explosión pueden surgir
nuevos flujos correspondientes al tratamiento de errores y excepciones. Asimismo pueden aparecer almacenes de datos privados.
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Explosión de un proceso
■ Otras normas de construcción de DFDs
◆ No debe tenerse en cuenta aspectos de iniciación o terminación de funciones.
◆ Generalmente, no habrá almacenes de datos en los que sólo se escriba.
◆ Todos los procesos, almacenes de datos, flujos de datos y entidades deben tener asignado un nombre. ◆ Todos los procesos deben tener al menos un flujo de
entrada y otro de salida.
◆ Los DFD deben ser independientes de la implementación.
EUI-FI UPV 17
Introducción al Análisis Estructurado
Niveles de un DFD
■ La cantidad de niveles depende de la complejidad y
magnitud del sistema.
■ Un proceso no debe explosionarse si lo que realiza se puede describir con detalle en no más de media página.
■ Normalmente en los DFDs de último nivel se muestra el
tratamiento de errores y excepciones.
EUI-FI UPV 18
Introducción al Análisis Estructurado
Niveles de un DFD ■ Diagrama de Contexto (Nivel 0)
◆ Es un resumen genérico del sistema. ◆ Un único proceso y las entidades externas. ■ DFD 0 (Nivel 1)
◆ Modelo con toda la funcionalidad del sistema. ■ DFD 1,..., DFD 2,... (Nivel 2)
◆ DFDs que corresponden a la explosión de cada proceso padre del Nivel 1.
■ Niveles Adicionales (3, 4,...)
◆ DFDs que representan la explosión de procesos contenidos en los DFDs del nivel inmediatamente anterior.
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Niveles de un DFD 0 1 2 3 2.1 2.2 2.3 2.4 a b d1 d2 DFD del Nivel 0 DFD del Nivel 1 DFD del Nivel 2 Diagrama de Contexto DFD 0 DFD 2 explosión de proceso 0 explosión de proceso 2
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Guías para construir los DFDs
■ Estudio inicial mediante: entrevistas a usuarios, lectura de documentos relacionados con el área en estudio
■ Identificar: alcance del sistema, información relevante, entidades externas.
■ Elaborar primer borrador de DFD 0, identificando procesos, flujos, almacenes de datos y entidades externas.
■ Revisión con el equipo informático. Verificar nombres
adecuados en procesos y flujos de datos, verificar que cada proceso y almacén de datos tiene entradas.
EUI-FI UPV 21
Introducción al Análisis Estructurado
Guías para construir los DFDs
■ Obtener un segundo borrador de DFD 0 incorporando posibles modificaciones.
■ Revisión con el usuario para asegurar que el DFD refleja el sistema. Obtener confirmación por parte del usuario. ■ Elaborar DFDs de segundo nivel.
■ Confirmar DFD 0 verificándolo con respecto a DFDs de segundo nivel. Verificar que los DFDs están balanceados. ■ Revisión final para validar DFD 0 y DFDs de más bajo nivel.
EUI-FI UPV 22
Introducción al Análisis Estructurado
◆ Introducción.
◆ Diagrama de Flujo de Datos. ✦ Elementos en un DFD. ✦ Explosión de un Proceso. ✦ Niveles de DFDs.
✦ Guías para realizar los DFDs. ◆ Diccionario de Datos.
◆ Especificación de Procesos. ◆ Realización de un ejercicio.
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Diccionario de Datos
■ El Diccionario de Datos contiene la descripción detallada de cada dato del sistema.
◆ Existirá una entrada por cada flujo de datos o almacén de datos que aparezca en los DFDs del sistema.
◆ Se especificará cada estructura de datos hasta el nivel más elemental.
■ Cada dato debería tener una definición que incluya:
◆ Comentario que explique el significado en el contexto del sistema.
◆ Composición, si no es un dato elemental. ◆ Valores posibles, si es un dato elemental.
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Diccionario de Datos ■ Notación = está compuesto de + concatenación de datos ( ) dato opcional { } repetición
[ ] selección de una de las alternativas
* * comentario
@ campo clave para un almacén de datos
EUI-FI UPV 25
Introducción al Análisis Estructurado
Diccionario de Datos ■ Ejemplos ◆ nombre = título_cortesía + primer_nombre + (segundo_nombre) + apellido_paterno + apellido_materno ◆ título_cortesía = [Sr| Sra.|Don|Doña] ◆ primer_nombre = {caracter_permitido} ◆ segundo_nombre = {caracter_permitido} ◆ apellido_paterno = {caracter_permitido} ◆ apellido_materno = {caracter_permitido} ◆ caracter_permitido = [A-Z|a-z|0-9|‘|-| |] EUI-FI UPV 26
Introducción al Análisis Estructurado
Diccionario de Datos
■ Ejemplos
◆ estado_civil = [s|c|v|d|x|o]
◆ registro_empleado =* datos de un empleado * nombre_empleado + num_empleado + fecha_nacimiento + (num_teléfono) + dirección + estado_civil + {nombre_hijo}
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Especificación de procesos
■ Son descripciones de la lógica interna de los procesos de los DFDs de último nivel.
■ Definen qué debe hacerse para transformar las entradas en salidas.
■ Herramientas:
◆ lenguaje estructurado o pseudocódigo, ◆ árboles de decisión,
◆ tablas de decisión,
◆ diagramas de Nassi-Schneiderman, ◆ diagramas de flujo,
◆ descripción narrativa.
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Lenguaje Estructurado ■ Lenguaje estructurado
◆ Implica utilizar el lenguaje natural con algunas
restricciones.
◆ Equilibrio entre la precisión de un lenguaje formal y la informalidad y legibilidad del lenguaje natural.
◆ Una sentencia del lenguaje estructurado debería ser: ✦ una ecuación algebraica, p.e. X = (Y*Z)/(Q+14)
✦ una sentencia imperativa consistente de un verbo y un objeto.
EUI-FI UPV 29
Introducción al Análisis Estructurado
Lenguaje Estructurado ◆ Verbos tipo:
obtener (aceptar o leer) mover borrar
poner (escribir) reemplazar ordenar
encontrar (buscar o localizar) calcular validar ◆ Objetos:
✦ elementos descritos en el Diccionario de Datos ✦ datos locales al proceso.
◆ Constructores estructurados SI condición sentencias-1 SI NO sentencias-2 FINSI EUI-FI UPV 30
Introducción al Análisis Estructurado
Lenguaje Estructurado
■ Ejemplo
Nombre Proceso: Verificar_Crédito
Número : 3.5
Definición : Decidir tratamiento de pago para pedidos. Sin previo pago o si debe pedirse el pago al cliente. Entradas : pedidos historia_de_pagos Salidas : pedido_de_pago_previo pedidos_con_credito_ok pedido_rechazado 3.5 Verificar Crédito Id_cliente pedidos historia_de_pagos pedido_rechazado pedidos_con_crédito_ok pedido_de_pago_previo
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Lenguaje Estructurado
Lógica Interna:
INICIO
LEER historia_de_pagos EN CASO
CASO cliente es nuevo
ENVIAR pedido_de_pago_previo
CASO cliente es corriente (*promedio de dos pedidos mensuales*)
OBTENER balance
SI balance esta vencido más de dos meses ENVIAR pedido_rechazado SI NO ENVIAR pedido_con_credito_ok FIN_SI
MTP Tema 2: Introducción al Análisis Estructurado
Introducción al Análisis Estructurado
Árboles de decisión
■ Se recomienda el uso del árbol de decisión cuando el número de acciones es pequeño y no son posibles todas las combinaciones.
descuento editor sin descuento total órdenes < 100 total órdenes >= 100 primer orden más de 12 días primer orden 12 días o menos hacer pedido esperar calcular descuento y hacer pedido hacer pedido
EUI-FI UPV 33
Introducción al Análisis Estructurado
Tablas de decisión
■ Se utiliza la tabla de decisión cuando existen muchas combinaciones. 1 2 3 4 5 6 7 8 edad > 21 Y Y Y Y N N N N sexo V V M M V V M M peso > 60 Y N Y N Y N Y N Medicamento 1 X X X Medicamento 2 X X Medicamento 3 X X X Ninguno X X EUI-FI UPV 34
Construir el Diagrama de Contexto
Validar
Artículo ImporteArtículo
Artículos No_existe Importe_Total Importe_Artículo %_Descuento Tarifa_Artículos 5. Calcular Importe Total 6. Calcular Importe Neto Importe_Neto 7. Formatear Importe Neto 8. Escribir Imp. Neto Formateado Importe Neto Formateado Línea_Impresión CLIENTES Importe_Total Pedido 4. Ver Descuento Cliente Cod_cliente Tarifa_Descuentos
2. Cod_ArtículoVálido Calcular3. Cantidad 1. Leer CLIENTES Cod_Artículo Línea_Pedido No_existe
MTP Tema 2: Introducción al Análisis Estructurado
Ejercicio:
Construir el Diagrama de Contexto
SISTEMA
CLIENTES Línea_pedido