SlideShare a Scribd company logo
1 of 17
Metamodeling 
Lab 
(Advanced Software Engineering course) 
a.y. 2014/2015 
Luca Berardinelli 
Post Doc @ DISIM 
University of L’Aquila
Copyright Notice 
The material in these slides may be freely reproduced and 
distributed, partially or totally, as far as an explicit 
reference or acknowledge to the material author is 
preserved.
Lecturer
What does “modeling” stand for? 
"Modeling, in the broadest sense, is the cost-effective use of 
something in place of something else for some cognitive purpose. 
It is simpler, safer or cheaper than reality”. 
A model represents reality for the given purpose; the model is an 
abstraction of reality in the sense that it cannot represent all 
aspects of reality.
Is Cristoforo Colombo a modeler? 
Sailors have drawn maps to travel around the world. Cognitive 
purpose: e.g., to support commercial/military activities 
Sailor 
<<specified in>> 
<<creates>> map(s) 
<<read by>> 
Sailor 
<<represented by>> 
REALITY 
(world) 
language? 
language? 
<<specified in>> 
<<defines>> 
you 
today
Is Cristoforo Colombo a modeler? 
Sailors have drawn maps to travel around the world. Cognitive 
purpose: e.g., to support commercial/military activities 
map(s) 
<<represented by>> 
<<specified in>> 
REALITY 
(world) 
language? 
language? 
<<specified in>> 
M0 
M1 
M3 
M2
Maps today: from M0 to M3 
M3 : <MetaMetaModel> 
M2 : <MetaModel> 
M1 : <Model> 
M0 : <Data,Reality>
The right answers 
M3 : It is not on the map. It provides the 
concepts to define different legends (M2) 
M2 : The legend list that provides decoding 
info, the concepts to build model) 
M1 : The map itself except... 
M0 : It is under your feet!
A Model-Driven Software Process 
Problem domain < abstraction gap > 
Solution domain (sw) 
Reqs Specs Design Implementation Deployment Runtime 
MMM 
MMM 
MMM 
MMM 
MMM 
Different artifacts (e.g., models) can be created during the 
development process. 
These artifacts may be used for communication purposes among 
stakeholders (architects, designers, programmers...) 
In MDE, these artifacts must be machine readable!
New Domain: Software Engineering 
Which language(s)? Do we need new, domain specific 
languages? How do we create new languages? 
Designer 
Designer, 
Programmer, 
.... 
language? 
<<specified in>> 
language(s)? 
REALITY 
<<specified in>> 
(software system) 
<<defines>> 
you 
today 
<<represented by>>
New Domain: Software Engineering 
Which language(s)? Do we need new, domain specific 
languages? How do we create new languages? 
Designer 
Designer, 
Programmer, 
.... 
<<specified in>> 
REALITY 
(software system) 
EBNF 
Java 
<<specified in>> 
<<defines>> 
you 
today 
<<represented by>> 
http://cs.fit.edu/~ryan/cse4251/mini_java_grammar.html
New Domain: Software Engineering 
Which language(s)? Do we need new, domain specific 
languages? How do we create new languages? 
Designer 
Designer, 
Programmer, 
.... 
<<specified in>> 
REALITY 
(software system) 
Ecore 
MyLanguage 
<<specified in>> 
<<defines>> 
you 
today 
<<represented by>> 
Modeling Framework 
(EMF) 
Rich Client Platform 
(RCP)
Digital Library System 
Reqs Specs 
We want to build a distributed software system for managing a 
Digital Library. The customers can access the digital edition (e.g. 
PDF or PS file format) from a client application. On the server 
side, the system stores the description of the documents (its 
name, type, authors…). The librarian, properly logged within the 
system as “librarian” can add, modify, or delete the documents…. 
The distributed system can be implemented using JAVA based 
technologies …[…]
Design 
Library Metamodel (M2) 
LIBRARY Metamodel 
(Ecore) 
We define a very simple “domain-specific” language for modeling 
libraries. We use Ecore provided by Eclipse EMF. 
You can use any editor 
capable to “save” this 
artifact “as” *.ecore 
http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html
Library Model Editor (M1) 
Design 
We implement an Editor to realize Library Models using Eclipse 
RCP plugin. 
Conforms to 
Library Editor 
(Eclipse RCP App) 
http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html
My Library Model (M1): serialization 
<?xml version="1.0" encoding="UTF-8"?> 
<Library:Library xmlns:Library="http://Library" xmlns:_="" name="Luca's Library"> 
<writers _:books="#//@books.1" name="Luca Berardinelli"/> 
<writers _:books="#//@books.0" name="Unknown"/> 
<books writers="#//@writers.1" title="Alone in The Dark" pages="123"/> 
<books writers="#//@writers.0" title="My Life" pages="400" category="Bibiography"/> 
</Library:Library> 
An modeler is able to structure and store information about a 
specific domain in a machine-readable way, so that software 
can “reason” about such a domain.
A real library (M0)

