viernes, 25 de julio de 2008

DISEÑO ORIENTADO A LAS ESTRUCTURAS DE DATOS


RESUMEN

Capítulo 8



La íntima relación entre el software y datos puede ser rastreada hasta los orígenes de la computación. La estructura de la información, llamada estructura de datos, se ha demostrado que tiene un importante impacto en la complejidad y eficiencia de los algoritmos diseñados para procesar la información.

Los datos de entrada, internamente información almacenada (es decir, una base de datos), y los datos de salida, pueden tener cada uno una estructura única. El diseño orientado a la estructura de datos hace uso de estas estructuras como base para el desarrollo del software.

Diseño y estructura de los datos.

La estructura de los datos afecta al diseño, tanto en el aspecto estructural, como procedimental del software. Los datos repetitivos se procesan siempre con software que tiene facilidades de control para la repetición; los datos alternativos (es decir, información que puede o no puede estar presente) requieren software con elementos condicionales de procesamiento; una organización jerárquica de los datos frecuentemente tiene una extraordinaria semejanza con la estructura del programa que utiliza los datos.

El diseño orientado a la estructura de datos transforma una representación de la estructura de datos en una representación del software.

La metodología de desarrollo del sistema de Jackson parte de que la “paralelización de la estructura de datos de entrada y salida (informe) asegurará un diseño de calidad”.

La construcción lógica de programas (CLP), desarrollada por J. D. Warnier, da un método riguroso para el diseño del software. Sobre el esquema de relación entre estructura de datos y estructura procedimental, Warnier desarrolla un conjunto de técnicas que realizan una transformación de la estructura de datos de entrada/salida en una representación procedimental detallada del software.

El Desarrollo de Sistemas Estructurada de Datos (DSED), también llamado metodología de Warnier-Orr, es una extensión de CLP y potencia el análisis, así como las capacidades de diseño. El método DSED proporciona una notación y procedimiento para derivar la estructura de datos, estructura del programa y diseño procedimental detallado de los componentes del programa (Módulos). Además, DSED da una notación que facilita al diseñador de examinar el flujo de datos entre las fuentes y sumideros de información y de los procesos que transforman la información.

Una técnica llamada construcción lógica del software es una síntesis representativa de los métodos de diseño orientados a flujo de datos y a la estructuras de datos. Los creadores del método sostienen que “el diseño lógico puede describirse explícitamente si se ve el software con un sistema de conjuntos de datos y transformaciones de datos”.

Áreas de aplicación.

El diseño orientado a la estructura de datos puede aplicarse con éxito a aplicaciones que tengan una estructura jerárquica, bien definida, de la información.

· Aplicaciones en sistemas de información comerciales. La entrada y salida tiene distinta estructura (por ejemplo, archivos de entrada, informes de salida); el uso de una base de datos jerárquico es frecuente.
· Aplicaciones de sistema. La estructura de datos para los sistemas operativos comprenden muchas tablas, archivos y listas que tienen una estructura bien definida.

El diseño orientado a la estructura de datos puede ser adecuado para aplicaciones del dominio de la ingeniería y de la ciencia, enseñanza asistida por computadora, resolución de problemas combinatorios y muchas otras áreas.
En general, el diseño orientado a la estructura de datos es más difícil de aprender y más complicado de aplicar que las técnicas orientadas al flujo de datos. Sin embargo, la escuela de diseño orientado a la estructura de datos ofrece un enfoque más rico y, potencialmente, más poderoso para el diseño de software.

Técnicas de estructuras de datos frente a las de flujo de datos.

El diseño orientado a la estructura de datos no hace un uso explícito de un diagrama de flujo de datos. Por tanto, las clasificaciones de flujo de transformación y de transacción tienen poca relevancia en el método de diseño orientado a la estructura de datos. Lo más importante es que el objetivo último de los métodos orientados a la estructura de datos es producir una descripción procedimental del software. El concepto de estructura modular de programa no se considera explícitamente. Los módulos se consideran un subproducto del procedimiento y a la idea de independencia de módulos se le da poca importancia.

El diseño orientado a la estructura de datos hace uso de un diagrama jerárquico para representar la estructura de la información. Por lo tanto, durante el análisis de requerimiento del software, el énfasis debe colocarse en estos modos de representación.

