elements represent and/or refer to models or metamodels. Bezivin, J., Jouault, F., Valduriez, P.: On the need for Megamodels. In: Proceedings of the OOPSLA/GPCE: Best Practices for Model- Driven Software Development workshop (2004) Friday, October 12, 12
ATL Starter’s Guide Date 07/12/2005 MMM MM t M a M b MM a M t MM b conformsTo conformsTo conformsTo conformsTo conformsTo conformsTo Transformation MMM MMM MM t MM t M a M a M b M b MM a MM a M t M t MM b MM b conformsTo conformsTo conformsTo conformsTo conformsTo conformsTo Transformation Figure 1. An overview of model transformation Figure 1 summarizes the full model transformation process. A model Ma , conforming to a metamodel MMa , is here transformed into a model Mb that conforms to a metamodel MMb . The transformation is defined by the model transformation model Mt which itself conforms to a model transformation metamodel MMt . This last metamodel, along with the MMa and MMb metamodels, has to conform to a metametamodel (such as MOF or Ecore). 3 A simple transformation example This section introduces the transformation example that is going to be developed in the document. The aim of this first example is to introduce users with the basic concepts of the ATL programming. To this end, this example considers two similar metamodels, Author (Figure 2) and Person (Figure 3), that both encode data relative to persons. http://wiki.eclipse.org/ATL/Concepts#Model_Transformation Model transformations with ATL Friday, October 12, 12
ATL Starter’s Guide Date 07/12/2005 MMM MM t M a M b MM a M t MM b conformsTo conformsTo conformsTo conformsTo conformsTo conformsTo Transformation MMM MMM MM t MM t M a M a M b M b MM a MM a M t M t MM b MM b conformsTo conformsTo conformsTo conformsTo conformsTo conformsTo Transformation Figure 1. An overview of model transformation Figure 1 summarizes the full model transformation process. A model Ma , conforming to a metamodel MMa , is here transformed into a model Mb that conforms to a metamodel MMb . The transformation is defined by the model transformation model Mt which itself conforms to a model transformation metamodel MMt . This last metamodel, along with the MMa and MMb metamodels, has to conform to a metametamodel (such as MOF or Ecore). 3 A simple transformation example This section introduces the transformation example that is going to be developed in the document. The aim of this first example is to introduce users with the basic concepts of the ATL programming. To this end, this example considers two similar metamodels, Author (Figure 2) and Person (Figure 3), that both encode data relative to persons. http://wiki.eclipse.org/ATL/Concepts#Model_Transformation Model transformations with ATL What to think of this part? Friday, October 12, 12
33 Transformation TransformationMetamodel TransformationModel Metametamodel Metamodel Metamodel Model Model conforms to conforms to conforms to conforms to conforms to conforms to source + target + represented by source + target + Figure 2.6: Model transformation megamodel ns in the Object Constraint Language1 (OCL) to select the elements ource model to transform. OCL is a declarative language, originally Bas Graaf: Model-Driven Evolution of Software Architectures, Dissertation, Delft University of Technology, 2007. Model transformations Friday, October 12, 12
33 Transformation TransformationMetamodel TransformationModel Metametamodel Metamodel Metamodel Model Model conforms to conforms to conforms to conforms to conforms to conforms to source + target + represented by source + target + Figure 2.6: Model transformation megamodel ns in the Object Constraint Language1 (OCL) to select the elements ource model to transform. OCL is a declarative language, originally Bas Graaf: Model-Driven Evolution of Software Architectures, Dissertation, Delft University of Technology, 2007. Model transformations Is this is a function or an application thereof? Friday, October 12, 12
XML schema or common language runtime classes from XDR, XML, and XSD files, or from classes in a runtime assembly. XSD to Classes Generates runtime classes from an XSD schema file. The generated classes can be used in conjunction with System.XML.Serialization.XMLSerializer to read and write XML code that follows the schema. Friday, October 12, 12
and xmlTypes hold the same “information capacity” both (metamodel and model) are transformed obj and ooTypes hold the same “information capacity” Formally valid. But comprehensive? [early version] Friday, October 12, 12
language exist? ‣ What are the entities of linguistic architecture? ‣ What are the relationships of interest? ‣ (What is a good visual syntax?) Friday, October 12, 12
language exist? ‣ What are the entities of linguistic architecture? ‣ What are the relationships of interest? ‣ (What is a good visual syntax?) • How to validate megamodels? Friday, October 12, 12
of implementations with the structured documentation and related classification (taxonomy) of programming languages and technologies Any other domain vocabulary and classification can be used We don’t redefine languages and technologies! We model their relationships in complex software products Friday, October 12, 12
http://101companies.org/index.php/Category:101feature Includes “cut” and “total” salaries operations Deals with companies (HR domain) http://101companies.org/index.php/101implementation:xsdClasses Implementation using X/O mapping for .NET: https://github.com/101companies/101repo/tree/master/contributions/xsdClasses Source code: Friday, October 12, 12
software product when displayed with the Me- gaL/Explorer tool. Demo http://black42.uni-koblenz.de/production/101worker/MegaModels/implementations/xsdClasses/ Friday, October 12, 12
_:xmlTypes rdfs:label "xmlTypes" . _:xmlTypes mgl:elementOf lang:XSD . _:xmlTypes mgl:inputOf _:classgen . _:xmlDoc rdf:type mgl:File . _:xmlDoc rdfs:label "xmlDoc" . _:xmlDoc mgl:elementOf lang:XML . _:xmlDoc mgl:conformsTo _:xmlTypes . _:xmlDoc mgl:inputOf _:classgen . mgl: MegaL ontology which contains definitions for both entity types (represented as OWL classes) and relationships types (represented as OWL proper-ties). rdf, rdfs: RDF and RDFS definitions enables the integration of megamodels and various other (related resources in the Linked Data global data space. Friday, October 12, 12