You are on page 1of 5

PATRONES DE ARQUITECTURA VS.

PATRONES DE DISEO

La RAE (Real academia espaola) cita:


* Patrn: Modelo que sirve de muestra para sacar otra cosa igual.

1. Patrn de diseo.
2. Patrn de arquitectura.

Patrn de diseo:
Los patrones de diseo son el esqueleto de las soluciones a problemas comunes
en el desarrollo de software. En otras palabras, brindan una solucin ya probada y
documentada a problemas de desarrollo de software que estn sujetos a
contextos similares. Debemos tener presente los siguientes elementos de un
patrn: su nombre, el problema (cuando aplicar un patrn), la solucin (descripcin
abstracta del problema) y las consecuencias (costos y beneficios).
Los patrones de diseo facilitan la reutilizacin de arquitecturas y diseos de
software exitosos.
Patrn de arquitectura:
Son patrones de diseo de software que 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 software, que consta de
subsistemas, sus responsabilidades e interrelaciones. En comparacin con los
patrones de diseo, los patrones arquitectnicos tienen una nivel de abstraccin
mayor.
PATRONES DE ARQUITECTURA VS. PATRONES DE DISEO

Si queremos creer que realmente existe diferencia, entonces es fcil verla


midiendo el impacto al aplicar el patrn: si este es relevante a la totalidad del
sistema entonces hablamos de un patrn de arquitectura; en cambio, si este slo
concierne a un subcomponente, nos referimos a un patrn de diseo.

Tomen como caso el patrn de Layers, este es claramente un patrn


arquitectnico, ya que concierne al diseo general de la aplicacin. Mientras que
el patrn Active Record, que lidia con los mecanismos de persistencia de datos es
un patrn de diseo.

Pero, qu pasa cuando lo que era totalidad se vuelve un subcomponente?.


Cambiaran entonces sus patrones de arquitectura a diseo?. Aqu es donde no es
tan fcil la respuesta.

Hay otros patrones que solapan responsabilidades de todo-parte, por ejemplo


el MVC. Segn como se aplique puede ser un patrn de diseo o arquitectura.

PATRONES DE ARQUITECTURA

Los 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 software, que consta de subsistemas, sus
responsabilidades e interrelaciones. En comparacin con los patrones de diseo,
los patrones arquitectnicos tienen un nivel de abstraccin mayor.
Aunque un patrn arquitectnico comunica una imagen de un sistema, no es una
arquitectura como tal. Un patrn arquitectnico es ms un concepto que captura
elementos esenciales de una arquitectura de software. Muchas arquitecturas
diferentes pueden implementar el mismo patrn y por lo tanto compartir las
mismas caractersticas. Adems, los patrones son a menudo definidos como una
cosa estrictamente descrita y comnmente disponible. Por ejemplo, la arquitectura
en capas es un estilo de llamamiento-y-regreso, cuando define uno un estilo
general para interaccionar. Cuando esto es descrito estrictamente y comnmente
disponible, es un patrn.
Uno de los aspectos ms importantes de los patrones arquitectnicos es que
encarnan diferentes atributos de calidad. Por ejemplo, algunos patrones
representan soluciones a problemas de rendimiento y otros pueden 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:

Programacin por capas


Tres niveles
Pipeline
Invocacin implcita
Arquitectura en pizarra
Arquitectura dirigida por eventos, Presentacin-abstraccin-control
Peer-to-peer
Arquitectura orientada a servicios
Objetos desnudos
Modelo Vista Controlador

La Arquitectura Orientada a Servicios (SOA, siglas del ingls Service Oriented


Architecture) es un estilo de arquitectura de TI que se apoya en la orientacin a
servicios. La orientacin a servicios es una forma de pensar en servicios, su
construccin y sus resultados. Un servicio es una representacin lgica de una
actividad de negocio que tiene un resultado de negocio especifico (ejemplo:
comprobar el crdito de un cliente, obtener datos de clima, consolidar reportes de
perforacin)
Una red peer-to-peer, red de pares, red entre iguales o red entre pares (P2P,
por sus siglas en ingls) es una red de ordenadores en la que todos o algunos
aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se
comportan como iguales entre s. Es decir, actan simultneamente como clientes
y servidores respecto a los dems nodos de la red. Las redes P2P permiten el
intercambio directo de informacin, en cualquier formato, entre los ordenadores
interconectados.
La programacin por capas es un modelo de desarrollo software en el que el
objetivo primordial es la separacin (desacomplamiento) de las partes que
componen un sistema software o tambin una arquitectura cliente-servidor: lgica
de negocios capa de presentacin y capa de datos. De esta forma, por ejemplo, es
sencillo y mantenible crear diferentes interfaces sobre un mismos sistema sin
requerirse cambio alguno en la capa de datos o lgica.

Modelo-vista-controlador (MVC) es un patrn de arquitectura de software, que


separa los datos y la lgica de negocio de una aplicacin de la interfaz de
usuario y el mdulo encargado de gestionar los eventos y las comunicaciones.
Para ello MVC propone la construccin de tres componentes distintos que son
el modelo, la vista y el controlador, es decir, por un lado define componentes
para la representacin de la informacin, y por otro lado para la interaccin del
usuario.12 Este patrn de arquitectura de software se basa en las ideas
de reutilizacin de cdigo y la separacin de conceptos, caractersticas que
buscan facilitar la tarea de desarrollo de aplicaciones y su posterior
mantenimiento.

You might also like