Introduction to Domain Engineering Dr Michał Antkiewicz mantkiew@gsd.uwaterloo.ca...

Preview:

Citation preview

1

Introduction to Domain EngineeringDr Michał Antkiewicz

mantkiew@gsd.uwaterloo.ca

http://gsd.uwaterloo.ca http://necsis.ca

2

About me…

• “researcher”• “mentor”• “consultant”• “entrepreneur”

http://gsd.uwaterloo.ca/mantkiew http://ca.linkedin.com/in/mantkiewicz

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”

4

What is Domain Engineering?

5

Domain Engineering is “Development for Reuse”

Vs. “Application Engineering” which is

“Development with Reuse”

6

Reusable Software

• Source code– White-box reuse

• Configurable software– Parameters, configuration files

• Traditional– Libraries, components, frameworks, platforms

• Model-driven– Product-lines– DSLs

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

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

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

10

Domain Engineering

Application Engineering

CustomerRequirements

BusinessStrategy

Application Engineering

Application Engineering

Application Engineering

Retroactive Strategy

11

Domain Engineering

Application Engineering

Proactive Strategy

12

Application Engineering

Domain Engineering

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”

14Credit: Andrzej Wąsowski, used with permission

15Credit: Andrzej Wąsowski, used with permission

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

17

Part IFeature-Oriented Domain Modeling

18Credit: Andrzej Wąsowski, used with permission

19

Go to Interactive Tutorial Part Ihttp://t3-necsis.cs.uwaterloo.ca:8098/

20

Part IIDomain Concept Modeling

21

Go to Interactive Tutorial Part IIhttp://t3-necsis.cs.uwaterloo.ca:8098/

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”

23

24

Part IIIApplication Configuration

25

Go to Interactive Tutorial Part IIIhttp://t3-necsis.cs.uwaterloo.ca:8098/

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

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