The e Hi High-Level el Variability Language: e: an ontological - - PowerPoint PPT Presentation
The e Hi High-Level el Variability Language: e: an ontological - - PowerPoint PPT Presentation
The e Hi High-Level el Variability Language: e: an ontological approach Angela Villota, Ral Mazo and Camille Salinesi Context Differences Style: orthogonal Targets Structure Way to be used Similarities Syntax
Context
Differences
- Style: orthogonal
- Targets
- Structure
- Way to be used
Similarities
- Syntax
- Semantics
Context
Translational Semantics
Map models in propositional formulas or constraint satisfaction problems to perform reasoning tasks.
Constraints
Why don’t we use a constraint-based language to model variability?
High-Level Constraint Language
- Djebbi et al. (2009)
- Mazo et al. (2011)
- Dumitrescu et al. (2014)
- Muñoz et al. (2015)
- Villota et al. (2018)
Context
REFAS: variability, goals, soft-goals, claims Constraint graphs Feature models
The Ontological Path
- Comparison with other PLMs languages.
- User experience.
- A more formal approach?
Ontological approach
- To evaluate the expressiveness of the intermediate language
- To conceptualize and structure knowledge about variability modeling
- To define variability constructs and language characteristics
Legend
Asadi's et al. ontology Knowledge sources Completeness and clarity criteria Theory of ontological expressiveness Variability Modeling glossary HLVL Ontological analysis
1
Conceptualization
2
Refinement and synthesis
3
Process input/
- utput
Can we model variability comprehensively using HLCL?
V
V1: Medium- class car
VP Mandatory Optional V Variant Mandatory Optional [min, max]
Alternative
Requires Excludes VP
VP
VP1: Type
- f vehicle
VP
VP2: Activation
VP VP3:
Confort functions
VP
VP4: Other signs
VP
VP5: Prohibition signs
V
V2: Upper- class car
V
V3: Small truck(3, 5t)
V
V4: Big truck(7, 5t) 1, 1
V
V5: Switchable
V
V6: Durable 1, 1
V
V7: No stopping warning
V
V8: Overspeed warning
V
V11: No vehicles
V
V9: Road w/right
- f way start
V
V12: No cars
V
V10: City limit
MAXWhat to buy? (name: scope; expected val 1:1): {"assemble yourself", "complete suite"}) Which tools? (name: tools; expected val 1:3): {"CW", "DK", "PK"}) Include glossary? (name: glossary; expected val: bool) Default resolution? (name: resolution; expected val 1:1): {"800x600", }) Width? (name: width; expected val: number)
- Decision effect
Validity Cond.
- Visibility Cond.
- Decision
Parking Assistant System Processor Memory
Name: size Domain: integers Values: [2, 4, 8, 16, 32] Name: cores Domain: integers Value: 1..7
Excludes Requires Mandatory Optional OR
Alternative
feature Attribute
Speed sensor Sensors Position sensor Feedback Visual Audio
[1, 2]
Vibration
Variability unit Variability relation Variant
Feature-oriented Decision-oriented VP-oriented Constraint-oriented
Variability modeling languages
not completely different, not completely the same
Va Variability co concepts
The High-Level Variability Language
- Rich textual language to model variability.
- Syntax that resembles programming languages, to make it human
readable
- HLVL is a language capable of supporting concepts of many variability
- languages. Why just features?
Would you use it?
- Would you leave your modeling tools for an HLVL-tool?
The High-Level Variability Language
Payment E-shop Customer type Connection Insecure Secure PayPal Card Gift Credit Regular Sporadic Constraints Regular => Customer profile ~(Insecure /\ Credit)
Name: confidentiality Domain: integers Value: 5 Name: confidentiality Domain: integers Value: 3..5
Excludes Requires Mandatory Optional OR
Alternative
feature Attribute
Debit AppServer Implementation Machines
[1, 5] [2, 10] [0, 1]
The High-Level Variability Language
V
V1: Medium- class car
VP Mandatory Optional V Variant Mandatory Optional [min, max]
Alternative
Requires Excludes VP
VP
VP1: Type
- f vehicle
VP
VP2: Activation
VP VP3:
Confort functions
VP
VP4: Other signs
VP
VP5: Prohibition signs
V
V2: Upper- class car
V
V3: Small truck(3, 5t)
V
V4: Big truck(7, 5t) 1, 1
V
V5: Switchable
V
V6: Durable 1, 1
V
V7: No stopping warning
V
V8: Overspeed warning
V
V11: No vehicles
V
V9: Road w/right
- f way start
V
V12: No cars
V
V10: City limit
MAXThe High-Level Variability Language
What to buy? (name: scope; expected val 1:1): {"assemble yourself", "complete suite"}) Which tools? (name: tools; expected val 1:3): {"CW", "DK", "PK"}) Include glossary? (name: glossary; expected val: bool) Default resolution? (name: resolution; expected val 1:1): {"800x600", }) Width? (name: width; expected val: number)
- Decision effect
Validity Cond.
- Visibility Cond.
- Decision
What’s next?
Domain engineers model variability using their preferred language/tool 2 Then, models are transformed to produce their HLVL representation
model mobilePhone elements: boolean calls boolean GPS boolean screen boolean basicScreen boolean hrScreen boolean camera relations: R0: coreElements(calls, screen) R1: mutex(GPS, basicScreen) R2: implies(camera, hrScreen)
HLVL
The transformation process is shorter using our HLVL variability modelling editor. 3 Variability models represented in HLVL are ready for the reasoning process H L H L V L V L 1 1 2 3 4 HLVL models are transformed into constraint programs in HLCL 5 Models and reasoning questions are processed to choose the best solving tool and algorithm for answering each question HL HLCL H L H L V L V L 4 5 6 6 The solving tool is executed, the output is processed, and the questions about the variability model are answered.
HLCL
% Autogenerated code from % the Coffee framework % Variables from elements defs. var 0..1: calls; var 0..1: GPS; var 0..1: screen; var 0..1: basicScreen; var 0..1: hrScreen; var 0..1: camera; % Variables and constraints constraint calls = 1; constraint screen = 1; constraint GPS + basicScreen <1; constraint hrScreen < camera; % Solving parameters solve satisfy;