Unidad 2. Actividad 3. Contrastando arquitectura y patrn de diseo
UNIVERSIDAD NACIONAL ABIERTA Y ADISTANCIA DE MXICO
INGENIERA EN DESARROLLO DE SOFTWARE
CUATRIMESTRE CUATRO
DISEO Y AEQUITECTURA DE SOFTWARE
PROF: JUDITH RUBY SANCHEZ GARCIA
ALUMNO: MARIO OSCAR RAMREZ CORTES AL10506012
Unidad 2. Actividad 3. Contrastando arquitectura y patrn de diseo
Agosto, 2014
DISEO Y AEQUITECTURA DE SOFTWARE Unidad 2. Actividad 3. Contrastando arquitectura y patrn de diseo Patrn de arquitectura de software. Las formas repetibles y reutilizables que resultan de algn paso en el proceso del ciclo de vida del software, es conocido como patrn, y determina la forma arquitectnica final del software, para cada tipo de aplicacin se puede utilizar un patrn. No se debe confundir patrn con el concepto de arquitectura, ya que esta, es el producto de usar uno o ms patrones para el diseo de un software. Para entender mejor el concepto y diferenciarlos de una vez, har referencia a un ejemplo que en lo personal creo satisface la necesidad de materializar la idea y no entrar en ms confusiones. Para llegar a este tuve que entender primero todo el programa desarrollado: al igual que se construye una casa y de manera analgica, el software tiene elementos de descomposicin conocidos como mdulos y que Sommerville clasifica como modelos genricos y de referencia. Una casa se compone de ladrillos, y si la vemos muy de cerca esos ladrillos tienen una forma repetitiva de encimarse uno debajo de otro, sus componentes son sencillos pues solo son el rectngulo que forma el ladrillo y las juntas superior, inferior, derecha o izquierda, segn si es un ladrillo de en medio o bien arriba o abajo. Pero las casas pueden ser tambien de blocks los cuales son ms grandes y tambien estan apilados de forma repetitiva, hay casas de piedra y aunque estas son polgonos irregulares, aun as tienen repeticiones, estas repeticiones son patrones, y segn los patrones que se usen, dar como resultado una cierta arquitectura. Lo mismo sucede con el software, los patrones o modelos genricos son ms utilizados como los de recoleccion de datos, y monitorizaacin, mientras que los de referencia son ms abstractos y describen una clase ms amplia de sistemas. Entre los patrones de diseo ms usados o conocidos son los filtros y tuberas, las capas o layers, cliente-servidor y repositorios, de estos cuatro se derivan muchsimos ms que utilizan la misma base pero se han modificado segn las necesidades de software nuevo. Las diferencias entre patrones y arquitecturas. Ya entendido el concepto (austero pero claro) de lo que es un patrn, podemos describir que las diferencias generales entre patrones y arquitecturas son la escala. Tomando de ejemplo la arquitectura de layers, un patron solo definir previamente la forma en que las capas se relacionan, interactuan, su rendimiento pero todo de manera casi individual, mientras que la integracin total y el funcionamiento integral de todas estas capas estar descrita por la arquitectura del software, de modo que los patrones no pueden existir si no hay una arquitectura establecida, y la arquitectura no puede ser si no se sigue un patron. Otra clara diferencia es la reutilizacin, debido a la diferencia de escalas, la arquitectura resultar siempre ms dificil de reutilizar (considerndola como una entidad integrada), como se puede hacer con los patrones (segn el diseo arquitectonico que se haya seleccionado). Si medimos el impacto al aplicar una arquitectura en el diseo del software, entonces este es relevante a la totalidad del sistema pero, si este slo concierne a un subcomponente, nos referimos a un patrn de diseo. Por ejemplo, Layers es claramente una arquitectura , ya que concierne al diseo general de una aplicacin. Mientras que Active Record , que lidia con los mecanismos de persistencia de datos es un DISEO Y AEQUITECTURA DE SOFTWARE Unidad 2. Actividad 3. Contrastando arquitectura y patrn de diseo patrn de diseo. Para dejar ms claro este tema, podramos decir que una arquitectura puede utilizar uno o ms patrones de diseo como por ejemplo la arquitectura cliente-servido, en la que se utilizan layers para organizar las funciones de intercambio dinmico y por otro lado y dentro de alguna layer podramos usar pipes and filters para poder integrar algn proceso que sea totalmente unidireccional para que en cada filtro resulte un producto sin la intervencin del usuario y todo mientras las dems capas siguen trabajando.
Patrones de arquitectura Descripcin. Diferencias. - Layers Ayudan a la estandarizacin, portabilidad y cambiabilidad principalmente. Este soporta un diseo basado en niveles de abstraccin crecientes, lo cual a su vez permite a los implementadores la particin de un problema complejo en una secuencia de pasos incrementales. En segundo lugar, el estilo admite muy naturalmente optimizaciones y refinamientos. En tercer lugar, proporciona amplia reutilizacin. Al igual que los tipos de datos abstractos, se pueden utilizar diferentes implementaciones o versiones de una misma capa en la medida que soporten las mismas interfaces de cara a las capas adyacentes. - Pipes and filters Se usa para sistemas de procesamiento de datos de flujo, es flexible por su estructura y adems reutilizable y eficiente en el procesamiento paralelo, Este patrn caracterizado a diferencia de los otros por ver al sistema como una serie de transformaciones sobre piezas sucesivas de entradas de datos. Los datos ingresan al sistema y luego fluyen a travs de las componentes hasta que son asignados a algn destino final. Contrastando con estilos arquitectnicos presentados en las pantallas anteriores, en aquellos la interaccin era simple y directa entre partes bien definidas, por el contrario, en los tableros se hace manejo de informacin de diversas fuentes (agentes). Se puede llamar arquitectura multi agentes. La diferencia que presenta este patrn conocido como Modelo-Vista-Controlador (MVC) es que separa el modelado del dominio, la presentacin y las acciones basadas en datos ingresados por el usuario en tres clases diferentes Sistemas Distribuidos Se usan como una herramienta para todo cliente que requiere un software manejable y gestionado de manera simultanea y remota. Este estilo comprende bsicamente dos formas o sub-estilos, que se han llamado intrpretes y sistemas basados en reglas. Ambas variedades abarcan, sin duda, un extenso espectro que va desde los llamados lenguajes de alto nivel hasta DISEO Y AEQUITECTURA DE SOFTWARE Unidad 2. Actividad 3. Contrastando arquitectura y patrn de diseo los paradigmas declarativos no secuenciales de programacin, que todo el mundo sabe que implementan un proxy (una especie de nivel de impostura) que encubren al usuario operaciones que en ltima instancia se resuelven en instrucciones de mquinas afines al paradigma secuencial imperativo de siempre.
Trabajos citados Espaola, R. A. (27 de 08 de 2012). Ingenieria del Software. Recuperado el 05 de 08 de 2014, de Patrones de arquitectura vs. Patrones de diseo: http://arlethparedes.wordpress.com/2012/08/27/patrones-de- arquitectura-vs-patrones-de-diseno/ Sommerville, I. (2005). Ingeniera del software. Madrid: PEARSON EDUCACIN. S.A.. Tello, J. C. (2009). Patrones de diseo: ejemplo de aplicacin en los eLearning y Objetos de Aprendizaje Generativos. RED. Revista de Educacin a Distancia, 12.