MTP Tema 2: Introducción al Análisis Estructurado MTP Tema 2: Introducción al Análisis Estructurado Objetivos 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 MTP Tema 2: Introducción al Análisis Estructurado 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. EUI-FI UPV 1 Tema 2: Introducción al Análisis Estructurado MTP Bibliografía 2 Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción ■ Bibliografía básica: ◆ ◆ ◆ ■ Metodología y Tecnología de la Programación. Capítulo 8. SPUPV97.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. Propósitos del Análisis de Requisitos ◆ ◆ ◆ ■ Bibliografía complementaria: ◆ ◆ ◆ Análisis Estructurado Moderno. E. Yourdon. Prentice Hall, 1994. Software Engineering. Capítulos 4, 5, 6. I. Sommerville. AddisonWesley, 1996. The Practical Guide to Structured System Design. M. Page-Jones. Prentice Hall, 1988. EUI-FI UPV 3 Obtener una descripción lógica del sistema a desarrollar. Descripción del ámbito del sistema. Especificación: • funcional • de datos • de rendimiento • de interfaz • de pruebas EUI-FI UPV 4 MTP ■ ◆ Introducción al Análisis Estructurado Introducción ■ 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 MTP ◆ ◆ ◆ ◆ 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. EUI-FI UPV 5 Tema 2: Introducción al Análisis Estructurado MTP 6 Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción Diagrama de Flujo de Datos (DFD) Qué Herramientas utiliza el Análisis Estructurado ◆ Tema 2: Introducción al Análisis Estructurado Introducción EUI-FI UPV ■ MTP Introducción al Análisis Estructurado Desafíos del Análisis ◆ ■ Tema 2: Introducción al 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 El DFD representa un modelo del flujo de información del sistema y se caracteriza porque: ◆ ◆ ◆ ◆ ◆ ◆ ◆ EUI-FI UPV 7 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 8 MTP ■ Tema 2: Introducción al Análisis Estructurado MTP Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción al Análisis Estructurado Diagrama de Flujo de Datos (DFD) Elementos de un DFD Un ejemplo de DFD Entidades Externas ◆ Algo o alguien que envía o recibe información. ◆ Marcan los límites del sistema. ■ Notación Libros Editores Cliente pedido detalle libro Nombre de Entidad Externa dirección Estado de crédito 2.2 Crear Petición a editores 2.1 Verificar si el pedido es válido pedido valido Clientes orden de compra pedido por lote ■ Ejemplos Departamento de ventas Editor Jefe de Personal Cliente Proveedor Pedidos Pendientes EUI-FI UPV MTP EUI-FI UPV 9 Tema 2: Introducción al Análisis Estructurado MTP 10 Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción al Análisis Estructurado Elementos de un DFD 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 Procesos ◆ Algo o alguien que transforma y/o manipula flujos de datos. Número ■ Notación identificador Nombre del almacén ■ ■ Ejemplos n Nombre del proceso del proceso Ejemplos Solicitudes de becas Proveedores EUI-FI UPV Facturas pendientes 11 1.2 Actualizar Inventario 5.3.1 Imprimir Expediente EUI-FI UPV 3 Calcular Retención 1.1 Pedir Nombre de Usuario 12 MTP Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Elementos de un DFD Conexiones permitidas en un DFD Entidades Procesos Almacenes ✓ Entidades X X ✓ ✓ ✓ Procesos ✓ Almacenes X X flujo de datos Ejemplos DNI Válido Nombre de usuario Informe de Ventas del mes EUI-FI UPV MTP ■ ■ ■ Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Flujos de datos ■ Representan movimientos de información dentro del sistema. ■ Pueden tener 2 o más destinos simultáneamente. ■ Notación Nombre del ■ MTP EUI-FI UPV 13 Tema 2: Introducción al Análisis Estructurado MTP 14 Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción al Análisis Estructurado Explosión de un proceso 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. EUI-FI UPV 15 ■ 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 16 MTP Tema 2: Introducción al Análisis Estructurado MTP Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción al Análisis Estructurado Niveles de un DFD 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 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. EUI-FI UPV 17 MTP Tema 2: Introducción al Análisis Estructurado MTP 18 Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción al Análisis Estructurado Niveles de un DFD Guías para construir los DFDs Diagrama de Contexto b 0 a ■ 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. DFD del Nivel 0 explosión de proceso 0 DFD 0 d1 1 3 DFD del Nivel 1 2 explosión de proceso 2 DFD 2 2.1 2.2 2.4 EUI-FI UPV 2.3 d2 DFD del Nivel 2 19 EUI-FI UPV 20 MTP Tema 2: Introducción al Análisis Estructurado MTP Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado 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 MTP ■ ■ ◆ 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 21 Tema 2: Introducción al Análisis Estructurado MTP 22 Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción al Análisis Estructurado Diccionario de Datos 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. EUI-FI UPV 23 ■ 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 separador de alternativas en el constructor [] EUI-FI UPV 24 MTP ■ Tema 2: Introducción al Análisis Estructurado ◆ ◆ ◆ ◆ ◆ Introducción al Análisis Estructurado Diccionario de Datos Diccionario de Datos MTP ■ ■ ■ Ejemplos ◆ estado_civil = [s|c|v|d|x|o] ◆ 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 ■ Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Ejemplos ◆ nombre = título_cortesía + primer_nombre + (segundo_nombre) + apellido_paterno + apellido_materno ◆ MTP registro_empleado =* datos de un empleado * nombre_empleado + num_empleado + fecha_nacimiento + (num_teléfono) + dirección + estado_civil + {nombre_hijo} EUI-FI UPV 25 Tema 2: Introducción al Análisis Estructurado MTP 26 Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción al Análisis Estructurado Especificación de procesos Lenguaje Estructurado 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. EUI-FI UPV 27 ■ 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. ✦ Combinación de constructores estructurados. EUI-FI UPV 28 MTP ◆ ◆ ◆ Tema 2: Introducción al Análisis Estructurado MTP Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Introducción al Análisis Estructurado Lenguaje 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 MTP Ejemplo Nombre Proceso: Verificar_Crédito Id_cliente Número : 3.5 pedido_de_pago_previo Definición : Decidir tratamiento de pago para pedidos. Sin pedidos previo pago o si debe 3.5 pedidos_con_crédito_ok pedirse el pago al cliente. Verificar Crédito Entradas : pedidos historia_de_pagos Salidas : pedido_de_pago_previo historia_de_pagos pedidos_con_credito_ok pedido_rechazado pedido_rechazado ■ EUI-FI UPV 29 Tema 2: Introducción al Análisis Estructurado MTP Introducción al Análisis Estructurado 30 Tema 2: Introducción al Análisis Estructurado Introducción al Análisis Estructurado Lenguaje Estructurado Lógica Interna: Árboles de decisión ■ INICIO LEER historia_de_pagos 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. primer orden más de 12 días EN CASO hacer pedido CASO cliente es nuevo ENVIAR pedido_de_pago_previo CASO cliente es corriente (*promedio de dos pedidos mensuales*) OBTENER balance total órdenes < 100 SI balance esta vencido más de dos meses total órdenes >= 100 ENVIAR pedido_rechazado SI NO ENVIAR pedido_con_credito_ok FIN_SI FINCASO TÉRMINO EUI-FI UPV primer orden 12 días o menos descuento editor sin descuento editor 31 esperar calcular descuento y hacer pedido hacer pedido EUI-FI UPV 32 MTP Tema 2: Introducción al Análisis Estructurado MTP Tema 2: Introducción al Análisis Estructurado Ejercicio: Construir el Diagrama de Contexto Introducción al Análisis Estructurado Tablas de decisión ■ CLIENTES 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 Medicamento 2 X X Medicamento 3 Ninguno 1. Leer Pedido X MTP No_existe Artículos X 33 Tema 2: Introducción al Análisis Estructurado Ejercicio: Construir el Diagrama de Contexto CLIENTES Línea_pedido Línea_impresión SISTEMA EUI-FI UPV Cod_cliente 6. 7. 4. Formatear %_Descuento Calcular Ver Importe Importe Descuento Importe_Neto Neto Neto Cliente 35 No_existe Importe_Total Importe_Total Cod_Artículo 3. 5. Importe_Artículo 2. Válido Calcular Calcular Validar Importe Importe Artículo Artículo Total X EUI-FI UPV Importe Neto Formateado Cantidad Cod_Artículo X X 8. Escribir Línea_Impresión Imp. Neto Formateado Línea_Pedido X X Tarifa_Descuentos CLIENTES Tarifa_Artículos EUI-FI UPV 34