SlideShare a Scribd company logo
1 of 20
Download to read offline
© Software Languages Team, University of Koblenz-Landau
Modeling software systems
at a macroscopic scale
Ralf Lämmel
Software Languages Team
University of Koblenz-Landau, Germany
Joint work with Jean-Marie Favre, Andrei Varanovich, andVadim Zaytsev
https://github.com/avaranovich/megal
http://softlang.uni-koblenz.de/mega
© Software Languages Team, University of Koblenz-Landau
Source: Colin Atkinson, Thomas Kühne:
Model-Driven Development: A
Metamodeling Foundation. IEEE Software
(SOFTWARE) 20(5):36-41 (2003)
Who is Lassie?
What’s wrong with
*modeling?
© Software Languages Team, University of Koblenz-Landau
http://en.wikipedia.org/wiki/Lassie
http://www.counter-currents.com/wp-content/uploads/2011/10/Lassie.jpg
Too many implicit assumptions!
© Software Languages Team, University of Koblenz-Landau
A typical software project
(at the macroscopic scale)
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
© Software Languages Team, University of Koblenz-Landau
Can we model software projects more precisely
in terms of languages,
technologies,
and concepts?
© Software Languages Team, University of Koblenz-Landau
A megamodel is a model of which at least
some elements represent and/or refer to models
or metamodels.
Source: 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)
We embrace this notion in the broadest sense:
programs are models and grammars are
metamodels (or v.v.) etc.
© Software Languages Team, University of Koblenz-Landau
A megamodel
!
ATL Starter’s Guide Date 07/1
MMM
MMt
Ma Mb
MMa
Mt
MMb
conformsTo
conformsTo conformsTo
conformsTo
conformsTo
conformsTo
Transformation
MMMMMM
MMtMMt
MaMa MbMb
MMaMMa
MtMt
MMbMMb
conformsTo
conformsTo conformsTo
conformsTo
conformsTo
conformsTo
Transformation
Figure 1. An overview of model transformation
1 summarizes the full model transformation process. A model Ma, conforming to a metamo
s here transformed into a model Mb that conforms to a metamodel MMb. The transformation
d by the model transformation model Mt which itself conforms to a model transformat
odel MMt. This last metamodel, along with the MMa and MMb metamodels, has to conform t
etamodel (such as MOF or Ecore).
Source:
http://wiki.eclipse.org/ATL/Concepts#Model_Transformation
Model
transformations
with ATL
What to think
of this part?
© Software Languages Team, University of Koblenz-Landau
A megamodel
Source:
http://en.wikipedia.org/wiki/Tombstone_diagram
Bootstrapping a C compiler written in C, by compiling
it using another compiler written in machine code.
© Software Languages Team, University of Koblenz-Landau
• Megamodeling must help with managing diversity
and heterogeneity of software technologies.
• Cognitive value is important!
Specific motivations of megamodeling:
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
“Generic” motivations:
© Software Languages Team, University of Koblenz-Landau
The notion of megamodel
• Megamodels are (ER) models.
• Entities of interest
‣ Languages
‣ Technologies (components thereof)
‣ Programs
‣ ...
• Relationships of interest
‣ Conformance
‣ Transformation
‣ ...
© Software Languages Team, University of Koblenz-Landau
How to validate megamodeling claims?
By “=” we mean (roughly) that one can define the same
set of instances up to a uniquely defined isomorphism.
=
?
© Software Languages Team, University of Koblenz-Landau
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/
© Software Languages Team, University of Koblenz-Landau
Linked megamodels
An entity is linked
to a unique
resource that
can be browsed
and examined
correspondsTo
© Software Languages Team, University of Koblenz-Landau
<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
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 observable correspondence
© Software Languages Team, University of Koblenz-Landau
Key design principles of MegaL as
general-purpose megamodeling language
• Entities and relationships are extensible.
• Everything is a resource, i.e.:
• accessible over HTTP.
• Relationships are executable.
© Software Languages Team, University of Koblenz-Landau
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 .
© Software Languages Team, University of Koblenz-Landau
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 .
© Software Languages Team, University of Koblenz-Landau
• Different sources of (partial) errors
• Extensibility of the language
• To be controlled by the type system
Design challenges of MegaL
© Software Languages Team, University of Koblenz-Landau
MegaL pipeline
event recorder
event bus
events events events
report
© Software Languages Team, University of Koblenz-Landau
Thank you!
Questions?
https://github.com/avaranovich/megal
http://softlang.uni-koblenz.de/mega

