VARiability In safety-critical Embedded Systems ARTEMIS-2011-1 Project Number: 295397 BVR – Better Variability Results by Øystein Haugen (SINTEF) and Ommund Øgård (Autronica)
What do we mean by “variability”? • Product Line variance – often variants of the same software base • Cross-cutting variability – often variability is orthogonal to the software design – variability needs are discovered after the first software design • The variability designer is not always the software designer – division of labor and of competences
The Autronica Product Family AutroMaster Top level graphical presentation system running on Linux PCs 0,1 0,1 0,1 Presentation Presentation Presentation 1..* 1..* 1..* FieldEquipment FireAlarmSystem Smoke detectors, 1 1 1..* 1..* System consisting of manual call points, embedded fire panels sounders, IO units etc. with logics and LCD menu system. AutroSafe Autroprime High end networked Medium range Fire Alarm System for standalone Fire Alarm large demanding System applications
The Market Domains of Autronica
Common Variability Language (CVL) Generic & Focused on DSL CVL Standardized a domain Specification Product line in CVL of model in Variability Base base model any MOF- variabilities compliant model model language resolution Execute CVL models Product models fully described in the base language. Selection of a set of choices in the All regular base variation model Resolved language tools can be applied to these models models
CVL Architecture Configurable Units Variability Interfaces Variation Points VSpecs Constraints Variability Realization Variability Abstraction Resolutions Base Model
The MOF2CVL experiment AutroSafe: eMOF MOF2CVL engine CVL AutroCVL: resolution CVL editor The ICPL Autronica engine hardware
Introducing a simple car configuration Unique choices, Duplicating choices – supplemented by not legal CVL constraints 8
Constraints are about targets • "Parkassist implies hp140 " means that either (Manual,AWD,hp140) or (Automatic,AWD,hp140) are valid • Constraints are about "targets" and not about decisions • Duplicated names on VSpecs indicate that they are decisions on the same target 9
Autronica Variability model (Type/Inst.) "types" "instantiation"
Introducing VSpec Type Note that hp140 refers to any hp140 instance indicating scope/ownership type AWD definition instance of type AWD 12
Cascading effects of VSpec Type VSpec type Targets Configurable Units Variability Interfaces Variation Points VSpecs Constraints Variability Realization Variability Abstraction Resolutions Staged Variation Point Base Model Literals
Realization (additive, nested) Fragment Fragment Substitution Substitution Fragment Substitution 14
Realization (subtractive) Fragment Fragment Substitution? Substitution Fragment This one Substitution does not know which kw300 wheel! kw500 Problem is that these fragment kw300 substitutions do not know the kw500 resolution of the Engine! 15
Realization (staged realization) Staged Staged VariationPoint VariationPoint kw300 kw500 Fragment Fragment Fragment Fragment kw300 Substitution Substitution Substitution Substitution kw500 Here all the information of resolution is 16 available
literal Resolution Literals Strong Engine literal literal Strong:Engine Weak:Engine kW500 = true kW300 = true w1:Engine=Strong w2:Engine=Strong w3:Engine=Weak w4:Engine=Weak Staged Staged VariationPoint VariationPoint kw300 kw500 Fragment Fragment Fragment Fragment kw300 Substitution Substitution Substitution Substitution kw500 17 17 17
New in BVR Note Reference VSpec type Targets Configurable Units Variability Interfaces Variation Points VSpecs Constraints Variability Realization Variability Abstraction Resolutions Staged Variation Point Base Model Literals
Recommend
More recommend