Está en la página 1de 6

Actividad 3. Contrastando arquitectura y patrn de diseo.

El uso de un patrn arquitectnico y saber la diferencia entre la variedad de ellos es importante a la hora de seleccionar cul es el
adecuado para resolver o proponer una arquitectura. En esta actividad debers realizar una redaccin en donde expliques esta diferencia
entre los que se citan en el desarrollo del tema. El alumno deber investigar por lo menos otros tres patrones arquitectnicos que no se
encuentren descritos en el mismo tema desarrollado en esta unidad. Redactar reporte escrito donde se explique y justifique la razn por la
cual se decidi utilizar el patrn de diseo seleccionado para la construccin de la arquitectura.

Instrucciones:

1. Identifica qu es un patrn de arquitectura.
2. Redacta reporte escrito donde se describan las diferencias entre los distintos patrones arquitectnicos y arquitecturas.
3. Guarda la actividad con el nombre DRS_U2_A3_XXYZ. Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por la
inicial de tu primer apellido y la Z por la inicial de tu segundo apellido.
4. Ingresa al apartado de Tareas.
5. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin.



Un patrn es un modelo que podemos seguir para realizar algo. Surgen de la experiencia de los seres humanos de tratar de alcanzar los
objetivos.

Es una gua que ofrece solucin a determinados problemas ya conocidos, respecto a problemticas fundadas en la ingeniera de software.
Slo dan una descripcin de la organizacin de los componentes y relaciones que carecen de sentido de representacin de detalles en la
comunicacin de datos.

Cada patrn ayuda a lograr una propiedad especfica del sistema global como es la adaptabilidad de la interfaz de usuario.

En la tabla siguiente, aparecen los diferentes patrones que encontr:

Patrn Patrn de diseo Patrones arquitecturales Patrones elementales (idioms)
Caractersticas
Soportan la reutilizacin de
arquitecturas de software
Estn orientados al cambio.
Compuestos de varias unidades
arquitecturales ms pequeas.
Describen el esquema bsico para
estructurar subsistemas y
componentes.
Tienen descripciones ms abstractas
que los frameworks.
Son elementos arquitecturales ms
pequeos y estn menos
especializados que los frameworks.
Cuando un diseador encuentra un
problema, busca en catlogos un
patrn que lo resuelva; si existe el
patrn, se deben identificar las
clases, mtodos y atributos que
jueguen el rol de los prescritos por
el patrn.
Se clasifican en: de creacin,
estructurales y de comportamiento.
Los patrones de arquitectura
representan el nivel ms alto del
sistema de patrones y expresan el
esquema de la estructura
fundamental de la organizacin para
sistemas de software.
Expresan un paradigma
fundamental para estructurar un
sistema de software.
Proporcionan un conjunto de sub
sistemas predefinidos, con reglas y
guas para organizar las relaciones
entre ellos.
Son plantillas para arquitecturas de
software concretas, que especifican
las propiedades estructurales de
una aplicacin y tienen un impacto
en la arquitectura de subsistemas.
Muchos sistemas no pueden ser
estructurados de acuerdo a un
patrn arquitectnico simple, deben
dar soporte a muchos
requerimientos de sistema que
pueden solamente ser
direccionados por diferentes
patrones.
Especficos un lenguaje de
programacin.
Describen cmo implementar
componentes particulares de un
patrn.
Patrn de bajo nivel.
Relacionados con la implementacin
de diseo de problemas
particulares.
Ejemplos
Proxies, Factoras, Adaptadores,
Composicin
Capas, Tuberas y filtros, Pizarra
Cliente/Servidor, Maestro-Esclavo,
Control centralizado y distribuido,
Broker
Modularidad, Interfaces mnimas,
Encapsulacin, Objetos, Acciones y
eventos, Concurrencia

Algunos autores nos muestran la siguiente taxonoma de patrones:

Tipo de patrn Comentario Problemas Soluciones Fase de desarrollo
Patrones de
Arquitectura
Relacionados a la interaccin de
objetos dentro o entre niveles
arquitectnicos
Problemas arquitectnicos,
adaptabilidad e requerimientos
cambiantes, performance,
modularidad, acoplamiento
Patrones de llamadas entre
objetos (similar a los patrones de
diseo), decisiones y criterios
arquitectnicos, empaquetado de
Diseo inicial
funcionalidad
Patrones de
Diseo
Conceptos de ciencia de
computacin en general,
independiente de aplicacin
Claridad de diseo, multiplicacin
de clases, adaptabilidad a
requerimientos cambiantes, etc.
Comportamiento de factora,
Clase-Responsabilidad-Contrato
(CRC)
Diseo detallado
Patrones de
Anlisis
Usualmente especficos de
aplicacin o industria
Modelado del dominio,
completitud, integracin y
equilibrio de objetivos mltiples,
planeamiento para capacidades
adicionales comunes
Modelos de dominio,
conocimiento sobre lo que habr
de incluirse (p. ej. Logging &
reinicio)
Anlisis
Patrones de
Proceso o de
Organizacin
Desarrollo o procesos de
administracin de proyectos, o
tcnicas, o estructuras de
organizacin
Productividad, comunicacin
efectiva y eficiente
Armado de equipo, ciclo de vida
del software, asignacin de roles,
prescripciones de comunicacin
Planteamiento.
Idiomas
Estndares de codificacin y
proyecto
Operaciones comunes bien
conocidas en un nuevo ambiente,
o a travs de un grupo,
Legibilidad, predictibilidad
Sumamente especficos de un
lenguaje, plataforma o ambiente
Implementacin,
Mantenimiento,
Despliegue

