UNIVERSIDAD NACIONAL ABIERTA Y ADISTANCIA DE MXICO
INGENIERA EN DESARROLLO DE SOFTWARE
CUATRIMESTRE CUATRO
ANLISIS Y DISEO ORIENTADO A OBJETOS
PROF: JUDITH RUBY SANCHEZ GARCIA
ALUMNO: MARIO OSCAR RAMREZ CORTES AL10506012
Actividad 3. Patrones de arquitectura de software
JUNIO, 2014
Actividad 3. Patrones de arquitectura de software. Que son los patrones? Disciplina de resolucin de problemas, es una regla de tres partes que expresa una relacin entre un contexto, un problema y una solucin; permite el re uso del diseo y de la arquitectura; se construyen sobre la experiencia colectiva de ingenieros de software experimentados. Son bloques de construccin mental, tiles para proceder con aspectos de diseo limitados y especficos en el momento del desarrollo de un sistema de software; son plantillas que describen los principios estructurales y globales que rigen la base de la creacin de un software (Rosanigo, Almeira, & Perez Cavenago, 2007). Patrones de arquitectura Caractersticas Del Fango a la Estructura Ayudan a evitar un mar de componentes u objetos apoyando una descomposicin controlada de una tarea del sistema global en sub-tareas cooperantes. - Layers Estructura aplicaciones que pueden descomponerse en grupos o subtareas, pasa las solicitudes desde la capa del nivel superior hasta el nivel inferior. Componentes complejos requieren de ms descomposicin. Sus principales ventajas son la estandarizacin, portabilidad y cambiabilidad, pero tiene baja efciencia, trabajo inecesario por tener que pasar la instruccin por todas las capas as que tambin tiene bajo performance. - Pipes and filters Se usa para sistemas de procesamiento de datos de flujo ya que a travs de los filters se hacen sub procesos y los piper interconectan cada proceso, tiene la ventaja de no necesitar archivos intermedios, es flexible por su estructura y adems reutilizable, eficiente en el procesamiento paralelo, bajo rendimiento pues algunos filters pueden consumir grandes cantidades de recursos. - Blackboard Es til para los problemas en los cuales no se conoce ninguna estrategia de solucin determinstica, se usan muchos subsitemas con un monton de soluciones (algoritmos) esperando que uno de ellos funcione. Provee de experimentacin, tolerancia a fallos y robustez, entre otras pero es difcil de testear, y se requiere un gran esfuerzo de desarrollo Sistemas Distribuidos Se usan como una herramienta para todo cliente que requiere un software manejable y gestionado de manera simultanea y remota. - Broker Estructura sistemas de software distribuidos con componentes desacoplados que interactan por invocaciones de servicios remotos. Un componente Broker es responsable de coordinar la comunicacin, remitir las demandas, as como transmitir resultados y excepciones.los clientes no necesitan saber donde esta el servidor, ya que su portabilidad y re uso le permiten ser modificado incluso en tiempo de ejecucin. Sistemas Interactivos permiten un grado alto de interaccin del usuario, generalmente, con la ayuda de interfaces de usuario grficas, proporcionan un acceso conveniente a sus servicios, lo cual permite a los usuarios aprender la aplicacin y producir resultados rpidamente. - Model-View-Controller El Modelo contiene la funcionalidad central y los datos, las Vistas despliegan la informacin al usuario y los Controladores manejan la entrada del usuario. La misma informacin es presentada en forma diferente en diferentes vistas. Los cambios en los datos se deben reflejar inmediatamente en las vistas y el comportamiento. Su principal desventaja es la conexin entre las vistas y su actualizacin ptima. - Presentation-Abstraction-Control define una estructura para los sistemas de software interactivos en forma de jerarqua de agentes cooperantes. Cada agente es responsable de un aspecto especfico de la funcionalidad de la aplicacin y tiene tres componentes: presentacin, abstraccin, y control. 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. - Microkernel se aplica a los sistemas de software que pueden adaptarse a cambios en los requerimientos. La plataforma de aplicacin debera ser portable, extensible y adaptable para permitir una fcil integracin de tecnologas emergentes, la funcin central de la plataforma de aplicacin debera separarse en un componente con tamao de memoria mnimo, y servicios que consuman la menor cantidad de posible procesamiento. - Reflection provee un mecanismo para estructura cambiante y conducta dinmica de sistemas de software, tienen una estructura interna compleja. Aspectos que estn sujetos a cambios son encapsulados dentro de componentes separados; Los cambios pueden ser a cualquier escala, desde proveer un conjunto de teclas rpidas para comandos usados normalmente como tambin adaptar una aplicacin framework para un cliente especfico.
Comentarios finales: Los patrones de arquitectura que a mi parecer son ms utilizados en la actualidad son los de tipo interactivos y adaptables, porque el desarrollo de las tecnologas de la informacin lo han hecho necesario. La mayora de las aplicaciones se basan en una interface grfica desde la cual se accede al servidor y estas se actualizan cada determinado tiempo de acuerdo a las necesidades del cliente o bien de las observaciones y deteccin de errores de los desarrolladores para un mejor performance; un ejemplo de aplicaciones que usan este tipo de patrones de arquitectura de software son las redes sociales que pueden ser accedidas desde una Lap, PC, una Tablet o un celular. No por ello quiero decir que los dems patrones sean obsoletos, ya que an se utilizan en sistemas de software donde se requiere el procesamiento en pequeas subtareas como por ejemplo el sistema de un laboratorio donde cada rea tiene un modulo de acceso desde donde se modifica la informacin para finalmente integrarla y para este ejemplo se puede usar un patrn de filters and pipers o bien de layers. Trabajos citados Rosanigo, Z. B., Almeira, A. S., & Perez Cavenago, V. (2007). Arquitectura de Software: Estilos y Patrones. Argentina: Universidad Nacional De La Patagonia San Juan Bosco. Sommerville, I. (2005). Ingeniera del software. Madrid: PEARSON EDUCACIN. S.A..