SlideShare a Scribd company logo
1 of 22
Download to read offline
Towards a general-purpose
megamodeling language
AndreiVaranovich
Software Languages Team,
University of Koblenz-Landau, Germany
http://softlang.uni-koblenz.de/mega/
Work in progress, in collaboration with
Jean-Marie Favre, Ralf Lämmel, andVadim Zaytsev
Colin Atkinson, Thomas Kühne: Model-Driven Development: A Metamodeling Foundation. IEEE Software (SOFTWARE) 20(5):36-41 (2003)
who is Lassie?
http://en.wikipedia.org/wiki/Lassie
http://www.counter-currents.com/wp-content/uploads/2011/10/Lassie.jpg
Too many implicit assumptions
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
Can we model technologies more precisely?
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
•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
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)
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.
the same information capacity
one can define the same set of instances up to a
uniquely defined isomorphism
=
?
Q: how can we check this?
The notion of megamodel
• Megamodels are (ER) models.
• Entities of interest
‣ Languages
‣ Technologies (components thereof)
‣ Programs
‣ ...
• Relationships of interest
‣ Conformance
‣ Transformation
‣ ...
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/
Linked megamodels
An entity is linked
to a unique
resource that
can be browsed
and examined
correspondsTo
<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
MegaL
Design goal: general-purpose megamodeling
language
https://github.com/avaranovich/megal
Key design principles
• Entities and relationships are extendable
• Everything is a resource
• accessible over HTTP
• Relationships are executable
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 .
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 .
Design challenges
• Many source of (partial) errors
• Extensibility of the language, controlled by
the type system
MegaL pipeline
event recorder
event bus
events events events
report
Thank you!
Questions?

More Related Content

Similar to Sattose2013 mega

Eol Drupal Dman Presentation
Eol   Drupal   Dman PresentationEol   Drupal   Dman Presentation
Eol Drupal Dman Presentation
David Shorthouse
 
Java Technology
Java TechnologyJava Technology
Java Technology
ifnu bima
 

Similar to Sattose2013 mega (20)

Creating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform frameworkCreating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform framework
 
JSF 2.0 Preview
JSF 2.0 PreviewJSF 2.0 Preview
JSF 2.0 Preview
 
Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...
Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...
Students of Navgujarat College of Computer Applications, Ahmedabad felt excit...
 
slis-asist
slis-asistslis-asist
slis-asist
 
slis-asist
slis-asistslis-asist
slis-asist
 
XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUG
 
Advanced JavaScript
Advanced JavaScriptAdvanced JavaScript
Advanced JavaScript
 
Boulder/Denver BigData: Cluster Computing with Apache Mesos and Cascading
Boulder/Denver BigData: Cluster Computing with Apache Mesos and CascadingBoulder/Denver BigData: Cluster Computing with Apache Mesos and Cascading
Boulder/Denver BigData: Cluster Computing with Apache Mesos and Cascading
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic Web
 
Intro to-html-backbone
Intro to-html-backboneIntro to-html-backbone
Intro to-html-backbone
 
Semantics In Declarative Systems
Semantics In Declarative SystemsSemantics In Declarative Systems
Semantics In Declarative Systems
 
Introducing Oslo
Introducing OsloIntroducing Oslo
Introducing Oslo
 
Small Data in the large with Oppidum
Small Data in the large with OppidumSmall Data in the large with Oppidum
Small Data in the large with Oppidum
 
W2e Praesi
W2e PraesiW2e Praesi
W2e Praesi
 
Vital AI: Big Data Modeling
Vital AI: Big Data ModelingVital AI: Big Data Modeling
Vital AI: Big Data Modeling
 
Eol Drupal Dman Presentation
Eol   Drupal   Dman PresentationEol   Drupal   Dman Presentation
Eol Drupal Dman Presentation
 
"If I knew then what I know now"
"If I knew then what I know now""If I knew then what I know now"
"If I knew then what I know now"
 
Yacks
YacksYacks
Yacks
 
AJAX Frameworks
AJAX FrameworksAJAX Frameworks
AJAX Frameworks
 
Java Technology
Java TechnologyJava Technology
Java Technology
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Sattose2013 mega

  • 1. Towards a general-purpose megamodeling language AndreiVaranovich Software Languages Team, University of Koblenz-Landau, Germany
  • 2. http://softlang.uni-koblenz.de/mega/ Work in progress, in collaboration with Jean-Marie Favre, Ralf Lämmel, andVadim Zaytsev
  • 3. Colin Atkinson, Thomas Kühne: Model-Driven Development: A Metamodeling Foundation. IEEE Software (SOFTWARE) 20(5):36-41 (2003) who is Lassie?
  • 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. Can we model technologies more precisely?
  • 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. •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. 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. 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. 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. The notion of megamodel • Megamodels are (ER) models. • Entities of interest ‣ Languages ‣ Technologies (components thereof) ‣ Programs ‣ ... • Relationships of interest ‣ Conformance ‣ Transformation ‣ ...
  • 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. Linked megamodels An entity is linked to a unique resource that can be browsed and examined correspondsTo
  • 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. MegaL Design goal: general-purpose megamodeling language https://github.com/avaranovich/megal
  • 17. Key design principles • Entities and relationships are extendable • Everything is a resource • accessible over HTTP • Relationships are executable
  • 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. 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. Design challenges • Many source of (partial) errors • Extensibility of the language, controlled by the type system
  • 21. MegaL pipeline event recorder event bus events events events report