More Related Content

What's hot

Toffee – A highly efficient, lossless file format for DIA-MS
Toffee – A highly efficient, lossless file format for DIA-MSToffee – A highly efficient, lossless file format for DIA-MS
Toffee – A highly efficient, lossless file format for DIA-MSBrett Tully
 
When GitHub meets CRAN: An Analysis of Inter-Repository Package Dependency Pr...
When GitHub meets CRAN: An Analysis of Inter-Repository Package Dependency Pr...When GitHub meets CRAN: An Analysis of Inter-Repository Package Dependency Pr...
When GitHub meets CRAN: An Analysis of Inter-Repository Package Dependency Pr...Tom Mens
 
GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003butest
 
Overlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsOverlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsIAEME Publication
 
Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a surveyNakul Sharma
 
On the Globalization of Modeling Languages (June 8th, 2015)
On the Globalization of Modeling Languages (June 8th, 2015)On the Globalization of Modeling Languages (June 8th, 2015)
On the Globalization of Modeling Languages (June 8th, 2015)Benoit Combemale
 
Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey Nakul Sharma
 
DRESD Project Presentation - December 2006
DRESD Project Presentation - December 2006DRESD Project Presentation - December 2006
DRESD Project Presentation - December 2006santa
 
ExSchema - ICSM'13
ExSchema - ICSM'13ExSchema - ICSM'13
ExSchema - ICSM'13jccastrejon
 

What's hot (13)

Toffee – A highly efficient, lossless file format for DIA-MS
Toffee – A highly efficient, lossless file format for DIA-MSToffee – A highly efficient, lossless file format for DIA-MS
Toffee – A highly efficient, lossless file format for DIA-MS
 
When GitHub meets CRAN: An Analysis of Inter-Repository Package Dependency Pr...
When GitHub meets CRAN: An Analysis of Inter-Repository Package Dependency Pr...When GitHub meets CRAN: An Analysis of Inter-Repository Package Dependency Pr...
When GitHub meets CRAN: An Analysis of Inter-Repository Package Dependency Pr...
 
GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003
 
Overlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsOverlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammars
 
Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a survey
 
On the Globalization of Modeling Languages (June 8th, 2015)
On the Globalization of Modeling Languages (June 8th, 2015)On the Globalization of Modeling Languages (June 8th, 2015)
On the Globalization of Modeling Languages (June 8th, 2015)
 
Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey
 
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
 
DRESD Project Presentation - December 2006
DRESD Project Presentation - December 2006DRESD Project Presentation - December 2006
DRESD Project Presentation - December 2006
 
ExSchema - ICSM'13
ExSchema - ICSM'13ExSchema - ICSM'13
ExSchema - ICSM'13
 
Duc le CV
Duc le CVDuc le CV
Duc le CV
 
Ijetcas14 385
Ijetcas14 385Ijetcas14 385
Ijetcas14 385
 
NOGESI case study
NOGESI case studyNOGESI case study
NOGESI case study
 

Similar to Modeling Software Systems at a Macroscopic Scale with Megamodels

Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific languageVicente García Díaz
 
A Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And RlbpA Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And RlbpRikki Wright
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling WorldsIstvan Rath
 
Evolution Of Object Oriented Technology
Evolution Of Object Oriented TechnologyEvolution Of Object Oriented Technology
Evolution Of Object Oriented TechnologySharon Roberts
 
The Concept Of Abstract Data Types
The Concept Of Abstract Data TypesThe Concept Of Abstract Data Types
The Concept Of Abstract Data TypesKaty Allen
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages ijseajournal
 
The Economics of OptimJ
The Economics of OptimJThe Economics of OptimJ
The Economics of OptimJPatrick Viry
 
Introduction to java
Introduction to  javaIntroduction to  java
Introduction to javaKalai Selvi
 
OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative StudyDarren Tan
 
Jeff Olson\'s Resume
Jeff Olson\'s ResumeJeff Olson\'s Resume
Jeff Olson\'s ResumeJeff Olson
 
Project Management
Project ManagementProject Management
Project ManagementBabu Appat
 
Java-centered Translator-based Multi-paradigm Software Development Environment
Java-centered Translator-based Multi-paradigm Software Development EnvironmentJava-centered Translator-based Multi-paradigm Software Development Environment
Java-centered Translator-based Multi-paradigm Software Development EnvironmentWaqas Tariq
 
