Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El proceso de evolucin de software tambin afecta a los diseos. Los procesos de recuperacin y reconstruccin de diseos son claves para permitir una evolucin de los sistemas software. Los procesos de rediseo y generacin de cdigo controlan la futura evolucin del sistema.
Las Arquitecturas de Software (AS) y sus variantes constituyen una disciplina de reciente aparicin. Las AS forma parte del paradigma de la Ingeniera del Software. Representan la versin moderna de un diseo software y son aptas para describir sistemas complejos.
Arquitectura
Ladrillos
Mdulos software
Bloques de construccin
Arquitectura =
Diseo
Componentes Reutilizables
Cemento
Diseo Software
Arquitectura Software
Un Sistema
Restricciones
Componentes Conectores
Control de la Arquitectura
Arquitectura Software
Componentes
Conectores
10
Orgenes y Evolucin
Patrones de Diseo (Gamma 95)
Estilos arquitectnicos
Definicin de AS
Una arquitectura de software es un conjunto de elementos arquitectnicos que tienen una determinada forma. Las propiedades restringen la eleccin de los elementos de la arquitectura mientras que la lgica captura la motivacin de la eleccin de los elementos y la forma. (Perry y Wolf 1992)
12
Definicin de AS
Una arquitectura de software incluye la descripcin de elementos a partir de los cuales se construyen los sistemas de software, interacciones entre esos elementos, patrones que guan la composicin y restricciones sobre esos patrones. En general, un sistema de software particular se define en trminos de una coleccin de componentes e interacciones entre dichos componentes. Tal sistema puede ser utilizado como un elemento en sistemas ms grandes. (Garlan y Shaw 1996)
13
Definicin de AS
Una arquitectura de software de un programa o sistema de computacin es la estructura o estructuras del sistema, el cual comprende componentes, las propiedades visibles externas de dichos componentes y las relaciones entre ellos. (Bass, Clements y Kazman 1998)
Otras definiciones Estilo arquitectnico: son un vocabulario de componentes y tipos de conectores y un conjunto de restricciones que indican como pueden combinarse dichos componentes. Debe definir un control de flujo o transferencia de datos.
Centrado en Datos Flujo de Datos (Pipe & Filter de Unix) Mquina Virtual (Java) Llamada y Retorno (Cliente / Servidor) Componente Independiente
15
Otras definiciones
Modelos de Referencia: son una divisin de funcionalidad con un flujo de datos entre las partes que lo componen (ej: partes estndar de un compilador). Arquitecturas de Referencia: son la asociacin de un modelo de referencia sobre los componentes de software Y los flujos de datos entre dichos componentes.
16
Modelos de Referencia
Arquitectura de Referencia
Arquitectura Software
Estilos Arquitectnicos
Proceso de Personalizacin
Otras conceptos
Lenguajes de Descripcin de Arquitecturas (ADL)
SAAM ATAM
(Architecture Tradeoff
Analysis Method)
18
DSSA
Ingeniera del Dominio
20
Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software Arquitecturas de Software Reutilizables
El objetivo principal es poder reutilizar partes de una arquitectura, modelos arquitectnicos, arquitecturas de referencia o componentes de la misma de manera que no sea necesario volver a disear el modelo completo. Utilizan componentes reutilizables y se obtienen, generalmente, mediante procesos de Ingeniera del Dominio De esta forma es posible obtener un ahorro de costes y tiempo en la creacin de nuevos sistemas de software.
21
El proceso de evolucin supone un rediseo, actualizacin o modernizacin de un diseo software (y por consiguiente del cdigo). La evolucin implica una mejora de la calidad del diseo obtenido. El proceso de evolucin puede necesitar de procesos de recuperacin del diseo.
22
Nueva Arquitectura
Ingeniera Inversa
Productos Software
23
AS Sistema S1
AS Sistema S3
Sistema S3
24
26
Tema 4: Arquitecturas Software y Evolucin 4.2 Evolucin en arquitecturas software. Variabilidad Representacin de puntos de variacin con UML Atributos
<<subsystem>> package 1
Estereotipos
Otros
Restricciones OCL Meta-modelos UML Valores etiquetados
27
28
Arquitectura Software
Sistema S1
Anlisis
Requisitos Software
29
Identificar los requisitos del sistema destino. Seleccin de componentes y elementos arquitectnicos. Identificacin elementos variantes en la AS. Seleccin de los puntos de variacin en la arquitectura Personalizacin de puntos de variacin en el diseo (solamente aquellos que sea necesario instanciar). Producir guas y documentacin de uso de la AS Propsito de la arquitectura Documentacin de las vistas arquitectnicas Uso de los puntos de variacin
URJC Master en Sistemas Telemticos e Informticos
30
31
Tema 4: Arquitecturas Software y Evolucin 4.4 Documentacin de la arquitectura Hay que determinar el contenido de la documentacin a producir. La documentacin de la AS incluye guas de uso. La documentacin es necesaria y debe ser acorde al diseo y al sistema y no debe estar obsoleta. La documentacin ayuda a la evolucin de la AS, a entender el sistema y sirve para comunicar y compartir conocimiento arquitectnico.
URJC Master en Sistemas Telemticos e Informticos
32
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
Las arquitecturas software y la separacin de responsabilidades son aspectos clave en el uso de las MDA Las arquitecturas multi-capa son ampliamente aceptadas para describir sistemas empresariales distribuidos (three-tier architectures) Arquitecturas de 3 o 4 capas son habituales
Capa de usuario Capa de lgica de interaccin Capa de lgica de negocio Capa de recursos Clientes Servidores Servidores
34
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
El objetivo de las MDA es reducir la presin del desarrollo del software empresarial debido a factores como: presin de costes, presin de calidad o presin de longevidad del software. MDA utiliza lenguajes de modelado estndar para producir cdigo 3GL, HTML, XML, WSDL, IDL y otros componentes. Modelos formales como UML son utilizados por las MDA pero estos no pueden ser procesador por el ordenador. Las MDA proponen el uso de modelos que SI pueden ser procesados.
35
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
MDA define:
PIM (Platform Independent Model) PSM (Platform Specific Models) Transformaciones entre modelos (PIM a PSM y otras) CIM (Computation Independent Model) RM-ODP
PIM: Es una vista del sistema desde el punto de vista de independencia de la plataforma. PSM: Proporciona un conjunto de conceptos tcnicos que representan diferentes partes de una plataforma y los servicios que ofrece (Ej: CORBA, EJB, WebLogic)
URJC Master en Sistemas Telemticos e Informticos
36
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
PIM
Otra Informacin
PSM
37
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
UML utiliza metamodelos para definir la sintaxis abstracta del UML y a partir de la cual se pueden definir sintaxis concretas. MOF (Meta Object Facility): Es un estndar hermano del UML y es el lenguaje para definir el metamodelo de UML. El aspecto de un metamodelo MOF es similar al de clases UML. La arquitectura MOF se compone de 4 metaniveles.
38
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
MOF. Nivel M3: Sus elementos son las construcciones que MOF proporciona para definir metamodelos (Clases, atributos y asociaciones MOF)
MOF, incluyendo UML, CWM y CCM. Clases, atributos, asociaciones, estados UML, tablas CWM, etc.
39
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
Empleado:Tabla
Carlos Garcia
M0. Instancia de M1
40
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
XMI define reglas para producir documentos XML validadas mediante DTD. Podemos convertir diagramas UML a XML con XMI. JMI para convertir a clases Java. Hace falta un generador para exportar UML a XMI
41
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
Las transformaciones entre PIM y PSM son uno de los aspectos clave de las MDA. Son posibles transformaciones de PSM a PIM, de PIM a PIM y de PSM a PSM. Hay que definir reglas de transformacin en funcin de la plataforma destino. Posibilidad de cambiar de plataforma mediante distintas transformaciones. Tambin son necesarias las transformaciones de PSM a cdigo.
42
Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)
ConversionMoneda
PIM
ejbOpcionCambio cogernumero()
43
Arquitecturas orientadas a servicios (SOA) Servicios Web Arquitecturas en sistemas intensivos de software complejos Ingeniera y desarrollo dirigida por modelos Gestin de la variabilidad software
44