Articulo de referencia

Análisis estructurado

Ejemplo de un enfoque de análisis estructurado. [ 1 ] En ingeniería de software , el análisis estructurado (AE) y el diseño estructurado (DE) son métodos para analizar los requi...

Ejemplo de un enfoque de análisis estructurado. [ 1 ]

En ingeniería de software , el análisis estructurado (AE) y el diseño estructurado (DE) son métodos para analizar los requisitos empresariales y desarrollar especificaciones para convertir las prácticas en programas informáticos , configuraciones de hardware y procedimientos manuales relacionados.

Las técnicas de análisis y diseño estructurados son herramientas fundamentales del análisis de sistemas . Se desarrollaron a partir del análisis de sistemas clásico de las décadas de 1960 y 1970. [ 2 ]

Objetivos del análisis estructurado

El análisis estructurado se popularizó en la década de 1980 y aún se utiliza hoy en día. Consiste en interpretar el concepto del sistema (o situaciones del mundo real) en términos de datos y control, representados mediante diagramas de flujo de datos . El flujo de datos y control desde una burbuja hasta el almacén de datos y de vuelta a otra burbuja puede ser difícil de rastrear, y el número de burbujas puede aumentar.

Un enfoque consiste en definir primero los eventos del mundo exterior que requieren la reacción del sistema y, a continuación, asignar una burbuja a cada evento. Las burbujas que necesitan interactuar se conectan hasta que se define el sistema. Generalmente, las burbujas se agrupan en burbujas de nivel superior para reducir la complejidad. Se necesitan diccionarios de datos para describir los flujos de datos y comandos, y una especificación de proceso para capturar la información de transacciones/transformaciones. [ 3 ]

SA y SD se muestran con diagramas de estructura , diagramas de flujo de datos y diagramas de modelos de datos , de los cuales existían muchas variaciones, incluidas las desarrolladas por Tom DeMarco , Ken Orr , Larry Constantine , Vaughn Frick , Ed Yourdon , Steven Ward, Peter Chen y otros.

Estas técnicas se combinaron en varias metodologías de desarrollo de sistemas publicadas , entre las que se incluyen el método de análisis y diseño de sistemas estructurados , la información rentable mediante el diseño (PRIDE), el análisis y diseño estructurado de Nastec, SDM/70 y la metodología de desarrollo de sistemas estructurados de Spectrum.

Historia

El análisis estructurado forma parte de una serie de métodos estructurados que representan un conjunto de técnicas de análisis, diseño y programación desarrolladas en respuesta a los problemas que afrontaba el mundo del software entre las décadas de 1960 y 1980. En este periodo, la mayor parte de la programación comercial se realizaba en Cobol y Fortran , y posteriormente en C y BASIC . Existía poca orientación sobre buenas técnicas de diseño y programación, y no había técnicas estándar para documentar requisitos y diseños. Los sistemas se volvían cada vez más grandes y complejos, y el desarrollo de sistemas de información se hacía cada vez más difícil. [ 4 ]

Como una forma de ayudar a gestionar software grande y complejo, surgieron los siguientes métodos estructurados desde finales de la década de 1960: [ 4 ]

Según Hay (1999), " la ingeniería de la información fue una extensión lógica de las técnicas estructuradas que se desarrollaron durante la década de 1970. La programación estructurada condujo al diseño estructurado, que a su vez condujo al análisis de sistemas estructurados. Estas técnicas se caracterizaron por el uso de diagramas : diagramas de estructura para el diseño estructurado y diagramas de flujo de datos para el análisis estructurado, tanto para facilitar la comunicación entre usuarios y desarrolladores como para mejorar la disciplina del analista y del diseñador. Durante la década de 1980, comenzaron a aparecer herramientas que automatizaban el dibujo de los diagramas y mantenían un registro de los elementos dibujados en un diccionario de datos ". [ 10 ] Tras el ejemplo del diseño asistido por ordenador y la fabricación asistida por ordenador (CAD/CAM), el uso de estas herramientas se denominó ingeniería de software asistida por ordenador (CASE).

Temas de análisis estructurado

Mecanismo de abstracción única

Ejemplo de análisis estructurado. [ 11 ]

