Вы находитесь на странице: 1из 15

Master Oficial en Sistemas Telemticos e Informticos

TEMA IV Arquitecturas Software y Evolucin

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

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.

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Arquitecturas de Software ADLs, UML

Diseos orientados a objeto UML

Diseos estructurados DFD Diseos orientados a datos E-R

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

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.

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Arquitectura

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Distintos tipos de arquitecturas

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Ladrillos

Mdulos software

Bloques de construccin

Arquitectura =

Diseo

Componentes Reutilizables

Cemento

Conectores Moldes Patrones

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Diseo Software

Arquitectura Software

Un Sistema

Familia Familia de Familia de Sistemas de Sistemas Sistemas


8

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Restricciones

Componentes Conectores

Control de la Arquitectura

Arquitectura Software

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Ejemplo de arquitectura (estilo Pipe&Filter)


ls -al | grep fichero | sort +24 > salida.txt

Componentes

Conectores

URJC Master en Sistemas Telemticos e Informticos

10

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Orgenes y Evolucin
Patrones de Diseo (Gamma 95)

Arquitecturas SW (Garlan y Shaw 96)

Estilos arquitectnicos

Concepto de Patrn (Alexander 79)

Familias de programas (Parnas 76) URJC Master en Sistemas Telemticos e Informticos


11

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

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)

URJC Master en Sistemas Telemticos e Informticos

12

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

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

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

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)

Mas definiciones http://www.sei.cmu.edu/architecture/definitions.html


URJC Master en Sistemas Telemticos e Informticos
14

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

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

Diversos estilos arquitectnicos

URJC Master en Sistemas Telemticos e Informticos

15

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

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.

URJC Master en Sistemas Telemticos e Informticos

16

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Modelos de Referencia

Arquitectura de Referencia

Arquitectura Software

Estilos Arquitectnicos

Proceso de Personalizacin

Arquitectura del Sistema URJC Master en Sistemas Telemticos e Informticos


17

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Otras conceptos
Lenguajes de Descripcin de Arquitecturas (ADL)

ACME Aesop C2 Darwin MetaH Rapide Wright

Weaves SADL Unicon Artek LILEANA

Evaluacin de arquitecturas (atributos de calidad)

SAAM ATAM

(SA Analysis Method)

(Architecture Tradeoff
Analysis Method)

URJC Master en Sistemas Telemticos e Informticos

18

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Arquitecturas de Software de Dominio Especfico (DSSA)


Son arquitecturas diseadas para cubrir un sistema o una familia de sistemas pero muy centradas en un rea o dominio determinado y enfocadas a la reutilizacin. Pasos para su construccin (segn W. Tracz, 1991) 1. 2. 3. 4. 5. Definicin del dominio. Definicin de requisitos y conceptos del dominio especfico. Definicin de restricciones de implementacin del dominio. Desarrollo de modelos y arquitecturas del dominio. Generacin de productos reutilizables.
19

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.1 Concepto y tipos de arquitecturas software

Megaprogramacin Tecnologa OO (frameworks)

DSSA
Ingeniera del Dominio

URJC Master en Sistemas Telemticos e Informticos

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.

URJC Master en Sistemas Telemticos e Informticos

21

Tema 4: Arquitecturas Software y Evolucin 4.2 Evolucin en arquitecturas software. Variabilidad

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.

URJC Master en Sistemas Telemticos e Informticos

22

Tema 4: Arquitecturas Software y Evolucin 4.2 Evolucin en arquitecturas software. Variabilidad

Evolucin de los Sistemas Software


Requisitos Construccin de la Arquitectura

Sistema Existente Alternativas

Nueva Arquitectura

Ingeniera Inversa

Productos Software
23

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.2 Evolucin en arquitecturas software. Variabilidad


Sistema S1

AS Sistema S1

Arquitectura Software de un dominio o de una familia de sistemas

Sistema S2.1 AS Sistema S2 Sistema S2.2

AS Sistema S3

Sistema S3

URJC Master en Sistemas Telemticos e Informticos

24

Tema 4: Arquitecturas Software y Evolucin 4.2 Evolucin en arquitecturas software. Variabilidad


