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

Post on 30-Sep-2018

220 views 0 download

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

mayo de 2008

Diseño de la ArquitecturaLógica con Patrones

Agenda

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

Arquitectura de Software

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

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”.

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)

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.

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..

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.

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.

Capas Comunes

Vista Lógica Parcial

Acoplamiento entre Capas y Paquetes

Escenarios de Interacción entre Capas y Paquetes

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

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

Fachada de Sesión

Controlador• Es un objeto que pertenece a la interfaz

de usuario, responsable de manejar un evento del sistema.

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.

Observador

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

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

Diagrama de Despliegue

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

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).

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.

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?

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.

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

Ejemplo de la Definición de Arquitectura

• Dado un conjunto de requerimientos primarios.

Ejemplo de la Definición de Arquitectura

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

Ejemplo de la Definición de Arquitectura

• Identificación de supuestos, riesgos y restricciones.

Ejemplo de la Definición de Arquitectura

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

Ejemplo de la Definición de Arquitectura

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

Ejemplo de la Definición de Arquitectura

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

Ejemplo de la Definición de Arquitectura

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

Ejemplo de la Definición de Arquitectura

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

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.