El análisis estructurado generalmente crea una jerarquía empleando un único mecanismo de abstracción. El método de análisis estructurado puede utilizar IDEF (véase la figura), se basa en procesos y parte de un propósito y un punto de vista. Este método identifica la función general y la divide iterativamente en funciones más pequeñas, conservando las entradas, salidas, controles y mecanismos necesarios para optimizar los procesos. También conocido como enfoque de descomposición funcional , se centra en la cohesión dentro de las funciones y el acoplamiento entre ellas, lo que da lugar a datos estructurados. [ 11 ]

La descomposición funcional del método estructurado describe el proceso sin delimitar el comportamiento del sistema y dicta la estructura del sistema en forma de funciones requeridas. El método identifica las entradas y salidas en relación con las actividades. Una razón de la popularidad del análisis estructurado es su capacidad intuitiva para comunicar procesos y conceptos de alto nivel, ya sea a nivel de sistema individual o empresarial. Aún no está claro cómo los objetos podrían soportar funciones para el desarrollo orientado a objetos comercialmente predominante . A diferencia de IDEF, UML se basa en interfaces con múltiples mecanismos de abstracción útiles para describir arquitecturas orientadas a servicios (SOA). [ 11 ]

Acercarse

El análisis estructurado considera un sistema desde la perspectiva de los datos que fluyen a través de él. La función del sistema se describe mediante procesos que transforman dichos flujos. El análisis estructurado aprovecha la ocultación de información mediante el análisis de descomposición sucesiva (o descendente). Esto permite centrar la atención en los detalles pertinentes y evita la confusión derivada de la observación de detalles irrelevantes. A medida que aumenta el nivel de detalle, se reduce la cantidad de información. El resultado del análisis estructurado es un conjunto de diagramas gráficos, descripciones de procesos y definiciones de datos relacionados. Estos describen las transformaciones necesarias y los datos requeridos para cumplir con los requisitos funcionales del sistema . [ 12 ]

El enfoque de análisis estructurado desarrolla perspectivas tanto sobre los objetos de proceso como sobre los objetos de datos. [ 12 ]

El enfoque de De Marco [ 13 ] consta de los siguientes objetos (ver figura): [ 12 ]

Los diagramas de flujo de datos (DFD) son grafos dirigidos. Los arcos representan los datos y los nodos (círculos o burbujas) representan los procesos que transforman los datos. Un proceso puede descomponerse aún más en un DFD más detallado que muestra los subprocesos y los flujos de datos dentro del mismo. Los subprocesos, a su vez, pueden descomponerse aún más con otro conjunto de DFD hasta que sus funciones se comprendan fácilmente. Las primitivas funcionales son procesos que no necesitan descomponerse más. Las primitivas funcionales se describen mediante una especificación de proceso (o miniespecificación). La especificación de proceso puede consistir en pseudocódigo, diagramas de flujo o inglés estructurado. Los DFD modelan la estructura del sistema como una red de procesos interconectados compuestos por primitivas funcionales. El diccionario de datos es un conjunto de entradas (definiciones) de flujos de datos, elementos de datos, archivos y bases de datos. Las entradas del diccionario de datos se particionan de forma jerárquica. Se pueden referenciar en otras entradas del diccionario de datos y en diagramas de flujo de datos. [ 12 ]

Diagrama de contexto

Ejemplo de un diagrama de contexto del sistema. [ 14 ]

Los diagramas de contexto son diagramas que representan a los actores externos a un sistema que podrían interactuar con él. [ 15 ] Este diagrama es la vista de más alto nivel de un sistema , similar a un diagrama de bloques , que muestra un sistema, posiblemente basado en software , como un todo y sus entradas y salidas de/hacia factores externos.

Este tipo de diagrama, según Kossiakoff (2003), generalmente "representa el sistema en el centro, sin detalles de su estructura interna, rodeado por todos sus sistemas interactivos, entorno y actividades. El objetivo de un diagrama de contexto del sistema es centrar la atención en los factores y eventos externos que deben considerarse al desarrollar un conjunto completo de requisitos y restricciones del sistema". [ 15 ] Los diagramas de contexto del sistema están relacionados con los diagramas de flujo de datos y muestran las interacciones entre un sistema y otros actores con los que el sistema está diseñado para interactuar. Los diagramas de contexto del sistema pueden ser útiles para comprender el contexto en el que el sistema formará parte de la ingeniería de software .

