Diseño orientado al flujo de datos



Documentos relacionados
Fundamentos del diseño 3ª edición (2002)

3. EL PROCESO DEL DISEÑO ARQUITECTÓNICO

Introducción. Entre los modelos de análisis y diseño esta el estructurado.

DISEÑO DE FUNCIONES (TRATAMIENTOS)

Diseño estructurado 3ª edición (2000)

Diseño orientado a los objetos

Fundamentos del diseño de software

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

UNIDADES DE ALMACENAMIENTO DE DATOS

Introducción. Conceptos y principios. Introducción. Introducción. Elementos del modelo de análisis. Elementos del modelo de diseño.

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Unidad 1. Fundamentos en Gestión de Riesgos

Análisis de Sistemas. M.Sc. Lic. Aidee Vargas C. C. octubre 2007

Gestión de la Configuración

Caso práctico de Cuadro de Mando con Tablas Dinámicas

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Business Process Management(BPM)

1.1 EL ESTUDIO TÉCNICO

6.4 ESTRATEGIAS DE PRUEBA

CAPÍTULO 3 Servidor de Modelo de Usuario

Gestión y Desarrollo de Requisitos en Proyectos Software

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 9: CRITERIOS DE CALIDAD DE DISEÑO MODULAR

Creación y administración de grupos locales

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.

Gestión de proyectos

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

Plan de Administración del Proyecto

Capítulo 5. Cliente-Servidor.

18. Camino de datos y unidad de control

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Introducción a las redes de computadores

Sistemas de Gestión de Calidad. Control documental

Desarrollo de la estrategia a seguir para. un Sistema de Gestión de la Energía. Instalaciones Industriales

Proceso de desarrollo del software modelo en cascada

Plan de Gestión Medioambiental para obras urbanas

Gestión de Empresas Visual e Interactiva E.R.P.

Programa en Microsoft Visual Basic 6.0 para el análisis de riesgos eléctricos en oficinas y centros de cómputo. López Rosales, Juan Carlo.

Mesa de Ayuda Interna

Actualización de la Norma ISO 9001:2008

SÍNTESIS Y PERSPECTIVAS

Sistema de Gestión de la Seguridad de la Información, UNE-ISO/IEC 27001

Matemática de redes Representación binaria de datos Bits y bytes

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

1.1 ESTRUCTURA DEL DEPARTAMENTO

Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008

SELECCIÓN N Y DISEÑO DEL PRODUCTO Y SERVICIO

Un primer acercamiento a la CMDB.

Ingeniería del So8ware II

PROCEDIMIENTO ESPECÍFICO. Código A-VI-02-A-1 Edición 0

Resumen ÁREA DE FACTURACIÓN::INFORMES::Pedidos Detalle Resumen ÁREA DE

Planificación en Team Foundation Server 2010

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Planificación, Gestión y Desarrollo de Proyectos

PROCEDIMIENTO GENERAL RAZÓN SOCIAL DE LA EMPRESA. Gestión de almacenes. Código PG-14 Edición 0. Índice

Gestión de Configuración del Software

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

Capítulo 5: METODOLOGÍA APLICABLE A LAS NORMAS NE AI

LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS

ANÁLISIS DE CARGOS. 1. Nombre del cargo 2. Posición del cargo en el organigrama. 3. Contenido del cargo. 1. Requisitos intelectuales

Redes políticas. - Análisis sistémico -

TEMA 12: CUALIDADES DE UN BUEN DISEÑO

SEGURIDAD DE LA INFORMACIÓN

USABILIDAD Y ACCESIBILIDAD EN WEB Guillermo M. Martínez de la Teja

Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008

Modelos de Help Desk

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

GENERALIDADES DE BASES DE DATOS

Ingeniería de Software. Pruebas

Metodología básica de gestión de proyectos. Octubre de 2003

INSTRUCTIVO PARA LA CUENTA DE PUNTOS FUNCIÓN

TITULO Editorial Autores ISBN AÑO

SISTEMAS DE INFORMACIÓN II TEORÍA

IAP TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO)

Contenido de la sesión. Diseño de Software Principios del Diseño Arquitectura de Software Especificación de Arquitecturas

QUE PASA CON LOS CERTIFICADOS VIGENTES EN ISO 9001:2000 AL MOMENTO DE QUE ENTRE LA VERSIÓN 2008?

