Sie sind auf Seite 1von 18

Patrones Arquitectnicos

Integrantes:
Diaz Diaz Jose Antonio

Flores Aguilar Diego Isaias


Murrugarra Llerena Joseph Hans
Salcedo Salazar Juan Diego
Sarachaga Diaz Raul Martin.

Introduccin
En la arquitectura de software, se utiliza la palabra arquitectura, en
contraste con el diseo, para evocar nociones de codificacin, de
abstraccin, de las normas, de formacin (de los arquitectos de software),
y de estilo. La Arquitectura del Software es el diseo de ms alto nivel de la
estructura de un sistema y establece los fundamentos para que analistas,
diseadores, programadores, etc. trabajen en una lnea comn que
permita alcanzar los objetivos del sistema de informacin, cubriendo todas
las necesidades.
Los patrones arquitectnicos, o patrones de arquitectura, son patrones de
software que ofrecen soluciones a problemas de arquitectura de software
en ingeniera de software. Especifican un conjunto predefinido de
subsistemas con sus responsabilidades y una serie de recomendaciones
para organizar los distintos componentes.

Resuelven problemas arquitectnicos, adaptabilidad a requerimientos


cambiantes, performance, modularidad, acoplamiento, etc. La solucin
que plantea es la creacin de patrones de llamadas entre objetos (similar
a los patrones de diseo), decisiones y criterios arquitectnicos,
empaquetado de funcionalidad. Este tipo de patrones se utilizan en la fase
de desarrollo, en el diseo inicial.
Los beneficios de la utilizacin de dichos patrones van desde la imposicin
de decisiones tempranas en el desarrollo hasta la reutilizacin.

Se puede definir a los patrones arquitectonicos en 4 categorias segn


Arquitectura de Software: Estilos y Patrones, cuyos autores son Adriana S.
y Vanina P.
Del fango a la estructura
Sistemas distribuidos

Sistemas Interactivos
Sistemas Adaptables

DEL FANGO A LA ESTRUCTURA


En esta categora se encuentran los patrones que ayudan a evitar un
mar de componentes u objetos apoyando una descomposicin
controlada de una tarea del sistema global en subtareas cooperantes.
Dentro de esta clasificacin de patrones arquitectnicos se encuentran
diferentes tipos de patrones que proporcionan subdivisiones de alto nivel
del sistema: Layers, Pipes and Filters y Blackboard donde:
El patrn Layers(capas) ayuda a estructurar aplicaciones que pueden ser
descompuestas en grupos de subtareas, en el que cada grupo pertenece a un
nivel particular de abstraccin.
El patrn Pipes and Filters provee una estructura para sistemas que procesan un
flujo de datos. Cada paso del proceso esta encapsulado en un componente
filter. Los datos se pasan a travs de los pipes entre filters adyacentes. La
combinacin de filters permite construir familias de sistemas relacionados.
El patrn Blackboard es til para problemas en los cuales no se conoce ninguna
estrategia de solucin determinstica. En este patrn varios subsistemas
especializados ensamblan sus conocimientos para construir una solucin
posiblemente parcial o aproximada.

Ejemplo: Patrn de N capas:

SISTEMAS DISTRIBUIDOS
Hoy da, an las pequeas compaas usan sistemas distribuidos. Pero
cules son las ventajas de los sistemas distribuidos que los hacen
interesantes?
Economa. Redes de computadoras que incorporan PCs y workstations
ofrecen una mejor relacin costo/performance que un mainframe.
Performance y Escalabilidad. Las aplicaciones distribuidas, usan
recursos disponibles en toda la red. La performance puede mejorar
enormemente si se utiliza en forma combinada, el poder de cmputo
de varios nodos de red. Adems, multiprocesadores y redes son
fcilmente escalables.
Distribucin inherente. Algunas aplicaciones son naturalmente
distribuidas, por ejemplo aplicaciones de base de datos en un modelo
Cliente-Servidor.
Fiabilidad. En la mayora de los casos, una mquina en una red o una
CPU en un sistema multiprocesador puede dejar de funcionar sin
afectar el resto del sistema. Los nodos centrales como los servidores de
archivos son las excepciones a esto, pero puede protegerse con
sistemas auxiliares.

Los sistemas distribuidos, sin embargo tienen un inconveniente significante,


necesitan software totalmente diferente a los sistemas centralizados.
Tres modelos relacionados a sistemas distribuidos en esta categora:
El patrn Pipes and Filters mantiene una estructura para sistemas que
procesan un flujo de datos. Cada paso del proceso es encapsulado en
un componente filter. Los datos son pasados a travs de pipes entre
filters adyacentes. La recombinacin de filters permite construir familias
de sistemas relacionados. Este patrn se utiliza ms por estructurar la
funcionalidad central de una aplicacin que por su naturaleza
distribuida, es por ello que lo ubicamos junto al patrn Layers en la
clasificacin anterior.

El patrn Broker puede usarse para estructurar sistemas de software


distribuidos con componentes desarticulados que se comunican
mediante invocacin remota de servicios. Un componente broker es
responsable de coordinar la comunicacin (remitir las demandas,
transmitir los resultados y excepciones).