Diccionario de datos

Diagrama de relación de entidades , esencial para el diseño de tablas de bases de datos, extracciones y metadatos. [ 16 ]

Un diccionario de datos o diccionario de base de datos es un archivo que define la organización básica de una base de datos . [ 16 ] Un diccionario de base de datos contiene una lista de todos los archivos de la base de datos, el número de registros en cada archivo y los nombres y tipos de cada campo de datos. La mayoría de los sistemas de gestión de bases de datos mantienen el diccionario de datos oculto a los usuarios para evitar que destruyan accidentalmente su contenido. Los diccionarios de datos no contienen datos reales de la base de datos, solo información de contabilidad para su gestión. Sin embargo, sin un diccionario de datos, un sistema de gestión de bases de datos no puede acceder a los datos de la base de datos. [ 16 ]

Los usuarios de bases de datos y los desarrolladores de aplicaciones pueden beneficiarse de un documento de diccionario de datos autorizado que cataloga la organización, el contenido y las convenciones de una o más bases de datos. [ 17 ] Este documento suele incluir los nombres y las descripciones de varias tablas y campos en cada base de datos, además de detalles adicionales, como el tipo y la longitud de cada elemento de datos . No existe un estándar universal en cuanto al nivel de detalle de dicho documento, pero se trata principalmente de una síntesis de metadatos sobre la estructura de la base de datos , no de los datos en sí. Un documento de diccionario de datos también puede incluir información adicional que describa cómo se codifican los elementos de datos. Una de las ventajas de una documentación de diccionario de datos bien diseñada es que ayuda a establecer la coherencia en una base de datos compleja o en una gran colección de bases de datos federadas . [ 18 ]

Diagramas de flujo de datos

Ejemplo de diagrama de flujo de datos. [ 19 ]

Un diagrama de flujo de datos (DFD) es una representación gráfica del "flujo" de datos a través de un sistema de información . Se diferencia del diagrama de flujo del sistema en que muestra el flujo de datos a través de procesos en lugar de hardware informático . Los diagramas de flujo de datos fueron inventados por Larry Constantine , desarrollador del diseño estructurado , basándose en el modelo de computación de "grafo de flujo de datos" de Martin y Estrin. [ 20 ]

Es práctica común dibujar primero un diagrama de contexto del sistema que muestre la interacción entre el sistema y las entidades externas. El DFD está diseñado para mostrar cómo se divide un sistema en partes más pequeñas y para resaltar el flujo de datos entre ellas. Este diagrama de flujo de datos a nivel de contexto se desglosa posteriormente para mostrar con mayor detalle el sistema que se está modelando.

Los diagramas de flujo de datos (DFD) son una de las tres perspectivas esenciales del método de análisis y diseño de sistemas estructurados (SSADM). El patrocinador del proyecto y los usuarios finales deben ser informados y consultados durante todas las etapas de la evolución del sistema. Con un diagrama de flujo de datos, los usuarios pueden visualizar cómo funcionará el sistema, qué logrará y cómo se implementará. Los diagramas de flujo de datos del sistema anterior se pueden elaborar y comparar con los del nuevo sistema para establecer comparaciones y así implementar un sistema más eficiente. Los diagramas de flujo de datos permiten al usuario final comprender cómo los datos que ingresa afectan la estructura del sistema, desde el pedido hasta el envío y la reprocesamiento. El desarrollo de cualquier sistema se puede determinar mediante un diagrama de flujo de datos.

Diagrama de estructura

Un diagrama de estructura del sistema de configuración. [ 21 ]

Un diagrama de estructura (SC) es un diagrama que muestra la descomposición del sistema de configuración hasta los niveles más bajos manejables. [ 21 ] Este diagrama se utiliza en la programación estructurada para organizar los módulos del programa en una estructura de árbol. Cada módulo está representado por un recuadro que contiene el nombre del módulo. La estructura de árbol visualiza las relaciones entre los módulos. [ 22 ]