Scales02WhatProgrammingLanguagesShouldWeTeachOurUndergraduates
Scales02WhatProgrammingLanguagesShouldWeTeachOurUndergraduatesScales02WhatProgrammingLanguagesShouldWeTeachOurUndergraduates
Scales02WhatProgrammingLanguagesShouldWeTeachOurUndergraduatesHans Ecke
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxAsst.prof M.Gokilavani
 
Sudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfSudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfsudipto801
 
Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructurekaveirious
 
Exploring metaprogramming using Ruby language
Exploring metaprogramming using Ruby languageExploring metaprogramming using Ruby language
Exploring metaprogramming using Ruby languageHarshal Hayatnagarkar
 

Similar to Modeling Software Systems at a Macroscopic Scale with Megamodels (20)

Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific language
 
A Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And RlbpA Strong Object Recognition Using Lbp, Ltp And Rlbp
A Strong Object Recognition Using Lbp, Ltp And Rlbp
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
 
Evolution Of Object Oriented Technology
Evolution Of Object Oriented TechnologyEvolution Of Object Oriented Technology
Evolution Of Object Oriented Technology
 
The Concept Of Abstract Data Types
The Concept Of Abstract Data TypesThe Concept Of Abstract Data Types
The Concept Of Abstract Data Types
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages
 
The Economics of OptimJ
The Economics of OptimJThe Economics of OptimJ
The Economics of OptimJ
 
Full Stack Development
Full Stack DevelopmentFull Stack Development
Full Stack Development
 
Introduction to java
Introduction to  javaIntroduction to  java
Introduction to java
 
OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative Study
 
Jeff Olson\'s Resume
Jeff Olson\'s ResumeJeff Olson\'s Resume
Jeff Olson\'s Resume
 
Project Management
Project ManagementProject Management
Project Management
 
Java-centered Translator-based Multi-paradigm Software Development Environment
Java-centered Translator-based Multi-paradigm Software Development EnvironmentJava-centered Translator-based Multi-paradigm Software Development Environment
Java-centered Translator-based Multi-paradigm Software Development Environment
 
Scales02WhatProgrammingLanguagesShouldWeTeachOurUndergraduates
Scales02WhatProgrammingLanguagesShouldWeTeachOurUndergraduatesScales02WhatProgrammingLanguagesShouldWeTeachOurUndergraduates
Scales02WhatProgrammingLanguagesShouldWeTeachOurUndergraduates
 
Resume
ResumeResume
Resume
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Sudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfSudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdf
 
Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructure
 
Exploring metaprogramming using Ruby language
Exploring metaprogramming using Ruby languageExploring metaprogramming using Ruby language
Exploring metaprogramming using Ruby language
 

More from Ralf Laemmel

Keynote at-icpc-2020
Keynote at-icpc-2020Keynote at-icpc-2020
Keynote at-icpc-2020Ralf Laemmel
 
Functional data structures
Functional data structuresFunctional data structures
Functional data structuresRalf Laemmel
 
An introduction on language processing
An introduction on language processingAn introduction on language processing
An introduction on language processingRalf Laemmel
 
Surfacing ‘101’ in a Linked Data manner as presented at SATToSE 2013
Surfacing ‘101’ in a Linked Data manner as presented at SATToSE 2013Surfacing ‘101’ in a Linked Data manner as presented at SATToSE 2013
Surfacing ‘101’ in a Linked Data manner as presented at SATToSE 2013Ralf Laemmel
 
Remote method invocation (as part of the the PTT lecture)
Remote method invocation (as part of the the PTT lecture)Remote method invocation (as part of the the PTT lecture)
Remote method invocation (as part of the the PTT lecture)Ralf Laemmel
 
Database programming including O/R mapping (as part of the the PTT lecture)
Database programming including O/R mapping (as part of the the PTT lecture)Database programming including O/R mapping (as part of the the PTT lecture)
Database programming including O/R mapping (as part of the the PTT lecture)Ralf Laemmel
 
Aspect-oriented programming with AspectJ (as part of the the PTT lecture)
Aspect-oriented programming with AspectJ (as part of the the PTT lecture)Aspect-oriented programming with AspectJ (as part of the the PTT lecture)
Aspect-oriented programming with AspectJ (as part of the the PTT lecture)Ralf Laemmel
 