More Related Content

What's hot

11 ooad uml-14
11 ooad uml-1411 ooad uml-14
11 ooad uml-14
Niit Care
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010
fmadiot
 
12 ooad uml-16
12 ooad uml-1612 ooad uml-16
12 ooad uml-16
Niit Care
 

What's hot (20)

AutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewAutomationML: A Model-Driven View
AutomationML: A Model-Driven View
 
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
 
11 ooad uml-14
11 ooad uml-1411 ooad uml-14
11 ooad uml-14
 
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
 
The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]
 
Visualizing UML’s Sequence and Class Diagrams Using Graph-Based Clusters
Visualizing UML’s Sequence and   Class Diagrams Using Graph-Based Clusters  Visualizing UML’s Sequence and   Class Diagrams Using Graph-Based Clusters
Visualizing UML’s Sequence and Class Diagrams Using Graph-Based Clusters
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010
 
Object-Oriented Application Frameworks
Object-Oriented Application FrameworksObject-Oriented Application Frameworks
Object-Oriented Application Frameworks
 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for Robotics
 
C# Unit 2 notes
C# Unit 2 notesC# Unit 2 notes
C# Unit 2 notes
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
 
12 ooad uml-16
12 ooad uml-1612 ooad uml-16
12 ooad uml-16
 
Programmatic Muddle Management
Programmatic Muddle ManagementProgrammatic Muddle Management
Programmatic Muddle Management
 
Day3
Day3Day3
Day3
 
Ppt chapter01
Ppt chapter01Ppt chapter01
Ppt chapter01
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
Java chapter 3 - OOPs concepts
Java chapter 3 - OOPs conceptsJava chapter 3 - OOPs concepts
Java chapter 3 - OOPs concepts
 