Los diagramas de estructura se utilizan en el análisis estructurado para especificar el diseño de alto nivel, o arquitectura, de un programa informático . Como herramienta de diseño, ayudan al programador a dividir y conquistar un problema de software complejo, es decir, a descomponer recursivamente un problema en partes lo suficientemente pequeñas como para ser comprendidas por el cerebro humano. Este proceso se denomina diseño descendente o descomposición funcional . Los programadores utilizan un diagrama de estructura para construir un programa de forma similar a como un arquitecto utiliza un plano para construir una casa. En la etapa de diseño, el diagrama se dibuja y se utiliza como medio de comunicación entre el cliente y los distintos diseñadores de software. Durante la construcción del programa (implementación), el diagrama se denomina continuamente plan maestro. [ 23 ]

Diseño estructurado

El diseño estructurado (DE) se ocupa del desarrollo de módulos y la síntesis de estos módulos en una denominada "jerarquía de módulos". [ 24 ] Para diseñar una estructura e interfaces de módulos óptimas, dos principios son cruciales:

  • Cohesión que se refiere a "la agrupación de procesos funcionalmente relacionados en un módulo particular", [ 12 ] y
  • El acoplamiento se refiere al "flujo de información o parámetros que se transmiten entre módulos. Un acoplamiento óptimo reduce las interfaces de los módulos y la complejidad resultante del software". [ 12 ]

El diseño estructurado fue desarrollado por Larry Constantine a finales de la década de 1960, luego refinado y publicado con colaboradores en la década de 1970; [ 5 ] [ 6 ] véase Larry Constantine: diseño estructurado para más detalles. Page-Jones (1980) ha propuesto su propio enfoque que consta de tres objetos principales  :

  • diagramas de estructura
  • especificaciones del módulo
  • diccionario de datos.

El diagrama de estructura tiene como objetivo mostrar la jerarquía de módulos o la relación de secuencia de llamadas entre ellos. Existe una especificación para cada módulo que se muestra en el diagrama de estructura. Las especificaciones de los módulos pueden estar compuestas de pseudocódigo o un lenguaje de diseño de programas. El diccionario de datos es similar al del análisis estructurado. En esta etapa del ciclo de vida del desarrollo de software , después de haber realizado el análisis y el diseño, es posible generar automáticamente declaraciones de tipos de datos [ 25 ] y plantillas de procedimientos o subrutinas [ 12 ] .

Críticas

Los problemas con los diagramas de flujo de datos han incluido los siguientes: [ 3 ]

  1. Elegir las burbujas adecuadas
  2. Dividir las burbujas de manera significativa y mutuamente acordada,
  3. Tamaño de la documentación necesaria para comprender los flujos de datos,
  4. Los diagramas de flujo de datos son de naturaleza eminentemente funcional y, por lo tanto, están sujetos a cambios frecuentes.
  5. Aunque se hace hincapié en el flujo de "datos", no se hace hincapié en el modelado de "datos", por lo que hay poca comprensión del tema del sistema.
  6. Los clientes tienen dificultades para comprender cómo se representa el concepto en flujos de datos y burbujas.
  7. Los diseñadores deben transformar la organización del DFD a un formato implementable.

Véase también