A continuacin, una tabla donde podemos apreciar los patrones arquitectnicos y de diseo junto con los atributos que propician y en los
que presentan algn conflicto:

Tipo Patrn Descripcin
Atributos
F
u
n
c
i
o
n
a
b
i
l
i
d
a
d

I
n
t
e
r
o
p
e
r
a
b
i
l
i
d
a
d

R
e
u
s
a
b
i
l
i
d
a
d

M
o
d
i
f
i
c
a
b
i
l
i
d
a
d

I
n
t
e
g
r
i
d
a
d

E
s
c
a
l
a
b
i
l
i
d
a
d

F
a
c
i
l
i
d
a
d

d
e

p
r
u
e
b
a

P
o
r
t
a
b
i
l
i
d
a
d

D
e
s
e
m
p
e

o

M
a
n
t
e
n
i
b
i
l
i
d
a
d

C
o
n
f
i
a
b
i
l
i
d
a
d

D
i
s
p
o
n
i
b
i
l
i
d
a
d

C
o
n
f
i
g
u
r
a
b
i
l
i
d
a
d

A
r
q
u
i
t
e
c
t

n
i
c
o

Layers (Capas)
Estructura aplicaciones que pueden descomponerse en grupos de sub
tareas, que se clasifican de acuerdo a nivel de abstraccin
X X

Pipes and
filters (Tuberas
y filtros)
Sistemas que procesan flujo de datos. Cada paso de procesamiento est
encapsulado en un componente filtro. Dato pasa a travs de conexiones,
entre filtros adyacentes
X

Blackboard
(Pizarra)
Para problemas cuya solucin utiliza estrategias no determinsticas.
Varios subsistemas ensamblan conocimiento para construir solucin
parcial o aproximada
X X

Broker
Sistemas distribuidos con componentes desacoplados que interactan
por invocaciones a servicios remotos. Componente brker responsable
de coordinar comunicacin, como reenvo de solicitudes, as como
transmisin de resultados y excepciones
X

Model View
Controller (M-
V-C)
Divide una aplicacin interactiva en tres componentes. Modelo contiene
informacin central y datos. Vistas despliegan informacin al usuario.
Controladores capturan entrada del usuario. Vistas y controladores
constituyen interfaz del usuario
X X

Presentation-
Abstraction-
Control
Sistemas interactivos de agentes de cooperacin organizados de forma
jerrquica, cada uno es responsable de un aspecto especfico de
funcionalidad de aplicacin y consiste de tres componentes:
presentacin, abstraccin y control
X X

Microkernel
Sistemas que deben estar en capacidad de adaptar requerimientos de
cambio del sistema. Separa ncleo funcional mnimo del resto de la
funcionalidad y de partes especficas pertenecientes al cliente
X

Reflection
Sistemas cuya estructura y comportamiento cambia dinmicamente.
Soporta modificacin de aspectos fundamentales como estructuras tipo
y mecanismos de llamadas a funciones.
X

D
e

D
i
s
e

o

Whole-Part Ayuda a construir coleccin de objetos que conforman unidad semntica X
Master-Slave
Componente maestro distribuye trabajo a componentes esclavos y
calcula resultado final a partir de resultados arrojados por esclavos.
X

Proxy
Clientes asociados a componente se comunican con representante de
ste, en lugar del componente en s mismo.


Command
Procesor
Separa solicitudes de servicio de ejecucin. Maneja solicitudes de
objetos separados, programa ejecuciones y provee servicios adicionales
como almacenamiento de objetos solicitados para permitir que usuario
pueda deshacer alguna solicitud.
X

View Handler
Ayuda a manejar vistas de un sistema. Permite a clientes abrir, manipular
y eliminar vistas. Coordina dependencias entre vistas y organiza
actualizacin.
X
Forwarder-
Receiver
Provee comunicacin transparente entre procesos de sistema con
modelo de interaccin punto a punto (peer to peer).
X
Client-
Dispatcher-
Server
Introduce capa intermedia entre clientes y servidores (componente
despachador). Provee ubicacin transparente por medio de nombre de
servicio y esconde detalles del establecimiento de conexin de
comunicacin entre clientes y servidores.
X X
Publisher-
Subscriber
Ayuda a mantener sincronizados componentes en cooperacin. Habilita
va de propagacin de cambios: un editor notifica a suscriptores sobre
cambios en su estado.
X

