SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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?

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 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...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.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
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

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