Referencias

  1. Tricia Gilbert (2006) Criterios de evaluación de FCS para la evaluación de tecnología. Archivado el 18 de septiembre de 2008 en Wayback Machine.
  2. Edward Yourdon (1986). Managing the Structured Techniques: Strategies for Software Development in the 1990s . Yourdon Press. p.35.
  3. 1 2 FAA (2000). Manual de seguridad del sistema de la FAA, Apéndice D. 30 de diciembre de 2000.
  4. 1 2 Dave Levitt (2000). "Introducción al análisis y diseño estructurado." en faculty.inverhills.edu/dlevitt . Consultado el 21 de septiembre de 2008. Ya no está disponible en línea desde 2017.
  5. 1 2 Stevens, Myers y Constantine 1974 .
  6. 1 2 Yourdon y Constantine 1979 .
  7. McMenamin, Stephen M.; Palmer, John F. (1984). Análisis esencial de sistemas . Yourdon Press. ISBN 978-0-13-287905-7.
  8. Gavriel Salvendy (2001). Manual de ingeniería industrial: tecnología y gestión de operaciones. . p.508.
  9. Yourdon, Edward (1989). Análisis Estructurado Moderno . Prentice-Hall. ISBN 978-0-13-598632-5.
  10. David C. Hay (1999) Lograr el cumplimiento de las palabras de moda en la orientación a objetos Archivado el 20 de octubre de 2008 en Wayback Machine Essential Strategies, Inc.
  11. 1 2 3 Grupo de trabajo del marco de arquitectura del Departamento de Defensa (2003). DoDAF 1.5 Volumen 2 , 15 de agosto de 2003.
  12. 1 2 3 4 5 6 7 Alan Hecht y Andy Simmons (1986) Integración del análisis y diseño estructurado automatizado con entornos de soporte de programación Ada NASA 1986.
  13. Tom DeMarco (1978). Análisis estructurado y especificación de sistemas . Yourdon Press, Nueva York, 1978.
  14. Gestión de proyectos NDE Archivado el 7 de noviembre de 2008 en el sitio web de explotación de datos de Wayback Machine (NPOESS). 2008.
  15. 1 2 Alexander Kossiakoff , William N. Sweet (2003). Ingeniería de sistemas: principios y prácticas, pág. 413.
  16. 1 2 3 Glosario de integración de datos Archivado el 18 de febrero de 2012 en Wayback Machine , Departamento de Transporte de EE. UU., agosto de 2001.
  17. TechTarget, SearchSOA , ¿Qué es un diccionario de datos?
  18. AHIMA Practice Brief, Guidelines for Developing a Data Dictionary , Journal of AHIMA 77, no.2 (febrero de 2006): 64A-D.
  19. John Azzolini (2000). Introducción a las prácticas de ingeniería de sistemas . Julio de 2000.
  20. W. Stevens, G. Myers, L. Constantine, "Diseño estructurado", IBM Systems Journal, 13 (2), 115-139, 1974.
  21. 1 2 "Gestión de la configuración" En: Recursos del IRS Parte 2. Tecnología de la información Capítulo 27. Gestión de la configuración . Consultado el 14 de noviembre de 2008.
  22. James Martin , Carma L. McClure (1988). Técnicas estructuradas: La base del caso . Prentice Hall. pág. 56.
  23. David Wolber " Diagramas de estructura Archivados el 19/02/2009 en Wayback Machine : Notas complementarias Diagramas de estructura e implementación ascendente: Versión Java.
  24. Page-Jones 1980 .
  25. Belkhouche, B., y JE Urban. (1986). "Implementación directa de tipos de datos abstractos a partir de especificaciones abstractas". En: IEEE Transactions on Software Engineering, págs. 549-661, mayo de 1986.

Lecturas adicionales

  • Stevens, WP ; Myers, GJ ; Constantine, LL (junio de 1974). "Diseño estructurado". IBM Systems Journal . 13 (2): 115–139 . doi : 10.1147/sj.132.0115 .
  • Yourdon, Edward ; Constantine, Larry L. (1979) [1975]. Diseño estructurado: Fundamentos de una disciplina del diseño de programas y sistemas informáticos . Yourdon Press. ISBN 0-13-854471-9.
  • Tom DeMarco (1978). Análisis estructurado y especificación de sistemas . Yourdon. ISBN 0-91-707207-3
  • Page-Jones, M (1980), Guía práctica para el diseño de sistemas estructurados , Nueva York: Yourdon Press
  • Derek J. Hatley, Imtiaz A. Pirbhai (1988). Estrategias para la especificación de sistemas en tiempo real . John Wiley and Sons Ltd. ISBN 0-932633-04-8
  • Stephen J. Mellor y Paul T. Ward (1986). Desarrollo estructurado para sistemas en tiempo real: Técnicas de modelado de implementación: 003. Prentice Hall. ISBN 0-13-854803-X
  • Edward Yourdon (1989). Análisis estructurado moderno , Yourdon Press Computing Series, 1989, ISBN 0-13-598624-9
  • Keith Edwards (1993). Métodos estructurados en tiempo real, análisis de sistemas . Wiley. ISBN 0-471-93415-1
  • Wiki de análisis estructurado
  • Tres perspectivas del análisis estructurado. CRaG Systems, 2004.