Punto de variacin (variation point): Es un rea o una parte de un sistema afectada por la variabilidad. Variante (variant): Un punto de variacin puede tener varias alternativas denominadas variantes. Valor del variante: Es el rango de valores admisibles para un punto de variacin. Punto de variacin abierto: Es aquel que permite aadir, borrar o modificar sus variantes en tiempo de ejecucin. Punto de variacin cerrado: No permite modificar sus variantes una vez definidos.
URJC Master en Sistemas Telemticos e Informticos
25

Tema 4: Arquitecturas Software y Evolucin 4.2 Evolucin en arquitecturas software. Variabilidad


Los puntos de variacin permiten retrasar las decisiones de diseo hasta el ltimo momento y as poder controlar la evolucin del sistema y de la arquitectura frente a cambios o nuevos requisitos. Tiempo de ligadura (binding time): Es el momento en el cual se realiza la variabilidad (Ej.: compilacin, integracin, ejecucin, etc.). Mecanismo de variabilidad: Tcnica o mtodo por el cual se representa La variabilidad. El anlisis de variabilidad y aspectos comunes nos ayudan a determinar las partes comunes y variables de los sistemas, a identificar componentes potencialmente reutilizables y a definir puntos de variacin.

URJC Master en Sistemas Telemticos e Informticos

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

Cla ss foo Att1 : Integer = 2 <<vp2>> Att2 : String

Otros
Restricciones OCL Meta-modelos UML Valores etiquetados
27

URJC Master en Sistemas Telemticos e Informticos

Tema 4: Arquitecturas Software y Evolucin 4.2 Evolucin en arquitecturas software. Variabilidad

URJC Master en Sistemas Telemticos e Informticos

28

Tema 4: Arquitecturas Software y Evolucin


4.3 Arquitectura del producto. Proceso de personalizacin
Arquitectura Software Sistema S1

Arquitectura Software

Sistema S1

Anlisis

Requisitos Software

Proceso de personalizacin (customization)

Proceso de derivacin (product derivation)

URJC Master en Sistemas Telemticos e Informticos

29

Tema 4: Arquitecturas Software y Evolucin


4.3 Arquitectura del producto. Proceso de personalizacin

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

Tema 4: Arquitecturas Software y Evolucin


4.3 Arquitectura del producto. Proceso de personalizacin

URJC Master en Sistemas Telemticos e Informticos

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.4 Documentacin de la arquitectura

Contenido de la Documentacin de una Arquitectura


Datos de la arquitectura y proyecto Actores (stakeholders implicados) Vistas arquitectnicas Definicin y uso de puntos devariacin Decisiones de diseo tomadas Descripcin de los principales componentes Restricciones HW/SW Atributos de calidad (RNF) Requisitos asociados Elementos de traza REQDECISIONES--DISEO
URJC Master en Sistemas Telemticos e Informticos
33

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

URJC Master en Sistemas Telemticos e Informticos

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.

URJC Master en Sistemas Telemticos e Informticos

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

URJC Master en Sistemas Telemticos e Informticos

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.

URJC Master en Sistemas Telemticos e Informticos

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.

MOF. Nivel M2: Son metamodelos consistentes en instancias de construcciones


Se definen clases y

MOF. Nivel M1: Sus elementos son instancias de M2.


atributos concretos. valores concretos, es decir, a objetos y datos.

MOF. Nivel M0: Sus elementos son instancias de M1 y hacen referencia a

URJC Master en Sistemas Telemticos e Informticos

39

Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)

ModelElement name : String

Empleado:Tabla

Carlos Garcia

M2. Instancia de M1 M3. Instancia de clase MOF Tabla

M0. Instancia de M1

URJC Master en Sistemas Telemticos e Informticos

40

Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)

XMI (XML Metadata Interchange): Es un mapeo MOF-XML adoptado


por OMG.

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

URJC Master en Sistemas Telemticos e Informticos

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.

URJC Master en Sistemas Telemticos e Informticos

42

Tema 4: Arquitecturas Software y Evolucin 4.5 Arquitecturas dirigidas por modelos (MDA)

ConversionMoneda

PIM

<<unico>numero : String <<changeable>> preciocompra : Double = {EsCambiable=false}

PSM Componente EJB

ejbOpcionCambio cogernumero()

cogernumero():java. lang:St ring

URJC Master en Sistemas Telemticos e Informticos

43

Tema 4: Arquitecturas Software y Evolucin


TEMAS COMPLEMENTARIOS al TEMA 4

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

URJC Master en Sistemas Telemticos e Informticos

44

Вам также может понравиться