Está en la página 1de 8

UNIDAD I Introduccin Arquitecturas de SW

1.1 Desarrollo de software basado en arquitecturas Estereotipos 1.1.1 Arquitectura como normativa madura. Herramientas de diseo arquitectnico. Lenguajes arquitectnicos iguales en la academia y la industria. UML como lenguaje formal de modelado. Arquitectura vinculada con ingeniera y ciclo de vida. Arquitectura vinculada a metodologa (RUP). Proceso unificado de rational. La AS tiene que ver con el modelado OO. Hay un vnculo natural entre requerimientos (casos de uso) y clases. Las herramientas arquitectnicas generan el cdigo de la aplicacin. Historia Edsger Dijkstra, 1968

--Ciencias de la computacin como rama aplicada de las matemticas. --Niveles de abstraccin. Nato, 1969

--P.I. Sharp, Arquitectura de software Fred Brooks, 1975 MMM

--Arquitectura como interfaz de usuario. Davis Parnas

--1972: Mdulos- Ocultamiento de informacin. --1974: Estructuras de software. --1976: Familias de programas (rbol de decisin). Dewayne Perry, Alexander Wolf-1992

--Foundations for the study of software architecture --La dcada de 1990, creemos, ser la dcada de la arquitectura de sw. Usamos el trmino arquitectura en contraste con diseo, para evocar nociones de codificacin, de abstraccin, de estndares, de entrenamiento formal (de los arquitectos de sw) y de estilo. Es tiempo de re-

examinar el papel de la arquitectura de software en el contexto ms amplio del proceso de software y de su administracin, as como seala las nuevas tcnicas que han sido adoptadas. Escuela de Carnegie Mellon (CMU-SEI)

--Mary Shaw, David Garlan, Paul Clements, Robert Allen. Definicin de arquitectura de SW http://www.sei.cmu.edu/architecture/start/glossary/community.cfm Clements, 1996:

--La AS es, a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes segn se la percibe desde el resto del sistema y las formas en que los componentes interactan y se coordinan para alcanzar la misin del sistema. La vista arquitectnica es una vista abstracta, aportando el ms alto nivel de comprensin y la supresin o diferimiento del detalle inherente a la mayor parte de las abstracciones. --*Vista-* Componente 1.1.2 ESTILOS

Buschmann et al. (1996) define estilo arquitectnico como una familia de sistemas de software en trminos de su familia organizacin estructural. Expresa componentes y las relaciones entre estos, con las restricciones de su aplicacin y la composicin asociada, as como tambin las reglas para su construccin. Afirmaciones: 1. 2. 3. 4. Describen una clase de arquitecturas, o piezas significantes de una arquitectura. Son muy usados en la prctica Es un paquete coherente de decisiones de diseo. Tienen propiedades identificadas que permiten el re-uso.

Principales estilos arquitectnicos Estilos Descripcin Atributos asociados Integralidad Escalabilidad Modificalidad Atributos en conflicto Desempeo

Datos Centralizados Sistemas en los cuales cierto nmero de clientes accede y actualiza datos compartidos de un repositorio de manera frecuente. El sistema es visto Flujo de Datos

Reusabilidad

Desempeo

Mquinas Virtuales

Llamada y retorno

Componentes independientes

como una serie de transformaciones sobre piezas sucesivas de datos de entrada. El dato ingresa en el sistema, y fluye entre los componentes, de uno en uno, hasta que se le asigne un destino final (salida o repositorio). Simulan alguna funcionalidad que no es nativa al hardware o software sobre el que esta implementado. El sistema se constituye de un programa principal que tiene el control del sistema y varios subprogramas que se comunican con este mediante el uso de llamadas. Consiste en un nmero de procesos u objetos independientes que se comunican a travs de mensajes.

Modificalidad Mantenibilidad

Portabilidad

Desempeo

Modificalidad Escalabilidad Desempeo

Mantenibilidad Desempeo

Modificalidad Escalabilidad

Desempeo Integralidad

Tipos de Estilos Arquitectnicos Estilos de flujo de datos --Tuberia y filtros. Estilos centrados en datos --Arquitecturas de pizarra o repositorio. Estilos de llamada y retorno --Model-vew-controller (MVC) --Arquitecturas en capas --Arquitecturas orientadas a objetos --Arquitecturas basadas en componentes Estilos de cdigo mvil