[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms
 
Ppt chapter08
Ppt chapter08Ppt chapter08
Ppt chapter08
 
Microsoft.Net
Microsoft.NetMicrosoft.Net
Microsoft.Net
 

Viewers also liked (9)

V shaped layout powerpoint diagrame templates 0712
V shaped layout powerpoint diagrame templates 0712V shaped layout powerpoint diagrame templates 0712
V shaped layout powerpoint diagrame templates 0712
 
Double Page Spread Analysis
Double Page Spread AnalysisDouble Page Spread Analysis
Double Page Spread Analysis
 
Visual Paradigm
Visual ParadigmVisual Paradigm
Visual Paradigm
 
Welcome to the Advanced Software Engineering Course (2014-2015)
Welcome to the Advanced Software Engineering Course (2014-2015)Welcome to the Advanced Software Engineering Course (2014-2015)
Welcome to the Advanced Software Engineering Course (2014-2015)
 
Critical system
Critical systemCritical system
Critical system
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Use Case Diagram Templates by Creately
Use Case Diagram Templates by CreatelyUse Case Diagram Templates by Creately
Use Case Diagram Templates by Creately
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process Improvement
 
GC Fabrication Line Sheet 2015
GC Fabrication Line Sheet 2015GC Fabrication Line Sheet 2015
GC Fabrication Line Sheet 2015
 

Similar to Metamodeling - Advanced Software Engineering Course 2014/2015

Java Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage EssayJava Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage Essay
Liz Sims
 
Analysis Of The Original Version Of Java
Analysis Of The Original Version Of JavaAnalysis Of The Original Version Of Java
Analysis Of The Original Version Of Java
Amanda Brady
 
Multimedia Lab Handout [Lab2] [Text]
Multimedia Lab Handout [Lab2] [Text] Multimedia Lab Handout [Lab2] [Text]
Multimedia Lab Handout [Lab2] [Text]
Neven El Said Bfci
 
The Concept Of Abstract Data Types
The Concept Of Abstract Data TypesThe Concept Of Abstract Data Types
The Concept Of Abstract Data Types
Katy Allen
 
chapter2multimediaauthoringandtools-160131194415.pdf
chapter2multimediaauthoringandtools-160131194415.pdfchapter2multimediaauthoringandtools-160131194415.pdf
chapter2multimediaauthoringandtools-160131194415.pdf
SaqlainYaqub1
 

Similar to Metamodeling - Advanced Software Engineering Course 2014/2015 (20)

Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Java Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage EssayJava Is A Programming Dialect And Registering Stage Essay
Java Is A Programming Dialect And Registering Stage Essay
 
Analysis Of The Original Version Of Java
Analysis Of The Original Version Of JavaAnalysis Of The Original Version Of Java
Analysis Of The Original Version Of Java
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling SocietyEclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
 
The Larch - a visual interactive programming environment
The Larch - a visual interactive programming environmentThe Larch - a visual interactive programming environment
The Larch - a visual interactive programming environment
 
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
 
Multimedia Lab Handout [Lab2] [Text]
Multimedia Lab Handout [Lab2] [Text] Multimedia Lab Handout [Lab2] [Text]
Multimedia Lab Handout [Lab2] [Text]
 
Towards Automatic Migration to Microservices
Towards Automatic Migration to MicroservicesTowards Automatic Migration to Microservices
Towards Automatic Migration to Microservices
 
Idiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSIdiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRS
 
OBJECT ORIENTED PROGRAMMING.docx
OBJECT ORIENTED PROGRAMMING.docxOBJECT ORIENTED PROGRAMMING.docx
OBJECT ORIENTED PROGRAMMING.docx
 
The Concept Of Abstract Data Types
The Concept Of Abstract Data TypesThe Concept Of Abstract Data Types
The Concept Of Abstract Data Types
 
The Big Picture - Integrating Buzzwords
The Big Picture - Integrating BuzzwordsThe Big Picture - Integrating Buzzwords
The Big Picture - Integrating Buzzwords
 
chapter2multimediaauthoringandtools-160131194415.pdf
chapter2multimediaauthoringandtools-160131194415.pdfchapter2multimediaauthoringandtools-160131194415.pdf
chapter2multimediaauthoringandtools-160131194415.pdf
 
Chapter 2 multimedia authoring and tools
Chapter 2 multimedia authoring and toolsChapter 2 multimedia authoring and tools
Chapter 2 multimedia authoring and tools
 
Front-End Web Development
Front-End Web DevelopmentFront-End Web Development
Front-End Web Development
 
Papers_usenix98
Papers_usenix98Papers_usenix98
Papers_usenix98
 
Development Tools - Abhijeet
Development Tools - AbhijeetDevelopment Tools - Abhijeet
Development Tools - Abhijeet
 
Themes for graduation projects 2010
Themes for graduation projects   2010Themes for graduation projects   2010
Themes for graduation projects 2010
 
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
 

More from Luca Berardinelli

Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
Luca Berardinelli
 
MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context Evolution
Luca Berardinelli
 

More from Luca Berardinelli (15)

Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...
Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...
Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...
 
Combining fUML and profiles for non-functional analysis based on model execut...
Combining fUML and profiles for non-functional analysis based on model execut...Combining fUML and profiles for non-functional analysis based on model execut...
Combining fUML and profiles for non-functional analysis based on model execut...
 
Model Driven Engineering for Smart Cities
Model Driven Engineering for Smart Cities Model Driven Engineering for Smart Cities
Model Driven Engineering for Smart Cities
 
Uncertainty-wise Engineering of IoT Cloud Systems
Uncertainty-wise Engineering of IoT Cloud SystemsUncertainty-wise Engineering of IoT Cloud Systems
Uncertainty-wise Engineering of IoT Cloud Systems
 
COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...
COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...
COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...
 
Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...
 
On The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering PerspectiveOn The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering Perspective
 
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
 
ECMFA 2015 - Energy Consumption Analysis and Design with Foundational UML
ECMFA 2015 - Energy Consumption Analysis and Design with Foundational UMLECMFA 2015 - Energy Consumption Analysis and Design with Foundational UML
ECMFA 2015 - Energy Consumption Analysis and Design with Foundational UML
 
fUML-Driven Performance Analysis through the MOSES Model Library
fUML-Driven Performance Analysisthrough the MOSES Model LibraryfUML-Driven Performance Analysisthrough the MOSES Model Library
fUML-Driven Performance Analysis through the MOSES Model Library
 
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
 
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...
 
MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context Evolution
 
Mosquito
MosquitoMosquito
Mosquito
 
Context-aware Performance Modeling and Analysis
Context-aware Performance Modeling and AnalysisContext-aware Performance Modeling and Analysis
Context-aware Performance Modeling and Analysis
 

Recently uploaded

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 

Recently uploaded (20)

Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Third Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptxThird Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 

Metamodeling - Advanced Software Engineering Course 2014/2015

  • 1. Metamodeling Lab (Advanced Software Engineering course) a.y. 2014/2015 Luca Berardinelli Post Doc @ DISIM University of L’Aquila
  • 2. Copyright Notice The material in these slides may be freely reproduced and distributed, partially or totally, as far as an explicit reference or acknowledge to the material author is preserved.
  • 4. What does “modeling” stand for? "Modeling, in the broadest sense, is the cost-effective use of something in place of something else for some cognitive purpose. It is simpler, safer or cheaper than reality”. A model represents reality for the given purpose; the model is an abstraction of reality in the sense that it cannot represent all aspects of reality.
  • 5. Is Cristoforo Colombo a modeler? Sailors have drawn maps to travel around the world. Cognitive purpose: e.g., to support commercial/military activities Sailor <<specified in>> <<creates>> map(s) <<read by>> Sailor <<represented by>> REALITY (world) language? language? <<specified in>> <<defines>> you today
  • 6. Is Cristoforo Colombo a modeler? Sailors have drawn maps to travel around the world. Cognitive purpose: e.g., to support commercial/military activities map(s) <<represented by>> <<specified in>> REALITY (world) language? language? <<specified in>> M0 M1 M3 M2
  • 7. Maps today: from M0 to M3 M3 : <MetaMetaModel> M2 : <MetaModel> M1 : <Model> M0 : <Data,Reality>
  • 8. The right answers M3 : It is not on the map. It provides the concepts to define different legends (M2) M2 : The legend list that provides decoding info, the concepts to build model) M1 : The map itself except... M0 : It is under your feet!
  • 9. A Model-Driven Software Process Problem domain < abstraction gap > Solution domain (sw) Reqs Specs Design Implementation Deployment Runtime MMM MMM MMM MMM MMM Different artifacts (e.g., models) can be created during the development process. These artifacts may be used for communication purposes among stakeholders (architects, designers, programmers...) In MDE, these artifacts must be machine readable!
  • 10. New Domain: Software Engineering Which language(s)? Do we need new, domain specific languages? How do we create new languages? Designer Designer, Programmer, .... language? <<specified in>> language(s)? REALITY <<specified in>> (software system) <<defines>> you today <<represented by>>
  • 11. New Domain: Software Engineering Which language(s)? Do we need new, domain specific languages? How do we create new languages? Designer Designer, Programmer, .... <<specified in>> REALITY (software system) EBNF Java <<specified in>> <<defines>> you today <<represented by>> http://cs.fit.edu/~ryan/cse4251/mini_java_grammar.html
  • 12. New Domain: Software Engineering Which language(s)? Do we need new, domain specific languages? How do we create new languages? Designer Designer, Programmer, .... <<specified in>> REALITY (software system) Ecore MyLanguage <<specified in>> <<defines>> you today <<represented by>> Modeling Framework (EMF) Rich Client Platform (RCP)
  • 13. Digital Library System Reqs Specs We want to build a distributed software system for managing a Digital Library. The customers can access the digital edition (e.g. PDF or PS file format) from a client application. On the server side, the system stores the description of the documents (its name, type, authors…). The librarian, properly logged within the system as “librarian” can add, modify, or delete the documents…. The distributed system can be implemented using JAVA based technologies …[…]
  • 14. Design Library Metamodel (M2) LIBRARY Metamodel (Ecore) We define a very simple “domain-specific” language for modeling libraries. We use Ecore provided by Eclipse EMF. You can use any editor capable to “save” this artifact “as” *.ecore http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html
  • 15. Library Model Editor (M1) Design We implement an Editor to realize Library Models using Eclipse RCP plugin. Conforms to Library Editor (Eclipse RCP App) http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html
  • 16. My Library Model (M1): serialization <?xml version="1.0" encoding="UTF-8"?> <Library:Library xmlns:Library="http://Library" xmlns:_="" name="Luca's Library"> <writers _:books="#//@books.1" name="Luca Berardinelli"/> <writers _:books="#//@books.0" name="Unknown"/> <books writers="#//@writers.1" title="Alone in The Dark" pages="123"/> <books writers="#//@writers.0" title="My Life" pages="400" category="Bibiography"/> </Library:Library> An modeler is able to structure and store information about a specific domain in a machine-readable way, so that software can “reason” about such a domain.