El desarrollo estructurado de Jackson ( JSD ) es una metodología de desarrollo de software lineal desarrollada por Michael A. Jackson y John Cameron en la década de 1980.
Historia
JSD fue presentado por primera vez por Michael A. Jackson en 1982, en un artículo llamado "Un método de desarrollo de sistemas". [1] y en 1983 en Desarrollo de sistemas . [2] Jackson System Development (JSD) es un método de desarrollo de sistemas que cubre el ciclo de vida del software, ya sea directamente o proporcionando un marco en el que pueden encajar técnicas más especializadas. Jackson System Development puede comenzar desde la etapa de un proyecto cuando solo hay una declaración general de requisitos. Sin embargo, muchos proyectos que han utilizado Jackson System Development en realidad comenzaron un poco más tarde en el ciclo de vida, dando los primeros pasos en gran parte a partir de documentos existentes en lugar de directamente con los usuarios. Los últimos pasos de JSD producen el código del sistema final. El primer método de Jackson, Jackson Structured Programming (JSP), se utiliza para producir el código final. El resultado de los pasos anteriores de JSD son un conjunto de problemas de diseño de programas, cuyo diseño es el tema principal de JSP. El mantenimiento también se aborda reelaborando cualquiera de los pasos anteriores que sean apropiados.
JSD continuó evolucionando y se introdujeron algunas características nuevas en el método. Estos se describen en una colección de artículos de 1989 de John Cameron, JSP y JSD , [3] y en la versión de 1992 (versión 2) del manual LBMS JSD. [4]
El desarrollo del método JSD llegó a su fin a principios de la década de 1990 cuando el pensamiento de Jackson evolucionó hacia el Enfoque de marcos de problemas con la publicación de Requisitos y especificaciones de software (1995) y Marcos de problemas: análisis y estructuración de problemas de desarrollo de software (2000).
Principios de Operación
Tres principios básicos de funcionamiento de JSD son los siguientes:
- El desarrollo debe comenzar describiendo y modelando el mundo real, en lugar de especificar o estructurar la función que realiza el sistema. Un sistema creado con el método JSD realiza la simulación del mundo real antes de que se preste atención directa a la función o propósito del sistema.
- Un modelo adecuado de un mundo ordenado en el tiempo debe estar ordenado en el tiempo. El objetivo principal es mapear el progreso en el mundo real sobre el progreso en el sistema que lo modela.
- La forma de implementar el sistema se basa en la transformación de la especificación en un conjunto eficiente de procesos. Estos procesos deben diseñarse de tal manera que sea posible ejecutarlos en el software y hardware disponibles.
Pasos JSD
Cuando Jackson lo presentó originalmente en 1982, [1] el método constaba de seis pasos:
- Paso de entidad / acción
- Paso inicial del modelo
- Paso de función interactiva
- Paso de la función de información
- Paso de temporización del sistema
- Paso de implementación del sistema
Posteriormente, se combinaron algunos pasos para crear un método con solo tres pasos. [5]
- Etapa de modelado (análisis): con el paso de entidad / acción y el paso de estructuras de entidad .
- Fase de red (diseño): con el paso inicial modelo , paso función , y la etapa de temporización del sistema .
- Etapa de implementación (realización): el paso de implementación.
Etapa de modelado
En la etapa de modelado, el diseñador crea una colección de diagramas de estructura de entidad e identifica las entidades en el sistema, las acciones que realizan, el orden temporal de las acciones en la vida de las entidades y los atributos de las acciones y entidades. Los diagramas de estructura de entidad utilizan la notación de diagramación de los diagramas de estructura de programación estructurada de Jackson . El propósito de estos diagramas es crear una descripción completa de los aspectos del sistema y la organización. Los desarrolladores tienen que decidir qué cosas son importantes y cuáles no. La buena comunicación entre desarrolladores y usuarios del nuevo sistema es muy importante.
Esta etapa es la combinación del paso anterior de entidad / acción y el paso de estructuras de entidad.
Etapa de red
En la etapa de red, se desarrolla un modelo del sistema en su conjunto y se representa como un diagrama de especificación del sistema (SSD) (también conocido como diagrama de red ). Los diagramas de red muestran procesos (rectángulos) y cómo se comunican entre sí, ya sea a través de conexiones de vector de estado (diamantes) o mediante conexiones de flujo de datos (círculos). En esta etapa se define la funcionalidad del sistema. Cada entidad se convierte en un proceso o programa en el diagrama de red. Los programas externos se agregan posteriormente a los diagramas de red. El propósito de estos programas es procesar la entrada, calcular la salida y mantener actualizados los procesos de la entidad. Todo el sistema se describe con estos diagramas de red y se completa con descripciones sobre los datos y las conexiones entre los procesos y programas.
El paso del modelo inicial especifica una simulación del mundo real. El paso de función agrega a esta simulación las operaciones y procesos ejecutables adicionales necesarios para producir la salida del sistema. El paso de tiempo del sistema proporciona sincronización entre procesos e introduce restricciones. Esta etapa es la combinación del paso anterior del 'modelo inicial', el paso de la 'función' y el paso de la 'sincronización del sistema'.
Etapa de implementacion
En la etapa de implementación, el modelo de red abstracto de la solución se convierte en un sistema físico, representado como un diagrama de implementación del sistema (SID). El SID muestra el sistema como un proceso planificador que llama a los módulos que implementan los procesos. Los flujos de datos se representan como llamadas a procesos invertidos. Los símbolos de la base de datos representan colecciones de vectores de estado de entidad, y hay símbolos especiales para búferes de archivos (que deben implementarse cuando los procesos están programados para ejecutarse en diferentes intervalos de tiempo).
La preocupación central del paso de implementación es la optimización del sistema. Es necesario reducir el número de procesos porque es imposible proporcionar a cada proceso contenido en la especificación su propio procesador virtual. Mediante la transformación, los procesos se combinan para limitar su número al número de procesadores.
Diseñando los diagramas
- Diagrama de estructura de la entidad (ESD)
El diagrama muestra cómo las entidades de acción cooperan con el sistema. Anotaciones del diagrama de estructura de la entidad (ESD):
- Entidad : una entidad es un objeto que se utiliza en el sistema y por el sistema.
- Acción : Las acciones que realizan las entidades y las acciones que afectan a otras entidades.
- Secuencia de construcción : la construcción JSD es idéntica a la construcción del historial de vida de la entidad SSADM. Utilice SequenceConstruct para ilustrar las acciones que se aplican de izquierda a derecha.
- Selección de constructo : para reflejar una elección entre dos o más acciones. Marque las opciones en la esquina superior derecha con una "o" (opción).
- Recurrencia de construcción : cuando una acción se repite, coloque un pequeño asterisco (*) en la esquina superior derecha.
Normalmente, solo habría una acción debajo de RecurringConstruct.
- Componente nulo : un componente nulo puede garantizar que no ocurra nada en una instrucción IF-ELSE.
- Diagrama de red (ND)
Los diagramas de red muestran la interacción entre los procesos. A veces se les conoce como diagramas de especificaciones del sistema (SSD). Notaciones de diagrama de red (ND):
- Proceso : los procesos representan funciones del sistema. Un modelo de proceso representa las funciones primarias del sistema. Generalmente tiene una relación con una entidad externa a través del flujo de datos.
- Conexión de flujo de datos: en una conexión de flujo de datos, el proceso A (la entidad que escribe el flujo de datos) envía información de forma activa a otro proceso B.
- Inspección de vector de estado : en una conexión de vector de estado, el proceso B (la entidad que lee la información del vector de estado) lee la información del vector de estado de otra entidad A.
La diferencia entre una conexión de vector de estado y una conexión de flujo de datos radica en qué proceso está activo. En una conexión de flujo de datos, el proceso con la información, A, es el proceso activo; envía activamente un mensaje al lector de flujo de datos B en el momento que elija (A, el remitente). En una inspección de vectores de estado, el proceso con la información, A, es pasivo; no hace nada más que dejar que el proceso del lector B inspeccione su vector de estado (de A). B, el proceso que realiza la inspección, es el proceso activo; decide cuándo leerá la información de A. En términos generales, la conexión de flujo de datos es una abstracción del paso de mensajes, mientras que la inspección del vector de estado es una abstracción para el sondeo (y para la recuperación de la base de datos).
Referencias
- ^ a b " Un método de desarrollo de sistemas Archivado el 6 de febrero de 2012 en la Wayback Machine " por MA Jackson, publicado en Herramientas y nociones para la construcción de programas: un curso avanzado , Cambridge University Press, 1982
- ^ Desarrollo de sistemas , MA Jackson, Prentice Hall, 1983
- ^ JSP y JSD: El enfoque de Jackson para el desarrollo de software , ed. John R. Cameron (IEEE Computer Society Press, ISBN 0-8186-8858-0 , 1989)
- ^ Desarrollo del sistema LBMS Jackson, manual del método de la versión 2.0 de LBMS (Learmonth, Burchett Management Systems), John Wiley & Sons, ISBN 0-471-93565-4 ; 1992
- ^ Decision Systems Inc. (2002), Jackson System Development . Consultado el 24 de noviembre de 2008.
Otras lecturas
- John R. Cameron (1989). El enfoque de Jackson para el desarrollo de software , IEEE Computer Society Press, Silver Spring.
- Página web de métodos de desarrollo de software de Jackson
- Michael A. Jackson (1982). Un método de desarrollo de sistemas
- Michael A. Jackson (1983). Desarrollo de sistemas , Prentice Hall, Englewood Cliffs, Nueva Jersey, 1983. (En het Nederlands gepubliceerd en 1989 bij Academec Service onder de titel: Systeemontwikkeling volgens JSD .)
- SmartDraw (2005). Cómo dibujar diagramas de desarrollo de sistemas de Jackson (JSD))