Desarrollo de Software
basados en Modelos:
conceptos, teorías y desafíos
Claudia Pons
LIFIA – Universidad Nacional de La Plata
CAETI – Universidad Abierta Interamericana
http://portal-lifia.info.unlp.edu.ar/~ cpons
Congreso Internacional en Innovación Tecnológica informática
Desarrollo basado en Modelos (MDD)
El problema…
Order
Item
Ship via
Requirements
Model Driven Development (MDD) promueve
la separación de la especificación de la
funcionalidad del negocio de la
implementación de esta funcionalidad en
plataformas específicas.
Los modelos son los conductores primarios
en todos los aspectos del desarrollo de
software.
La solución……
… Modelos
…
Software System
Congreso Internacional en Innovación Tecnológica informática
¿Qué es un Modelo?
: Client
makeOrder
makeOrder
Client
Order
Company
Order
new
Item
*
Order
Item
• ¿Qué características tiene?
• ¿Para que sirve?
Ship via
Requirements
Congreso Internacional en Innovación Tecnológica informática
Limitaciones de los modelos (en IS)
• Los modelos sólo se usan como documentación.
• “Gap” entre el modelo y la implementación del sistema:
– Gap semántico entre los respectivos lenguajes.
– Los cambios en el modelo no se reflejan en el codigo.
– Cambios en el código no se reflejan en el modelo.)
• Problemas de unión de modelos
– Distintas vistas del sistema (horizontal)
– Torres de modelos no relacionados (vertical)
• Falencias en la “transformación” entre modelos
– Pocos lenguajes de transformación.
– Falta de herramientas.
Los modelos de software son inmaduros con respecto a al os modelos
de otras ingenierías, tales como aeronáutica, electrónica, etc.
Congreso Internacional en Innovación Tecnológica informática
El gran desafio… modelos: desde lo
contemplativo a lo productivo
Code
C#
"from human-readable to computer-understandable“
J. Bézivin
Congreso Internacional en Innovación Tecnológica informática
MDD/MDA la nueva visión de OMG:
Mapear modelos a plataformas múltiples y evolutivas
Modelos de plataforma neutral
basados en UML & MOF
•
MOF & UML como
base standard.
• Valores
organizacionales
expresados como
modelos
• Trasformación de
modelos para su
mapeo a plataformas
específicas.
Congreso Internacional en Innovación Tecnológica informática
La idea central de MDD:
PIMs & PSMs
• Platform Independent Model (PIM)
– “Un modelo de un sistema que no contiene
información acerca de la plataforma o la
tecnología que es usada para implementarlo”
• Platform Specific Model (PSM)
– “Un modelo de un sistema que incluye
información acerca de la tecnología
especifica que se usará para su
implementación sobre una plataforma
especifica”
Congreso Internacional en Innovación Tecnológica informática
Ejemplos de modelos MDD
• CIM
– “Se debe dar prioridad de embarque a las pedidos mas
antiguos”
• PIM
– “Los pedidos están ordenados por fecha de recepción”
• PSM/OOD
– “Los pedidos son ordenados por embarque() en orden
creciente, usando el atributo “fecha”
• PSM/OOP
– “Use quicksort() para ordenar Pedidos, usando Pedido.fecha
como sorting key, antes de pasarlos a embarque()”
Congreso Internacional en Innovación Tecnológica informática
Transformaciones de modelos
• Transformación de modelos
es el proceso de convertir un
modelo en otro modelo del
mismo sistema.
• Cada transformación incluye
(al menos):
– un PIM,
– un Modelo de la
Plataforma,
– una Transformación, y
– un PSM
Congreso Internacional en Innovación Tecnológica informática
Platform
model
Ejemplos de transformaciones
UML Model (PIM)
XMI Document (PSM)
XMI
IDL, Java… (PSM)
interface Auto
{Class Auto
}; {public String color;
public int Door;
public int Engine;
}
<Auto>
<Color> Red </Color>
<Door> 4 </Door>
<Engine> 2 </Engine>
</Auto>
XMI DTD, Schema (PSM)
<!Element Auto
(Color*,
Door*,
Engine*)>
Congreso Internacional en Innovación Tecnológica informática
¿Cómo definir transformaciones?
Marking
UML Profiles se
usan para “marcar”
los PIMs
Los mappings se
definen usando los
lenguajes MOF QVT
Congreso Internacional en Innovación Tecnológica informática
Marks
Las “marcas” permiten distinguir los diferentes “destinos”
de la transformación.
Local
Invocation
Invocation
<<isLocal>>
PIM
<<isRemote>>
PSM
Remote
Invocation
Congreso Internacional en Innovación Tecnológica informática
MDD: aplicando
transformaciones sucesivas
Las transformaciones se
aplican sucesivamente:
– Un PSM resultante de la
aplicación de una
transformación será el PIM en la
siguiente transformación.
Congreso Internacional en Innovación Tecnológica informática
Tecnología MDD
–
–
–
–
–
–
–
–
Meta Object Facility (MOF)
Unified Modelling Language (UML)
XML Model Interchange (XMI)
Common Warehouse Meta-model (CWM)
Software Process Engineering Meta-model (SPEM)
Action Semantics Language (ASL)
Query-View-Transformation (QVT)
UML profiles
• EDOC (ECA, CCA),
.NET
XML
BPML WSDL
• UML-RT,
• EJB,
SOAP
EDOC
• CCM, ...
XML-Schema
Congreso Internacional en Innovación Tecnológica informática
Herramientas para MDD
• ATL ATLAS Transformation Language is language for general
transformation within the MDA framework
• OptimalJ is a MDA tool for J2EE.
• ArcStyler is a MDA tool for J2EE and .NET.
• UMT UML Model Transformation is a tool for model transformation
and code generation of UML/XMI models
• OpenModel is a java-based framework for generating executable
applications from UML models and it complements ArgoUML
• Codagen Architect is MDA tool for J2EE and .NET.
• Rational Architect is a MDA tool
• MDA Transf is a MDA transformation engine
• GMT (Generative Model Transformer) is a project to build MDA
tools such as UMLX
• JAMDA (Java Model Driven Architecture) is an open-source
framework for building applications generators which create Java
code from a model of the business domain
• GReAT is a metamodel based graph transformation language useful
for the specification and implementation of model-to-model
transformation
Congreso Internacional en Innovación Tecnológica informática
Conclusiones
• MDD es una opción muy prometedora para desarrollo de software!
– Conceptualmente clara y bien definida.
– Protege las inversiones al separar el modelo del negocio de las
tecnologías de soporte.
– Se centra en el modelo.
• Pero MDD no es la panacea…
–
–
–
–
No es posible generar código automáticamente al 100%
Las transformaciones son complejas y difíciles de definir!
No es claro como transformar comportamiento.
No es claro como manejar sistemas legados.
• Hace falta continuar investigando e implementar
herramientas de soporte !
Congreso Internacional en Innovación Tecnológica informática
Nuestro aporte en el área:
el proyecto PAMPA
PAMPA:
Precise
Assistant for the
Modeling
Process
Activities
PAMPA es una herramienta CASE para desarrollo de software
basado en modelos, usando notaciones gráficas con fundamentos
formales.
Congreso Internacional en Innovación Tecnológica informática
Funcionalidades de PAMPA
-Edición de Modelos UML.
Microsoft Research University
Relations
-Persistencia de Modelos.
Le otorgó a este proyecto el premio:
Content and Curriculum on Software
•Evaluación de restricciones en OCL.
Engineering 2005
Request for Proposal (RFP)
•Serialización de Modelos en XMI
•Generación de Código.
-Refinamiento de Modelos.
-Refinamiento de Invariantes y aserciones de prueba.
-Traducción a otros lenguajes de especificación formal (como Z).
-Transformación de Modelos.
http://www.frlp.utn.edu.ar/pampa
http://portal-lifia.info.unlp.edu.ar/eclipse
Congreso Internacional en Innovación Tecnológica informática
Buenos Aires – 14 de Septiembre de 2005
Fin de la Presentación
http://www.frlp.utn.edu.ar/pampa
http://portal-lifia.info.unlp.edu.ar/eclipse
Congreso Internacional en Innovación Tecnológica informática
Descargar

Diapositiva 1 - Universidad Abierta Interamericana