Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf ·...

37
mayo de 2008 Diseño de la Arquitectura Lógica con Patrones

Transcript of Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf ·...

Page 1: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

mayo de 2008

Diseño de la ArquitecturaLógica con Patrones

Page 2: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Agenda

• Definición de Arquitectura• Dimensiones de Arquitectura• Categorías de Patrones• Patrón de Arquitectura• Organización de Paquetes• Análisis Arquitectural

Page 3: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Arquitectura de Software

• ¿Qué es una arquitectura?No estamos seguros, pero la No estamos seguros, pero la reconocemos cuando vemos unareconocemos cuando vemos una

Page 4: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Arquitectura de Software•• IEEE 1471IEEE 1471

El nivel conceptual más alto de un sistema en su ambiente.

• Arquitectura es la organización fundamental de un sistema descrita en:– Sus componentes.– Relación entre ellos y con

el ambiente.– Principios que guían su

diseño y evolución.

•• Software Software Architecture in Architecture in Practice Practice -- KazmanKazman

“La estructura de estructuras de un sistema, la cual abarca componentes de software, propiedades externas visibles de estos componentes y sus relaciones”.

Page 5: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Arquitectura de Software• Es el conjunto de decisiones significativasdecisiones significativas

sobre la organizacila organizacióónn del sistema de sofware, la seleccila seleccióónn de los elementos estructuraleselementos estructurales y sus interfaces, con los que se componen el sistema, junto con su comportamientocomportamiento tal como se especifica en las colaboraciones entre esos elementos, la composicila composicióón de esos n de esos elementos estructurales y de comportamientoelementos estructurales y de comportamientoen subsistemas progresivamente más amplios, y el estilo de arquitecturael estilo de arquitectura que guía esta organización - estos elementos y sus interfaces, sus colaboraciones y su composición. (Booch, G., Rumbaugh, J. y Jacobson, I. 1999)

Page 6: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Dimensiones de la Arquitectura en PU

•• Arquitectura LArquitectura Lóógica:gica:– Organización conceptual en capas– Paquetes– Frameworks– Clases– Interfaces – Subsistemas

•• Arquitectura de Despliegue:Arquitectura de Despliegue:–– AsignaciAsignacióón de componentes ln de componentes lóógicos a unidades gicos a unidades

de proceso y la configuracide proceso y la configuracióón de la red.n de la red.

Page 7: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Categorías de Patrones““Un PatrUn Patróón es la repeticin es la repeticióón de las mejores prn de las mejores práácticas de cticas de

lo que funciona en cualquier dominiolo que funciona en cualquier dominio””

•• Patrones de Arquitectura:Patrones de Arquitectura:– Relacionados con el diseño a gran escala y de

granularidad gruesa. Ejemplo: El patrón Capas.•• Patrones de DisePatrones de Diseñño:o:

–– Relacionados con el diseRelacionados con el diseñño de objetos y o de objetos y frameworksframeworks de pequede pequeñña y mediana escala. a y mediana escala. Ejemplo: El patrEjemplo: El patróón n FachadaFachada..

•• Estilos:Estilos:–– Soluciones de diseSoluciones de diseñño de bajo nivel orientadas a la o de bajo nivel orientadas a la

implementaciimplementacióón o al lenguaje. Ejemplo: El patrn o al lenguaje. Ejemplo: El patróón n SingletonSingleton..

Page 8: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Patrón de Arquitectura•• Problemas:Problemas:

– Propagación de los cambios a los largo de todo el sistema.

– No se puede reutilizar con una interfaz o implementación diferente.

– Difícil dividir claramente el trabajo entre los diferentes desarrolladores

– Difícil la adaptación a nuevos requerimientos o nuevas tecnologías.

Page 9: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Patrón de Arquitectura•• SoluciSolucióón:n:

– Organizar la estructura lógica de gran escala de un sistema en capas separadas de responsabilidades distintas y relacionadas, con una separación clara y cohesiva de intereses.

– La colaboración y el acoplamiento va desde las capas más altas hacia las más bajas.

Page 10: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Capas Comunes

Page 11: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Vista Lógica Parcial

Page 12: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Acoplamiento entre Capas y Paquetes

Page 13: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Escenarios de Interacción entre Capas y Paquetes

Page 14: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Decisiones de Diseño

•• A nivel de Arquitectura:A nivel de Arquitectura:– ¿Cuáles son las partes

importantes?– ¿Cómo se conectan?

• Fachada• Controlador• Observador

Page 15: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Fachada• Cuando se requiere de una interfaz interfaz

comcomúún, unificada n, unificada para un conjunto de implementaciones o interfaces dispares como un subsistema.

• ¿Qué pasa si el sistema crece y hay que manejar muchos CUs y operaciones con distintos clientes?