Multithreaded programming (as part of the the PTT lecture)
Multithreaded programming (as part of the the PTT lecture)Multithreaded programming (as part of the the PTT lecture)
Multithreaded programming (as part of the the PTT lecture)Ralf Laemmel
 
Functional OO programming (as part of the the PTT lecture)
Functional OO programming (as part of the the PTT lecture)Functional OO programming (as part of the the PTT lecture)
Functional OO programming (as part of the the PTT lecture)Ralf Laemmel
 
Metaprograms and metadata (as part of the the PTT lecture)
Metaprograms and metadata (as part of the the PTT lecture)Metaprograms and metadata (as part of the the PTT lecture)
Metaprograms and metadata (as part of the the PTT lecture)Ralf Laemmel
 
Generative programming (mostly parser generation)
Generative programming (mostly parser generation)Generative programming (mostly parser generation)
Generative programming (mostly parser generation)Ralf Laemmel
 
Language processing patterns
Language processing patternsLanguage processing patterns
Language processing patternsRalf Laemmel
 
The Expression Problem (as part of the the PTT lecture)
The Expression Problem (as part of the the PTT lecture)The Expression Problem (as part of the the PTT lecture)
The Expression Problem (as part of the the PTT lecture)Ralf Laemmel
 
Selected design patterns (as part of the the PTT lecture)
Selected design patterns (as part of the the PTT lecture)Selected design patterns (as part of the the PTT lecture)
Selected design patterns (as part of the the PTT lecture)Ralf Laemmel
 

More from Ralf Laemmel (15)

Keynote at-icpc-2020
Keynote at-icpc-2020Keynote at-icpc-2020
Keynote at-icpc-2020
 
Functional data structures
Functional data structuresFunctional data structures
Functional data structures
 
An introduction on language processing
An introduction on language processingAn introduction on language processing
An introduction on language processing
 
Surfacing ‘101’ in a Linked Data manner as presented at SATToSE 2013
Surfacing ‘101’ in a Linked Data manner as presented at SATToSE 2013Surfacing ‘101’ in a Linked Data manner as presented at SATToSE 2013
Surfacing ‘101’ in a Linked Data manner as presented at SATToSE 2013
 
Remote method invocation (as part of the the PTT lecture)
Remote method invocation (as part of the the PTT lecture)Remote method invocation (as part of the the PTT lecture)
Remote method invocation (as part of the the PTT lecture)
 
Database programming including O/R mapping (as part of the the PTT lecture)
Database programming including O/R mapping (as part of the the PTT lecture)Database programming including O/R mapping (as part of the the PTT lecture)
Database programming including O/R mapping (as part of the the PTT lecture)
 
Aspect-oriented programming with AspectJ (as part of the the PTT lecture)
Aspect-oriented programming with AspectJ (as part of the the PTT lecture)Aspect-oriented programming with AspectJ (as part of the the PTT lecture)
Aspect-oriented programming with AspectJ (as part of the the PTT lecture)
 
Multithreaded programming (as part of the the PTT lecture)
Multithreaded programming (as part of the the PTT lecture)Multithreaded programming (as part of the the PTT lecture)
Multithreaded programming (as part of the the PTT lecture)
 
Functional OO programming (as part of the the PTT lecture)
Functional OO programming (as part of the the PTT lecture)Functional OO programming (as part of the the PTT lecture)
Functional OO programming (as part of the the PTT lecture)
 
Metaprograms and metadata (as part of the the PTT lecture)
Metaprograms and metadata (as part of the the PTT lecture)Metaprograms and metadata (as part of the the PTT lecture)
Metaprograms and metadata (as part of the the PTT lecture)
 
Generative programming (mostly parser generation)
Generative programming (mostly parser generation)Generative programming (mostly parser generation)
Generative programming (mostly parser generation)
 
Language processing patterns
Language processing patternsLanguage processing patterns
Language processing patterns
 
The Expression Problem (as part of the the PTT lecture)
The Expression Problem (as part of the the PTT lecture)The Expression Problem (as part of the the PTT lecture)
The Expression Problem (as part of the the PTT lecture)
 
XML data binding
XML data bindingXML data binding
XML data binding
 
Selected design patterns (as part of the the PTT lecture)
Selected design patterns (as part of the the PTT lecture)Selected design patterns (as part of the the PTT lecture)
Selected design patterns (as part of the the PTT lecture)
 

Recently uploaded

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