EN LA LA EMPRESA EMPRESA

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Capítulo 5. Análisis del software del simulador del sistema de seguridad

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler

CAPÍTULO III MARCO TEÓRICO. Cada día cambian las condiciones de los mercados debido a diferentes factores como: el

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Plan de estudios ISTQB: Nivel Fundamentos

INSTRUCTIVO DE APILACIÓN DE MATERIALES

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Norma ISO 14001: 2004

El ABC del ERP. (Christopher Koch)

2.2. LA COMPRA. TOMA DE DECISIONES DEL CLIENTE.

Gestión de proceso y documentos

Objetos educativos y estandarización en e-learning: Experiencias en el sistema <e-aula>

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

ISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE

NOTAS SOBRE DIAGRAMAS DE FLUJOS DE DATOS

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Transcripción:

Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos una representación de la arquitectura del sistema, de las estructuras de datos y de los procedimientos. Se trata de una actividad en la que se toman decisiones muy importantes, ya que sobre él se realizará la traducción al código que implementan realmente las funciones. Recordar también que el diseño comparte aspectos con la programación, pero que no son lo mismo ni mucho menos, ya que el nivel de detalle es muy diferente. En este capítulo estudiaremos el método de Diseño Orientado al Flujo de Datos, cuyo objetivo es el de proporcionar un enfoque sistemático que nos permita obtener las estructuras de programa. 1. DISEÑO Y FLUJO DE LA INFORMACIÓN A partir del Diagrama de contexto (DFD de nivel 0), la información puede representarse mediante un flujo continuo que sufre una serie de transformaciones (procesos) conforme se dirige de la entrada a la salida. El Diagrama de Flujo de Datos (DFD) se utiliza como herramienta gráfica para la descripción del flujo de la información. El Diseño Orientado al Flujo de Datos (DOFD) define varias representaciones que transforman el flujo de la información en la estructura del programa. El DOFD tiene sus orígenes en los primeros conceptos de diseño que consideraban la modularidad, el diseño descendente o refinamiento y la programación estructurada. EL DOFD amplió estas técnicas integrando el flujo de información en el proceso de diseño. La elección de un método de diseño depende del área de aplicación. El método de DOFD es particularmente útil cuando la información se procesa de forma secuencial y no existe una estructura de datos jerárquica. Para las aplicaciones de tiempo real, conducidas por interrupciones, se realizan con una ampliación del DOFD, que lo que hacen es una adaptación del método. En el caso en que el flujo de datos no importe realmente, se suelen utilizar métodos de diseño orientados a objetos. 1

2. CONSIDERACIONES SOBRE EL PROCESO DE DISEÑO El DOFD permite una traducción sencilla de las representaciones de la información de los DFD contenidas en la especificación del sistema a una descripción del diseño de la estructura del programa. La traducción desde el flujo de la información hasta la estructura consta de cinco pasos: Establecer el tipo de flujo de información Determinar los límites del flujo Convertir el DFD en la estructura del programa Definir la jerarquía de control mediante factorización Refinar la estructura resultante mediante heurísticas de diseño El tipo de flujo de información es el que determina cómo se realiza la conversión del DFD a la estructura del programa. Los tipos de flujo de información son: Flujo de transformación Flujo de transacción 2.1 Flujo de transformación En el Diagrama de Contexto (modelo fundamental del sistema) la información entra y sale de una forma. A veces esta información tiene que ser convertida a una forma interna para el procesamiento. La información entra al sistema mediante caminos que transforman los datos externos a una forma interna y se identifica como flujo entrante. Es decir, un flujo entrante es un camino en el que se transforma la información externa en interna. Los datos entrantes pasan a través de un proceso de transformación, moviéndose a través de caminos que conducen hacia la salida del software. El flujo saliente transforma la información interna en externa. El flujo de datos global ocurre de forma secuencial. Cuando una parte de un DFD muestra estas características tenemos un flujo de transformación. 2