--Arquitectura de mquinas virtuales Estilos heterogneos --Sistemas de control de procesos --Arquitecturas basadas en atributos Estilos peer-to-peer --Arquitecturas basadas en eventos --Arquitecturas orientadas en servicios --Arquitecturas basadas en recursos

Caractersticas de estilos:
--Sirven para sintetizar estructuras de soluciones --Pocos estilos abstractos encapsulan una enorme variedad de configuraciones concretas. --Definen los patrones posibles de las aplicaciones --Permiten evaluar arquitecturas alternativas con ventajas y desventajas conocidas ante diferentes conjuntos de requerimientos no funcionales. --Los estilos arquitectnicos incluyen: Componentes Conectores Estructuras (topologas) Restricciones (constraints)

1.1.3 Patrones (Patterns) Christopher Alexander, 1977 -Un patrn es una solucin a un problema en un contexto. -Un patrn codifica conocimiento especfico acumulado por la experiencia en un dominio. -Un sistema bien estructurado est lleno de patrones. Cada patrn describe un problema que ocurre una y otra vez en nuestro ambiente, y luego describe el ncleo de la solucin a ese problema, de tal manera que puedes usar esa solucin un milln de veces ms, sin hacer jams la misma cosa dos veces. Elementos de un patrn: Nombre --Define un vocabulario de diseo. --Facilita abstraccin. Problema --Describe cuando aplicar el patrn. --Conjunto de fuerzas: objetivos y restricciones. --Prerrequisitos. Solucin

--Elementos que constituyen el diseo (template) --Forma cannica para resolver fuerzas. Consecuencias --Resultados, extensiones y tradeoffs. Patrn arquitectnico Descripcin Atributos asociados Layers Consiste en Reusabilidad, estructurar portabilidad, facilidad aplicaciones que de prueba pueden ser descompuestas en grupos de subtareas, las cuales se clasifican de acuerdo a un nivel particular de abstraccin. Pipes and filters Provee una estructura Reusabilidad, para los sistemas que Mantenibilidad procesan un flujo de datos. Cada paso de procesamiento esta encapsulado en un componente filtro. El dato pasa a travs de conexiones (pipes), entre filtros adyacentes. Blackboard Aplica para problemas Modificalidad, cuya solucin utiliza Mantenibilidad, estrategias no reusabilidad, determinsticas. integridad Varios subsistemas ensamblan su conocimiento para construir una posible solucin parcial aproximada. Broker Puede ser usado para Modificalidad, estructurar sistemas portabilidad, de software reusabilidad, distribuido con escalabilidad, componentes interoperabilidad desacoplados que interactan por invocaciones a servicios remotos. Un componente brker es responsable de

Desempeo, Mantenibilidad

Desempeo

Desempeo, facilidad de prueba

Desempeo

Model- viewcontroler

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.

Funcionalidad, Mantenibilidad

Desempeo, portabilidad

1.2 Atributos no funcionales: Los atributos de calidad, no funcionales, son los aspectos del sistema, que en general, no afectan directamente a la funcinalidad necesitada, sino que definen la calidad y las caractersticas que el sistema debe soportar. Pueden ser determinsticos o probabilsticos, generalmente poseen nmeros. Estos son: Performance (Rendimiento) Disponibilidad Seguridad Testeabilidad Modificabilidad Usabilidad

1.3 Atributos de calidad ISO Std.9126 Funcionalidad Confiabilidad Usabilidad Eficiencia Mantenibilidad Portabilidad

MITRE Guide to total SW Quality Control Eficiencia Cnfiabilidad Usabilidad Mantenibilidad Expandibilidad Interoperabilidad Reusabilidad Integridad Supervivenciabilidad Correctitud Verificabilidad Flexibilidad Portabilidad

IEEE Std. 1061 Subfactores Eficiencia -Economa de tiempo -Economa de recursos Funcionalidad -Lo completo -Exactitud -Seguridad -Compatibilidad -Interoperabilidad Mantenibilidad -Capacidad de corregirse -Capacidad de ampliacin -Capacidad de prueba Probabilidad -Independencia de Ww -Independencia de sw -Capacidad de instalacin -Reutilizacin Confiabilidad -No deficiencia -Tolerancia de errores -Disponibilidad Usabilidad -Comprensibilidad -Facilidad de aprendizaje -Operabilidad -Comunicatividad

También podría gustarte