You are on page 1of 148

Introduccin

VicenteGarcaDaz(garciavicente@uniovi.es) JuanManuelCuevaLovelle MDEOOTLABResearch Group Noviembrede2010

Crecimientodelacomplejidaddelsoftware[Groth,2004] Nosereutilizanielconocimientotecnolgiconideldominio [Caldiera andBasili,1991] Senecesitaindustrializareldesarrollodelsoftware[Mcilroy, 1968] Eltrminocrisisdelsoftwaresiguevigente[Dijkstra,1972]

Elniveldeabstraccindeloslenguajesvaen aumento
Binario Ensamblador Procedimental Orientadoaobjetos

Haciaelespaciodelasolucindelproblema
Enlosaos80surgenlasherramientasCASE
Notuvieronmuchoxito

Reducirlacomplejidaddelasplataformasactuales Expresarlosconceptosdelosdiferentesdominios deformamsapropiada


Conceptosdeldominio Conceptosdeldominio
Trabajomentalde losdesarrolladores

Conceptosdela tecnologautilizada Conceptosdela tecnologautilizada

Relacinencascadaentremodelosy metamodelos
Elementosdel mundoreal (dominio) describe Modelo describe Metamodelo

Clavedelaingenieradirigidapormodelos Esnecesariopara
Construirlenguajesdedominioespecfico Validarmodelos Transformarmodelos Generarartefactos(cdigo,documentacin,etc.) Integracindeherramientas

[StahlandVlter,2006]

PARTE ESPECFICA

PARTEVARIABLE

PARTECOMN

[StahlandVlter,2006]

[StahlandVlter,2006]

[StahlandVlter,2006]

Meta metamodelo
Subdominios <<instanceof>>

Sintaxis abstracta

Basadoen

Semntica esttica

Describe conceptosde

Dominio

Metamodelo

<<instanceof>>

Sintaxis concreta

Lenguajede dominio especfico

Modelo formal

Semntica

Respetaa

Dominio delasRedesdePetri

Fuerondefinidasenlosaos60porCarlAdamPetri Sonunaespecializacindelateoradeautmatasquepermiteexpresareventos concurrentes Tienelugares,transicionesyarcosdirigidos reasdeaplicacin:anlisisdedatos,diseodesoftware,fiabilidad,flujodetrabajo

Metamodelo paraRedesdePetri

PetriNet 1 1 0..* Node +Name : string 0..*

Arc +weight : int

Place

Transition

Metametamodelo paraRedesdePetri

PetriNet 1 1 0..* Node +Name : string 0..*

Arc +weight : int

Place

Transition

Mapeoentresintaxisabstractayconcreta paraRedesdePetri

Meta-metamodelo

Metamodelo

Modelo

Elementos del mundo real

Instancia de Representado por

Modelo Modelo Modelo

<<instanceof>>

Metamodelo

<<instanceof>>

Transformacin

Reglasde transformacin

Modelo

Transformacin Artefactos f textuales g generados

Reglasde transformacin

Mod el2M odel

Code 2Cod e

Inter med

iate2 Inter med iate