Figura 1. Flujo de transformación 2.2. Flujo de transacción El Diagrama de Contexto implica un flujo de transformación. Sin embargo, a veces ocurre que un flujo de datos puede desencadenar otro flujo de datos entre uno de varios caminos. El flujo de transacción se caracteriza por el movimiento de datos a través de un camino de llegada, que convierte la información, la evalúa, (centro de transacción) y de acuerdo con el valor de la comparación, el flujo sigue por alguno de los caminos de acción. Figura 2. Flujo de transacción 3. ANÁLISIS DE TRANSFORMACIÓN El análisis de transformación es un conjunto de pasos de diseño que permiten convertir un DFD, con características de flujo de transformación, en una estructura de programa 3.1. Pasos del diseño Los pasos comienzan con una comprobación del trabajo realizado durante el análisis de requerimientos y luego evoluciona hasta las estructura del programa. 3

Paso 1. Revisión del modelo fundamental del sistema El paso de diseño comienza con una evaluación de la especificación del sistema y de la especificación de requisitos del software. Estos dos documentos describen el flujo y la estructura de la información. Paso 2. Revisión y refinamiento de los DFD del software Con el fin de conseguir un mayor detalle, se refina la información contenida en los DFD. Se trata de ver que los niveles de los DFD muestren una cohesión relativamente alta, es decir, que cada proceso realice una función sencilla y clara. De esta forma se podría proceder sin necesidad de refinar más. Paso 3. Determinar si el DFD tiene características de transformación o de transacción En este paso el diseñador selecciona la característica general del flujo basándose en la naturaleza del DFD (transformación o transacción. Para ello se verían si existen centros de transacción claramente definidos). A continuación se aislan las regiones locales de flujo de transformación o de transacción. Paso 4. Aislar el centro de transformación especificando los límites de los flujos entrantes y salientes La interpretación de los límites de los flujos entrantes y salientes es algo subjetivo, dependiendo del lugar en el que se decida donde se realiza la transformación de externa a interna (transformación) y de interna a externa (transacción). Es decir, diferentes diseñadores pueden establecer límites diferentes para la situación de los límites del flujo. Aunque se debe tener cuidado al establecer los límites, una variación de una burbuja en un camino de flujo, normalmente tendrá poco impacto en la estructura final del programa. En general se trata de establecer unos límites razonables, más que en establecer grandes discusiones sobre la ubicación de las separaciones. Paso 5. Realización del Primer Nivel de Factorización La estructura de programa o jerarquía de control representa una distribución descendente de control. La factorización da como resultado una estructura de programa en la que los módulos de nivel superior toman las decisiones de ejecución y los módulos de nivel inferior ejecutan la mayor parte del trabajo de entrada, computacional y de salida. Los módulos intermedios realizan algunas tareas de control y algunas tareas de trabajo. Cuando se encuentra un flujo de transformación, el DFD se organiza en una estructura específica que proporciona el control para procesamiento de la información entrante, de transformación y de salida. La figura siguiente muestra este primer nivel de factorización 4

Figura 3. Primer nivel de factorización En la parte superior de la estructura de programa se encuentra un módulo de control, que sirve para controlar las funciones de control subordinadas. El número de módulos del primer nivel debe limitarse al mínimo necesario para obtener buenas características de cohesión y acoplamiento. Paso 6. Ejecución del Segundo Nivel de Factorización El segundo nivel de factorización se realiza mediante la conversión de las burbujas de un DFD en los módulos correspondientes de la estructura de programa. La conversión se realiza comenzando desde dentro y yendo hacia afuera comenzando por los caminos de entrada, y luego continuando con los caminos de salida como se muestra en la figura siguiente. Figura 4. Segundo nivel de factorización 5

