28/07/2015 Lic. Ariel Trellini Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Diseño Estructurado Diseños eran los antes Arquitectura y Diseño de Sistemas • 2 Lic. Ariel Trellini • DCIC • UNS 1 28/07/2015 Diseño Estructurado Historia Desde fines de los ‘60s emergieron múltiples métodos estructurados: Año Método Autor 1967 Programación Estructurada Edsger Dijkstra 1971 Diseño Paso a Paso Niklaus Wirth 1972 Diagrama Nassi-Schneiderman Isaac Nassi, Ben Shneiderman 1974 Diagrama Warner/Orr Jean-Dominique Warner, Kenneth Orr 1974 HIPO - IBM Hierarchy input-process-output IBM 1975 Diseño Estructurado Larry Constantine, Ed Yourdon, Wayne Stevens 1975 Programación Estructurada de Jackson Michael A. Jackson 1978 Análisis Estructurado Tom DeMarco, Yourdon, Gane & Sarson, McMenamin & Palmer 1979 Método Estructurado de Yourdon Edward Yourdon 1979 Structured Analysis and System Specification Tom DeMarco … Arquitectura y Diseño de Sistemas • 4 Lic. Ariel Trellini • DCIC • UNS Diseño Estructurado Evolución ‘60s Programación Estructurada Es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa. subrutinas go to if, while, for ‘70s Diseño Estructurado Está interesado en el desarrollo de módulos y en la organización jerárquica de dichos módulos. Gráficos de estructura Cohesión Especificaciones de módulos Acoplamiento Diccionario de datos ‘80s Análisis Estructurado Arquitectura y Diseño de Sistemas • 5 Consiste en interpretar los conceptos del sistema en términos de datos y control, representados por diagramas de flujo de datos Gráficos de estructura Diagramas de flujo de datos Diagramas de modelo de datos Lic. Ariel Trellini • DCIC • UNS 2 28/07/2015 Diseño Estructurado Enfoque Estructurado Perspectiva Se ve al sistema desde la perspectiva de los datos que fluyen a través de él. La función del sistema se describe a través de procesos que transforman los flujos de datos Toma ventaja del ocultamiento de la información a través de una descomposición sucesiva (top-down) La atención se enfoca en los detalles pertinentes al nivel de descomposición Resultado Conjunto relacionado de… Diagramas gráficos Descripciones de proceso Definiciones de datos [Diagrama de contexto y de flujo de datos] [Especificaciones de procesos] [Diccionario de datos] … que describen las transformaciones y datos necesarios para cumplir los requerimientos Arquitectura y Diseño de Sistemas • 6 Lic. Ariel Trellini • DCIC • UNS Diseño Estructurado Definición El diseño estructurado es el arte de diseñar los componentes de un sistema y las interrelaciones entre ellos de la mejor forma posible. Un diseño exitoso está basado en un principio conocido desde la época de Julio César: Dividir y conquistar Edward Yourdon El diseño estructurado persigue elaborar sistemas que cumplan con la propiedad de modularidad. Para ello, se busca dividir la solución en módulos de acuerdo a principios de diseño de descomposición por refinamientos sucesivos, jerarquía modular y construcción de módulos independientes. Arquitectura y Diseño de Sistemas • 7 Lic. Ariel Trellini • DCIC • UNS 3 28/07/2015 Diseño Estructurado Principios Básicos Descomposición ¿Por qué descomponer un problema en partes? Un problema complejo cuesta más de resolver que otro más sencillo La complejidad de un problema global es mayor que el valor de las complejidades de cada una de sus partes por separado ¿Cómo realizar la descomposición? Diseño Top-Down / Descomposición Funcional Refinamiento Sucesivo Dividir el problema original en partes que son más sencillas de abordar. Dichas partes identifican una funcionalidad del sistema. Se vuelve a aplicar recursivamente el diseño Top-Down sobre cada uno de las partes identificadas, hasta obtener sub-partes suficientemente pequeñas que permitan resolverse de manera sencilla. ¿Cuándo parar el refinamiento? Cuando no haya sub-partes bien definidas Cuando la interfaz de un módulo sea tan complicada como el propio módulo. Arquitectura y Diseño de Sistemas • 8 Lic. Ariel Trellini • DCIC • UNS Diseño Estructurado Principios Básicos Jerarquía de Módulos Es una consecuencia directa de la descomposición del problema mediante refinamientos sucesivos Conjunto de módulos estratificados en capas a modo de pirámide En la cima hay un único módulo que representa el problema global En los niveles inferiores están los módulos resultantes de las sucesivas divisiones. Tareas dentro de la estructura piramidal Niveles superiores Tareas de coordinación y lógica de aplicación Niveles inferiores Tareas de cálculo, procesamiento y entrada/salida de información Arquitectura y Diseño de Sistemas • 9 Lic. Ariel Trellini • DCIC • UNS 4 28/07/2015 Diseño Estructurado Principios Básicos Independencia Modular Cuanto más independientes son los módulos entre sí, más fácil y flexiblemente se trabajará con ellos. Para desarrollar un módulo no debería ser necesario conocer los detalles de otro módulo. Consecuencias Módulos con características de caja negra (abstracción) Aislamiento de los detalles mediante encapsulamiento Reutilización de módulos Arquitectura y Diseño de Sistemas • 10 Lic. Ariel Trellini • DCIC • UNS Diseño Estructurado Herramientas Diagrama de Contexto Es el diagrama de más alto nivel de un sistema Define los límites entre el sistema y su ambiente, mostrando a las entidades que interactúan con él. El sistema se representa como una caja negra Objetivo Ayudar a entender el ambiente del cual el sistema formará parte Enfocar la atención en los factores externos y los eventos que deberían ser considerados al desarrollar el conjunto de requerimientos y restricciones del sistema Arquitectura y Diseño de Sistemas • 11 Lic. Ariel Trellini • DCIC • UNS 5 28/07/2015 Diseño Estructurado Herramientas Diagrama de Flujo de Datos Es la representación del flujo de datos a través de un sistema de información, modelando sus características de procesos. Se utilizan para visualizar el procesamiento de datos Muestra: Cuál será la información de entrada y de salida del sistema De dónde vienen y a dónde van los datos Dónde los datos serán almacenados Arquitectura y Diseño de Sistemas • 12 Lic. Ariel Trellini • DCIC • UNS Diseño Estructurado Herramientas Especificaciones de Procesos Describen qué ocurre dentro de cada burbuja primitiva (hojas) de un diagrama de flujo de datos Define qué debe ser hecho para transformar las entradas en las salidas esperadas. Herramientas Tablas de decisión Lenguaje estructurado (pseudocódigo) Diagramas de flujo Diagramas Nassi-Shneiderman Pre/post condiciones Debe cumplir estos requerimientos: Debe ser expresada en una forma que pueda ser verificada por el usuario y el analista del sistema. Debe ser expresada de una forma que pueda ser efectivamente comunicada a las distintas audiencias involucradas Arquitectura y Diseño de Sistemas • 13 Lic. Ariel Trellini • DCIC • UNS 6 28/07/2015 Diseño Estructurado Herramientas Gráfico de Estructura Muestra la división de un sistema en los niveles más bajos manejables Se usa para organizar los módulos de un sistema en una estructura de árbol. Ayuda al diseñador a aplicar la estrategia de dividir y conquistar un módulo mayor para obtener sub-módulos menores Arquitectura y Diseño de Sistemas • 14 Lic. Ariel Trellini • DCIC • UNS Diseño Estructurado Herramientas Diccionario de Datos Define la organización básica del almacenamiento de la información. Es una estructura de datos que almacena la metada de los datos del sistema. Es un repositorio centralizado de información sobre datos: Significado Relaciones con otros datos Origen Uso Formato Convenciones Arquitectura y Diseño de Sistemas • 15 Lic. Ariel Trellini • DCIC • UNS 7 28/07/2015 Diseño Estructurado Herramientas Diagramas de Entidad-Relación Describe el layout de los datos almacenados de un sistema en un alto nivel de abstracción ¿Por qué es útil? Las estructuras de datos y sus relaciones puede ser complejas y es bueno resaltarlas y examinarlas independientemente del procesamiento. La administración de los datos a veces está a cargo de un grupo de personas específico, con lo cual el DER sirve como herramienta de comunicación y documentación Arquitectura y Diseño de Sistemas • 16 Lic. Ariel Trellini • DCIC • UNS Diseño Estructurado Herramientas Diagramas de Transición de Estados Resalta el comportamiento dependiente del tiempo de un sistema Componentes: Cajas: Estados Flechas: Cambios de estado Arquitectura y Diseño de Sistemas • 17 Lic. Ariel Trellini • DCIC • UNS 8 28/07/2015 Diseño Estructurado Diseño Estructurado y Diseño Orientado a Objetos Diseño Estructurado Diseño Orientado a Objetos Descomponer el problema en piezas Descomponer el problema en piezas más pequeñas: procedimientos más pequeñas: objetos Se diseña en términos de procedimientos Se diseña en término de objetos Tiende a enfocarse en la separación entre datos y procedimientos. Hace foco en el encapsulamiento y el ocultamiento de la información Arquitectura y Diseño de Sistemas • 18 Lic. Ariel Trellini • DCIC • UNS 9