More Related Content Similar to How domain specific modeling languages address variability: investigation of 23 cases (20) More from Juha-Pekka Tolvanen (12) How domain specific modeling languages address variability: investigation of 23 cases1. © 2019 MetaCase 1
Juha-Pekka Tolvanen, Steven Kelly
jpt@metacase.com
How Domain-Specific Modeling
Languages Address Variability:
Investigation of 23 cases
2. © 2019 MetaCase 2
Agenda
Introduction
Research question and method
Results
Conclusions and discussion
3. © 2019 MetaCase 3
Languages in product line
development
Domain-Specific Modeling languages are applied in
industry as one technique to speed up development
Language definition consist of:
– Metamodel
– Constraints
– Notation
– Generators
– (Tooling)
4. © 2019 MetaCase 4
Research question
How domain-specific
modeling languages
address variability?
5. © 2019 MetaCase 5
Empirical research method
Analyze created domain-specific languages
– Industrial use
– Cover various kind of product lines
– 23 cases* in total
Main criteria for selection: access to the language
– Language definitions available, applied in tooling
– Verification from language developers
All cases done with MetaEdit+
– Tool does not influence to patterns as both full metamodel-
based and “light” customization (profiles) possible
* Not the same 23 as been reported in 2005 – also newer ones
6. © 2019 MetaCase 6
Domain Targets By Size Use Approach
1 Consumer electronics C, HTML, Docs 1 3 1
2 Industrial automation PLC, GUI, DB schema, net config, deploy 1 165 5 1
3 Enterprise applications C#, DB schema 1 6 1
4 Railway signaling Simulation, XML 1 291 6 1
5 Signal Processing Systems Matlab, simulation, XML 1 4 1
6 Oil drilling Cost calculation, documentation 1 3 1
7 Big data applications Java, JSON, CQL, SPARQL, SQL 2 397 4 1
8 Printing process Ruby, XML, Docs 3 55 4 1
9 System performance Gherkin, HTML, Docs 1 145 3 1
10 Consumer electronics JSON 3 72 2 2
11 Telecom service XML 1 61 2 2
12 Medical XML, audit documents, change history 1 63 1 2
13 High-level synthesis System C 1 450 3 2
14 Radio network TTNC-3, simulation/animation 1 5 2
15 An automotive system System specification 3 62 3 2
16 Database applications Java 3 46 1 2
17 Consumer electronics C, localization, docs 1 403 6 3
18 Automotive architecture Simulink, ISO26262 documents, AUTOSAR 3 652 6 3
19 Telecom C, build automation 2 109 3 3
20 Insurance Cobol, DB schema 3 234 6 4
21 Aerospace C#, XSD, JSON, API 2 121 1 5
22 Automotive ECU Python, JSON, Test document, change history 3 64 5 5
23 Software testing Propriety format of state machines 3 317 6 6
10. © 2019 MetaCase 10
1. Each model and its elements are
for a single variant
“Classical DSL”
No reuse: each variant created and maintained
independently
Clear process and
organizational
structure
11. © 2019 MetaCase 11
2. Reuse of models or model
elements across multiple variants
Language has concepts for reuse
– variant 2 can use parts made for variant 1
Reuse is restricted to the domain concept, e.g. service
Whitebox or blackbox, have access/governance rules
Apply different languages on different levels
Subaction
Variant 1 Variant 2
12. © 2019 MetaCase 12
3. Mark/filter/modify reused models
or elements for variants
Commonly reused models contain variant data
Responsibility over many variants or whole product line
Bottom up Top-down: e.g.
Sporty does not
have Down button
or stopwatch icon
13. © 2019 MetaCase 13
4. Core models and variant models
Core team and variant team
– Both core and variants can co-evolve
Tool and process applied to manage development
Core team Variant team
14. © 2019 MetaCase 14
5. Core models and languages for
restricted variation of core
Language ensures legal variation
– Variation space is limited to specific aspects
Core team Variant team
15. © 2019 MetaCase 15
6. Multilevel: model elements
become language elements
A model made by one team became language for others
– Language supports organizational structure and process
16. © 2019 MetaCase 16
Domain Targets By Size Use Approach
1 Consumer electronics C, HTML, Docs 1 3 1
2 Industrial automation PLC, GUI, DB schema, net config, deploy 1 165 5 1
3 Enterprise applications C#, DB schema 1 6 1
4 Railway signaling Simulation, XML 1 291 6 1
5 Signal Processing Systems Matlab, simulation, XML 1 4 1
6 Oil drilling Cost calculation, documentation 1 3 1
7 Big data applications Java, JSON, CQL, SPARQL, SQL 2 397 4 1
8 Printing process Ruby, XML, Docs 3 55 4 1
9 System performance Gherkin, HTML, Docs 1 145 3 1
10 Consumer electronics JSON 3 72 2 2
11 Telecom service XML 1 61 2 2
12 Medical XML, audit documents, change history 1 63 1 2
13 High-level synthesis System C 1 450 3 2
14 Radio network TTNC-3, simulation/animation 1 5 2
15 An automotive system System specification 3 62 3 2
16 Database applications Java 3 46 1 2
17 Consumer electronics C, localization, docs 1 403 6 3
18 Automotive architecture Simulink, ISO26262 documents, AUTOSAR 3 652 6 3
19 Telecom C, build automation 2 109 3 3
20 Insurance Cobol, DB schema 3 234 6 4
21 Aerospace C#, XSD, JSON, API 2 121 1 5
22 Automotive ECU Python, JSON, Test document, change history 3 64 5 5
23 Software testing Propriety format of state machines 3 317 6 6
17. © 2019 MetaCase 17
Further analysis
Internally developed fell into approaches 1 & 2
– Correlation between increasing explicitness of PL approach
and increasing categories of language creator expertise
R= 0.52, P < 0.01
Sizes of the languages vary considerably: the largest is
14 times the size of the smallest
The largest languages were those that have been
applied for a long time (#17, #18, #20, #4)
– R= 0.6, P < 0.005
No correlation (0.07) was found between Size and
Approach
18. © 2019 MetaCase 18
Conclusions
Identified 6 approaches applied for addressing
variability with domain-specific modeling languages
– 2 common ones
Over half of the languages added further PL support
than plain variant specification
Large difference in size of the languages
– Likely depends on the domain/PL been addressed
Companies create languages mostly internally
Further studies needed with other cases and tools
19. © 2019 MetaCase 19
Thank you!
Questions?
Comments?
Experiences?
Counter arguments?
jpt@metacase.com
Juha-Pekka Tolvanen