Sattose2013 mega

398 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
398
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sattose2013 mega

  1. 1. Towards a general-purpose megamodeling language AndreiVaranovich Software Languages Team, University of Koblenz-Landau, Germany
  2. 2. http://softlang.uni-koblenz.de/mega/ Work in progress, in collaboration with Jean-Marie Favre, Ralf Lämmel, andVadim Zaytsev
  3. 3. Colin Atkinson, Thomas Kühne: Model-Driven Development: A Metamodeling Foundation. IEEE Software (SOFTWARE) 20(5):36-41 (2003) who is Lassie?
  4. 4. http://en.wikipedia.org/wiki/Lassie http://www.counter-currents.com/wp-content/uploads/2011/10/Lassie.jpg Too many implicit assumptions
  5. 5. A typical software project programming languages (e.g., Java, PHP, JavaScript, or Python) DSLs (e.g., CSS, XSLT, or SQL) library-based languages (e.g., JQuery, DOM API) configuration languages (e.g., Hibernate mapping) models schemas models “many” languages and technologies “somehow” related
  6. 6. Can we model technologies more precisely?
  7. 7. Goal: Develop a megamodeling approach that is useful for understanding the linguistic architecture of software products supported by the MegaL language and the tool suite
  8. 8. •megamodeling must help with managing diversity and heterogeneity of software technologies •сognitive value is important! [Some] motivations: Empirical Assessment of MDE in Industry by John Hutchinson, Jon Whittle, Mark Rouncefield and Steinar Kristoffersen use of models for team communication use of models for understanding a problem at an abstract level use of models to capture and document designs
  9. 9. A megamodel is a model of which at least some 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)
  10. 10. Ad-hoc megamodel http://en.wikipedia.org/wiki/Tombstone_diagram All relations are implicit Bootstrapping a C compiler written in C, by compiling it using another compiler written in machine code.
  11. 11. the same information capacity one can define the same set of instances up to a uniquely defined isomorphism = ? Q: how can we check this?
  12. 12. The notion of megamodel • Megamodels are (ER) models. • Entities of interest ‣ Languages ‣ Technologies (components thereof) ‣ Programs ‣ ... • Relationships of interest ‣ Conformance ‣ Transformation ‣ ...
  13. 13. Fig. 1. The linguistic architecture of a software product when displayed with the Me- gaL/Explorer tool. Demo http://worker.101companies.org/MegaModels/implementations/xsdClasses/
  14. 14. Linked megamodels An entity is linked to a unique resource that can be browsed and examined correspondsTo
  15. 15. <xs:element name="company"> <xs:complexType> <xs:sequence> <xs:element ref="name"/> <xs:element maxOccurs="unbounded" minOccurs="0" ref="department"/> </xs:sequence> </xs:complexType> </xs:element> http://101companies.org/resources/contributions/jaxbComposition/inputs/Company.xsd/element/xs:schema/element/xs:element?format=html http://101companies.org/resources/contributions/jaxbComposition/src/main/java/org/softlang/company/xjc/Company.java/class/Company?format=html @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "name", "department" }) @XmlRootElement(name = "company") public class Company { @XmlElement(required = true) protected String name; protected List<Department> department; /** * Gets the value of the name property. * * @return * possible object is * {@link String } * */ public String getName() { return name; } ..... Use of fragments to establish an executable correspondence
  16. 16. MegaL Design goal: general-purpose megamodeling language https://github.com/avaranovich/megal
  17. 17. Key design principles • Entities and relationships are extendable • Everything is a resource • accessible over HTTP • Relationships are executable
  18. 18. MegaL prelude // Entity types Set < Entity . Artifact < Entity . Language < Set . Technology < Entity . Concept < Entity . File < Artifact . Folder < Artifact . // Relationship types elementOf < Entity * Set . subsetOf < Set * Set . partOf < Artifact * Artifact . instanceOf < Concept * Concept . isA < Concept * Concept . conformsTo < Artifact * Artifact . definitionOf < Artifact * Language .
  19. 19. Some megamodels Java : Language . extern JavaProgram : File . JavaProgram elementOf Java . /* Models, metamodels, and conformance */ Model : Artifact . Metamodel : Model . conformsTo : Model * Metamodel . /* The MVC concept. MVC consists of model, view, and controller. Those subconcepts depend on the main concept. MVC is a design pattern. */ MVC : Concept . Model @ MVC : Concept . View @ MVC : Concept . Controller @ MVC : Concept . DP ["Design pattern"] : Concept . Model partOf MVC . View partOf MVC . Controller partOf MVC . MVC instanceOf DP .
  20. 20. Design challenges • Many source of (partial) errors • Extensibility of the language, controlled by the type system
  21. 21. MegaL pipeline event recorder event bus events events events report
  22. 22. Thank you! Questions?

×