Beruflich Dokumente
Kultur Dokumente
CONCEPTOS
AGENDA
Antecedentes Arquitectura de software (AS) Definicin - Modelos Conceptos bsicos Estilos Lenguajes de Descripcin Arquitectnica (ADLs) Patrones Desarrollo de Software basado en Componentes Definicin
Orgenes
La arquitectura descansa en tres principios: la Belleza (Venustas), la Firmeza (Firmitas) y la Utilidad (Utilitas) (Vitruvio, siglo I a de C)
El coloso de rodas 277 a de C. 32 metros de altura Placas de bronce sobre armazn de hierro
Fuente: http://sietemaravillas.tripod.com/
ANTECEDENTES I
1960: DIJSKTRA, PARNAS, BROOKS, Estructuracin correcta del software, Sistemas operativos en capas, Diseo conceptual del software, Niveles de abstraccin 1975: BROOKS, AS:Especificacin completa y detallada de la interfaz de usuario
ANTECEDENTES II
1989: Mary Shaw, habla de nivel de arquitectura de diseo 1992: Perry y Wolf introducen el termino ARQUITECTURA DE SOFTWARE como la composicin de elementos, forma y razn
DEFINICIN AS I
La arquitectura del software de un programa o de un sistema de computo es la estructura o las estructuras del sistema, que abarcan elementos del software, las caractersticas externamente visibles de esos elementos, y las relaciones entre estas [1]
DEFINICIN AS II
La organizacin fundamental de un sistema, incorporada en sus componentes, las relaciones entre ellos y el ambiente, y de los principios que gobiernan su diseo y evolucin [2]
DEFINICIN AS III
Una arquitectura es el sistema de decisiones significativas sobre la organizacin de un sistema de software, la seleccin de los elementos estructurales y sus interfaces por los cuales el sistema es compuesto, junto con su comportamiento segn lo especificado en la colaboracin entre esos elementos, la composicin de estos elementos estructurales y del comportamiento en subsistemas progresivamente ms grandes, y el estilo arquitectnico que dirigen este organizacin-estos elementos y sus interfaces, sus colaboraciones, y su composicin[3]
Diseo de alto nivel versus diseo detallado (David Budgen) Esqueleto versus Carne y Msculos (Rational Unify Process)
Tomado de ACIS- XXV Saln Informtica-2005
MODELOS DE AS [4]
ESTRUCTURALES Componentes y conexiones entre ellos FRAMEWORK Estructura coherente del sistema Modelos de dominio DINAMICOS Como la configuracin del sistema DE PROCESO Actividades de construccin. Script FUNCIONALES Componentes organizados en capas
MODELOS DE AS [4]
Framework Architecture
ADTs Strings
APPLICATION-SPECIFIC FUNCTIONALITY
INVOKES
CALLBACKS
Reactor
NETWORKING
GUI
Files Locks
DATABASE
Quin?
Produce Arquitecto
Para qu?
Habilidades Stakeholders
Organizacin
soporte aplicativo
modificabilidad
arquitecto
lder de mercadeo Corto tiempo en mercado Bajo costo; ventajas con productos similares cliente Bajo costo y tiempo de entrega, que no cambie muy a menudo
Tomado de ACIS- XXV Saln Informtica-2005
ESTILOS I
Es un concepto representativo que especifica la forma de articulacin y organizacin arquitectnica Conjuntos de reglas de diseo que identifica las clases de componentes y conectores que se pueden utilizar para construir un sistema o subsistema, junto con restricciones locales o globales sobre la composicin.
ESTILOS II
Define una familia de sistemas semejantes en trminos de estructura organizacional. Ms especficamente, un estilo de arquitectura define un vocabulario de componentes y tipos de conectores y un conjunto de restricciones de cmo ellas pueden ser combinadas.[5] Encapsula decisiones esenciales sobre los elementos arquitectnicos y enfatiza restricciones importantes de los elementos y sus relaciones posibles
ESTILOS III
AS = {ELEMENTOS, FORMA, RAZON} ELEMENTOS:
PROCESAMIENTO (Transformacin) DATOS (Informacin) CONEXIN (Llamados)
FORMA, define:
PROPIEDADES RELACIONES
ESTILOS IV
Entidad consistente en 4 elementos [6] VOCABULARIO DE ELEMENTOS DE DISEO
Componentes y conectores.
REGLAS DE DISEO O RESTRICCIONES QUE DETERMINAN COMPOSICIONES INTERPRETACIN SEMNTICA DE COMPOSICIONES ANALISIS SUSCEPTIBLES ENTRE SISTEMAS ELABORADOS EN UN ESTILO
ALGUNOS ESTILOS II
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 a Servicios Arquitecturas Basadas en Recursos
ADLs
Los Lenguajes de Descripcin de Arquitectura (ADLs, por sus siglas en ingls) permiten modelar una arquitectura mucho antes que se lleve a cabo la programacin de las aplicaciones que la componen, analizar su adecuacin, determinar sus puntos crticos y eventualmente simular su comportamiento.
ADLs
Es como una entidad consistente en cuatro Cs: [8] Componentes clientes, servidores, filtros, objetos, pizarras y bases de datos Conectores tuberas (pipes), llamadas a procedimientos, broadcast de eventos, protocolos cliente-servidor, o conexiones entre una aplicacin y un servidor de base de datos. Configuraciones sistemas Se constituyen como grafos de componentes y conectores Constraints (restricciones) el nmero de clientes que se puede conectar simultneamente a un servicio
Algunos ADLs
Acme - Armani ADML Aesop ArTek C2 (C2 SADL, C2SADEL, xArch, xADL) CHAM Darwin Jacal LILEANNA MetaH/AADL Rapide UML - De OMT al Modelado OO UniCon Weaves Wright
Estimar esfuerzo de construccin Estimar esfuerzo de construccin Plan de construccin de los CU segn su Plan de construccin de los CU segn su impacto en la arquitectura impacto en la arquitectura Nuevos esquemas de negociacin del proyecto Nuevos esquemas de negociacin del proyecto Nuevos esquemas de interaccin cliente/proveedor Nuevos esquemas de interaccin cliente/proveedor La arquitectura como elemento para evaluar La arquitectura como elemento para evaluar riesgos riesgos
Implementar las interfaces definidas en la arquitectura Tener un ambiente o infraestructura que asista activamente a los desarrolladores en la creacin y mantenimiento de la arquitectura
From:
Level M 3
Level M 2
the SPEM MM
the UML MM
the CWM MM
a Pascal program P
Level M 1
a UML model m
an execution X of program P
Level M 0
a particular use of m
another use of m
La transformacin es la generacin automtica de un modelo fuente en un modelo objetivo, de acuerdo a unas definiciones de transformacin Una definicin de transformacin esta conformada por un conjunto de reglas que describen como el modelo en el lenguaje fuente puede ser transformado en un modelo en el lenguaje destino Una regla de transformacin es una descripcin de uno o ms constructores en el lenguaje fuente que pueden ser transformados en uno o mas constructores en el lenguaje destino
El proceso de transformacion