El patrn Microkernel se aplica a sistemas de software que tienen la


necesidad de adaptar el sistema a requerimientos cambiantes. Este
patrn separa la funcionalidad central mnima de la funcionalidad
extendida y las partes especficas del cliente. El microkernel tambin
sirve como un socket para comunicar estas partes y coordinar su
colaboracin. Este patrn es descripto ms adelante en este captulo
dentro de la clasificacin de patrones adaptables. Los sistemas
Microkernel emplean una arquitectura Cliente-Servidor en los cuales
clientes y servidores corren sobre el componente microkernel. El mayor
beneficio de estos sistemas, est en el diseo apto para la adaptacin
y cambio.

Ejemplo

SISTEMAS INTERACTIVOS
Los sistemas actuales permiten un grado alto de interaccin del usuario,
generalmente, con la ayuda de interfaces de usuario grficas. El objetivo
es robustecer la utilidad de una aplicacin. Estos sistemas proporcionan un
acceso conveniente a sus servicios, lo cual permite a los usuarios aprender
la aplicacin y producir resultados rpidamente.

Al especificar la arquitectura de tales sistemas, el desafo es mantener la


funcionalidad central independiente de la interfaz de usuario. El centro de
los sistemas interactivos esta basado en los requerimientos funcionales del
sistema, y normalmente permanece estable. Las interfaces de usuario, sin
embargo, estn sujetas a cambio y modificacin.

Se describen dos patrones que brindan una organizacin estructural


fundamental para software de sistemas interactivos:

El patrn Model-View-Controller (MVC) divide una aplicacin


interactiva en tres componentes. El modelo contiene la funcionalidad
central y los datos. Las vistas despliegan el informacin al usuario. Los
controladores se ocupan de las entradas del usuario. Las vistas y
controladores juntos forman la interfaz de usuario. Un mecanismo de
propagacin de cambios asegura la consistencia entre la interfaz de
usuario y el modelo.
El patrn Presentation-Abstraction-Control (PAC) define una estructura
para los sistemas interactivos en forma de una jerarqua de agentes de
cooperantes. Cada agente es responsable de un aspecto especfico
de la funcionalidad de la aplicacin y consiste de tres componentes:
presentacin, abstraccin y control. Esta subdivisin separa los
aspectos de interaccin de hombre-computadora de los agentes de
su centro funcional y su comunicacin con otros agentes.

Ejemplo:MVC
Uno de los patrones de diseo ms conocidos y utilizado es el ModeloVista-Controlador (MVC).

En la imagen anterior podemos ver un diagrama de cmo se relacionan


los diferentes componentes entre ellos. Los componentes desempean las
siguientes tareas:
Modelo: Encapsula los datos y las funcionalidades. El modelo es
independiente de cualquier representacin de salida y/o
comportamiento de entrada.
Vista: Muestra la informacin al usuario. Pueden existir mltiples vistas
del modelo, cada una teniendo asociado un componente
controlador.
Controlador : Recibe las entradas, normalmente como eventos. Los
eventos son traducidos a solicitudes de servicio, bien para el modelo,
bien para la vista.

SISTEMAS ADAPTABLES
Los sistemas evolucionan con el tiempo - se agrega nueva funcionalidad y
los servicios van cambiando. Ellos deben soportar nuevas versiones de
operar sistemas operativos, otras plataformas, otras interfases de usuarios y
bibliotecas. Puede ser necesario adaptarlos a nuevos estndares o
plataformas. Tambin puede ser necesario proporcionar servicios que
difieran de un cliente a otro.
Disear para cambios es, por consiguiente, la mayor preocupacin al
especificar la arquitectura de un sistema de software. Una aplicacin
debe soportar su propia modificacin y extensin a priori. Los cambios no
deberan afectar la funcionalidad central, o diseos de abstraccin
claves, por otra parte el sistema debe ser fcil de mantener y sencillo para
adaptarlo a requisitos cambiantes.

En esta seccin se describen dos modelos que ayudan al diseo para


sistemas que se adaptan al cambio:
El patrn Microkernel se aplica a los sistemas de software que deben
adaptarse a requisitos cambiantes del sistema. Separa la funcionalidad
central mnima de la funcionalidad extendida y las partes especficas
de los clientes. El microkernel tambin sirve como socket para conectar
extensiones y coordinar sus colaboraciones.
El patrn Reflection provee un mecanismo para estructuras cambiantes
y conductas dinmicas de sistemas de software. Apoya la
modificacin de aspectos fundamentales, como el tipo de estructuras
y mecanismos de llamadas a funcin. En este patrn, una aplicacin
es dividida en dos partes. Un meta nivel que proporciona informacin
sobre las propiedades seleccionadas del sistema y un nivel base que
incluye la lgica de la aplicacin. Su aplicacin se construye sobre el
meta nivel. Los cambios a la informacin contenidos en el meta nivel,
afectan al comportamiento del nivel base.

Ejemplo

GRACIAS

Das könnte Ihnen auch gefallen