Consideraciones sobre el proceso de diseño.

Cada método de diseño da un conjunto de “reglas” que facilitan al diseñador la transformación de la estructura de datos en una representación del software.

Cada método orientado a la estructura de datos tiene su propio conjunto de reglas. Sin embargo, deben realizarse siempre las siguientes tareas de diseño:



  1. Evaluar las características de la estructura de datos.


  2. Representar los datos en términos de formas elementales, tales como secuencia, selección y repetición.


  3. Transformar la representación de la estructura de datos en una jerarquía de control para el software.


  4. Refinar la jerarquía de software usando los criterios definidos como parte de un método.


  5. Desarrollar finalmente una descripción procedimental del software.


En los métodos orientados a la estructura de datos no está clara la división entre los pasos de diseño arquitectural y procedimental (se ha descrito como parte del proceso del diseño de software). Warnier y Orr van rápidamente hacia la representación procedimental.

DESARROLLO DEL SISTEMA DE JACKSON

Como la mayoría de las metodologías de diseño de software, el Desarrollo de Sistemas de Jackson (DSJ) es realmente una continuación de los pasos técnicos que soportan el análisis y diseño de software.

Para realizar el Desarrollo de Sistema de Jackson (DSJ) el analista y diseñador han de dar los siguientes pasos:

Paso de las acciones y entidades. Se identifican las entidades (agentes, objetos u organizaciones que un sistema necesita para producir o usar la información) y acciones (los sucesos que ocurren en el mundo real que afectan a las entidades).
Pasos de estructuración de las entidades. Las acciones que afectan a cada entidad se ordenan en el tiempo y se representan mediante los diagramas de Jackson.
Paso de modelación inicial. Las entidades y acciones se representan como un modelo del proceso; se definen las conexiones entre el modelo y el mundo real.
Paso funci0nal. Se especifican las funciones que corresponden a las acciones definidas.
Paso de temporización del sistema. Se establecen y especifican las características de planificación del proceso.
Pacto de implementación. Se especifica el hardware y software como un diseño.

CONSTRUCCIÓN LÓGICA DE PROGRAMAS Y SISTEMAS

La construcción Lógica de Programas y más recientemente la Construcción Lógica de Sistema (referidos colectivamente como CLP) se desarrollaron para definir un conjunto de “reglas” y “leyes” que gobiernen la estructura de la información y la organización resultante del software obtenido.

La Construcción Lógica de Programa (CLP) presenta procedimientos para el análisis y diseño. Comenzando con la representación formal de las estructuras de datos, el método conduce a la derivación de procedimientos y culmina con métodos sistemáticos para la generación de pseudocódigo, verificación y optimización.

El diagrama de Warnier.

La notación para la estructura de datos, usados en la Construcción Lógica de Programa (CLP), es el diagrama de Warnier. Como el diagrama de Jackson, la representación de Warnier de los datos describe jerarquías, así como repetición explicita e información condicional.

Una “regla” establecida por Warnier indica que “cualquier conjunto de información debe subdividirse en subconjuntos. El diagrama Warnier realiza esta subdivisión con la especificación adicional del número de ocurrencia de los elementos de datos.

El método de diseño Construcción Lógica de Programa (CLP).

El método de diseño CLP comienza con la especificación de las estructuras de datos de entrada y salida usando los diagramas de Warnier. Como otros métodos de diseño, una minuciosa evaluación de los requerimientos del software es la precursora de la derivación de una representación del software. Warnier toma la visión clásica de que los “programas, como los datos (entrada) y resultados, son archivos de información.


Organización detallada.

La construcción lógica de programas intenta extender la metodología de diseño a un dominio que los otros métodos evitan. Warnier ha desarrollado una técnica, llamada organización detallada, en la que un conjunto de instrucciones detalladas puede desarrollarse sistemáticamente a partir de la organización lógica del programa. Otros métodos establecen una base para la especificación de instrucciones detalladas, pero Warnier ha propuesto un procedimiento paso a paso para derivar tales instrucciones.

Warnier define los siguientes tipos de instrucciones:

Entrada y preparación de a entrada.
Bifurcación y bifurcación preliminares.
Cálculos.
Llamadas a subprogramas (módulos).
Estructuras complejas.

