Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO TECNOLOGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS MORELOS TESIS MAESTRIA EN CIENCIAS COMPUTACIONALES ·, • '. . '"¡ f{ ' . ' . ~ ., ~- ,., -~· INGENIERIA DE SOFTWARE DIAGRAMA DE FLUJO DE DATOS EXTENDIDO: UN EDITOR Y SU INMERSION EN LOS METODOS FORMALES GRAFICOS POR ALFREDO FERNANDEZ DELGADO Abril de 1997. DIAGRAMA DE FLUJO DE DATOS EXTENDIDO: UN EDITOR Y SU INMERSION EN LOS METODOS FORMALES GRAFICOS. POR ALFREDOFERNANDEZDELGADO TESIS Presentada a la División de Graduados e Investigación Este Trabajo es Requisito Parcial para Obtener el Grado de Maestro en Ciencias Computacionales INSTITUTO TECNOLOGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY Abril de 1997. CONTENIDO Capítulo 1 1.1 1.2 1.3 1.4 1.5 Capítulo 2 2.1 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 2.3.1 2.4 2.4.1 2.4.2 2.5 2.5.1 Capítulo 3 3.1 Introducción Antecedentes .......................................................................................... 1 Herramientas CASE ................................................................................ 5 El problema ............................................................................................ 6 El Objetivo .............................................................................................. 6 La Estructura de la Te sis ........................................................................ 7 Fundamentos Básicos del DFD y DFDX Introducción ........................................................................................... 9 Los Diagramas de Flujo de Datos ........................................................... 1 O Notación de los DFDs ............................................................................. 10 Un Ejemplo del uso del DFD(Trámites Electorales) .............................. 13 Definición Formal del DFD .................................................................... 15 Modelado de Sistemas ............................................................................ 16 Reglas de Construcción de los DFDs ..................................................... 18 El Diagrama de Flujo de Datos eXtendido DFDX ................................. 19 Reglas de Construcción de los DFDX .................................................... 20 Acerca de la Consistencia e Integridad ................................................... 21 Reglas de Formación de la Estructura del Diagrama de Contexto ............................................................................ 22 Reglas de Formación de la Estructura de los Diagramas de Transformación ................................................................ 23 Las Operaciones de Reestructuración Para los Diagramas de Flujo de Datos ................................................... 25 Requerimientos para las Operaciones de Reestructuración ................... 26 Diseño del Editor DFDX Introducción ........................................................................................... 28 3.2 Acerca de las Interfases de Usuario ....................................................... 29 3.3 La Especificación de Requerimientos del DFDX ................................... 29 3.4 Diseño ..................................................................................................... 30 3.4.1 Arquitectura ............................................................................................ 31 3.4.1.1 Los Conjuntos de Información ............................................................... 31 3.4.1.1.1 Datos de Entrada ..................................................................................... 31 3 .4.1.1.2 Datos de Salida ....................................................................................... 31 3.4.1.1.3 Bases de Datos ........................................................................................ 31 3.4.1.1.3.1 Diseño Conceptual de La Base De Datos ............................................... 32 3.4.1.1.3.2 Diseño Lógico De La Base De Datos .................................................... 32 3.4.2 La Identificación de Programas .............................................................. 34 3.4.2.1 3.4.3 3.4.4 Capítulo 4 4.1 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.4 Capítulo 5 5.0 5.1 5.2 5.3 5.4 5.5 Capítulo 6 6.1 6.2 Anexo A 2 El Comportamiento Dinámico Del Sistema ........................................... 36 Diagrama de Estructura ......................................................................... 3 7 El Detalle de Módulos ............................................................................ 39 El DFDX Dentro de dos Métodos Formales Gráficos Introducción ............................................................................................ 44 Las Máquinas de Estados y Autómatas Finitos ...................................... 45 Elementos de las MEF y Autómatas Finitos .......................................... 46 Autómatas Finitos Deterministas y NO-Deterministas .......................... 48 Las aplicaciones de las MEFs ................................................................. 48 Un ejemplo del Uso de una Especificación ............................................ 50 Ventajas de Uso ...................................................................................... 51 Redes de Petri ......................................................................................... 52 Componentes de una RP ......................................................................... 53 Representación Gráfica de una RP ......................................................... 54 Ventajas ................................................................................................. 59 Desventajas ............................................................................................. 59 Campos de Aplicación de las RP ............................................................ 59 Comparando los tres MFEGs .................................................................. 60 Pruebas del Sistema Introducción ............................................................................................ 62 Caso Número 1 :Despliegue correcto de los elementos que conforman la interfase .......................................... 63 Caso Número 2: Proceso de edición amigable y familiar al usuario .............................................................. 65 Caso Número 3: La creación, impresión, asignación de nombres, renombrado y carga de Especificaciones ........... .. ..... .. ..... 68 Caso Número 4: La Edición a diferentes niveles donde hay diagramas padres e hijos ..................................................... 71 Caso Número 5: El proceso de Verificación .......................................... 74 Conclusiones y Trabajos Futuros Conclusiones ........................................................................................... 77 Trabajos Futuros ..................................................................................... 79 Uso del DFDX (Editor) Introducción ............................................................................................ 80 Especificación de la herramienta del DFDX, usando DFDX ................. 80 11 Anexo B Las Operaciones de Reestructuración Conjunto de Operaciones de Reestructuración ....................................... 89 2 Especificación de Operadores de Reestructuración ................................ 90 2.1 El Operador de Agrupación .................................................................... 91 2.2 El operador de Expansión ....................................................................... 92 2.3 El Operador de División ......................................................................... 93 2.4 El operador de Fusión .............................................................................95 2.5 El Operador de Transferencia ................................................................. 96 LISTA DE FIGURAS 1.1 El Ciclo de Vida del Software ................................................................ 2 1.2 Usuarios de Especificaciones ................................................................. 4 2.1 Los componentes Gráficos del DFD ....................................................... 9 2.2 Una Entidad Externa o Terminador ........................................................ 11 2.3 Un proceso .............................................................................................. 11 2.4 Los Flujos de Datos ................................................................................ 11 2.5 Un almacén de datos ............................................................................... 12 2.6 Interrelación de los elementos del DFD ................................................. 12 2.7 Ejemplo del Uso Del DFD ...................................................................... 13 2.8 Un DFD nivelado .................................................................................... 17 2.9 Elementos de eXtensión del DFD ........................................................... 20 3 .1 Simple interacción del usuario con el sistema ....................................... 3 O 3.2 Operaciones básicas de edición ............................................................. 33 3.3 Base de Datos ......................................................................................... 34 3.4 Diagrama de Contexto (nivel O) ............................................................. 35 3.5 Este es el diagrama 1 (5 procesos de transformación.) ........................... 35 3 .6 Prototipo de Interfase principal, para la herramienta de construcción de especificaciones a través del DFD Extendido .................................... 3 7 3.7 Elementos del sistema o Diagrama de Estructura .................................. 38 3.8 Archivos necesarios para el sistema ....................................................... 39 3.9 Flujos permitidos .................................................................................... 41 4.1 Una Máquina de Estado Finito, El Interruptor de una Lámpara ............. 46 4.2 Diagrama de transición para un Autómata Finito ................................... 47 4.3 Especificación para un Analizador Léxico en Pascal ............................. 49 4.4 Un ejemplo de una RP ............................................................................ 54 4.5 Modelando un programa con una RP ..................................................... 55 4.6 RP antes y después de disparo ................................................................ 56 4.7 RP, ¿posible evolución? ........................................................................ 56 4.8 RP para modelar actividades independientes ......................................... 57 5.1 Interfase Inicial Del Sistema ................................................................... 64 5 .2 Interfase Inicial, algunas opciones .......................................................... 64 iii 5.3 Un Editor Amigable ................................................................................ 66 5.4 Asignando Datos a Elementos u Objetos ................................................ 68 5.5 Guardando Especificación ...................................................................... 69 5.6 Asignando Nombre a Especificación ...................................................... 70 5.7 Una especificación Recuperada .............................................................. 70 5.8 Selección de proceso para bajar un nivel de abstracción ........................ 72 5.9 Edición en varios niveles de varios diagramas, flujos heredados ........... 73 5.1 O El Proceso de Verificación, disponible en cualquier diagrama .............. 74 5 .11 El Proceso de Verificación, después de una modificación errónea ........ 7 5 A-O Diagrama de Contexto de la Especificación( Nivel O) ........................... 80 A-1 HERRAMIENTA DE EDICION(Nivel 1) ............................................. 81 A-2 TRABAJO DE MENU(Nivel 1-1) ......................................................... 82 A-3 PALETA DE HERRAMIENTAS(Nivel 1-2) ......................................... 83 A-4 El proceso PIZARRON DE EDICION(Nivel 1-3) ................................. 84 A-5 El trabajo de archivos en MENU_ARCHIVO(Nivel 1-1-1) ................... 85 A-6 El proceso de Crear un nuevo Archivo de la sección Arhivo, del área de menú. ARCH_ NUEVO Nivel ( 1-1-1-1) ........................... 85 A-7 El proceso de crear un nuevo elemento (Proceso) de la especificación MBH _PROCESO (nivel 1-2-3 ) ............................................................. 86 A-8 Proceso del evento mouse_down del ratón. MOUSE_DOWN, ejecutado sobre el PIZARRON DE EDICION (Nivel 1-3-1) ................. 87 B-1 La operación de Agrupar ........................................................................ 91 B-2 La operación de Expansión ..................................................................... 92 B-3 La operación de División ........................................................................ 94 B-4 La operación de Fusión ........................................................................... 95 B-5 La Operación de Transferencia, que usa las Operaciones Subir y Bajar 97 TABLA 4t-1 Tabla Comparativa de los tres Métodos Formales Presentados ............. 61 iv RESUMEN El desarrollo de sistemas de software está soportado por el modelo del Ciclo de Vida del Software. Una de las etapas de mayor importancia dentro de tal modelo es la Especificación de Requerimientos. La comunicación entre el desarrollador o el equipo de desarrollo de sistemas y el cliente e incluso entre los miembros del equipo de desarrollo, es de importancia tal, que obliga a la utilización de un lenguaje de especificación que permita esa buena comunicación y que sea fácil de entender. Es por esto que la intuitividad y sencillez del Diagrama de Flujo de Datos (DFD), le han hecho tan popular. Sin embargo la especificación de sistemas a través de DFDs produce especificaciones ambiguas e inconsistentes que dan como resultado altos costos de mantenimiento de sistemas. La extensión del DFD resolvió tal problemática, desarrollando un método capaz de aprovechar las características intuitivas del DFD y eliminando sus ambigüedades e inconsistencias a partir de la inclusión de nuevos elementos gráficos soportados por reglas formales de construcción. El DFD eXtendido (DFDX), se presenta como una herramienta competitiva y eficaz. El uso manual del DFDX representa una de sus principales desventajas con respecto a otros Métodos Gráficos de Especificación Formal (MGEF). El presente trabajo de tesis pretende contribuir al fortalecimiento del DFDX mediante el desarrollo de una herramienta computacional que automatice la construcción de especificaciones con DFDXs y verifique la correctés de tales especificaciones. Se fortalece además mediante su inmersión en los MGEFs a través de un estudio comparativo con otros dos MGEFs de amplio uso como son las Redes de Petri y las Máquinas de Estado Finito, además se propone la formalización de nuevas operaciones de reestructuración de los DFDXs, que son viables de ser automatizadas y agregadas a la herramienta desarrollada. Palabras Clave y Frases Clave: Modelo del Ciclo de Vida del Software, Métodos de Especificación Formal, Diagrama de Flujo de Datos, DFDX reglas formales de construcción, operaciones de reestructuración, Redes de Petri, Máquinas de Estado Finito. V Capítulo 1 Introducción CAPITULO 1 INTRODUCCION 1.1 ANTECEDENTES El Software no es tan solo un conjunto de programas de computadora asociados con alguna aplicación o inmersos en algún producto. Además de los programas, el software incluyela documentación necesaria para instalar, usar , desarrollar y mantener esos programas. El término Ingeniería de Software (ISW) fue empleado por primera vez a finales de los años 60s en una conferencia internacional de impacto mundial llamada "La Crisis del Software", resultante de la carencia de buenos métodos de desarrollo de software, poca experiencia en el desarrollo de grandes sistemas , de la velocidad desigual de desarrollo de hardware y software. En esa conferencia se planteaba la necesidad de dedicar un área al estudio específico del desarrollo de software. A pesar que han existido avances considerables en la calidad del software que se produce, a más de treinta años del nacimiento de la ISW, el problema de la Crisis del Software aún no ha sido resuelto (Sommerville 94]. A pesar de los problemas de desarrollo de software, la computación se ha vuelto de uso casi popular y crece de manera impresionante la cantidad de personas y empresas que se involucran en el área de la computación. Ese auge computacional estimula el nacimiento de empresas dedicadas al desarrollo de software para las más variadas aplicaciones y esto, a su vez, el desarrollo de cada vez mejores productos de software con el fin de ganar un mercado. Sin embargo las mejoras en la productividad del software no están a la altura de las demandas. Es por ello que la ISW está en una búsqueda permanente, a través de sus diferentes disciplinas, de soluciones para elevar la calidad de los sistemas de software. Capítulo l Introducción Algunos de los atributos comunes de un software de calidad son : Mantenible.- Debe estar escrito y documentado de tal forma que las modificaciones Confiable-. Eficiente.- puedan ser hechas sin grandes costos. Que ejecute sus tareas de acuerdo a lo que el usuario espera y no tener fallas mas allá de las que el usuario tolere en su especificación. Entendiendo por eficiencia el uso óptimo de los recursos del sistema. Interfase Apropiada al Usuario. - Muchas veces el software no es utilizado en su total potencial, por tanto es importante que la interfase de usuario sea hecha a la medida de las capacidades y conocimientos del usuario. Además del uso de entornos que le sean familiares como los sistemas de menú. Es deseable que los mensajes de error no sugieran que el usuario tiene la culpa, por el i. 1 1 ' ¡ r-Í)c11;;·¡-ció-n cl~---._..l __ I Requerimientos I l --·-·····--·--·- ········--··-·-·····---.J .1 ,, Disefio del S0llware y del Sistema 1---~ ' l ,. lrnpleme11tación y Pn11::bas de Unidad 1----, 'l 'r Pruebas dd Si, t<:ma y de I ntcgra~ión -~ ,, Operación y Ma11tc11imiento r! 11 i ¡.__ ____________________ __. FIGURA 1.1 El Ciclo de Vida del Software[Sommerville 94]. 2 . Capítulo I Introducción contrario, estos deben ofrecer soluciones acerca de como recuperarse de los errores [Sommerville 94]. Es precisamente en la búsqueda de calidad que a principios de los 70s se proponen modelos de desarrollo de software, como el modelo en cascada que está basado en técnicas de aplicación ingenieril y que en un principio tuvo bastante aceptación. Sin embargo después de un tiempo de aplicación, se notó que era apropiado sólo para determinado tipo de sistemas, además de que en realidad no se termina una etapa y se continúa con la siguiente sin regresar otra vez a la etapa anterior. Se propone después el Modelo del Ciclo de Vida del Software (MCVS), ver figura 1.1 . No es casualidad que la primera etapa del ciclo de vida del software en la figura 1.1 se encuentre resaltada. Este trabajo pretende aportar una herramienta que ayude a elevar la calidad de la etapa de Definición de Requerimientos. El análisis de requerimientos de software se describe en un Documento de Especificación de Requerimientos (DER). En [Zave 90] se define a una Espec(ficación de Requerimientos como una representación de un sistema de computadora propuesto o existente. El DER puede servir como base para un contrato entre un desarrollador y su cliente para el desarrollo del sistema propuesto. Pero además del cliente y el desarrollador hay mas usuarios ¿ Quiénes son ? En la figura 1.2 cada miembro de ese equipo de desarrollo representa un rol diferente en el proceso de desarrollo de sistemas . Una persona que juege cualquiera de esos roles es un usuario potencial de las especificaciones. En la práctica, una persona puede jugar diferentes roles, pero hay roles que no pueden ser jugados por cualquier persona. En esta etapa de Especificación de Requerimientos, la persona que juega el rol de "cliente", puede adecuar sus expectativas en relación a sus necesidades y recursos disponibles para llevar a cabo el desarrollo de su sistema. 3 Capítulo J )~~--·~J:~--· Cliente Especi ii cador Introducción ¿, Qué hace este programa? Ch ente Proµrru11ador Verificador (.Salisface esle programa la Espceificac,on? Figura 1.2.- Usuarios de Especificaciones[Wing 91 ]. Existen dos tipos bien definidos de métodos de especificación, los formales y los informales. Los informales suelen ser más amigables, de tal forma que casi cualquier tipo de usuario los pueda leer y entender. Esto no significa que necesariamente deba ser así, usualmente los métodos informales se conforman de elementos gráficos y sintácticos que permiten especificar una secuencia de procesos y acciones de manera intuitiva, usando elementos fáciles de identificar y relacionar, como son los elementos gráficos. Algunas veces utilizan lenguaje natural y/ó pseudocódigo. Por el contrario los métodos formales usados en el desarrollo de sistemas de cómputo se basan en algunas herramientas matemáticas que permiten describir las propiedades de un sistema. En la mayoría de estos métodos se requiere que el usuario conozca de conceptos simples de álgebra, teoría de conjuntos y lógica formal. Para la aplicación de algún método formal específico, los usuarios necesitarían saber algunas teorías matemáticas adicionales como lógica digital si se especifica hardware o 4 Capítulo J Introducción probabilidad y estadística si se especifican sistemas de confiabilidad. Debido a que la notación utilizada en estas áreas es léxica y pudiera parecer difícil de comprender, se dice que los métodos formales son una herramienta léxica poco intuitiva. Por tanto algunos desarrolladores de las especificaciones formales tienen que hacer también una especificación con un método informal para así poder interactuar con el cliente, además de interactuar con otros usuarios de la especificación (miembros del equipo de desarrollo sin conocimiento sobre métodos formales). Esto suele suceder, pues muchas veces los programadores por ejemplo, no dominan algunas áreas de conocimiento necesarias para trabajar con métodos de especificación formal y por tanto prefieren el uso de métodos informales como es el caso del DFD que propone [Demarco 78]. Se puede decir además que aún no existe una cultura general de software que permita la difusión y aplicación de los métodos formales de especificación. 1.2 HERRAMIENTASCASE Las Herramientas CASE, por sus siglas en inglés (Ingeniería de Software Asistida por Computadora), son los programas de cómputo que auxilian a los integrantes del equipo de desarrollo de software durante las diferentes etapas del ciclo de vida del software. [Guezzi 91] señala que un entorno es una colección de herramientas relacionadas. Las herramientas y entornos ayudan en la automatización de algunas de las actividades que están incluidas en la ISW. Sin embargo, es importante aclarar que aunque muchas gentes involucradas en el desarrollo de sistemas asumen que las herramientas CASE representan una solución a todos sus problemas de desarrollo de sistemas, eso no es del todo cierto. La administración debe seleccionar y aplicar métodos que soporten la herramienta CASE y entrenar a losdesarrolladores en tales métodos. 5 Capítulo 1 Introducción El uso apropiado de una herramienta CASE puede mejorar de manera significativa la productividad de los desarrolladores y elevar la calidad de los sistemas. Además de una herramienta CASE, se incluye una aplicación apropiada de administración, métodos, disciplina y entrenamiento en un trabajo conjunto [Chmura 95]. 1.3 EL PROBLEMA Es importante señalar que los métodos de especificación formal pueden ser complementarios a los informales buscando aprovechar los beneficios y eliminar desventajas de ambos. Esto es, conjugando las características intuitivas de los métodos informales con las ventajas matemáticas de los métodos formales. Esto ha sido posible en la definición de un método de especificación denominado Diagrama de Flujo de Datos Extendido (DFDX ó DFD Extendido) [Molina 94][Frausto et al 97]. El DFD Extendido es todavía una herramienta manual, entendiendo por manual la especificación manuscrita y/o usando herramientas computacionales auxiliares como PaintBrush1-1 u otra. Por lo tanto su utilización resulta cansada, pues en un momento determinado, al hacer un pequeño cambio se puede derivar en modificaciones en varias partes y a diferentes niveles de la especificación. Por tanto es muy importante el contar con una herramienta CASE propia del DFDX que permita la construcción de especificaciones formales a través de una interfase amigable con elementos gráficos familiares al usuario y algunos elementos nuevos de igual intuitividad y sencilla comprensión. 1.4 EL OBJETIVO Se pretende introducir al usuano al conocimiento de los métodos formales, el porqué son necesarios, donde se aplican, de qué manera ayudan a elevar la calidad en el proceso de desarrollo de software, qué se necesita para conocerlos, y contribuír de esta forma a la promoción de un área que puede ayudar a reducir sensiblemente los costos en la etapas posteriores a la definición de requerimientos de usuario. 1 - 1 Es un programa de edición gráfica que corre bajo Windows de Microsoft. 6 Capítulo 1 Introducción Se pretende el desarrollo de un sistema de cómputo cuyo beneficio redunde en una edición gráfica que lleve de la mano al usuario durante el proceso de edición de alguna especificación y que además sea capaz de determinar la correctés1-2 de las especificaciones construídas en base a los principios y reglas de construcción del DFDX. Sin embargo es válido aclarar que no se pretende profundizar en los detalles de edición gráfica, ya que el desarrollo de un editor gráfico representa de entrada un fuerte trabajo de programación, que no es lo que se pretende a priori. Se pretende también ubicar al DFDX, en el contexto de los métodos formales gráficos a través de una comparación con algunos de los métodos más conocidos como Redes de Petri y Máquinas de Estado Finito. 1.5 LA ESTRUCTURA DE LA TESIS En este Capítulo se describen los antecedentes, se introducen los métodos formales, en donde los ubicamos dentro del ciclo de vida del software, su problemática y beneficios. El problema que se va a resolver, las herramientas CASE y las expectativas de la herramienta que se propone desarrollar. El objetivo de la presente tesis y la estructura del trabajo. En el Capítulo 2 se plantean los fundamentos básicos del DFD y del DFDX, así como la definición formal de sus elementos. Con esto se pretende que el lector se familiarice con los nuevos elementos propuestos en el DFDX y conozca el aspecto que da formalidad al método. 1 - 2 Se tomará como correcta a una especificación cuando ésta esté apegada a las reglas de construcción del DFDX 7 Capítulo 1 Introducción En el Capítulo 3 se presenta el diseño y aspectos de importancia retomados de la implementación del sistema propuesto. Los conjuntos de información que el sistema necesita, de entrada, de salida, de bases de datos, el diseño modular y el detalle a un nivel todavía abstracto de algunos módulos de importancia para la implementación del sistema. E11 el Capítulo 4 se presenta un estudio comparativo que ubica al DFDX dentro de los principales métodos gráficos de especificación. Se introducen también fundamentos de dos MGEF de uso muy común en las ciencias de la computación como lo son las Máquinas de Estado Finito y las Redes de Petri. En el Capítulo 5 se ejemplifica el uso del sistema para modelar algunos sistemas con el sistema propuesto. Se desarrollan casos de prueba que ayudan a mostrar algunos ejemplos del uso del sistema de edición a desarrollar. Se ilustra así el beneficio y la contribución a la herramienta de especificación formal (DFDX) al automatizar su aplicación. El Capítulo 6 presenta las conclusiones y propone trabajos futuros en la línea de la investigación. Se proponen ideas para una implementación más elegante y aspectos de optimización de nivelación de estructura de los DFDXs denominados operadores de reestructuración. El Anexo A presenta una especificación, mediante el uso del DFDX, de la herramienta desarrollada. El Anexo B presenta las operac10nes de reestructuración, su descripción y especificación hasta un nivel de requerimientos. 8 Capítulo 2 Fundamentos Básicos del DFD y DFDX CAPITULO 2 FUNDAMENTOS BASICOS DEL DFD Y DFDX 2.1 INTRODUCCJON En el desarrollo de sistemas de software, una fase importante es el establecimiento de la Especificación de Requerimientos de Software. El documento que se produce es considerado como un contrato entre el desarrollador y el usuario final del sistema; por esta razón, es fundamental realizar esta fase de una manera tal que sea clara para ambos. Como lo hemos señalado, los DFD pueden contribuir a una mejor definición de requerimientos de software. Sin embargo esto no significa que no sean útiles en el desarrollo de las fases posteriores del proceso de desarrollo de sistemas. Principales Componentes del DFD Entidad Externa [ Proceso Almacén .... Fluju de Datos Figura 2. l Los componentes gráficos del DFD. 9 Capítulo 2 Fundamentos Básicos del DFD y DFDX En este capítulo se presentarán los Conceptos Básicos de los DFD y DFD eXtendido . En la figura 2-1 se presentan elementos que se usan en el DFD, así como su significado [Demarco 78]. 2.2 LOS DIAGRAMAS DE FLUJO DE DATOS Un Diagrama de Flujo de Datos es una representación en red de un sistema de software. El sistema puede ser automático ( donde éste funciona de manera transparente al usuario), manual o una mezcla de ambos. El DFD interpreta el sistema en ténnino de sus piezas componentes con todas las interfases entre los componentes indicados [Demarco 78]. Es cierto que la popularidad de los DFDs proviene de la notación gráfico-intuitiva que permite una fácil identificación de sus elementos así como el significado de éstos. Es cierto también que la flexibilidad tiene sus costos, pues la falta de una base formal para los conceptos y la notación del DFD prohibe su uso como una herramienta de especificación formal [Molina 94]. 2.2.1 NOTACION DE LOS DFDs Los DFDs muestran regularmente cómo la entrada de datos es transformada en resultados de salida a través de transformaciones secuenciales. Los DFDs son una parte integral de un determinado número de métodos de diseño y las herramientas CASE usualmente soportan la creación de diagramas de flujo. Las notaciones usadas en diferentes métodos son similares [ Sommerville 94]. Los datos pueden ser transformados y almacenados, y también pueden desplazarse entre los elementos del diagrama y desde entidades externas. Los elementos ó símbolos utilizados en el DFD que presentamos aquí son los siguientes: 10 Capítulo 2 Etiqueta Fundamentos Básicos del DFD y DFDX Una Entidad Externa o Terminador es una fücnte de entradas o salidas, al o desde, el sistema Figura 2.2 Una Entidad Externa o Terminador. En la Figura 2.2 se representa una EntidadExterna o Terminador. El terminador es una persona o un elemento al exterior del sistema, es decir , que no forma parte del sistema sino que es quien recibe o envía datos-información al sistema. Este elemento, por su propia definición, sólo funciona como enlace entre el sistema y el mundo exterior. Por convención son representados como rectángulos etiquetados. Etiqueta 1 Un Proceso es una transformación. donde un flujo de datos que entra es transformado , mod ificado o procesado, generando así datos de salida. La transformación es etiquetada con un nombre descriptivo Figura 2.3.- Un proceso. En la Figura 2.3 se representa un proceso o procedimiento. Es un tratamiento, proceso, transición o procedimiento al que son sometidos los datos de entrada. Es representado como un rectángulo circular con una notación descriptiva. i l ____ ____...,.. ; í ~ ... Etiqueta Los Flujo de daros representan la circulación o tránsito de datos o información. donde la flecha indíca su dirección ! : .......... ~""111111m1 ...................................... 1111111!1 ...... 1111111!1, .. 111!!~~~., .. -!I --,·-·-·------ Figura 2.4 Los Flujos de Datos. 11 Capítulo 2 Fundamentos Básicos del DFD y DFDX Un flujo de datos es la liga entre los diferentes elementos del DFD ( con excepción de si mismo). Suelen también ser etiquetados con un nombre mnemónico, de preferencia, que representa a un paquete de información coherente, es decir , con un sentido. Cuando de un proceso salen dos flujos de infonnación (A y B) significa que la infonnación del flujo A no necesita de la del B y viceversa. Un flujo de datos NO es un activador de procesos, no se debe usar con ese fin [Demarco 78]. Etiqueta Un Almacén de Datos es un depósito de datos o de información. Figura 2.5.- Un Almacén de datos. Un Almacén de datos es el lugar en donde son almacenados los datos, éste puede ser físicamente un dispositivo de almacenamiento como disco o cinta magnética. La notación es sencilla; dos líneas horizontales paralelas con la etiqueta, normalmente entre ellas ( ver fig. 2.5). La etiqueta debe decir mucho pues contribuirá a una mejor lectura, es por ello que se recomienda no codificar los nombres de los archivos. datos datos datos datos 1 entidad 1 IB2 5 ,_____. roceso 1 ----. proceso ~ _____. proceso 3 ~ entidad2 j • datos 3 datos 4 • Almacén de datos Figura 2.6 Interrelación de los elementos del DFD [Molina 94]. 12 Capítulo 2 Fundamentos Básicos del DFD y DFDX En la figura 2.6 podemos observar la utilización de los elementos del DFD [Molina 94], donde entidad] y entidad2 son entidades externas (fuente y salida respectivamente), proceso], proceso2 y proceso3 son los procesos donde se transforma la información de entrada, la entidad almacén de datos intercambia datos con proceso2 y por último, las entidades datosl .. datos6 muestran la existencia y dirección de flujos de datos. 2.2.2 UN EJEMPLO DEL USO DEL DFD (Trámites Electorales) A continuación se presenta un ejemplo que ilustra una especificación usando DFD como método informal, un ejemplo sencillo y común: Trámites Electorales. Después, con el fin de observar un método formal en una notación léxica y contrastar sus características antes de plantear la formalidad del DFD. Como se puede observar en la figura 2.7, no se necesita más que un poco de atención para comprender lo que la especificación propone. Sin embargo es una especificación ambigua, ¿porqué? DATOS MENSAJE.ERROR TIPO __ TRi\MITE EDAD CREDENClAL PAIJRON TOMA .DE __ FOTOGRAFI . .\ flGURA 2.7. Ejemplo del Uso Del DFD. 13 DATOS ACTUALIZADOS ORDEN o~ ~o ro Capítulo 2 Fundamentos Básicos del DFD y DFDX A).- Es importante notar que después del proceso UBICAR al ciudadano, no se conoce el orden de secuencia de los datos requeridos para evaluar su trámite, ni tampoco si son todos indispensables. No se conoce si el dato de MENSAJE ERROR es necesario o inevitable que aparezca al ciudadano. 8).- Después del proceso de EVALUAR TRAMITE, no se sabe si hay un orden en la salida de datos. C).- No se sabe si ambos datos saldrán a la vez del proceso EVALUAR_ TRAMITE o si saldrá uno u otro. Aunque la especificación parece ser clara e intuitiva, al momento de ser implementada pueden sus usuarios (en este caso el programador), tener su propia interpretación . Con ayuda de la Lógica de Primer Orden (LPO) usando precondiciones y postcondiciones de procesos la especificación luciría así: {DATOS_ CIUDADANO} UBICAR {MENSAJE_ERROR V (TIPO_TRAMITE A NOMBRE A FECHA_NAC A LUGAR_NAC A EDAD)} { TIPO TRAMITE A NOMBRE A FECHA_NAC A LUGAR_NAC A PADRON} EVALUAR TRAMITE {(ORDEN_DE_FOTO A DATOS_ACTUALIZADOS) V FECHA_SIGUIENTE_TRAM} {ORDEN_DE_FOTO} TOMA DE FOTOGRAFIA {CREDENCIAL} Como se puede ver, estas especificaciones lógicas muestran los datos de entrada y salida, pero no muestran como se llevan a cabo los procesos. Para ello se traducen a 14 Capítulo 2 Fundamentos Básicos del DFD y DFDX símbolos de predicados que al ejecutarse permiten verificar la consistencia de la especificación [Lian, Chan 87]. Después de que se ha visto lo contrastantes que pueden ser los métodos formales-informales, se presenta la formalización del DFD. 2.2.3 DEFINICION FORMAL DEL DFD Los DFD son una de las herramientas de mayor uso en la ISW, lo que ha motivado el tratar de hacer uso de ellas como una herramienta formal, con este fin se han llevado a cabo investigaciones que se pueden complementar, por ejemplo: Poh-Tin and K.P formalizan a los DFDs mediante el uso de Redes de Petri en [Pho Tin 92]. Ming-Jie define a los DFDs como una quinteta (P,T,F,A,C), donde P={procesos}, T={Terminadores}, F={flujos}, A={Almacenes} y Ces la relación de conexión Ce f(PuT) x (FuA)J u f(F uA) x (PuT)J. De tal suerte que un diagrama inicial es siempre (@, @, @, @, @), asumiendo así que cada elemento será referido por su etiqueta. Para una estructura de un DFD x se usa la notación x.P,x.T,x.F,x.A y x.C Para abreviar se define a X. Y como U,EX x.Y Donde X es el conjunto de DFDs y Y puede ser P,T,F,A ó C. Se definen también 4 funciones para obtener los flujos de entrada, flujos de salida, almacén de entrada y almacén de salida de procesos y terminadores. Molina retoma las definiciones de flujos y almacenes de entrada y salida propuestas por Ming-Jie y las aplica a los nuevos elementos propuestos en [Molina 94]: FAND¡ (_) Es una función AND de flujo de entrada 15 Capílulo 2 FAND o(_) FoR; (_) FoR O (_) AAND¡ (_) AAND o(_) A OR¡ (_) AoR 0 (_) Es una función AND de flujo de salida Es unafunción OR de flujo de entrada Es unafunción OR de flujo de salida Fundamentos Básicos del DFD y DFDX Es una función AND de Almacén de entrada Es una función AND de Almacén de salida Es unafunción OR de Almacén de entrada Es una función OR de Almacén de salida Es un elemento ordenado del conjunto FANO Es un elemento ordenado del conjunto AAND Sea un proceso o terminador e en su DFD residente x, y para un conjunto de procesos y terminadores E; FAND¡ (e) = { f0 E x,FI < fo ,e> E x.C, donde :le E x.P u x.T A f0 < f0 +1} FANoº(e) = { fo E x.FI < e, fo> E x.C, donde :le E x.P u x.T A fo< fo+I } FoR¡ (e) = { f E x.F¡ < f,e > E x.C, donde :le E x.P u x.T} FoRº(e) = { f E x.F¡ < e, f> E x.C, donde :le E x.P u x.T} AAND¡ (e) = { an E x,FI < ao,e > E x.C, donde :le E x.P u x.T A a0 < a11+1 } AA·mº (e)= { a11 E x.FI < e, a0 > E x.C, donde :le E x.P u x.T A a .. < a11+1 } AoR¡ (e) = { a E x.F¡ < a,e > E x.C, donde :le E x.P u x.T} AoRº (e)= { a E x.F¡ < e,a > E x.C, donde :le E x.P u x.T} Fi (E) = U e E E Fi (e) Fº (E) = U e EE Fº (e) A¡ (E)= U e EE A¡ (e) A O (E) = U e EE A O (e) 2.2.4 MODELADO DE SISTEMAS Se modela un sistema como una estructura nivelada de DFD donde en el tope se encuentra el diagrama de contexto y en el más bajonivel de los diagramas se encuentran los 16 Capítulo 2 Fundamentos Básicos del DFD y DFDX diagramas de transformación (Ver Figura 2.8). Ahí se puede definir un sistema como un diagrama de contexto, un conjunto de diagramas de transformación y un mapeo entre esos diagramas de transformación y sus procesos padres. En la figura 2.8 se muestra un DFD nivelado, donde un diagrama de contexto AA aparece en primer plano y los diagramas de transformación en segundo {AA.I ,AA.2,AA.3}. L ! ! 7 ~ /,,___ _ ____ .., ~--/ v ~ U, 7 Figura 2.8. Un DFD nivelado. Un modelo de sistema es una tripleta (de, X,D), donde de es un diagrama de contexto, X es un conjunto de diagramas de transformación y D s;;; (P x X) es una relación de descomposición con P = ( de.P u X.P). Un modelo de sistema inicialmente creado será ((lJ, lJ, lJ, lJ, lJ), lJ, lJ). Para un modelo de sistema m, usamos las notaciones m.P, m. T,m.F,m.A y m. C para referirse al conjunto de todos los procesos, terminadores, flujos, almacenes y sus conexiones, como 17 Capítulo 2 Fundamentos Básicos del DFD y DFDX m.P=m.dc.P u m.X.P , m.T=m.dc.T u m.X.T, m.F=m.dc.F u m.X.F, m.A= m.dc.A u m.X.A y m.C=m.dc.C u m.X. C. Entonces para describir un proceso < p,x > que está en m.D, se utiliza la función x.pa para referirse al proceso p padre del diagrama x. y la función p.hijo se refiere al diagrama hijo x del proceso p. Si p no existe en m.P tal que < p,x > esté en m.D, la función x.pa está indefinida. Si x no existe en m.X tal que < p,x > esté en m.D, la función p.hijo está indefinida. [Ming- Jie 91] plantea la automatización de los DFD, así como algunas operaciones de reestructuración. [Molina 94] plantea una extensión al DFD a través de nuevos elementos que eliminan gran parte de las inconsistencias originales. 2.2.5 REGLAS DE CONSTRUCCION DE LOS DFDs Los DFDs a varios niveles tienen un conjunto de reglas sintácticas y semánticas (como lo son de conectividad, conservación de datos y precedencia.). Algunas de las que se presentan a continuación son recomendaciones para hacer especificaciones coherentes, entendibles y gratas a la vista [Molina 94] [Martínez 93]. l. Escoger nombres mnemónicos para los elementos de construcción del DFD. Es recomendable también que estos nombres no sean muy grandes, por motivos de estética y por la fluidez al leer éstos. 2. Enumerar los procesos como una forma de identificarles. 3. Redibujar el DFD tantas veces como sea necesario estéticamente. Esto con el fin de que su presentación sea clara. 4. Evitar los DFD Excesivamente complejos. Esto es un número pequeño de elementos ( aproximadamente 1 O) en un mismo diagrama y evitar cruces en los flujos de datos. 18 Capítulo 2 Fundamentos Básicos del DFD y DFDX 5. Asegurarse de la consistencia interna de los DFDs. En este punto, [Pho Tin 92] sugiere algunas reglas que dan integridad a cualquier DFD. • Cada Entidad Externa-Fuente tiene un flujo de dato de salida. • Cada Entidad Externa-Destino tiene un flujo de dato de entrada • Cada Entidad de Almacén tiene un flujo de datos de entrada y un flujo de datos de salida. • Cada Entidad de Proceso tiene un flujo de datos de entrada y un flujo de datos de salida. • Cada Flujo de Datos tiene una Entidad Fuente y una Entidad Destino válidos. 6. Poh sugiere también algunas restricciones de balance: • Cada flujo de entrada de un proceso padre debe ir hacia un proceso hijo en el diagrama hijo. • Cada flujo de salida de un proceso padre debe provenir desde un proceso hijo en el diagrama hijo. • La suma de todos los flujos de entrada a un proceso padre debe equilibrar la suma de todos los flujos de entrada de su diagrama hijo. • La suma de todos los flujos de salida de un proceso padre debe equilibrar la suma de todos los flujos de salida de su diagrama hijo. 2.3 EL DIAGRAMA DE FLUJO DE DATOS EXTENDIDO (DFDX). El problema de la ambigüedad de los DFDs, es la más importante de sus desventajas. Sin embargo, su amplia aplicación, popularidad e intuitividad, obligan a buscar alternativas de su aplicación. Aportaciones como las señaladas arriba, referentes a las reglas de construcción y como las de Molina, quien plantea el uso de nuevos elementos en los DFDs, eliminan en conjunto el problema de la ambigüedad y presentan al DFD eXtendido como una alternativa para ayudar a la construcción de una buena especificación. 19 Capítulo 2 Fundamentos Básicos del DFD y DFDX Los nuevos elementos propuestos por Molina, presentados en la figura 2.9, clarifican el orden y necesidad de datos modificando su secuencia y nivel de requisito, es decir, trabajan exclusivamente sobre el elemento de flujo de datos . l 1 ' l l . o o D Es util12a<lú sobre los flujos de entrada ,·.'o saltda , Jndica qu,, los datos so11 necesarios o r,-qu,-ri<los Es util izado sobre los fl ujo , de entrada y.:o salida. Indica que los datos son deseables, esto es , que seria ópt imo contar con ellos para utiliza rles . Signifi ca AN D y es ut ilizado Cúmo agru pador de Flujos de Datos . Signiric:, cm v se utili za , al igual que AND . ~01110 u11 :1¡:ruµ ado, de tlujo de datos -·,- .... ---- ~= I• \ .................................................................................... ... :::J Figura 2.9 Elementos de eXtensión del DFD. 2.3.1 REGLAS DE CONSTRUCCION DE LOS DFDX. Las reglas de construcción de esta extensión del DFD, son básicamente las mismas del DFD original, sin embargo se agregan algunas nuevas para una correcta interpretación. Se toman en cuenta 2 enfoques; uno se refiere a los flujos de datos de SALIDA de un ~z proceso, y el otro se refiere a los flujos de datos de ENTRADA a un proceso. rÍ ,,)(JL l. Para los flujos de datos de salida o entrada de un proceso. p_) 1.1 Si el flujo de datos tiene un círculo, es deseable que se tenga esta salida o entrada de datos. 20 IIILIOffQ Capítulo 2 Fundamentos Básicos del DFD y DFDX 1.2 El círculo a su vez, puede tener una condición que determina la salida o entrada de datos. 1.3 Si un flujo de datos tiene un rombo, es necesario que se tenga esa salida o entrada de datos. 1.4 El rombo puede estar vacío, contener un número o contener una función 1.4.a Si el rombo está vacío significa que no importa el orden de salida o entrada del flujo de datos. 1.4.b Si el rombo contiene un número, éste indica el orden de salida o entrada del flujo de datos, en relación con las otras salidas o entradas indicadas en los otros flujos de datos en el DFDX. 1.4.c Si el rombo contiene una función, entonces el valor de la función indica el orden de salida o entrada del flujo de datos. 1.5 El conector OR significa que sólo uno de los flujos de datos se genera como salida o entrada. 1.6 Los conectores AND y OR se utilizan para agrupar las salidas o entradas de los flujos de datos, en los casos que se requieran. 2.4. ACERCA DE LA CONSISTENCIA E INTEGRIDAD. La estructura de un modelo de sistema , diagrama de contexto y diagrama de transformación debe ser consistente, íntegra y debe estar regulada por un conjunto de convenciones llamadas reglas de formación. Tales reglas incluyen formas de modelar un sistema DFD y los conceptos que lo constituyen. También se incluyen reglas de balance y originalidad de los elementos. Una regla de formación se define como una fórmula bien formada, la cual se define recursivamente en lógica proposicional como: 1. Un átomo es una fórmula. 2. Si Ges una fórmula, entonces ( - G) es una fórmula. 21 Capítulo 2 Fundamentos Básicos del DFD y DFDX 3. Si G y H son fónnulas, entonces ( G /\ H), ( G v H), ( G => H) y ( G <=> H) son fónnulas. 4. Todas las fónnulas son generadas mediante la aplicación de las reglas anteriores. Puede ser eliminado el uso de paréntesis mediante las jerarquias de uso de los conectores proposicionales (en orden decrementa}):<=>,=>, A, v, - Donde el conectorde mayor jerarquía tiene más alcance, por ejemplo: P => Q /\ R será (P => (Q /\ R)) y P => Q /\ -R v S será (P => (Q A(( -R) v S))) [Liang, Chan 87]. Cuando un modelo de sistema se confonna estructuralmente de reglas de fonnación , es estructuralmente consistente e íntegro [Ming -Jie 1991]. 2.4.1 REGLAS DE FORMACION DE LA ESTRUCTURA DEL DIAGRAMA DE CONTEXTO. En la figura 2.8, el proceso AA , representa el diagrama de contexto del sistema que ahí se ejemplifica. Contiene sólo un proceso representante en todas las funciones del sistema. El diagrama de contexto de un sistema contiene sólo un proceso que representa las funciones de todo el sistema (3p) dc.P={p} 2 El Diagrama de contexto tiene todos los terminadores con los que el sistema interactúa y los flujos necesarios entre procesos y tenninadores pero, no se penniten los almacenes en el diagrama de contexto. dc.A=0 22 Capítulo 2 Fundamentos Básicos del DFD y DFDX 3 Sólo se permiten conexiones entre flujos y procesos y entre flujos y terminadores de.e~ [dc.F x (dc.P u dc.T)] u[ (dc.P u dc.T) x dc.F] 4 El proceso debe tener ambos flujos, entrada y salida (Vp E dc.P) [(FANO¡ (p) u FoR¡(p)-:t- 0) A ( FANoº(p) u FoRº (p)-:t- 0)] 5 Cada terminador debe tener conectado al menos un flujo (Vt E dc.T) [(FANO¡ (t) u FoR¡(t)) u ( FANoº(t) u FoRº (t)) -:f. 0] 6 Un flujo no debe ser emisor y receptor del mismo proceso (Vp E dc.P) [(FANO¡ (p) u FoR\p)) n ( FANoº(p) u FoRº (p)-:t- 0)] 7 Un flujo no debe tener terminadores, sean el mismo o no, como su emisor y receptor. [(FANO¡ (dc.T) u FoR\dc.T)) n ( FANoº (dc.T) u FoRº (dc.T)) = 0)] 8 Cada flujo debe tener un emisor y receptor [dc.F~ FANO¡ (dc.P u dc.T) FoR\dc.P u dc.T)] A [dc.F~ FANoº(dc.P u dc.T) FoRº(dc.P u dc.T)] 9 Cada flujo debe tener a lo más un emisor y un receptor Vq,r e dc.P u dc.T [ (q-:t-r) => ((FANO¡ (q) u FoR¡(q)) n (FANO¡ (r) u FoR¡(r)) = 0) A ((FANoº (q) u FoRº(q)) n (FANoº (r) u FoRº(r)) =0] 2.4.2 REGLAS DE FORMACION DE LA ESTRUCTURA DE LOS DIAGRAMAS DE TRANSFORMACION Al menos un proceso es requerido x.P-:t-0 23 Capítulo 2 Fundamentos Básicos del DFD y DFDX 2 No son permitidos los terminadores x.T=0 3 Son permitidas sólo las conexiones entre flujos y procesos y entre almacenes y procesos. x.F= x.FAND1 u x. F ANoº u x.FoR¡ u x. FoRº x.A= x.AAND¡ u x. AANoº u x.AoR¡ u x. AoRº x.C~ [(x.F u x.A) x x.P] u [x.P x (x.F u x.A)] 4 Cada proceso debe tener entradas y salidas de flujos o almacenes (Vp E x.P) [(FANO¡ (p) u FoR¡(p)) u (AAND¡ (p) u AoR¡(p)) * 0) A (FANo0 (p) uFoR0(p))u (AANo0 (p) uAoRº(p))-:t0)] 5 En cada proceso, al menos una de las entradas y salidas debe ser un flujo. (Vp E x.P) [(FANO¡ (p) u FoR¡(p)) u (FANoº (p) u FoRº(p)) * 0)] 6 Un flujo no debe ser emisor y receptor del mismo proceso. (Vp E x.P) [(FANO¡ (p) u FoR\p)) n (F ANoº (p) u FoRº(p)) = 0)] 7 Un flujo no debe necesariamente tener su emisor y receptor en el mismo diagrama de transformación, su salida abierta se unirá con el proceso padre del diagrama. Sin embargo, un flujo no debe pasar a través de un diagrama de transformación sin conectarse con un proceso. x.F ~ [(FANO¡ (x.P) u FoR\x.P)) u (FANoº (x.P) u FoRº(x.P))] 24 Capítulo 2 Fundamentos Básicos del DFD y DFDX 8 Un flujo no debe pasar a través de un diagrama de transformación teniendo más de un emisor y receptor. (Vp, q E x.P) [(p:tq) => ((FANO¡ (p) u FOR\p)) n (FANO¡ (q) u FoR¡(q)) = 0) A ((FANo0(p) u FoR0(p)) n (FANo0 (q) u FoRº(q)) = 0)] 9 Los almacenamientos no necesitan tener a sus lectores y escritores en el mismo diagrama de transformación, pero un almacén no debe aparecer en un diagrama de transformación sin ser accesado, x.A ~ [ AANO¡ (x.P) u AoR¡ (x.P)) u (AANoº (x.P) u AoR¡ (x.P)] 2.5. OPERACIONES DE REESTRUCTURACION PARA DFD 'S Se ha planteado con anterioridad, la necesidad de automatizar el proceso de edición de los DFDX, debido a lo tedioso que suele resultar su trazo, y aún mas sus correcciones, así como dar una mayor consistencia y validación a los diagramas a construir. En cuanto un sistema crece, se dificulta su control y entendimiento, por otra parte sería imposible manejar DFDs tan grandes como un campo de futbol, estos sistemas, además de ser laboriosos son propensos al error. Es por ello que se hace necesario un proceso de reestructuración que permita dividir el sistema en niveles sin perder consistencia y/o elementos. Es necesario tener un editor de DFDXs que se encargue de las operaciones de edición específicas para una reestructuración. Sin embargo la implementación total de tales operaciones no se contempla en el presente trabajo, así que se plantearán las operaciones necesarias en el Anexo B. La división de un sistema muy grande en DFDXs de múltiples niveles, debe darse en un enfoque estrictamente jerárquico, donde los procesos compuestos (llamaremos a estos así, cuando un proceso esté compuesto de subprocesos a su vez) estén definidos en niveles 25 Capítulo 2 Fundamentos Básicos del DFD y DFDX altos y sus procesos componentes en niveles bajos. En el tope de tal jerarquía se encuentra el diagrama de contexto , éste contiene un solo proceso. El sistema que es dividido en base a éste enfoque está dividido en diagramas de más bajo nivel , los cuales en adelante llamaremos diagramas de transformación. Este enfoque de estructura nivelada hace a un sistema más fácil de leer y comprender. Desde luego que para llegar a éste punto es necesaria una reestructuración, que cubra las siguientes necesidades. • Reestructuración para una división apropiada de los niveles de DFDs. Esto es una distribución apropiada del trabajo de un proceso compuesto en todos sus procesos componentes o hijos. • Reestructuración para reducir complejidad. Cuando modelamos un sistema en una estructura nivelada lo hacemos en aras de una mayor legibilidad. Sin embargo cuando varios procesos se "apiñan" en un DFD, tal legibilidad se ve obstaculizada. Cuando queremos dividir el diagrama, otro importante problema suele ser la complejidad de su interfase, es requisito por lo tanto que cada DFD tenga bien claro su patrón de flujo, pues cuando es muy grande el número de flujos hacia un proceso se tienen que agrupar algunos de los procesos en el diagrama para reacomodar sus flujos. • Reestructuración para presentar aspectos de un sistema en particular. Es útil presentar el modelo del sistema en varios aspectos, esto con el fin de que la reestructuración a los niveles más altos del modelo del sistema vaya de acuerdo al interés del usuario. Es de utilidad agrupar procesos cuyas entradas y salidas están conectadas a los mismos terminadores. 2.5.1 REQUERIMIENTOS DE OPERACIONES DE REESTRUCTURACION Podemos usar operaciones de edición básicas tales como insertado/borrado, conectar/desconectar elementos y crear/remover diagramas para completar una buena 26 Capüulo 2 Fundamentos Básicos del DFD y DFDX reestructuración. Por supuesto que el llevar a cabo este proceso de reestructuración de una forma manual puede ser tediosa y propensa al error puesto que pueden presentarse problemas de inconsistencia y falta de integridad. No es fácil, definitivamente, mantener en balance DFDs nivelados después de la reestructuración, pero es más difícil garantizar que un sistema es equivalente antes y después de ser sometido a un proceso de reestructuración. Los problemas presentados arriba se acrecentan en una proporción mayor cuando se tratan DFDs muy grandes. Un conjunto de operaciones de reestructuración deseable, debe tener en cuenta los siguientes 3 requerimientos. • Los modelos de DFDs nivelados de un sistema, antes y después de cada operación de reestructuración , deben ser equivalentes. • Cada operación de reestructuración en el conjunto debe mantener las propiedades de consistencia e integridad del modelo del sistema. • El conjunto de operacionesde reestructuración debe conocer las necesidades de reestructuración desde el principio. 27 Capítulo 3 Diseño del DFDX CAPITULO 3 DISEÑO DEL DFDX 3.1 INTRODUCC/ON Este capítulo permitirá adentrarse a la necesidad, concepción, diseño e implementación de un editor gráfico que permita al ingeniero de requerimientos de software, crear DFDXs. En el capítulo anterior se ha descrito el DFDX, tanto sus elementos, reglas de construcción y reglas de formación que lo hacen una herramienta de especificación formal. Sin embargo, en un estudio comparativo de algunos métodos formales gráficos que se muestra más adelante (Capítulo 4), se encontró que una desventaja importante del DFDX con respecto a los demás es que no estaba automatizado. Después de poner en práctica su uso, se ha encontrado que cada modificación puede llevar horas si se toma en cuenta que un cambio en algún elemento puede desencadenar cambios en varios niveles de la especificación. Una de las aspiraciones de la Ingeniería de Software es determinar la factibilidad y costo del sistema que está siendo construido. Los prototipos y simulaciones ayudan a los desarrolladores a entender mejor los requerimientos de usuario tanto como al diseño del producto inicial, en particular cuando el usuario tiene conocimientos computacionales limitados, pero es conocedor de su área de especialidad [Ramamoorthy 96]. 28 Capítulo 3 Diseño del DFDX 3.2 ACERCA DE LAS INTERFASES DE USUARIO No existe una "mejor" manera de diseñar una interfase de usuario, desde luego que los diseñadores de la interfase deben estar conscientes de que una interfase de usuario puede estar basada en alguno de los modelos existentes, una tarea de los diseñadores es elegir cual es el modelo más apropiado al proyecto que se pretende realizar [Getner 96]. Se pretende mostrar el diseño de la interfase gráfica, así como la implementación de las operaciones de edición tomando en cuenta las reglas propuestas por [Molina 94] y utilizando la herramienta de desarrollo propuesta (Visual Basic). Es importante señalar que el desarrollo de la interfase se sometió a las necesidades del presente trabajo de tesis y se delimitó en término de nuestros objetivos principales; esto es, no es el objetivo de este trabajo la programación de un editor gráfico que tome en cuenta pequeños detalles estéticos, sino la creación de un editor que permita la construcción de especificaciones a través del DFDX y la determinación automática de la correctés de tal especificación. Se puede entonces clasificar al DFDX como una herramienta CASE . 3.3. LA ESPECIFICACION DE REQUERIMIENTOS DEL DFDX Es necesario que previo a las etapas de diseño e implementación de un sistema de software, se cuente con un Documento de Especificación de Requerimientos. Hasta ahora, se conoce el problema y se han visto en capítulos anteriores las necesidades de automatizar el uso del DFDX, la especificación de requerimientos de software está dada por las reglas de construcción planteadas por Molina, aunque de manera parcial, pues en tal trabajo no se especifica el diseño de la interfase, ni se aislan los detalles de construcción de sistemas de información . 29 Capítulo 3 Diseño del DFDX Debido a que uno de los objetivos de esta tesis es la implementación de la automatización del uso de los DFDXs y en razón de que son éstos una herramienta excelente para la especificación de software, se presentan algunos módulos principales de la especificación de la implementación de la interfase desarrollada (véase Anexo A) . Además de que la formalización de la especificación de requerimientos puede ser -y en éste caso lo es- parte de la fase de diseño [Sommerville 94]. 3.4 DISEÑO A esta fase del Modelo del Ciclo de Vida del Software, concierne el cómo implementar los requerimientos de software de la manera más efectiva o eficiente. Esta fase puede estar dividida en tres partes , la primera es el diseño del software a un nivel tope (algunas veces llamado diseño de Arquitectura) y la segunda es el diseño modular o Diagrama de Estructura y la tercera es el diseño detallado ( algunas veces llamado Detalle de Módulos o diseño a bajo nivel). Se desglosan a continuación: 1.- Arquitectura 2. - Diagramas de Estructura 3.- Detalle de Módulos Reglas Formales de Construcción Programas de Cóm puto(editor) t Ju. j_ J ~1mp1e mreracc1on ae1 usuario con et sís\emii. · 30 Capítulo 3 Diseño del DFDX 3.4.1 ARQUITECTURA En primera instancia se ha dividido el sistema en tres subsistemas, donde es importante identificar sus partes funcionales y asociarles sus correspondientes requerimientos , así como asociar éstos a programas computacionales [Nieva, Campesino 88]. Se definen aquí : los conjuntos de iformación, los procesos o programas a desarrollar (identificación de programas) y el comportamiento dinámico del sistema. 3.4.1.1 LOS CONJUNTOS DE INFORMACION Existen básicamente en el sistema tres tipos de conjuntos de información; Entrada, Salida y Base de Datos. 3.4.1.1.1 DATOS DE ENTRADA .- Previa instalación y ejecución del sistema en un entorno Windows de Microsoft; las entradas de información al sistema son proporcionadas por el usuario mediante el uso de dispositivos de entrada como ratón o teclado. La interfase en su conjunto permite hacer una especificación usando Diagramas de Flujo de Datos Extendido. En lo particular, la información de entrada depende del estado en el que se encuentre el sistema en un momento dado durante la construcción de los DFDXs. 3.4.1.1.2 DATOS DE SALIDA.- La información de salida ofrecida por el sistema se constituye de la información que se despliega sobre el área de graficación de la interfaz al momento en que se está construyendo, esto es, la información gráfica que se está editando. Se constituye también de mensajes de error o advertencias o simples avisos desplegados a través de cajas de mensajes. Otro elemento es la información desplegada al momento de hacer la verificación de una especificación, esto se muestra en una ventana pop_ up, que señala los errores que pudieran existir en la construcción de la especificación o en su caso, el mensaje" verificación exitosa". El último elemento es la impresión de la especificación. 3.4.1.1.3 BASES DE DATOS- La base de datos es creada para cada especificación, una vez que el usuario ha grabado su especificación en disco. Cuando el usuario abre su especificación, la BD es cargada a memoria principal y modificada durante una sesión de 31 Capítulo 3 Diseño del DFDX trabajo, de acuerdo a los usos del sistema, mismos que son por supuesto transparentes al usuario del sistema. 3.4.1.1.3.1 DISEÑO CONCEPTUAL DE LA BASE DE DATOS.- La base de datos fue concebida a partir de la arquitectura naturalmente jerárquica de los DFDs3-1 , donde cada proceso, a excepción del proceso que pertenece al diagrama de contexto, tiene un padre y O, 1 ó más hijos. Cada proceso puede convertirse en un diagrama y en cada diagrama se pueden aplicar operaciones de edición sobre sus elementos. En la Figura 3.2 todos los ELEMENTOS VISIBLES EN EL DIAGRAMA pueden ser afectados por las operaciones de ELEMENTOS_ INSERCION, ELEMENTOS_ BORRAR, ELEMENTOS_ MOVER, ELEMENTOS MODIFICAR. Puede alguno de esos elementos ser un ELEMENTO _PROCESO_ HIJO de tal diagrama y éste a su vez, convertirse en diagrama y tener sus propios ELEMENTOS VISIBLES EN EL DIAGRAMA y éstos a su vez, pueden ser afectados por las operaciones señaladas anteriormente y así sucesivamente. Se genera también una tabla virtual creada por el proceso de Verificación de la especificación, que permitirá, previo algoritmo y en base a las reglas de construcción del DFDX, determinar la correctés de la especificación. 3.4.1.1.3.2 DISEÑO LOGICO DE LA BASE DE DATOS.- Se ha concebido la base de datos como un caso especial de archivos cuyos componentes están relacionadosentre si por algo más que una simple concatenación [Demarco 78]. Se crea un archivo principal que contiene los datos de los elementos de la especificación, cuya estructura se puede ver en la figura 3.3. y se llama también elementos. Los archivos de este tipo tienen una extensión dfx. Se cuenta con un archivo auxiliar que contiene información referente a los procesos compuestos creados, que en realidad se convierten también en diagramas, cuya estructura también se puede ver en la figura 3.3. y se llama Diagramas donde los archivos generados tienen una extensión dig. 3•1 Sin que se pretenda por ello hacer necesario el uso de un enfoque jerárquico como el que señala [Date 86) en el sistema de bases de datos. 32 Capítulo 3 Diseño del DFDX ELEMENTOS VJSIBLES EN Dl/\GRAMA ELEMENTOS .. BORRAR El .EMENTOS)v!OYER ~-------···---- Figura 3.2 Operaciones básicas de edición. El otro archivo auxiliar contiene los datos de los flujos heredados de un proceso padre sea p , a su proceso hijo p.hijo, en realidad este tipo de procesos son llamados procesos compuestos que se convierten también en diagramas cuando se baja en un nivel sobre la construcción de una especificación. Estos archivos contienen infonnación acerca de qué procesos heredan sus entradas y salidas y conservan la referencia acerca de quién son los procesos hijos y a quiénes se heredan tales flujos de datos de entrada-salida. Su estructura y tipo de archivo se denominan.flujos heredados. En la Figura 3.3 se muestra la base de datos y sus relaciones, donde se dice que un diagrama tiene o está constituido por 1 ó más elementos y puede tener O, 1 ó más flujos heredados . La Base de Datos es generada a partir de la construcción de una especificación con DFDX. La extensión y tipo de cada archivo corresponde a la estructura definida en el programa de aplicación. 33 Capítulo 3 • Elementos num_ diagrama c:oord xl coord_ .. YI coord x2 coord _y2 contwl tipo_ elemento nombre exter nombre ínter tipo de Esl'ructura : Elementos, Diagramas y· Flujos_hcredados Flujos Heredados num_díagrama num ___ flow _original nomb__proc Jfo1v_orígínal Diseño del DFDX Diagramas nivel m1m __ diagrama nomb int .. __ proceso nomb_ e:..:l_proceso n u rn _ d iag_ de _pro e_ co pía Oow _copia direccíon_de_flujo Fig. 3.3 BASE DE DATOS. 3.4.2 LA IDENTIFICACION DE PROGRAMAS.- La identificación de programas necesita de la especificación de requerimientos del sistema. Por tanto, para ilustrar mejor al lector acerca de los programas que se tuvieron que implementar, se muestran en las figuras 3.4 y 3.5, para fines ilustrativos, los primeros dos diagramas de especificación del sistema que se ha desarrollado. Estos sugieren programas en los procesos compuestos. En la Fig. 3.4 se encuentra el proceso HERRAMIENTA DE EDICION, que sugiere ser el sistema a desarrollar en su nivel más alto de abstracción, esto es, el diagrama de contexto, debiendo recibir un mensaje de entrada(MENSAJEi) del USUARIO para, después del proceso, ofrecerle una respuesta (MENSAJEo ). 34 Capítulo 3 Diseño del DFDX En la figura 3 .4 se muestra el nivel O y diagrama O ( de contexto) de la especificación de la herramienta, construida "manualmente" con sus propios elementos. USUARIO 1----~ HERRAMIENTA DE EDICION Valores Global<' , DATOS GRALES ~i' 'i<'N Fig 3.4.- Diagrama de Contexto (nivel O). M .;;Jc \1ENU .\.; ... MENU ~o-~~ \..-~ :\1sJl_ A1.. .. HF.P..R . .;\1lFNT,\~ t LKRAM! E NTAS PALET :\ DE --o------ HERRAMID/Ti\S Ac1..· Plí.'.!\RRON Fig 3.5.- Este es el diagrama 1 (5 procesos de transfonnación.) l lSUi \RIO \\E~SAJFn En la Fig. 3.5, se sugiere que cualquiera que sea el mensaje del usuario MENSAJEi, se necesita un programa SELECCION DE OPCION, que analice la petición y envíe un 35 Capítulo 3 Diseño del DFDX mensaje apropiado (Msje_MENU, Msje_HERRAMIENTAS o Msje_PIZAZRRON) a uno de los tres procesos-programas sugeridos (TRABAJO DE MENU, PALETA DE HERRAMIENTAS o PIZARRON DE EDICION) respectivamente. El proceso ejecutado deberá corresponder con un mensaje apropiado (Acc_MENU, Acc_HERRAMIENTAS o Acc_PIZARRON) que debe ser sometido a un proceso de EVALUACION DE MENSAJE, que determinará y ejecutará la acción correspondiente y determinará también el mensaje de salida MENSAJEo que será enviado al usuario en señal de respuesta. De esta forma el usuario siempre observa una reacción a cada una de las acciones que realiza durante la construcción de la especificación. El proceso EVALUACION DE MENSAJE detecta el caso en que se trate del arranque del sistema, entonces envía un mensaje de 1mc10 al proceso VALORES_ DE_ INICIO, que inicializa valores por omisión y los almacena en memoria. Es importante señalar que esta identificación de programas es a un nivel de abstracción todavía muy alto para su codificación. Sin embargo se nota ya como el DFDX invita al usuario a bajar, de manera metódica y paso a paso su nivel de abstracción. Así se ha tratado de hacer ver un proceso como un programa y a los flujos de entrada/salida de información como sus parámetros. Para más información véase Anexo A. 3.4.2.1 EL COMPORTAMIENTO DINAMICO DEL SISTEMA.- Debido a que el objetivo de este trabajo no es detallar las respuestas funcionales del sistema, se describen las partes de la interfase. En la figura 3.6 se aprecia la pantalla inicial de la interfase, la cual se divide en 3 áreas de recepción de eventos, tal como se ha descrito a nivel general en la figura 3.5. El área de recepción TRABAJO DE MENU se encuentra en la parte superior de la pantalla inicial de la interfase y cuyas opciones son Archivo, Editar, Herramientas, Nivel, Verificar y Ayuda. El área de recepción PALETA DE HERRAMIENTAS, está en la parte izquierda de la pantalla inicial y sus opciones son botones gráficos representados con el elemento gráfico que producirán en caso de ser seleccionados, éstos se encuentran colocados en orden vertical descendente; Control, Flujo, Entidad Externa, Proceso, Almacén, Flujo Necesario, Flujo Deseable, Agrupador AND, Agrupador OR, Etiquetas y Dirección de Flujos. Por último, el área de recepción PIZARRON DE EDICION es el resto 36 Capítulo 3 Diseño del DFDX de la pantalla y es donde se capturan los eventos del ratón que, combinados con opciones de las otras dos áreas de recepción de eventos, determinan el comportamiento gráfico de los elementos en esta área. El sistema trabaja de manera muy similar a los editores gráficos usados en ambiente Windows de Microsoft, de tal manera que al usuario le resulte familiar su uso. Siendo transparentes al usuario la aplicación de las reglas de construcción del DFDX. Archivo ~d itor Yer tferramien tas Nivel V erifica r A~uda Figura 3 .6.- Pantalla Inicial de la Interfase de la herramienta de construcción de especificaciones a través del DFDX. 3.4.3 DIAGRAMA DE ESTRUCTURA.- La estructura del sistema, en su división de módulos principales se constituye de formularios3-2 un módulo principal MODDFDX.BAS y un módulo de variables globales VARTOTAL.GBL (Fig 3.7). Es importante señalar que este diagrama toma en cuenta la filosofía de alcance de variables de Visual Basic (VB), así como el agrupamiento de rutinas relacionadas a determinadas secciones de la interfase. 3-2 El concepto de "formulario", es propio de Visual Basic y se refiere a un tipo de control que simula un lienzo o pizarrón en el que se puede prediseñar de una manera sencilla una interfase gráfica agregando botones, menus pull-down, imagenes y otro tipo de controles, más información en [Visual Basic 93]. 37 Capítulo 3 1 1 1 'vlodulo de variables y estructuras globaks MODDFDX.BAS Módulo de ,manque y rutinas compartidas por formularios. Su existencia se determina debido a la necesidad de los fonnularios de compartir información y rutinas comunes. PIZARRA.FRM Que contiene lainterfase principal.así como todas las rutinas que sus element(IS necesitan. U:CTURA.FRM Que contiene la interfase de captura de datos de elementos de la cs1x:cificación previa selección. Diseño del DFDX MSG_ERROR.FRM Que contiene la interfase que despliega los resu ltados del proceso de verificación de: la información 1 ¡, Figura 3.7.- Elementos del sistema o Diagrama de Estructura. El sistema arranca conociendo todas las variables del tipo global y estructuras de datos. Define en el modo de diseño del entorno de VB a la función mainO, como su función de arranque3-3 . Después es llamado el módulo de la interfase principal pizarra (ver fig. 3.7). El módulo de msg_ error es llamado después de que se activa el proceso de verificación dentro de el módulo pizarra. El módulo lectura es llamado cuando se asigna un nombre y/o una función o número de prioridad de entrada o salida a un elemento de la especificación . Este módulo también es llamado desde el módulo pizarra. El total de los módulos se encuentra diluido entre los archivos de extensión frm,bas y gbl. En la figura 3.8 se muestran los archivos necesarios para la generación del archivo ejecutable que deberá trabajar sobre un entorno Windows de Microsoft. 3 - 3 Sería lógico pensar que la función de arranque siempre será la función main(), sin embargo VB permite predefinir la rutina con la que se inicia. Ver opción project del entrono de diseño de VB [Visual Basic 93]. 38 Capítulo 3 PROYD FD\'..\l .\h. \·111UDI DX IJ..\S PI/ i\Rf{AI RM IFCI 111{1\ 1 l{M \l's(, 1 RfU 1(\1 V \ R ll i 1 :\ L 1 , l l l C.\11)1:\1 Oli VB\ Diseño del DFDX - IHD\'..E\E Figura 3.8.- Archivos necesarios para el sistema. 3.4.4 DETALLE DE MODULOS.- A continuación se describen los módulos antes mencionados. Se detallan algunas características como nombre del archivo, módulo, argumentos, objetivo y en caso necesario submódulos de interés y su algoritmo general. ARCHIVO: MODULO: ARGUMENTOS: OBJETIVO: SUBMODULOS IMPORTANTES: ALGORITMO: MODDFDX.bas MODDFDX s/a Es el módulo general, donde se encuentra la rutina de arranque sub mainO, también se inicializa el sistema y todas las variables globales. Contiene rutinas compartidas por los formularios y algunas que sincronizan a tales formularios . sub default(), que inicializa los valores de las variables globales del sistema. 1.-Define un arreglo dinámico de formularios del tipo de la interfase principal. 39 Capítulo 3 ARCHIVO: MODULO: ARGUMENTOS: OBJETIVO: SUBMODULOS IMPORTANTES: Diseño del DFDX 2.-Busca y ubica a los objetos de la interfase principal 3 .-Inicializa todos los identificadores de uso global 4.-Carga el formulario principal pizarra, listo para su interacción con el usuario. PIZARRA.frm PIZARRA n, que se refiere al número de elemento del arreglo de interfases de tipo formulario. Esto es el número de diagrama, que es distinto al nivel de abstracción, soportado en una estructura tipo árbol. De tal forma que el usuario pueda trabajar en diferentes diagramas de igual o diferente nivel. Permitir al usuario la construcción de especificaciones formales usando el DFDX. Es importante señalar que contiene el trabajo de edición, es decir, el control de tales rutinas. Está compuesto por las rutinas de las tres áreas de la interfase principal definida en la fig. 3.5 De los relacionados a la sección de herramientas, que son: un arreglo de objetos-imagen, las rutinas que capturan los eventos del ratón: click y doble click:paletatool_clicky paletatool double_click, donde la primera activa el objeto-imagen apropiado a la selección del usuario y la segunda crea el objeto seleccionado en el área de dibujo, asignando a tal objeto un nombre por omisión. De los relacionados a la sección de menús pull-down, la rutina mnu archivo puede cargar en memoria una especificación previamente creada, guardar en disco la actual, crear una nueva, renombrar la actual o imprimir una especificación. La rutina mnu _ Verfificar determina las relaciones de los elementos que conforman la especificación y en base a las reglas de construcción 40 Capítulo 3 Diseño del DFDX de los DFDXs emite mensaJes de error o de aceptación de la especificación. Además de las reglas de construcción se toma en cuenta a una tabla de validez de los flujos de información obtenida también de las reglas de construcción y que describe las siguientes relaciones : Retomando la nomeclatura de las secciones 2.2.3 y 2.2.4; m.C= m.dc.C um.X.C donde las relaciones (m.T x m.A) u ( m.A x m. T) f! m. C . De las relacionadas a las sección de edición gráfica. Las rutinas que capturan los eventos básicos del ratón: pizarra_ MouseDown, pizarra MouseMove y pizarra - - MouseUp. Donde la primera está enfocada a las acciones que ocurren cuando el usuario oprime el botón o los botones del ratón en un estado determinado del sistema. Sus acciones son totalmente gráficas. ~ D D -- D ]) --' D Si Si Si [ ¡¡~fo [ fa.fo [ fa,fü D Si Si 1 S1 Si t: fa.fo [ fa.fo e fü,fo e tafo t: fü,fo -- Si Si s 1 -- t: fa.fo [ fa,fo f. fü,fo D Si Si Si Si Si f. fü,fo 1: fü,fo f. fü,fo f. fü,fo 1: fafo ]) Si Si Si Si Si 1: 1a10 L fr~fo i; fa.fo i: fa.fo 1: fr~fo Figura 3.9.- Flujos permitidos. 41 Capítulo 3 ALGORITMO: ARCHIVO: MODULO: ARGUMENTOS: OBJETIVO: SUBMODULOS IMPORTANTES: ALGORITMO: Diseño del DFDX La segunda se refiere a las acciones que se toman cuando al usuario está moviendo el ratón sobre el área del PIZARRON DE EDICION, sin importar que esté o no presionado el botón del ratón. La tercera es el último evento de los 3 ( que se accionan de manera consecutiva) y actúa de acuerdo a la posición en la pantalla donde se deja de presionar el botón del ratón y en función de la actividad de edición que se esté realizando. 1.- Repite 1.1.- Captura de Eventos 2.- Hasta que hay Evento 3.- Mientras Evento es diferente de selección de menu _ Archivo(Salir) hacer 3 .1. -Tomar acciones correspondientes 4.- Fín Mientras 5.- Fín Modulo. LECTURA.frm LECTURA s/a Permitir al usuario la captura de información (nombre y función) de un objeto previamente seleccionado y actualizar tales cambios. 1.-loop que espera por un evento 2.-Si el evento es aceptar cambios entonces 2.1.- asignar nuevos datos a los elementos 2.2.- regresar a diagrama anterior 3.-Fin Si 42 Capítulo 3 ARCHIVO: MODULO: ARGUMENTOS: OBJETIVO: SUBMODULOS IMPORTANTES: ALGORITMO: 4.-Si el evento es cancelar entonces 4.1.- regresar a diagrama anterior 5.- Fin si 6.- Si el evento es Sobre otro diagrama entonces 6.1.-Ubicar diagrama y regresar a el. 7.-Fin si 8.- Fin msge _ err.frm msge_err s/a Diseño del DFDX Desplegar errores de construcción de especificaciones hechas con el sistema en la sección de edición. Tales errores son identificados en el proceso de verificación y guardados , en caso de existir, en un arreglo de tamaño variable de mensajes de error. 1.- Si NUMERRORES=O entonces 1.1.- Arreglo de errores con un elemento que contiene la cadena de datos: "VERIFICACION EXITOSA" Si NO 1.2.- 2.- Fín Si Llenar el objeto editor-de-texto que se encuentra en el formulario "lectura" con el Arreglo ARR_ERRORES (NUMERRORES) , llenado previamente en el proceso de verificación. 43 Capítulo 4 El DFDX dentro de los Métodos Formales Gráficos CAPITULO 4 EL DFDX DENTRO DE LOS METODOS FORMALES GRAFICOS 4.1 INTRODUCCJON En este capítulo se pretende ubicar al DFDX dentro del contexto de los Métodos Gráficos de Especificación Formal (MGEF). Se presentan dos de los más conocidos dentro de la especificación de software de diferentes aplicaciones. La primera Técnica o Método Gráfico de Especificación Formal (MGEF) que se muestra son las Máquinas de Estado Finito (MEF) o Autómatas de Estado Finito (AEF)
Compartir