Modularity is a key aspect in software engineering since it comes with several benefits like reusability, extensibility and maintainability. Although it is a well established concept, it has not received much attention when it comes to model-driven software development. Over time, metamodels tend to evolve and grow in complexity to encompass new aspects and features. If modularization steps are not taken and metamodels are extended intrusively, they can become difficult to maintain and to extend. With the increased complexity, the modularization can become even more challenging.
In this talk, we present a novel approach to assist the modeler in the task of modularization. Our approach addresses the problem from a graphical perspective. The proposed tool support displays a layered structure, where each layer has certain level of abstraction, and allows the modeler to organize metamodels inside the layers. In this layered structure, the metamodels should only depend on metamodels with the same or a higher abstraction level and should not take part in cyclical dependencies. The tool provides the modeler with full control over the modularization process and full knowledge about the relations between the metamodels, thus facilitating the modularization task greatly.
SiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
1. KIT – The Research University in the Helmholtz Association
SOFTWARE DESIGN AND QUALITY GROUP
INSTITUTE FOR PROGRAM STRUCTURES AND DATA ORGANIZATION, FACULTY OF INFORMATICS
www.kit.edu
A Graphical Approach to Modularization and
Layering of Metamodels
Amine Kechaou, Misha Strittmatter
November 9, 2017 – SiriusCon, Paris
2. Software Design and Quality Group
Institute for Program Structures and Data Organization
2 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Background
Student research assistant at the Software Design and
Quality (SDQ) research group
Areas of work
Since 2015: Graphical editors for the Palladio Component
Model (PCM)
Summer term 2017: Bachelor's thesis «A Graphical Approach
to Modularization and Layering of Metamodels»
Second time to attend SiriusCon
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
3. Software Design and Quality Group
Institute for Program Structures and Data Organization
3 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Motivating example
The Palladio Component Model (PCM)
A metamodel for component-based architectures
In numbers
19 (sub-)subpackages
more than 150 EClassifiers
Conventional tooling not adapted to
modularization
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
4. Software Design and Quality Group
Institute for Program Structures and Data Organization
4 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
PCM, an example of a complex metamodel
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
5. Software Design and Quality Group
Institute for Program Structures and Data Organization
5 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
PCM, an example of a complex metamodel
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
6. Software Design and Quality Group
Institute for Program Structures and Data Organization
6 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
09.11.2017
PCM, an example of a complex metamodel
PCMPCM-Core
PCM-Composition
PCM-Reliability
PCM-Performance
PCM-Behavior
PCM-Repository
FeedbackConcept DemoIntroduction Future work Conclusion
: Metamodel
7. Software Design and Quality Group
Institute for Program Structures and Data Organization
7 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Layering of metamodels
«Depend upon abstractions. Do not depend upon concretions»
- Robert C. Martin, Design Principles and Design Patterns
A Modular Reference Structure for Component-based Architecture
Description Languages [strittmatter2015]
Organize (sub-)metamodels inside layers
No dependencies to lower layers
No cyclical dependencies between modules
Benefits: reusability, understandability, maintainability
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
8. Software Design and Quality Group
Institute for Program Structures and Data Organization
8 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Concept
A tool support for the modular reference structure
Graphical representation
Detection of violations (e.g. cycles)
Assistance in the task of modularization
Manipulate metamodels and assign them to layers
Load referenced metamodels automatically
Deliver information about the nature of dependencies
Use cases:
Design a modular metamodel from scratch
Modularize existing metamodels
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
9. Software Design and Quality Group
Institute for Program Structures and Data Organization
9 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
LIVE
DEMO
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
10. Software Design and Quality Group
Institute for Program Structures and Data Organization
10 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Support of EMF Profiles
09.11.2017
Excerpt from the PCM
pcmReliability (simplified)
ReliabilityProfile
FeedbackConcept DemoIntroduction Future work Conclusion
11. Software Design and Quality Group
Institute for Program Structures and Data Organization
11 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Support of EMF Profiles
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
12. Software Design and Quality Group
Institute for Program Structures and Data Organization
12 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Future work
Usability
Inform the user about broken dependencies
Hide transitive dependencies
Choose the direction of abstraction (up/down)
…
Refactoring
Factor out the EMF Profiles part
New features
Load related metamodels
Further aspects (e.g. model transformations, VSMs)
Metamodel clustering
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
13. Software Design and Quality Group
Institute for Program Structures and Data Organization
13 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Limitations and feedback
Limitations of the MRS graphical editor
Intermediate results are not saved
Redundant dependency computation and cycle detection
Improvement potential for Sirius
Run operation on refresh/modification?
Stateful Java services?
"Diagram" variables in the VSM?
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
14. Software Design and Quality Group
Institute for Program Structures and Data Organization
14 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Feedback
Flexibility and fluidity
Development time
A very responsive community
Autocompletion
Casting (oclAsType)
Available variables
Diagram extension
Edge redefinition
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
15. Software Design and Quality Group
Institute for Program Structures and Data Organization
15 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Conclusion
Benefits
Easier modularization
Modular metamodeling
Available at:
https://sdqweb.ipd.kit.edu/eclipse/mrs-editor/nightly/
https://github.com/kit-sdq/MRS-Editor
Feedback, suggestions, questions? amine.kechaou@student.kit.edu
09.11.2017
FeedbackConcept DemoIntroduction Future work Conclusion
16. Software Design and Quality Group
Institute for Program Structures and Data Organization
16 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
References
[strittmatter2015] A Modular Reference Structure for Component-based
Architecture Description Languages”. In: 2nd International Workshop on Model-
Driven Engineering for Component-Based Systems (ModComp). CEUR, 2015,
pp. 36–41. url: http://ceur-ws.org/Vol-1463/paper6.pdf
09.11.2017
17. Software Design and Quality Group
Institute for Program Structures and Data Organization
17 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
BACKUP
09.11.2017
18. Software Design and Quality Group
Institute for Program Structures and Data Organization
18 Amine Kechaou, Misha Strittmatter –
A Graphical Approach to Modularization and Layering of Metamodels
Implementation
A Sirius-based graphical editor
The MRS metamodel
defines the basis of the modular reference structure
The Viewpoint Specification Model (VSM)
Java services and external Java actions
09.11.2017