SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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?

Weitere ähnliche Inhalte

Ähnlich wie Sattose2013 mega

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 frameworkLes-Tilleuls.coop
 
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...cresco
 
XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGOptum
 
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 CascadingPaco Nathan
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic WebIvan Herman
 
Intro to-html-backbone
Intro to-html-backboneIntro to-html-backbone
Intro to-html-backbonezonathen
 
Semantics In Declarative Systems
Semantics In Declarative SystemsSemantics In Declarative Systems
Semantics In Declarative SystemsOptum
 
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 Oppidumstsire
 
Vital AI: Big Data Modeling
Vital AI: Big Data ModelingVital AI: Big Data Modeling
Vital AI: Big Data ModelingVital.AI
 
Eol Drupal Dman Presentation
Eol   Drupal   Dman PresentationEol   Drupal   Dman Presentation
Eol Drupal Dman PresentationDavid Shorthouse
 
AJAX Frameworks
AJAX FrameworksAJAX Frameworks
AJAX Frameworksshank
 
Java Technology
Java TechnologyJava Technology
Java Technologyifnu bima
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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...Drew Madelung
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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 productivityPrincipled Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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...Miguel Araújo
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Kürzlich hochgeladen (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

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