Modeling Software Systems at a Macroscopic Scale with Megamodels

  • 1. © Software Languages Team, University of Koblenz-Landau Modeling software systems at a macroscopic scale Ralf Lämmel Software Languages Team University of Koblenz-Landau, Germany Joint work with Jean-Marie Favre, Andrei Varanovich, andVadim Zaytsev https://github.com/avaranovich/megal http://softlang.uni-koblenz.de/mega
  • 2. © Software Languages Team, University of Koblenz-Landau Source: Colin Atkinson, Thomas Kühne: Model-Driven Development: A Metamodeling Foundation. IEEE Software (SOFTWARE) 20(5):36-41 (2003) Who is Lassie? What’s wrong with *modeling?
  • 3. © Software Languages Team, University of Koblenz-Landau http://en.wikipedia.org/wiki/Lassie http://www.counter-currents.com/wp-content/uploads/2011/10/Lassie.jpg Too many implicit assumptions!
  • 4. © Software Languages Team, University of Koblenz-Landau A typical software project (at the macroscopic scale) 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
  • 5. © Software Languages Team, University of Koblenz-Landau Can we model software projects more precisely in terms of languages, technologies, and concepts?
  • 6. © Software Languages Team, University of Koblenz-Landau A megamodel is a model of which at least some elements represent and/or refer to models or metamodels. Source: 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) We embrace this notion in the broadest sense: programs are models and grammars are metamodels (or v.v.) etc.
  • 7. © Software Languages Team, University of Koblenz-Landau A megamodel ! ATL Starter’s Guide Date 07/1 MMM MMt Ma Mb MMa Mt MMb conformsTo conformsTo conformsTo conformsTo conformsTo conformsTo Transformation MMMMMM MMtMMt MaMa MbMb MMaMMa MtMt MMbMMb conformsTo conformsTo conformsTo conformsTo conformsTo conformsTo Transformation Figure 1. An overview of model transformation 1 summarizes the full model transformation process. A model Ma, conforming to a metamo s here transformed into a model Mb that conforms to a metamodel MMb. The transformation d by the model transformation model Mt which itself conforms to a model transformat odel MMt. This last metamodel, along with the MMa and MMb metamodels, has to conform t etamodel (such as MOF or Ecore). Source: http://wiki.eclipse.org/ATL/Concepts#Model_Transformation Model transformations with ATL What to think of this part?
  • 8. © Software Languages Team, University of Koblenz-Landau A megamodel Source: http://en.wikipedia.org/wiki/Tombstone_diagram Bootstrapping a C compiler written in C, by compiling it using another compiler written in machine code.
  • 9. © Software Languages Team, University of Koblenz-Landau • Megamodeling must help with managing diversity and heterogeneity of software technologies. • Cognitive value is important! Specific motivations of megamodeling: 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 “Generic” motivations:
  • 10. © Software Languages Team, University of Koblenz-Landau The notion of megamodel • Megamodels are (ER) models. • Entities of interest ‣ Languages ‣ Technologies (components thereof) ‣ Programs ‣ ... • Relationships of interest ‣ Conformance ‣ Transformation ‣ ...
  • 11. © Software Languages Team, University of Koblenz-Landau How to validate megamodeling claims? By “=” we mean (roughly) that one can define the same set of instances up to a uniquely defined isomorphism. = ?
  • 12. © Software Languages Team, University of Koblenz-Landau 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/
  • 13. © Software Languages Team, University of Koblenz-Landau Linked megamodels An entity is linked to a unique resource that can be browsed and examined correspondsTo
  • 14. © Software Languages Team, University of Koblenz-Landau <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 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 observable correspondence
  • 15. © Software Languages Team, University of Koblenz-Landau Key design principles of MegaL as general-purpose megamodeling language • Entities and relationships are extensible. • Everything is a resource, i.e.: • accessible over HTTP. • Relationships are executable.
  • 16. © Software Languages Team, University of Koblenz-Landau 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 .
  • 17. © Software Languages Team, University of Koblenz-Landau 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 .
  • 18. © Software Languages Team, University of Koblenz-Landau • Different sources of (partial) errors • Extensibility of the language • To be controlled by the type system Design challenges of MegaL
  • 19. © Software Languages Team, University of Koblenz-Landau MegaL pipeline event recorder event bus events events events report
  • 20. © Software Languages Team, University of Koblenz-Landau Thank you! Questions? https://github.com/avaranovich/megal http://softlang.uni-koblenz.de/mega