![Page 1: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/1.jpg)
1
Introduction to Domain EngineeringDr Michał Antkiewicz
http://gsd.uwaterloo.ca http://necsis.ca
![Page 2: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/2.jpg)
2
About me…
• “researcher”• “mentor”• “consultant”• “entrepreneur”
http://gsd.uwaterloo.ca/mantkiew http://ca.linkedin.com/in/mantkiewicz
![Page 3: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/3.jpg)
3
• 2003 – MSc: “Modeling of Embedded Systems using UML-RT, SDL, and Simulink/Stateflow”
• 2004 – Feature Modeling Plugin (271)• 2005 – Feature-based Model Templates (448)• 2008 – PhD: “Engineering of Framework-Specific
Modeling Languages” + TSE, JASE (86, 49)• 2008 – Design Space of Heterogeneous Model
Transformations (56)• 2011 – Logical Structure Extraction from SRD, Clafer • 2013 – Clafer Formal Semantics, Partial Instances• 2014 – Example-Driven Modeling, Virtual Platform• Currently Clafer Tools + applications• “Haskell Enthusiast”
![Page 4: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/4.jpg)
4
What is Domain Engineering?
![Page 5: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/5.jpg)
5
Domain Engineering is “Development for Reuse”
Vs. “Application Engineering” which is
“Development with Reuse”
![Page 6: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/6.jpg)
6
Reusable Software
• Source code– White-box reuse
• Configurable software– Parameters, configuration files
• Traditional– Libraries, components, frameworks, platforms
• Model-driven– Product-lines– DSLs
![Page 7: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/7.jpg)
7
copy
Clone & own
import
Componentlibrary
config
Supersetplatform
+ easy to use
- no sharing(features & fixes)
+ some sharing
- little reuse
+ substantial reuse
- complex customization
+ substantial reuse
- evolution through platform
Credit: Krzysztof Czarnecki, used with permission
Frameworklibrary
complete
![Page 8: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/8.jpg)
8
During Domain Engineering…
1. Understand the scope– kind of applications that will be developed
2. Understand the– “commonality” - what’s shared by all applications– “variability “ - what’s different
3. Develop reusable assets– different approaches and technologies
![Page 9: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/9.jpg)
9
During Application Engineering…
1. Understand the requirements– what the specific application is
2. Use the reusable assets– what can be reused– what has to be developed
3. Feed back to domain engineering– adjust scope, variability, and contribute assets
![Page 10: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/10.jpg)
10
Domain Engineering
Application Engineering
CustomerRequirements
BusinessStrategy
![Page 11: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/11.jpg)
Application Engineering
Application Engineering
Application Engineering
Retroactive Strategy
11
Domain Engineering
Application Engineering
![Page 12: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/12.jpg)
Proactive Strategy
12
Application Engineering
Domain Engineering
![Page 13: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/13.jpg)
13
Spectrum of Configurability
parameters,
config fi
les
feature m
odel
with co
nstrain
ts
feature m
odel
with re
ferences
class
model
(DSL
)
configuration
construction
frameworks
single
product co
de
Key: “stay as far to the left as possible”- Markus Völter in “MDSD”
![Page 14: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/14.jpg)
14Credit: Andrzej Wąsowski, used with permission
![Page 15: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/15.jpg)
15Credit: Andrzej Wąsowski, used with permission
![Page 16: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/16.jpg)
16
What we are going to do
• Example Domain: “Traffic Lights”– Feature-oriented commonality/variability analysis – Domain concept analysis – Application Configuration
• Apply “Example-Driven Modeling”• Use Clafer & Web Tools– Tutorial style– Hands-on– Small exercises
![Page 17: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/17.jpg)
17
Part IFeature-Oriented Domain Modeling
![Page 18: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/18.jpg)
18Credit: Andrzej Wąsowski, used with permission
![Page 19: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/19.jpg)
19
Go to Interactive Tutorial Part Ihttp://t3-necsis.cs.uwaterloo.ca:8098/
![Page 20: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/20.jpg)
20
Part IIDomain Concept Modeling
![Page 21: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/21.jpg)
21
Go to Interactive Tutorial Part IIhttp://t3-necsis.cs.uwaterloo.ca:8098/
![Page 22: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/22.jpg)
22
Future: Behavioral Clafer
• LTL formulas– Static constraints are “always globally”
• Syntactic sugar– “between” A “and” B– “after” A “until” B
• State transitions– Async: “A --> B”, Sync: “A ==> B”, Next: “A ##> B”– With guards: “A –[G]-> B”, “A =[G]=> B”, “A #[G]#>
B”
![Page 23: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/23.jpg)
23
![Page 24: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/24.jpg)
24
Part IIIApplication Configuration
![Page 25: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/25.jpg)
25
Go to Interactive Tutorial Part IIIhttp://t3-necsis.cs.uwaterloo.ca:8098/
![Page 26: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/26.jpg)
26
Conclusions
• Formally modeled – Domain features– Domain concepts– Application configurations
• Used a reasoner to get insights• Used examples for elicitation & validation• We laid a foundation for further development
![Page 27: Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca mantkiew@gsd.uwaterloo.ca 1 ://necsis.ca](https://reader037.vdocuments.us/reader037/viewer/2022103015/551c48d5550346a66a8b4800/html5/thumbnails/27.jpg)
27
Key Clafer-Related ReferencesK. Bąk, et al., “Feature and Meta-Models in Clafer: Mixed, Specialized, and Coupled”, SLE’10J. Liang, “Solving Clafer Models with Choco”, GSD Lab, 12/2012.R. Olaechea, et al., “Modeling and Multi-Objective Optimization of Quality Attributes in Variability-Rich Software”, NFPinDSML’12J. Liang, “Correcting Clafer Models with Automated Analysis”, GSD Lab, 04/2012.A. Murashkin, et al., “Visualization and Exploration of Optimal Variants in Product Line Engineering”, SPLC’13K. Bąk, et al., “Partial Instances via Subclassing”, SLE’13K. Bąk, et al., “Example-Driven Modeling. Model = Abstractions + Examples”, NIER, ICSE’13M. Antkiewicz, et al., “Example-Driven Modeling Using Clafer”, MDEBE’13M. Antkiewicz, et al., “Clafer Tools for Product Line Engineering”, SPLC’13.K. Bąk, “Modeling and Analysis of Software Product Line Variability in Clafer”, PhD Thesis, University of Waterloo, 11/2013D. Zayan, et al., “Effects of Using Examples on Structural Model Comprehension“, ICSE'14J. Guo, et al., “Scaling Exact Multi-Objective Combinatorial Optimization by Parallelization”, ASE’14