200 likes | 396 Views
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
E N D
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 Buenos Aires – 14 de Septiembre de 2005
Software System Desarrollo basado en Modelos (MDD) El problema… 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. Order Item Ship via Requirements … Modelos … La solución…… Congreso Internacional en Innovación Tecnológica informática Buenos Aires – 14 de Septiembre de 2005
¿Qué es un Modelo? • ¿Qué características tiene? • ¿Para que sirve? Order Item Ship via Requirements Congreso Internacional en Innovación Tecnológica informática Buenos Aires – 14 de Septiembre de 2005
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 Buenos Aires – 14 de Septiembre de 2005
Code C# El gran desafio… modelos: desde lo contemplativo a lo productivo "from human-readable to computer-understandable“ J. Bézivin Congreso Internacional en Innovación Tecnológica informática Buenos Aires – 14 de Septiembre de 2005
MDD/MDA la nueva visión de OMG: Mapear modelos a plataformas múltiples y evolutivas • MOF & UML como base standard. • Valores organizacionales expresados como modelos • Trasformación de modelos para su mapeo a plataformas específicas. Modelos de plataforma neutral basados en UML & MOF Congreso Internacional en Innovación Tecnológica informática Buenos Aires – 14 de Septiembre de 2005
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 Buenos Aires – 14 de Septiembre de 2005
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 Buenos Aires – 14 de Septiembre de 2005
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 Platform model Congreso Internacional en Innovación Tecnológica informática Buenos Aires – 14 de Septiembre de 2005
UML Model (PIM) XMI Document (PSM) <Auto> <Color> Red </Color> <Door> 4 </Door> <Engine> 2 </Engine> </Auto> XMI M O F IDL, Java… (PSM) X M I XMI DTD, Schema (PSM) interface Auto { }; Class Auto {public String color; public int Door; public int Engine; } <!Element Auto (Color*, Door*, Engine*)> Ejemplos de transformaciones Congreso Internacional en Innovación Tecnológica informática Buenos Aires – 14 de Septiembre de 2005
¿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 Buenos Aires – 14 de Septiembre de 2005
Marks Las “marcas” permiten distinguir los diferentes “destinos” de la transformación. Local Invocation Invocation <<isLocal>> <<isRemote>> PIM PSM Remote Invocation Congreso Internacional en Innovación Tecnológica informática Buenos Aires – 14 de Septiembre de 2005
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 Buenos Aires – 14 de Septiembre de 2005
XML WSDL SOAP XML-Schema 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), • UML-RT, • EJB, • CCM, ... .NET BPML EDOC Congreso Internacional en Innovación Tecnológica informática Buenos Aires – 14 de Septiembre de 2005
Herramientas para MDD • ATLATLAS 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. • UMTUML 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 Architectis 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 Buenos Aires – 14 de Septiembre de 2005
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 Buenos Aires – 14 de Septiembre de 2005
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 Buenos Aires – 14 de Septiembre de 2005
Microsoft Research University Relations Le otorgó a este proyecto el premio: Content and Curriculum on Software Engineering 2005 Request for Proposal (RFP) Funcionalidades de PAMPA • Edición de Modelos UML. • Persistencia de Modelos. • Serialización de Modelos en XMI • Evaluación de restricciones en OCL. • 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
Claudia Pons cpons@info.unlp.edu.ar 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 Buenos Aires – 14 de Septiembre de 2005