[http://www.abbeyworkshop.com/howto/xslt/xslt_templates/index.html]

Metamodelo
Apply to

Based on

Instance of

Instancia del metamodelo

Plantillas

Yields

Especificacin Cdigo generado

[http://www.openarchitectureware.org/pub/documentation/4.3.1/openArchitectureWare4.3.1Reference.pdf]

[http://ondotnet.com/pub/a/dotnet/2003/02/03/codedom.html?page=1]

Preprocesamiento

[http://irc.essex.ac.uk/www.iotasix.co.uk/c/j1_the_c_preprocessor.asp]

[http://today.java.net/today/2004/11/22/Aspects_22.pdf]

[http://java.sun.com/j2se/javadoc/writingdoccomments/]

Frame

Instanciacin

Generacin

shortint aShortNumber;

[http://www.voelter.de/data/pub/ProgramGeneration.pdf]

ModelDriven Architecture

http://www.omg.org/mda

Computation Independent Model (CIM) Platform Independent Model (PIM) Platform Specific Model (PSM) Implementation Specific Model (ISM)

CIM

PIM

PSM1

PSMn

ISM1

ISMn

Metametamodelo (M3)

MOF

Metamodelo (M2)

UML

ODM

Modelo(M1)

ModelosUML

ModelosODM

Realidad(M0)

Sistema

MOF

Metamodeloorigen

Metamodelodestino

Reglasde transformacin (QVT)

Modeloorigen

transformacin

Modelodestino

Estndarpara

Visualizar Especificar Documentar

Independientedellenguaje Unacombinacin
FuediseadoporThe three amigos JamesRumbaugh,Ivar Jacobson,GradyBooch

stereotype

constraint

tagged value

Sirveparaserializarmodelos Permitequelasherramientasseintegren
XMI2.1 MOF2.0 XMI1.3 MOF1.4 XMI1.1 MOF1.3 XMI1.2 MOF1.4 2009

XMI2.0 MOF1.4

Seutilizaparadefinirrestricciones EspartedeUML Tipos


Clase invariant Precondicionesdeunaoperacin precondition Postcondiciones deunaoperacin postcondition

context Empresa inv:conductoresPotenciales =empleados>select(edad>=18)


Empresa +contratar(entrada p : Persona)

context Coche inv:conductor.edad >=18


Coche

poseedor vehculos

+conducir(entrada p : Persona)

jefe

conductoresPotenciales empleados
Persona -edad : int

context Coche::conducir(p:Persona) pre:(conductor==null)&&(p.edad >=18) post:conductor=p

conductor

context Empresa::contratar(p:Persona) pre:none post:(empleados.size =empleados@pre.size+1)&& (empleados.includes(p))

[StahlandVlter,2006]

RestriccinennivelMn afectaalnivelMn1

context PersonaDesconocida inv:name ==noidentificada ||desconocida

context ParametrosNumericos inv:type.name==Integer

Lenguajedetransformacindemodelos Compuestodetreslenguajesconobjetivos distintos QVT



Operation Mappings Language

Relacional Core Operacional

Relations Language

BlackBoxMappings

Core Language

Transformaciones unconjuntoderelaciones
Declarativo

[Mens,2009]

Transformaciones unconjuntodeoperaciones
Imperativo

[Mens,2009]

[http://smv.unige.ch/old/tikidownload_file.php?fileId=661]

http://smv.unige.ch/old/tikidownload_file.php?fileId=661

AplicacindelaIngenieraDirigidaporModelos

[KellyandTolvanen,2008]

[KellyandTolvanen,2008]

[KellyandTolvanen,2008]

[KellyandTolvanen,2008]

[KellyandTolvanen,2008]

Losvideojuegossonunodelosnegociosms rentablesdelmundo Sequiereindustrializarsu desarrollo[Furtado,2007] Juegosdeaventuras

IntegradoenVisualStudio

Todoslosestadosdeljuegotienenqueser alcanzables Unpersonajeprincipal Unapantalladeinicio Unapantalladefindejuego Etc

Sistemaquesirveparahacerlatrazabilidad enlafabricacindeproductosalimentarios CasorealdeaplicacindeMDE

Crearunsistemasoftware/hardware adaptableacadaclientedeformasencilla

1.1 Pro ducto r ? 1.2 Tipo ? 1.3 Pes o ? 1.4 Temperatura? 1.5 Acidez? 1.6 Lo te Pro d uctor? 1.7 Lo te INT->?

6.1 Lo te ? 6.2 Cantidad? 6.2 PH? 1. RECEPCION LECHE 6. PASTEURIZA 2. RECEPCION CUAJO

2.1 Pro ducto r ? 2.2 Cantidad? 2.3 Lo te Pro d uctor? 2.4 Lo te INT->? 3.1 Pro ducto r ? 3.2 Cantidad? 3.3 Lo te Pro d uctor? 3.4 Lo te INT->?

7.1 Lo te Leche? 7.2 Cantidad? 7.3 Mas Leche? 7.4 Lo te Cuajo ? 7.5 Mas Cuajo ? 7.6 Lo te Fermento s? 7.7 Mas Fermento s? 7.8 Lo te Calcio ? 7.9 Mas Calcio ? 7.10 Lo te INT->

FABRICA DE QUESOS PROCESO BEYOS Fecha: 04/06/2008 Versin: 0.017

12.1 Lo te? 12.2 N Artculo s? 12.3 Cliente? 7. CUAJADA

3. RECEPCION FERMENTOS Las etiquetas las irn colocando en las estanteras que quieran 8.1 Lo te Cuajada? 8.2 N etiquetas d eseadas? ETIQUETAS RFID 5. RECEPCION SAL 8. EMMOLDADO 14. COMERCIALIZ ACION 13. ENVASADO REQUESN

4.1 Pro ducto r ? 4.2 Cantidad? 4.3 Lo te Pro d uctor? 4.4 Lo te INT->?

4. RECEPCION CALCIO

5.1 Pro ducto r ? 5.2 Cantidad? 5.3 Lo te Pro d uctor? 5.4 Lo te INT->?

14.1 Cliente? 14.2 Lo te? 14.3 Unidades?

9.1 RFID Enmo ldado? 9.2 Lo te Sal?

10.1 RFID Salado ?

11.1 RFID Secado ? 11.3 N Co ntra-etiquetas? 11.4 Primera Co ntra-etiqueta 11.5 Cliente? ETIQUETAS COMERCIALES

13.1 Cliente? 13.2 Pes o ? 13.3 Lo te? 13.4 Unidad es?

9. SALADO

10. SECADO

11. ENVASADO

12. COMERCIALIZ ACION

DocumentoXMLconformeconunXMLSchema Sehacentransformacionesparagenerarcdigo Variasseccionesparadefinirelproceso Tambinhayunainterfazgrfica

Modeloorigen

Sistemagenerado

nUML

ExpertCoder

Database.sql

Plataformaparaeldesarrollodesoftwaredirigidopormodelos

EnglobatodolorelacionadoconMDEenEclipse
TheEclipseModelingProject(EMP)focusesontheevolutionandpromotionof modelbaseddevelopmenttechnologieswithintheEclipsecommunitybyprovidinga unifiedsetofmodelingframeworks,tooling,andstandards implementations

TodostieneEclipsePublic Licence yhadeserOpenSource NoestrelacionadoconelgrupoOMGpero Sedivideprincipalmenteen:


Desarrollodesintaxisabstractas Desarrollodesintaxisconcretas Transformacindemodelos Herramientasdedesarrollo Desarrollodenuevastecnologas Agrupacindeproyectos

http://www.eclipse.org/modeling

EclipseModeling Framework(EMF)
Ecore Otroscomponentes:
Soportepararealizartransaccionessobremodelos Validacindemodelos Consultassobremodelos Bsquedassobremodelos Comparacindemodelos Mecanismosdepersistencia

Graphical Modeling Framework(GMF)


Serviciodesintaxisgrficas PermitecrearuneditorsobreelmetamodeloEcore

TextualModeling Framework(TMF)
Serviciodesintaxistextuales PermitecrearuneditorsobreelmetamodeloEcore Xtext esunatecnologaenglobadadentrodeTMF

Modelto ModelTransformation (M2M)


Paratransformarunosmodelosenotros QVT,ATL,Xtend,etc

Modelto Text Transformation (M2T)


Paragenerarartefactostextuales JavaEmitter Templates (JET),Xpand,etc

ModelDevelopmentTools(MDT)
Proyectosbasadosenestndaresdelaindustria
XMLSchema (XSD) UML2 UML2Tools ObjectConstraint Language (OCL) BusinessProcessModeling Notation (BPMN2)

Generative Modeling Technologies(GMT)


Agrupaavariosproyectosqueanestnenfase

experimental Muchosdeellosacabanformandopartedelalista principaldeproyectosdeEMP


ATL>ahoraenM2M Xpand >ahoraenM2T Xtext >ahoraenTMF

Modeling Amalgamation Project(Amalgam)


Amalgamation >Eselprocesodecombinarounir

entidadesenunanicaforma SupropsitoesagrupartecnologasdeEMPyfacilitarsu uso,instalacineintegracin

TrabajandoconelEclipseModelingProject

LomsfcilesdescargarunEclipsecontodo http://www.eclipse.org/downloads/packages/ release/galileo/sr2 (EclipseModelingTools)

Medianteeleditorgrfico

ECOREMETAMETAMODEL

Ecore

Nuevoproyecto org.eclipse.emp.examples.web

Nuevoelementoenlacarpetamodel web.ecore

NuevoEMFGenerator Model web.genmodel

EOperation

Cuerpodelmtodo EParameter DocumentacinJavaDoc

Abrirorg.eclipse.emp.examples.web.programming Crear SaveXMI.java

Abrirorg.eclipse.emp.examples.web.programming Crear LoadXMI.java

JavaEmitter Template (JET)


ModeltoText Modelo JAVA Texto Traduccin ygeneracin Tiposdeelementos Directivas <%@%> Expresiones <%=..%> Scriplets <%%>

ConvertirelproyectoparatrabajarconJET org.eclipse.emp.examples.web.programming

Abrirorg.eclipse.emp.examples.web.programming Crear ConvertToHTML.java

Crearprogramticamentecategorasyartculos dentrodeunaWeb CrearmedianteJETun archivoHTMLparalaWeb (index.html)ydentroenlaces aun archivoHTML paracadacategora, mostrandoencada categora lainformacindelosartculos

Abrirorg.eclipse.emp.examples.web.programming Crear Observable.javay Observer.java

MedianteinterfacesJavaanotadas

SeutilizancomentariosJavaDoc paraanotarlas

Algunaspropiedades abstract=BOOLEAN required=BOOLEAN containment=BOOLEAN default=VALUE changeable=BOOLEAN"

Creararchivoweb.genmodel Proyectoorg.eclipse.emp.examples.web.interfaces

Programticamente

Metamodelo Modelo APIreflectiva basadaenEobject


eClass() eGet()yeSet() eContents()/eContainer()

Creardinmicamenteelmetamodelo(modeloEcore) Creardinmicamenteunmodeloapartirdelmetamodelo Serializarelmodelo Deserializar elmodelo Mostrarinformacindelmodelo Abrirorg.eclipse.emp.examples. web.programming Crear Dynamic.java

Bibliografabsica

http://www.omg.org

You might also like