Atributos asociados:
Atributos en conflicto: X

Puesto que la seleccin de un patrn es una decisin fundamental en el desarrollo de un sistema de software, a continuacin se muestran
algunas recomendaciones a considerar previo a la eleccin del patrn:

Problema Considere
Se puede descomponer en etapas sucesivas Estilo secuencial por lotes o arquitecturas en tubera
Si cada etapa es incremental, de modo que las etapas posteriores puedan comenzar
antes que finalicen las anteriores
Arquitectura en tubera
Involucra transformaciones sobre continuos flujos de datos (flujos muy prolongados) Arquitectura en tubera
Involucra el traspaso de ricas representaciones de datos Evite lneas de tubera restringidas a ASCII
Si son centrales la comprensin de datos de aplicacin, su manejo y representacin Arquitectura de repositorio o de tipo abstracto
Si los datos son perdurables Arquitectura de repositorio
Si representacin de datos puede cambiar a durante el tiempo de vida del programa Tipos de datos abstractos
Considera repositorios y si los datos de entrada son ruidosos y el orden de ejecucin
no puede determinarse a priori
Pizarra
Considera repositorios y el orden de ejecucin est determinado por un flujo de
requerimientos entrantes y los datos estn altamente estructurados
Sistema de gestin de base de datos
El sistema involucra continua accin de control, est embebido en un sistema fsico y
est sujeto a perturbaciones externas impredecibles de modo que los algoritmos
prestablecidos se tornan ineficientes
Arquitectura de bucle cerrado de control
Diseado una computacin pero no dispone de mquina en la que pueda ejecutarla Arquitectura de intrprete
La tarea requiere de un alto grado de flexibilidad / configurabilidad, acoplamiento
laxo entre tareas y tareas reactivas
Procesos interactivos
Tiene motivos para no vincular receptores de seales con sus originadores Arquitectura de eventos
Las tareas son de naturaleza jerrquica Worker replicado o estilo de pulsacin (heartbeat)
Las tareas estn divididas entre productores y consumidores Cliente / Servidor
Tiene sentido que todas las tareas se comuniquen mutuamente en un grafo
totalmente conexo
Estilo de token passing.


Conclusiones:

Los patrones de diseo se aplicaban slo en la fase de diseo, aunque la comunidad ha comenzado a definir y aplicar patrones en las otras
etapas del proceso de desarrollo, desde la concepcin arquitectnica inicial hasta la implementacin del cdigo. Los patrones de
arquitectura son similares a los patrones de diseo pero se concentran en la estructura de alto nivel del sistema. Algunos autores sealan
que los patrones arquitectnicos son virtualmente lo mismo que los estilos, aunque est claro que ocurren en diferentes momentos del
ciclo corresponden a distintos niveles de abstraccin.

Los patrones arquitectnicos son un modelo de sistema que captura la forma en que estn integrados los elementos, componentes,
conectores que establecen las reglas de la interaccin entre los componentes y una estructura de control que gobierna la ejecucin.

Los patrones se basan en presentaciones informales en estilo de libro de texto de familias de sistemas, ms que en representaciones de
sistemas precisas y semnticamente ricas.

Un criterio importante del xito de los patrones, tanto arquitectnicos como de diseo, es la forma en que estos alcanzan de manera
satisfactoria los objetivos de la ingeniera de software. Los patrones soportan el desarrollo, mantenimiento y evolucin de sistemas
complejos y de gran escala.


Fuentes consultadas:

Almeira Adriana Sandra & Prez Cavenago Vanina: Arquitectura de Software: Estilos y Patrones, por APU. 2007 Facultad de Ingeniera, Universidad
Nacional de la Patagonia San Juan Bosco, tomado de:
www.roa.unp.edu.ar:8080/graduate/bitstream/123456789/203/1/Tesina%20Arquitectura%20de%20Soft.pdf

Camacho Erika, Cardeso Fabio & Nuez Gabriel: Arquitecturas de Software, gua de estudio, Abril 2004, tomado de:
http://prof.usb.ve/lmendoza/Documentos/PS-6116/Guia%20Arquitectura%20v.2.pdf

Pavn Mestras Juan: Patrones de diseo orientado a objetos, Programacin orientada a objetos, Facultad de Informtica, Universidad Complutense de
Madrid. Tomado de: http://www.fdi.ucm.es/profesor/jpavon/poo/2.14pdoo.pdf

Reynoso Carlos & Kicilof Nicols: Estilos y Patrones en la Estrategia de Arquitectura de Microsoft, Versin 1.0 Marzo 2004, Universidad de Buenos
Aires, tomado de: http://carlosreynoso.com.ar/archivos/arquitectura/Estilos.PDF

También podría gustarte