Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Teoría PS6116 Arq. de Software
Teoría PS6116 Arq. de Software
Material diseado y elaborado por: Prof. Mara A. Prez de Ovalles Prof. Luis Eduardo Mendoza M.
Relaciones estticas. Se muestran en el cdigo fuente, ellas reflejan la colocacin de los componentes dentro de la arquitectura. Relaciones dinmicas. tratan con las conexiones temporales y las interacciones dinmicas entre los componentes. Ellas no son fcilmente visibles a partir del cdigo fuente.
PROPIEDAD FUNCIONAL. Tiene que ver con un aspecto de la funcionalidad del sistema, como su nombre lo indica. Est usualmente relacionada con un requerimiento. PROPIEDAD NO FUNCIONAL. Trata de una caracterstica del sistema que no est cubierta en la descripcin funcional del mismo. Tpicamente se refiere a aspectos tales como confiabilidad, compatibilidad, costo, facilidad de uso , etc.
SISTEMAS DE INFORMACIN II TEORA
Abstraccin de datos. Es una coleccin determinada de datos que describen un objeto de datos. Abstraccin de control. Implica un mecanismo de control del programa sin especificar detalles internos.
SISTEMAS DE INFORMACIN II TEORA
Eficiencia
Mantenibilidad
SISTEMAS DE INFORMACIN II
TEORA
ESTILOS Y PATRONES Bosch (2000) establece que la imposicin de ciertos estilos arquitectnicos mejora o disminuye las posibilidades de satisfaccin de ciertos atributos de calidad del sistema Cada estilo propicia atributos de calidad, y la decisin de implementar alguno de los existentes depende de los requerimientos de calidad del sistema. Buschmann et al. (1996) afirman que un criterio importante del xito de los patrones es la forma en que estos alcanzan de manera satisfactoria los objetivos de la ingeniera de software.
SISTEMAS DE INFORMACIN II TEORA
ESTILOS ARQUITECTNICOS
Un estilo arquitectnico define una familia de sistemas de software en trminos de su organizacin estructural. Un estilo arquitectnico representa los componentes y las relaciones entre ellos con las restricciones de su aplicacin y las asociaciones y reglas de diseo para su construccin. Shaw y Garlan (Shaw y Garlan, 1996) precisan adems, que un estilo arquitectnico define un vocabulario de componentes y tipos de conectores.
SISTEMAS DE INFORMACIN II
TEORA
ESTILOS ARQUITECTNICOS
PIPES and FILTERS (Tuberas y filtros)
Pipes (Tuberas)
Un componente lee la rfaga (stream) de datos en sus entradas y produce una rfaga de datos en sus salidas. Los componentes se conocen como filtros y son independientes. Los conectores se comportan como conductores de las rfagas, transmitiendo salidas de un componente hacia entradas de otro. El mejor ejemplo de este estilo son los programas escritos en el Shell de Unix (Bach, 1986). Otros ejemplos se observan en el rea de procesamiento de seales, programacin paralela y sistemas distribuidos.
SISTEMAS DE INFORMACIN II TEORA
ESTILOS ARQUITECTNICOS
ORGANIZACIONES POR TIPOS DE DATOS ABSTRACTOS Y O-O
La representacin de los datos y sus operaciones primitivas se encapsulan en Tipos de Datos Abstractos (TDA) u objetos.
Manejador (TDA) obj op op obj Llamada de un proceso op op obj op op obj op
Nota: obj es un manejador op es una invocacin
op
op obj
op
Los componentes son objetos (o instancias de tipos de datos abstractos). Los objetos son ejemplos de un tipo de componente llamado manejador porque es el responsable de preservar la integridad de un recurso Los objetos interactan a travs de invocaciones a funciones y procedimientos. La implementacin de las funciones y procedimientos est oculta para el objeto cliente, lo cual permite hacer las modificaciones fcilmente. Para hacer uso de un servicio se hace necesario conocer la identidad del objeto; al hacer un cambio en un objeto es necesario modificar todos los objetos que lo invocan.
SISTEMAS DE INFORMACIN II TEORA
ESTILOS ARQUITECTNICOS
BASADOS EN EVENTOS, INVOCACIN IMPLCITA
En el estilo anterior, la interfaz de los componentes (objetos) cuentan con una coleccin de procedimientos y funciones, y la integracin entre ellos se logra a travs de la invocacin explcita de stos. En este estilo, se considera una tcnica de integracin conocida como invocacin implcita.
Los componentes son mdulos cuyas interfaces proveen una coleccin de procedimientos y un conjunto de eventos. Los procedimientos se llaman de la manera usual pero el componente tambin puede activar algunos de sus procedimientos con los eventos del sistema. Esto har que estos procedimientos sean invocados cuando los eventos ocurren en tiempo de ejecucin. Los generadores de eventos no saben cuales componentes se afectarn por el evento. Ejemplos de este estilo son los sistemas de gestin de bases de datos cuando aseguran la consistencia de los datos, las aplicaciones con interfaces de usuarios al separar la representacin de los datos de las aplicaciones que las gerencian.
SISTEMAS DE INFORMACIN II TEORA
ESTILOS ARQUITECTNICOS
SISTEMAS EN CAPAS
Estn organizados jerrquicamente; cada capa le presta servicios a la capa superior y es cliente de la capa inferior.
Sistemas tiles Servicio base Nivel central Composicin de varios elementos Llamadas usuales de procedimientos
Usuarios
Los componentes implementan un mquina virtual en alguna capa de la jerarqua. Los conectores estn definidos en los protocolos que determinan cmo las capas interactan. Los ejemplos ms conocidos de este estilo arquitectural son los protocolos de comunicacin.
SISTEMAS DE INFORMACIN II TEORA
ESTILOS ARQUITECTNICOS
REPOSITORIOS Consta de dos (2) tipos de componentes: una estructura central de datos que refleja el estado actual y una coleccin independiente de componentes que operan sobre el almacn central.
Computacin fc1 fc8 Acceso directo fc7
Nota: fc es una fuente de conocimiento
fc6
Las interacciones entre los componentes pueden variar significativamente. El tipo de control seleccionado puede llevar a dos categoras: Si el tipo de transaccin es una entrada que dispara la seleccin del proceso a ejecutarse, se est hablando de las tradicionales bases de datos. Si el estado actual de la estructura central de datos es el principal activador de los procesos a ejecutarse, se habla de un estilo de repositorio tipo pizarrn (blackboard). Son muy utilizados para aplicaciones que requieren interpretaciones complejas de procesamiento de seales, tales como reconocimiento del habla y de patrones.
SISTEMAS DE INFORMACIN II TEORA
ESTILOS ARQUITECTNICOS
INTRPRETES
En una organizacin intrprete,una maquina virtual es producida en software. Un intrprete incluye el pseudoprograma interpretado y la mquina de interpretacin misma.
Memoria Entradas Computacin (mquina) Salidas Motor de interpretacin simulado Instruccin seleccionada Datos seleccionados Acceso a datos (bsqueda/almacenamiento) Estado interno del interpretador Datos (programa) Programa a ser interpretado
Los intrpretes son a menudo usados para construir maquinas virtuales que enlazan la mquina de computacin esperada por la semntica y la mquina de computacin disponible en el hardware.
SISTEMAS DE INFORMACIN II TEORA
PATRONES ARQUITECTNICOS
Buschmann et al. (1996) define patrn como una regla que consta de tres partes, la cual expresa una relacin entre un contexto, un problema y una solucin Estas son:
Contexto. Es una situacin de diseo en la que aparece un problema de diseo. Problema. Es un conjunto de fuerzas que aparecen repetidamente en el contexto. Solucin. Es una configuracin que equilibra estas fuerzas.
Para Buschmann et al. (1996) son plantillas para arquitecturas de software concretas, que especifican las propiedades estructurales de una aplicacin y tienen un impacto en la arquitectura de subsistemas. La seleccin de un patrn arquitectnico es, por tanto, una decisin fundamental de diseo en el desarrollo de un sistema de software.
SISTEMAS DE INFORMACIN II TEORA
PATRONES ARQUITECTNICOS
Patrn Arquitectnico
Layers
Descripcin
Consiste en estructurar aplicaciones que pueden ser descompuestas en grupos de subtareas, las cuales se clasifican de acuerdo a un nivel particular de abstraccin. Provee una estructura para los sistemas que procesan un flujo de datos. Cada paso de procesamiento est encapsulado en un componente filtro (filter). El dato pasa a travs de conexiones (pipes), entre filtros adyacentes. Aplica para problemas cuya solucin utiliza estrategias no determinsticas. Varios subsistemas ensamblan su conocimiento para construir una posible solucin parcial aproximada. Puede ser usado para estructurar sistemas de software distribuido con componentes desacoplados que interactan por invocaciones a servicios remotos. Un componente broker es responsable de coordinar la comunicacin, como el reenvo de solicitudes, as como tambin la transmisin de resultados y excepciones. Divide una aplicacin interactiva en tres componentes. El modelo (model) contiene la informacin central y los datos. Las vistas (view) despliegan informacin al usuario. Los controladores (controlers) capturan la entrada del usuario. Las vistas y los controladores constituyen la interfaz del usuario.
Blackboard
Broker
Model-ViewControler
SISTEMAS DE INFORMACIN II
TEORA
PATRONES ARQUITECTNICOS
Patrn Arquitectnico
PresentationAbstractionControl
Descripcin
Define una estructura para sistemas de software interactivos de agentes de cooperacin organizados de forma jerrquica. Cada agente es responsable de un aspecto especfico de la funcionalidad de la aplicacin y consiste de tres componentes: presentacin, abstraccin y control. Aplica para sistemas de software que deben estar en capacidad de adaptar los requerimientos de cambio del sistema. Separa un ncleo funcional mnimo del resto de la funcionalidad y de partes especficas pertenecientes al cliente. Provee un mecanismo para sistemas cuya estructura y comportamiento cambia dinmicamente. Soporta la modificacin de aspectos fundamentales como estructuras tipo y mecanismos de llamadas a funciones.
Microkernel
Reflection
SISTEMAS DE INFORMACIN II
TEORA
Estilo Arquitectnico Slo describe el esqueleto estructural y general para aplicaciones Son independientes del contexto al que puedan ser aplicados Cada estilo es independiente de los otros Expresan tcnicas de diseo desde una perspectiva que es independiente de la situacin actual de diseo Son una categorizacin de sistemas
Patrn Arquitectnico Existen en varios rangos de escala, comenzando con patrones que definen la estructura bsica de una aplicacin Partiendo de la definicin de patrn, requieren de la especificacin de un contexto del problema Depende de patrones ms pequeos que contiene, patrones con los que interacta, o de patrones que lo contengan Expresa un problema recurrente de diseo muy especfico, y presenta una solucin para l, desde el punto de vista del contexto en el que se presenta Son soluciones generales a problemas comunes
SISTEMAS DE INFORMACIN II
TEORA
FRAMEWORK
Un framework es ms que una jerarqua de clases. Es una jerarqua de clases ms un modelo de interaccin entre los objetos instanciados a partir del framework. (Levis, Rosenstein, Pree, Weinand, Gamma, Calder, Andert, Vlissides and Schmucker, 1995) Un framework es una tcnica de reuso (Johnson, 1997) Un framework es un diseo reusable de todo o partes del sistema que esta representado por un conjunto de clases abstractas y la forma como sus instancias interactan. Un framework es un esqueleto de una aplicacin que puede ser personalizado por un desarrollador de aplicaciones (Johnson, 1997). Un componente representa reuso de cdigo. Los framework son una forma de reuso de diseo (Johnson, 1997).
SISTEMAS DE INFORMACIN II TEORA
FRAMEWORK
Los framework son componentes en el sentido que los vendedores los venden como productos y porque una aplicacin puede usar varios framework. Pero los framework son ms personalizables que los componentes y tiene interfaces ms complejas. (Johnson, 1997) Los framework son una clase de arquitectura de dominio especfico. La diferencia principal es que un framework es un diseo orientado a objeto mientras que una arquitectura de un dominio especfico puede no serlo (Johnson, 1997). Un framework es reusable, una aplicacin semi completa que puede ser especializada para producir aplicaciones personalizadas. (Johnson y Foote, 1998; Fayad, Schmith y Johnson, 1997) En contraste con las tcnicas de reuso OO iniciales basadas en libreras, los framework estn orientados a unidades del negocio particulares y a dominios de aplicacin. (Fayad y Schmith, 97)
SISTEMAS DE INFORMACIN II TEORA
FRAMEWORK
El desarrollo de aplicaciones estar fuertemente basado en la integracin de mltiples framework. Clasificando los framework por su alcance, tenemos: Infraestructura de Sistemas: simplifican el desarrollo de infraestructuras de sistemas eficientes y portables tales como sistemas operativos, de comunicacin y herramientas de interfaces de usuarios y procesamiento de lenguajes Integracin de middleware: Se usan comnmente para integrar aplicaciones distribuidas y componentes. Se usan para mejorar la habilidad del desarrollador en modularidad, reuso y extensiones de software trabajando en un ambiente distribuido Aplicaciones de empresas: Dirigidos a dominios de aplicacin amplios, tales como comunicaciones, manufactura, financieros, etc.
SISTEMAS DE INFORMACIN II TEORA
PATRONES DE DISEO
Un patrn describe un problema a ser resuelto, una solucin y el contexto en el cual la solucin trabaja. Nomina una tcnica y describe su costo y su beneficio Estos patrones fueron descubiertos al examinar varios framework y fueron seleccionados como representativos de software reusable. Un simple framework puede contener muchos patrones; es decir, estos patrones son ms pequeos que los framework. Por lo tanto, los patrones son mas abstractos que los framework Los patrones de diseo son elementos microarquitectnicos de los framewrok. Aunque el trmino Patrn de Diseo no es usado explcitamente, los novatos obtienen ganancia de sus experiencias en el desarrollo de software OO al extraer patrones de diseo a partir de varios framework especficos (Pree, 1995)
SISTEMAS DE INFORMACIN II TEORA
PATRONES DE DISEO
De acuerdo a Coad, los patrones de diseo son identificados al observar los bloques de construccin de ms bajo nivel; esto es sus clases y objetos y las relaciones entre ellos (Pree, 1995). Clasificacin:
ALCANCE CLASE OBJECT CREACIN Factory Method Abstract Factory Builder Protitype Singleton PROPOSITO ESTRUCTURAL Adapter Clss Adapter Object Bridge Composite Decorator Faade Flyweight Proxy COMPORTAMIENTO Interpreter Chain of Responsibility Command Iterator Mediator Memento State Strategy Visitor
TEORA
SISTEMAS DE INFORMACIN II
PATRONES DE DISEO
Documentacin: Nombre del patrn y su clasificacin Intencin: Qu hace? Qu problema resuelve? Alias o conocido tambin como Motivacin Aplicabilidad Estructura: representacin grfica de la jerarqua de clases y el diagrama de interaccin Participantes: las clases que lo componen y sus responsabilidades Consecuencias: trade-off de usar el patrn Implementacin: sugerencias y ayudas sobre la implementacin, fallas ms comunes Usos conocidos: ejemplos donde ha sido usado Patrones relacionados: Qu patrn se relacionan con l? En qu se diferencia de otros?
SISTEMAS DE INFORMACIN II TEORA
SISTEMAS DE INFORMACIN II
TEORA
El Modelo 4+1 Vistas organiza la descripcin de la arquitectura de un software usando cinco (5) vistas concurrentes, cada una de las cuales est dirigida a un conjunto especfico de conceptos. Los arquitectos exponen sus decisiones de diseo en cuatro (4) vistas y usan la quinta vista para ilustrar y validar dichas decisiones.
SISTEMAS DE INFORMACIN II TEORA
Lgica
Procesos
Se identifican caractersticas tales como: Autonoma, quien invoca a quien. Persitencia. Distribucin: desde donde son accesibles las operaciones. clase se puede implementar en un mdulo, paquete, etc.
Lgica
Desarrollo Una
SISTEMAS DE INFORMACIN II
TEORA