– Fachadas de Sesión

Page 16: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Fachada de Sesión

Page 17: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Controlador• Es un objeto que pertenece a la interfaz

de usuario, responsable de manejar un evento del sistema.

Page 18: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Observador•• FachadaFachada se utiliza para la colaboracicolaboracióón n

descendentedescendente desde una capa más alta a una capa más baja, o para el acceso a otros servicios de otros subsistemas de la misma capa.

• ¿Qué hacer cuando las capas más bajas necesitan comunicarse con las capas de arriba?

– Usar Patrón Observador.

Page 19: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Observador

Page 20: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

¿BD como una capa en la vista lógica de la arquitectura?

Page 21: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Arquitectura física• Los diagramasdiagramas de de desplieguedespliegue

describen la arquitecturaarquitectura ffíísicasica del sistema durante la ejecución, en términos de: Procesadores, Dispositivos, Componentes de software

Page 22: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Diagrama de Despliegue

Page 23: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Beneficios del Patrón Capas• Reduce el acoplamiento, mejora la

cohesión, incrementa el potencial de reusar e incrementa la claridad.

• La complejidad se encapsula y se descompone.

• Las implementaciones de las capaspueden ser reemplazadas

• Se ayuda al desarrollo en equipo

Page 24: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Principio del Modelo-Vista•• ModeloModelo: Sinónimo de los objetos de la

capa de dominio.•• VistaVista: Sinónimo de los objetos de la

capa de presentación.• El principio de SeparaciSeparacióónn ModeloModelo--

VistaVista establece que los objetos del modelomodelo (dominio) no deben conocerconocerdirectamentedirectamente a los objetos de la vistavista(presentación).

Page 25: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Organización de Paquetes• Agrupar en base a la cohesión funcional.• Separar las interfaces relacionadas de sus

clases de implementación.• Agrupar en subconjuntos más estables y

menos estables.• Los paquetes menos dependientes deberian

ser los más estables.• Utilizar el patrón Factory para reducir

dependencia entre paquetes.• Evitar paquetes con ciclos de dependencia.

Page 26: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Análisis Arquitectural• Identificación y resolución de los requisitos no

funcionales del sistema en el contexto de los requisitos funcionales.

– ¿Cómo afectan en el diseño los requisitos de fiabilidad y tolerancia a fallas?

– ¿Cómo afecta en la rentabilidad el coste de laslicencias de los subcomponentes comprados?

– ¿Cómo afecta la distribución de los servicios en los requisitos de calidad y los requisitos funcionales?

– ¿Cómo afectan al diseño los requisitos de adaptabilidad y de configuración?

Page 27: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Análisis Arquitectural• Pasos.

– Identificar y analizar los requisitos no funcionales que influyen en la arquitectura.

– Para aquellos requisitos que influyen de manera significativa en la arquitectura, analizar las alternativas y crear solucionesque resuelvan el impacto.

Page 28: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Análisis Arquitectural en RUP• Factores de la arquitectura se recogen en la

Especificación Complementaria.• Decisiones sobre la arquitectura se recogen

en el documento de Arquitectura:– Vista Lógica.– Vista de Proceso.– Vista de Despliegue.– Vista de Datos.– Vista de Casos de Uso– Vista de Implementación

Page 29: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Ejemplo de la Definición de Arquitectura

• Dado un conjunto de requerimientos primarios.

Page 30: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Ejemplo de la Definición de Arquitectura

• Identificación de requerimientos funcionales y de calidad de servicio (QoS).

Page 31: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Ejemplo de la Definición de Arquitectura

• Identificación de supuestos, riesgos y restricciones.

Page 32: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Ejemplo de la Definición de Arquitectura

• Identificación de Actores y Casos de Uso primarios.

Page 33: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Ejemplo de la Definición de Arquitectura

• Arquitectura Lógica. Identificación de tierslógicos, subsistemas y paquetes.

Page 34: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Ejemplo de la Definición de Arquitectura

• Diseño de Arquitectura Runtime. Diagrama de Despliegue.

Page 35: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Ejemplo de la Definición de Arquitectura

• Plataforma Tecnológica. Definición de la matriz tecnológica de layers y tiers.

Page 36: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Ejemplo de la Definición de Arquitectura

• Plataforma Tecnológica. Definición de la matriz tecnológica de layers y tiers.

Page 37: Diseño de la Arquitectura Lógica con Patrones - …mgoncalves/IS3/Clase 1a IS-Arquitectura.pdf · organización fundamental de un sistema descrita en: – Sus componentes. – Relación

Referencias

• UML y Patrones. Una introducción al análisis y diseño orientado a objetos y al proceso unificado. Larman, C. 2da Edición. Addison WesleyProfessional. 2002.