580 likes | 998 Views
Modelo de Diseño: Diseño y Patrones Arquitectónicos. Centro ISYS Escuela de Computación Facultad de Ciencias . UCV Profa. Zulma González. Modelo de Diseño.
E N D
Modelo de Diseño:Diseño y Patrones Arquitectónicos Centro ISYS Escuela de Computación Facultad de Ciencias. UCV Profa. Zulma González
Modelo de Diseño • El modelo de diseño se encarga de refinar la arquitectura definida en el modelo de análisis adaptándola al ambiente de implementación. • Se requiere un modelo de diseño, ya que el modelo de análisis no es suficientemente formal para alcanzar el código fuente. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Modelo de Diseño • El resultado del modelo de diseño son especificaciones muy detalladas de todos los objetos, incluyendo operaciones y atributos. • Otro objetivo del modelo de diseño es validar los resultados de los modelos de requisitos y de análisis. • En el diseño se puede hacer uso de patrones arquitectónicos para refinar la arquitectura del sistema. • La robustez, reusabilidad y extensibilidad son factores de calidad tomados en cuenta en el diseño del sistema, por está razón se utilizan patrones de diseño para aplicar o reutilizar soluciones exitosas a problemas específicos. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Modelo de Diseño • En el diseño del sistema el punto de vista en este modelo cambia • Análisis: Modelo conceptual y lógico. • Diseño: Abstracción del código fuente. • Descripción de cómo debe estructurarse, administrarse y escribirse el código fuente. • Considera por separado el diseño de objetos y sistema. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Estrategias de Diseño En el diseño se deben tomar decisiones con base en los siguientes conceptos: • Arquitectura. • Robustez. • Reuso. • Extensibilidad del sistema. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Estrategias de Diseño • Arquitectura • Se refiere a la organización de las clases dentro del sistema partiendo del Modelo de Análisis. (Patrones Arquitectónicos) • Robustez • El sistema debe estar protegido contra errores y ofrecer diagnóstico que permita identificar fallas. • Reuso • Cuanto más se pueda reutilizar el código será mejor la robustez del sistema (Patrones de diseño). • Extensibilidad • El sistema debe presentar características que permitan en un futuro agregarlenuevas funcionalidades. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Modelo de Diseño • Para llevar acabo los objetivos del modelo de diseño, se deben considerar por separado los siguientes aspectos: • Diseño de objetos. • Diseño de sistema. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Diseño de Objetos • Se refina y formaliza el modelo para generar especificaciones detalladas de todos los objetos, incluyendo sus operaciones y atributos. • Se describe cómo interactúan los objetos en cada caso de uso específico, especificando que debe hacer cada operación en cada objeto. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Diseño de Objetos • Para diseñar un objeto se seguirá el diseño por responsabilidades (RDD – Responsability – Driven Design): • Diseño basado en un modelo cliente – servidor. • Cliente: Genera alguna petición hacia otra clase. • Servidor: Cuando recibe peticiones de otras clases. • Las clases definen responsabilidades, servicios, colaboraciones. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Diseño de Objetos • Responsabilidades • Especificación del comportamiento de cada una de las clases (Operaciones y Métodos). • Se identifican a través del Modelo de Casos de Uso. • Colaboraciones • Solicitudes de un objeto cliente a un objeto servidor. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Diseño de Objetos • Jerarquías • Mediante las jerarquías se logra agrupar una arquitectura de clases más compacta (uso de la herencia), pudiendo reducir el número de clases • Mecanismos utilizados • Polimorfismo • Clases Abstractas (Agrupación de responsabilidades comunes) Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Diseño de Objetos • Tarjetas de clases o CRC (Case – Responsibility - Colaboration): • Permiten visualizar la información de cada clase. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Diseño de Objetos Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Diseño de Objetos Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Diseño de Sistema • Selección del lenguaje de implementación. • Incorporación de bibliotecas necesarias, como Interfaces Gráficas de Usuario (GUI), bibliotecas matemáticas y de estructura de datos. • Incorporación de bases de datos. • Incorporación de archivos. • Consideraciones de procesamiento, como concurrencia, paralelismo, distribución y tiempo real. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
¿Qué es un Patrón? • Un patrón es un modelo que podemos seguir para realizar algo. Los patrones surgen de la experiencia de seres humanos de tratar de lograr ciertos objetivos. • Los patrones capturan la experiencia existente y probada para promover buenas prácticas. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrones • Patrones Arquitectónicos • Describen prácticas para definir la arquitectura del sistema. • Patrones de Diseño • Describen soluciones a problemas mucho más específicos en el diseño. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrones Arquitectónicos • Los patrones arquitectónicos determinan: • La organización estructural del sistema. • ¿Cómo será el diseño de la solución? • La selección de elementos estructurales. • ¿Cuáles serán los componentes? • El comportamiento de los componentes. • ¿Cuál será la función de cada componente? • Las interfaces entre ellos. • ¿Cómo se van a comunicar esos componentes? Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrones Arquitectónicos • Algunos patrones arquitectónicos son los siguientes: • Patrón de Arquitectura basada en Capas. • Patrón MVC. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Cliente Capa N Capa N-1 Capa 1 Patrón de Arquitectura basada en Capas • Descompone una aplicación en un conjunto de capas independientes y ordenadas jerárquicamente. • Cada capa: • Usa lo servicios de la capa inmediatamente inferior. • Ofrece servicios a la capa inmediatamente superior. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón de Arquitectura basada en Capas • Ventajas: • Reutilización de una capa en varias aplicaciones. • Permite la estandarización. • Desventajas: • Si el número de capas es muy alto, puede ser una solución ineficiente. • Trabajo innecesario de paso de argumentos entre niveles. • Si hay pocas capas el sistema será poco organizado. Si hay excesivas capas el sistema será muy complejo e ineficiente. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Cliente Capa de Presentación Capa del Dominio de la Aplicación Capa del Repositorio Patrón de Arquitectura basada en Capas • La metodología presentada por Larman presupone una estructura de tres capas: • Capa de Presentación. • Capa del Dominio de la Aplicación. • Capa del Repositorio. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Cliente Capa de Presentación Capa del Dominio de la Aplicación Capa del Repositorio Patrón de Arquitectura basada en Capas • Capa de Presentación: • Encargada de presentar la información. (Formato de reportes, gráficos, etc.) • Interfaces de usuario. • Interactuar con las capas inferiores del sistema. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Cliente Capa de Presentación Capa del Dominio de la Aplicación Capa del Repositorio Patrón de Arquitectura basada en Capas • Capa del Dominio de la Aplicación: • Implementa las funciones solicitadas por los clientes a través de a interfaz de presentación. (Ej: Validar Cliente) • Reúne todos los componentes del software que apoyan los procesos de negocio que llevan a cabo los usuarios. • También se conoce como la capa de la Lógica de la aplicación. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Cliente Capa de Presentación Capa del Dominio de la Aplicación Capa del Repositorio Patrón de Arquitectura basada en Capas • Capa del Repositorio: • Gestiona todos los elementos de información. (Archivos, XML, BD). • Reúne todos los componentes de software que se encargan del manejo de datos persistentes. • También conocida como capa de gestión de recursos. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón de Arquitectura basada en Capas • Tipos de diseños basados en la arquitectura en capas: • Diseño top-downde capas. • Diseño bottom-upde capas. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Cliente Capa de Presentación Capa del Dominio de la Aplicación Capa del Repositorio Patrón de Arquitectura basada en Capas • Diseño top-down de capas: • Se define la funcionalidad del sistema desde el punto de vista del cliente. • Se propaga por capas según las necesidades identificadas en las capas anteriores. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón de Arquitectura basada en Capas • Diseño top-down de capas: • Ventaja: • Al inicio del proyecto se tienen claras las funcionalidades y se dirige el desarrollo sobre ellas. • Desventaja: • Sólo es posible aplicarlos a sistemas desarrollados desde cero. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Cliente Capa de Presentación Capa del Dominio de la Aplicación Capa del Repositorio Patrón de Arquitectura basada en Capas • Diseño bottom-upde capas: • Consecuencia de la necesidad de integrar de sistemas. • Es necesario evaluar recursos existentes. • Encapsular la funcionalidad existente. • Adaptar la salida de la aplicación a las necesidades del cliente. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón de Arquitectura basada en Capas • Diseño bottom-upde capas: • Ventaja: • Los componentes por lo general son poco acoplados y pueden ser reutilizados. • Desventaja: • Viene impuesto por necesidades existentes. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
<<Modelo>> Nombre de la clase <<Vista>> Nombre de la clase <<Controlador>> Nombre de la clase Patrón MVC • Modelo, Vista, Controlador (MVC, Model – View – Control) Es un patrón de arquitectura de software que busca agrupar los componentes de la aplicación en tres niveles lógicos. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón MVC • Modelo: • El modelo es la representación específica de la información con la cual el sistema opera. • Los objetos del modelo guardan información sobre el estado interno del sistema a corto y largo plazo. • Se encarga de la lógica de datos y de asegurar la integridad de estos. Ej: Validar que no se compre un número negativo de unidades. • Permite derivar nuevos datos. Ej: Calcular si hoy es el cumpleaños del usuario o los totales, impuestos en un carrito de la compra. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón MVC • Vista: • La Vista está formada por el conjunto de objetos que manejan la presentación visual de los datos representados por el Modelo. • Genera una representación visual del Modelo y muestra los datos al usuario. • Interactúa con el Modelo a través de una referencia al propio Modelo. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón MVC • Controlador: • Este responde a eventos, usualmente acciones del usuario e invoca cambios en el Modelo y probablemente en la Vista. Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón MVC • Ejemplo: (Contexto) • En el Modelo de Requisitos se obtuvo el siguiente Diagrama de Casos de Uso del Sistema: Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón MVC • Igualmente en el Modelo de Requisitos se obtuvo el siguiente Modelo de Objetos del Dominio: Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón MVC • En el Modelo de Análisis se identificaron los siguientes objetos: Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón MVC • Finalmente, en el Modelo de Diseño se aplica el patrón Modelo – Vista – Controlador de la siguiente manera: Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Patrón MVC Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008