Conforme la organización lógica de un programa se vuelve más compleja, se requieren técnicas de diseño adicional para representar y finalmente simplificar las condiciones y el correspondiente procesamiento. La construcción lógica de programas (CLP) recomienda el uso del álgebra boolena (en informática y matemática, es una estructura algebraica que vigorizan las operaciones lógicas Y, O y NO, así como el conjunto de operaciones unión, intersección y complemento) y/o diagramas de Karanaugh (sirven principalmente para minimizar expresiones del tipo suma de productos o productos de sumas, obteniendo otra suma d productos o producto de sumas) para ayudar a reducir la complejidad lógica, ayudando así al diseñador en la especificación de la organización detallada.

DESARROLLO DE SISTEMAS ESTRUCTURADOS DE DATOS

El Desarrollo de Sistemas Estructurados de Datos (DSED), extiende los conceptos básicos desarrollados por Warnier a una metodología más comprensiva para el análisis y diseño de sistemas basados en computadoras.

Los diagramas y datos contenidos en estas representaciones, se utilizan como la base de diseño lógico procedimental del software. El diseño físico surge el diseño lógico y se enfoca sobre el “empaquetado” del software, para adquirir mejor el rendimiento deseado, mantenimiento y otras ligaduras de diseño impuestas por el entorno del sistema.

Un método de diseño simplificado.

El proceso de diseño lógico puede dividirse en dos actividades: la derivación de la estructura lógica de la salida (ELS) y la definición resultante de la estructura lógica del proceso Estructura Lógica del Proceso.

En este método los elementos de datos, que son parte de dominio de la información de un problema, se organiza jerárquicamente, de la misma forma que en los métodos de diseño de Jackson y Warnier. Se aplica un proceso de cuatro pasos para derivar la estructura lógica de la salida (ELS):

Se evalúa la declaración del problema o información relativa a los requerimientos, y se listan todos los elementos de datos distintos (llamados átomos), que no pueden ser subdivididos más.
Se especifica la frecuencia de ocurrencia de cada átomo.
Se evalúan los elementos de datos que pueden ser subdivididos (llamados universales).
Se desarrolla una representación diagramática de ELS.

Derivación de la estructura lógica de la salida.

La estructura lógica de salida (ELS) es una representación jerárquica de los elementos de datos que componen la salida de un sistema basado en computadora. El primer paso en la derivación del ELS es aislar todos los átomos (elementos de datos que no pueden ser subdivididos).

Una vez que todos los átomos y su frecuencia han sido definidos, el diseñador comienza un examen de los universales. Los universales son elementos o categorías de datos que están compuestos de otros universales y átomos.

Derivación de la estructura lógica del proceso.



La estructura lógica del proceso (ELP) es una representación procedimental del software requerido para procesar el correspondiente ELS. El método DSED para la derivación de ELP es similar, en muchos aspectos, a la derivación de Warnier de una organización detallada en CLP. Cada elemento de dato universal se convierte en una construcción repetitiva, a la que se añaden las instrucciones de procesamiento. Se siguen los siguientes pasos para derivar el ELP:

Se quitan todos los átomos del diagrama de Warnier-Orr para el ELS.
Se añaden los delimitadores BEGIN y END a todos los universales (repeticiones).
Se definen todas las instrucciones o procesos de inicialización y terminación.
Se especifican todos los cálculos o procesamientos no numéricos.
Se especifican todas las instrucciones y procesor de salida.
Se especifican todas las instrucciones y procesos de entrada.

Se han presentado tres métodos importantes de diseño –Desarrollo de Sistema de Jackson, Construcción Lógica de Programas y Desarrollo de Sistema Estructurado de Datos. Todos son significativamente similares en muchos aspectos, pero cada uno enfoca el proceso de diseño del software desde un punto de vista algo diferente.

Cada uno de los tres métodos de diseño orientado a estructura de datos presentados introduce importantes ideas sobre la naturaleza del buen diseño y especifica métodos para lograrlo. Conforme estos métodos han madurado, su singular enfoque sobre la estructuras de datos se ha ido ensanchando, conforme evolucionó nuestra compresión de lo que “un buen sistema debe parecer”.

No hay comentarios: