patrones de arquitectura

Upload: christhian

Post on 06-Mar-2016

7 views

Category:

Documents


0 download

DESCRIPTION

ingieneria de sistemas

TRANSCRIPT

Patrones de arquitecturaLos patrones arquitectnicos, o patrones de arquitectura, tambin llamados arquetipos ofrecen soluciones a problemas de arquitectura de software en ingeniera de software. Dan una descripcin de los elementos y el tipo de relacin que tienen junto con un conjunto de restricciones sobre cmo pueden ser usados. Un patrn arquitectnico expresa un esquema de organizacin estructural esencial para un sistema de softwareAunque un patrn arquitectnico comunica una imagen de un sistema, no es una arquitectura ser utilizados con xito en sistemas de alta disponibilidad. A primeros de la fase de diseo, un arquitecto de software escoge qu patrones arquitectnicos mejor ofrecen las calidades deseadas para el sistema.Ejemplos de patrones arquitectnicos incluyen los siguientes:

Composite El patrn Composite sirve para construir objetos complejos a partir de otros ms simples y similares entre s, gracias a la composicin recursiva y a una estructura en forma de rbol.Esto simplifica el tratamiento de los objetos creados, ya que al poseer todos ellos una interfaz comn, se tratan todos de la misma manera. Imaginemos que necesitamos crear una serie de grupos de imgenes porque nuestro programa permite seleccionar varias de estas figuras a la vez para moverlas por la pantalla.En principio tenemos las clases Crculo, Cuadrado y Tringulo, que heredarn de una clase padre que podramos llamar Figura e implementarn todas la operacin pintar(). En cuanto a los grupos de Figuras podramos caer en la tentacin de crear una clase particular separada de las anteriores llamada GrupoDeImgenes, tambin con un mtodo pintar().Esta idea de separar en clases privadas componentes (figuras) y contenedores (grupos) tiene el problema de que, para cada uno de las dos clases, el mtodo pintar() tendr una implementacin diferente, aumentando la complejidad del sistema.ImplementacinEl patrn Composite da una solucin elegantes a este problema, de la que adems resulta en una implementacin ms sencilla.A la clase Figura la llamaramos Grfico y de ella extenderan tanto Crculo, Cuadrado y Tringulo, como GrupoDeImgenes. Adems, sta ltima tendra una relacin todo-parte de multiplicidad * con Grfico: un GrupoDeImgenes contendra varios Grficos, ya fuesen stos Cuadrados, Tringulos, u otras clases GrupoDeImgenes.As, es posible definir a un grupo de imgenes recursivamente. Por ejemplo, un objeto cuya clase es GrupoDeImgenes podra contener un Cuadrado, un Tringulo y otro GrupoDeImgenes, este grupo de imgenes podra contener un Crculo y un Cuadrado. Posteriormnte, a este ltimo grupo se le podra aadir otro GrupoDeImgenes, generando una estructura de composicin recursiva en rbol, por medio de muy poca codificacin y un diagrama sencillo y claro.

Observador (en ingls: Observer) es un patrn de diseo que define una dependencia del tipo uno-a-muchos entre objetos, de manera que cuando uno de los objetos cambia su estado, notifica este cambio a todos los dependientes. Se trata de un patrn de comportamiento (existen de 3 tipos: Creacin, Estructurales y de Comportamiento), es decir, est relacionado con algoritmos de funcionamiento y asignacin de responsabilidades a clases y objetos. Los patrones de comportamiento describen no solamente estructuras de relacin entre objetos o clases sino tambin esquemas de comunicacin entre ellos y se pueden clasificar en funcin de que trabajen con clases (Mtodo Plantilla) u objetos (Cadena de Responsabilidad, Comando, Iterador, Recuerdo, Observador, Estado, Estrategia, Visitante).Este patrn tambin se conoce como el patrn de publicacin-inscripcin o modelo-patrn. Estos nombres sugieren las ideas bsicas del patrn, que son: el objeto de datos, que se le puede llamar Sujeto a partir de ahora, contiene atributos mediante los cuales cualquier objeto lista de observadores avisando a cada uno. Este patrn suele observarse en los frameworks de interfaces grficas orientados a objetos, en los que la forma de capturar los eventos es suscribir listeners a los objetos que pueden disparar eventos.