Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Raquel Anaya
ranaya@eafit.edu.co
Agenda Conferencia
+ Motivacin
+ El proceso de desarrollo basado en la arquitectura + Evaluacin de la arquitectura + Lenguajes para representacin de la arquitectura + MDA una propuesta de arquitectura alrededor de los
Orgenes
+ La arquitectura descansa en tres principios: la Belleza
El coloso de rodas 277 a de C. 32 metros de altura Placas de bronce sobre armazn de hierro
Fuente: http://sietemaravillas.tripod.com/
Orgenes (2)
Es arquitecto aquel que con mtodo y procedimiento seguro y perfecto sepa proyectar racionalmente y realizar en la prctica obras que se acomoden perfectamente a las ms importantes necesidades humanas. Len Batista Alberti ( 1485)
Las pirmides de Egipto. El faro de Alejandra. Ao 280 a de C. Ao 2750 a de C. Altura 120 metros. Cima equipada con espejos metlicos 146.59 m de altura, 230 m de ancho que reflejaban la luz del sol; y por las noches, Alineadas hacia el norte con una inclinacin de a falta de luz, se enciende una hoguera. 51 grados 4
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28 -Octubre 01 de 2005
Orgenes (3)
+ Una arquitectura debe incorporar la unidad difcil de la
componentes computacionales y de las relaciones entre ellos (Shaw & Garlan, 1996) + Estructura o estructuras del sistema que comprende componentes de software, propiedades visibles de esos componentes y las relaciones entre ellos.
Diseo de alto nivel versus diseo detallado (David Budgen) Esqueleto versus Carne y Msculos (Rational Unify Process)
7
crece, los algoritmos y las estructuras de datos dejan de convertirse en el mayor problema. + El diseo y especificacin de la estructura general del sistema emerge como un nuevo tipo de problema: el diseo a nivel de arquitectura. + En aplicaciones OO las clases representan unidades de granularidad muy fina; en sistemas grandes se requiere hablar de unidades que represente una funcionalidad mayor (mdulos / subsistemas / componentes de negocio)
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28 -Octubre 01 de 2005
Por qu?
Caractersticas Del Sistema
Quin?
Produce Arquitecto
Para qu?
Habilidades Stakeholders
Organizacin
10
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
12
Agenda Conferencia
+ Motivacin
+ El proceso de desarrollo basado en la arquitectura + Evaluacin de la arquitectura + Lenguajes para representacin de la arquitectura + MDA una propuesta de arquitectura alrededor de los
13
14
Qu papel juegan las aplicaciones legado? Cules son las tcticas de arquitectura para cumplir un atributo de
calidad? + 4. Representar y comunicar la arquitectura Uso de modelos y de documentos de definicin de arquitecturas Sesiones para comunicacin y discusin de la arquitectura con todos los stakeholders + 5. Analizar o evaluar la arquitectura Definir varias alternativas de arquitectura Utilizar mtodos de evaluacin de arquitectura
15
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
Establecer un proceso de monitoreo permanente para asegurar que la arquitectura actual y su representacin se mantienen consistentes durante su operacin y evolucin
16
Supporting Workflows
Configuration Mgmt Management Environment
Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #n
Iter. #n+1
Estimar esfuerzo de construccin Plan de construccin de los CU segn su impacto en la arquitectura Nuevos esquemas de negociacin del proyecto Nuevos esquemas de interaccin cliente/proveedor La arquitectura como elemento para evaluar riesgos
18
Agenda Conferencia
+ Motivacin
+ El proceso de desarrollo basado en la arquitectura + Evaluacin de la arquitectura + Lenguajes para representacin de la arquitectura + MDA una propuesta de arquitectura alrededor de los
19
+ Utilizados para:
Precisar los atributos de calidad en la fase de definicin de
requerimientos
Quality Attribute Workshop (QAW)
21
22
Agenda Conferencia
+ Motivacin
+ El proceso de desarrollo basado en la arquitectura + Evaluacin de la arquitectura + Lenguajes para representacin de la arquitectura + MDA una propuesta de arquitectura alrededor de los
23
aplicacin a alto nivel, en lugar de la descripcin de la implementacin de cualquier mdulo especfico. + ADL es un lenguaje que provee elementos para modelar la arquitectura conceptual de un sistema software, distinguindola de la implementacin del sistema (Medvidovic&Taylor) + Constructores bsicos de un ADL: Componentes, Conectores, Configuraciones y Restricciones (Tracz, 1993). + El problema: Los lenguajes formales son difciles de entender y manejar en aplicaciones industriales + Reto: Convertir a UML en un lenguaje suficientemente preciso para especificar una arquitectura
24
25
26
the structural level + Aesop: Specification of architectures in specific styles + C2: Architectures of highly-distributed, evolvable, and dynamic systems + Darwin: Architectures of highly-distributed systems whose dynamism is guided by strict formal underpinnings + MetaH: Architectures in the guidance, navigation, and control (GN&C) domain + Rapide: Modelling and simulation of the dynamic behaviour described by an architecture + SADL: Formal refinement of architectures across
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28 -Octubre 01 de 2005
Editor grfico para diseo de arquitecturas Diseo de estilos o familias de arquitectura Implementado como plugin de Eclipse
27
existentes y UML
28
29
30
Rapide + Ventajas:
de OCL Entendible por los desarrolladores y soportado por herramientas CASE Las tareas de ingeniera inversa a travs de estereotipos podran simplificarse + Desventajas: Dificultad para establecer los lmites entre el diseo de la arquitectura y el diseo detallado Incapacidad de las herramientas CASE para forzar el cumplimiento de restricciones escritas en OCL Dificultad para representar en UML la semntica particular de algunos lenguajes de ADL
31
los constructores de arquitectura Incorporar formalmente en UML nuevas capacidades de modelado Se puede simplificar las tareas de generar la arquitectura a partir del diseo Reto: Estandarizar el lenguaje sin incrementar demasiado la complejidad de la especificacin (?)
32
33
sd ValidateCoin
:User
:VendingMachine
Insert(coin)
alt
Display(price)
else
RejectCoin()
34
sd Decomposition
:Detector
create
:Controller
Insert(coin)
:User :VendingMachine ref Decomposition
ValidateCoin() RejectCoin()
Insert(coin) RejectCoin()
35
:User
:VendingMachine
ref
ChooseProduct Display(price)
ref
ValidateCoin
36
VendingMachine
InsertCoin
Interface
Provista
37
pCtrl Maintenance
Detector
InsertCoin
CoinControl,
Counter
38
VendingMachine
pCtrl Counter
:Detector InsertCoin
InsertCoin
:Counter
CoinControl Display
:Controller
Display Connector
39
Logical View
End-user Functionality
Implementation View
Programmers Software management
Deployment View
System engineering System topology Delivery, installation Communication
Agenda Conferencia
+ Motivacin
+ El proceso de desarrollo basado en la arquitectura + Evaluacin de la arquitectura + Lenguajes para representacin de la arquitectura + MDA una propuesta de arquitectura alrededor de
41
From:
42
43
Group)
OMG
Meta Object FacilityTM (MOF) Unified Modeling LanguageTM (UML) Common Warehouse MetamodelTM (CWM) XML Metadata InterchangeTM (XMI)
44
Level M3
Level M2
the SPEM MM
the UML MM
the CWM MM
a Pascal program P
Level M1
a UML model m
an execution X of program P
Level M0
a particular use of m
another use of m
45
46
47
El proceso de transformacion
+ 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
48
El proceso de transformacin
49
50
51
52
53
54
PlatformIndependent Model
CORBA Model
55
PlatformIndependent Model
CORBA Model
Java/EJB Model
XML/SOAP Model
Other Model
MDA tool applies an standard mapping to generate PlatformSpecific Model (PSM) from the PIM. Code is partially automatic, partially hand-written.
56
PlatformIndependent Model
Las herramientas MDA generar la mayor parte del cdigo en la tecnologa especfica
CORBA Model
Java/EJB Model
XML/SOAP Model
Other Model
CORBA
Java/EJB
XML/SOAP
Other
57
PlatformIndependent Model
Las herramientas MDA para ingeniera reversa apoyan el proceso de integracin de aplicaciones legado
Legacy App
COTS App
Other Model
Other
58
PlatformIndependent Model
CORBA Model
XML/SOAP Model
XML/SOAP System
Herramientas MDA
60
62
generar el cdigo (Ej. Jamda) Template based: (Ej: b+m Generator Framework, JET, FUUT-je, Codagen Architect, AndroMDA, ArcStyler, OptimalJ and XDE)
+ De modelo a modelo
estructura para organizar las transformaciones (Ej: jamda, jmi) Relational:Aproximaciones declarativas basadas en relaciones matemticas utilizando lenguajes lgicos (ej: F-Logic) graph-transformation-based: Se utilizan grafos para expresar en un nico formalismo los diferentes modelos (Ej:VIATRA, ATOM, GreAT, UMLX, and BOTL) structure-driven: Realiza la transformacin en dos fases: en la primera fase se crea la estructura jerrquica del modelo destino y en la segunda fase se actualizan las propiedades y referencias en el modelo destino (ej: OptimaJ, IOPT). Practica para transformacin a plataformas como J2EE hybrid approaches. Combinan diferentes tcnicas de las categoras anteriores (Ej: TRL combina aproximacion declarativa e imperativa; ATL puede ser completamente declarativa, hbidra o totalmente imperativa) transformacin utilizando XSLT. Dificultades: baja escalabilidad, dificultad para escribir las reglas de transformacin
transformaciones
63
Agenda Conferencia
+ Motivacin
+ El proceso de desarrollo basado en la arquitectura + Evaluacin de la arquitectura + Lenguajes para representacin de la arquitectura + MDA una propuesta de arquitectura alrededor de los
64
Conclusiones
+ La arquitectura como estrategia para enfrentar la
complejidad de los sistemas actuales + Las actividades alrededor de la arquitectura deben integrarse al proceso de desarrollo + UML2.0 provee facilidades para definicin de la arquitectura + MDA como enfoque de desarrollo donde los modelos son los constructores de primera clase
65
Preguntas?
66