Aunque la figura anterior muestra una correspondencia uno a uno entre las burbujas y los módulos del software, se pueden combinar varias burbujas en un solo módulo (con el consecuente problema de cohesión) o una burbuja puede dividirse en varios módulos. Paso 7. Refinar la estructura inicial del programa utilizando medidas y heurísticas de diseño La estructura inicial del programa siempre puede refinarse aplicando los conceptos de independencia funcional. Se puede aumentar o reducir el número de módulos con el fin de conseguir una factorización sensata, una buena cohesión, un acoplamiento mínimo y una estructura que se pueda implementar sin dificultad, probarse sin confusión y mantenerse sin problemas. 4. ANÁLISIS DE TRANSACCIÓN El análisis de transacción es un conjunto de pasos de diseño que permiten convertir un DFD, con características de flujo de transacción, en una estructura de programa 4.1. Pasos del diseño Los pasos del diseño para el análisis de transacciones son similares (y en algunos casos idénticos) a los pasos para el análisis de transformaciones. La principal diferencia se encuentra en la conversión del DFD en la estructura del programa. Paso 1. Revisar el modelo fundamental del sistema Paso 2. Revisar y refinar los DFD para el software Paso 3. Determinar si el DFD tiene características de transformación o de transacción Si en un DFD apareciesen características de transformación y de transacción habría que establecer los límites para ambos tipos de flujo. Paso 4. Identificar el centro de transacción y las características del flujo de cada camino de acción La situación del centro de transacción puede localizarse de forma inmediata en el DFD, ya que es el origen de varios caminos de información que fluyen radialmente desde él. También debe aislarse el camino entrante (es decir, el camino de flujo que recibe un centro de transacción) y todos los caminos de acción (es decir, todos los caminos de flujo que salen del centro de transacción). Paso 5. Transformar el DFD en una estructura de software adecuada al procesamiento de transacciones El flujo de transacción se convierte en una estructura de programa que contiene una rama entrante y una rama de distribución. 6

La estructura para la rama entrante se desarrolla de la misma forma que en el análisis de transformaciones. Es decir, comenzando desde el dentro de transacción, se van convirtiendo en módulos las burbujas a lo largo del camino entrante. La estructura de la rama de distribución contiene un módulo distribuidor que controla todos los módulos de acción subordinados. El flujo de cada camino de acción del DFD se econvierte en una estructura que se corresponda con las características del flujo. Este proceso se muestra en la figura siguiente Figura 5. Transformación de un flujo transaccional Paso 6. Factorizar y refinar la estructura de transacciones y la estructura de cada camino de acción Cada camino de acción del DFD tiene sus propias características de flujo de información. La subestructura correspondiente a cada camino de acción se desarrolla dependiendo de la característica del flujo de información de la subestructura. Paso 7. Refinar la estructura inicial del software usando heurísticas de diseño para mejorar la calidad 5. HEURÍSTICAS DE DISEÑO Una vez que se ha desarrollado una estructura de programa utilizando el método del DOFD, se puede conseguir una modularidad efectiva aplicando los principios de diseño y manipulando la estructura resultante de acuerdo con este conjunto de heurísticas. 1. Evaluar la estructura de programa preliminar para reducir el acoplamiento y reducir la cohesión A menudo, se expande un módulo cuando en dos o más módulos existe un componente de procesamiento común que puede redefinirse como un módulo cohesivo aparte. 7

Para reducir el acoplamiento, se pueden juntar varios módulos para evitar las interfaces complejas y reducir el número de referencias a datos globales. 2. Intentar minimizar las estructuras con alto grado de salida. Fomentar un alto grado de entrada conforme aumente la profundidad La estructura de control no debe ser demasiado ancha, sino que se opta por estructuras con varias capas de control y gran utilización de los módulos inferiores. 3. Mantener el efecto de un módulo dentro del ámbito de control de ese módulo 4. Evaluar las interfaces de los módulos para reducir la complejidad y la redundancia y mejorar la consistencia La complejidad en las interfaces es una causa principal de los errores del software. Las interfaces deben diseñarse para que sólo se pase la información necesaria y deben ser consistentes con la función del módulo. 5. Definir módulos cuyas funciones sean predecibles Los módulos deben tener una apariencia de caja negra, ocultando los detalles de procesamiento. 6. Fomentar módulos con entrada única y salida única El software es más fácil de comprender, y por tanto, es más fácil de mantener, si a los módulos se entra por el principio y se sale por el final. 7. RESUMEN El Diseño Orientado al Flujo de Datos (DOFD) es una metodología que utiliza las características del flujo de información para derivar la estructura del programa. Un DFD se convierte en una estructura de programa en función de las características del flujo de información: de transformación o de transacción. El análisis de transformación se aplica a un flujo de información que muestra unos límites claros para los datos entrantes y los salientes. El DFD se convierte en una estructura de control que asigna control a la entrada, al procesamiento y a la salida, en tres jerarquías de módulos factorizadas por separado. El análisis de transacción se aplica cuando un elemento de información hace que el flujo se bifurque hacia uno entre muchos caminos. El DFD se convierte en una estructura que asigna el control a una subestructura que toma y evalúa una transacción. Otras subestructuras controlan todas las acciones basadas en una transacción. 8