ist-33710 vml* – a family of languages for variability management in software product lines...
TRANSCRIPT
![Page 1: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/1.jpg)
IST-33710
VML* – A Family of Languages for Variability Management in Software Product Lines
Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez, Awais Rashid, Lidia Fuentes, Ana
Moreira, João Araújo, Uirá Kulesza
October 05, 2009
![Page 2: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/2.jpg)
IST-33710
2
uc Use Case Mo...
Heater
Thermostat
Inhabitant
Heating
Adjust Heater Value
WindowsManagement
Open and Close Windows
Open and Close Windows Manually
Notification
Notify using TouchScreen
Send Security Notification«extend»
Variability ManagementA Mapping Problem
?
SmartHome
Adjustment And Control
Device-AdjustmentAnd Control
Room AccessControl
Devices
act Core Activ ity Model - Adjust Heater Value
IncreaseTemperature
DecreaseTemperature
MaintainTemperature
Send command totemperature controller
Set desiredtemperature
Check current roomtemperature
Start heater Start AC
PackageHierarchyclass [ ]
SmartHeaterManagement
InitialModel
WindowManagement SecurityHeaterManagement
<<merge>> <<merge>><<merge>>
<<merge>><<merge>>
Component Instance Model
Security[ComponentTypes]class [ ]
<<component>>Gateway
actuators sensors
<<component>>CameraMng
data
<<component>>GlassBrakeSensorMng
data
<<component>>SirenMng
request
<<component>>AlarmLightMng
requestIAlarmLightMng
INotifiyIntrusion
ISiren
![Page 3: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/3.jpg)
IST-33710
3
Previous Approaches
Model-Transformations, AOM-based approaches
Feature Tagging
Complete power and flexibility of model-transformations
Power reduced to negative variability using markup of model elements
Accidental complexity of model transformations and metamodels
Very simple and easy-to-understand specifications
No SPL-specific infrastructure support SPL-specific tool support easily provided (e.g., FeatureMapper)
Need for an approach that combines the flexibility of model transformations with the simplicity of generic mappings.
![Page 4: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/4.jpg)
IST-33710
4
An initial solution: VML4Arch
0102030405060708091011121314
import features <"/SmartHome.fmp">;import core <"/SmartHome.uml">;...variant for FingerprintScanner {
connect("FingerprintReader", "LockControlMng", "IAccess");
connect("FingerprintReader", "LockControlMng", "IRegister");
connect("FingerprintAuth", "LockControlMng", "IRegister"); connect("LockControlMng", "FingerprintAuth", "IVerify");} // Fingerprint scanner
variant for not (FingerprintScanner) {remove("Fingerprint.*");
} // not FingerprintScanner
Variants group modifications required on feature selection
Actions provide simple vocabulary for expressing modifications
Feature expressions provide pointcuts into feature models
Pointcuts provide access to target model elements
![Page 5: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/5.jpg)
IST-33710
5
Pointcuts in VML4Arch
SmartHome
FingerPrintScanner
Device-AdjustmentAnd Control
Room AccessControl
Devices
FingerPrintReader
FingerPrintAuth
DeviceMng
01020304
variant for not (and (FingerprintScanner,RoomAccessControl)) {
remove("Fingerprint.*");}
Requires Redevelopment for every new target modelling language Cost Error proneness
![Page 6: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/6.jpg)
IST-33710
6
VML* – A Family of Languages
![Page 7: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/7.jpg)
IST-33710
7
VML* Architecture (1)
01020304050607080910111213141516171819202122
vml instance vml4arch {features { metamodel "/bin/fmp.ecore“function "getAllFeatures"
}
target model {metamodel "UML2"type "uml::Package“ function "dereferenceElement"
}
actions: connect {params "List[uml::Component]"
"List[uml::Component]" "uml::Interface"
}remove {params “List[uml::ModelElement]”
}...
23242526272829303132333435363738
aspects: transformation {features {
type "String“ function "getAllSelectedFeatures"
}
connect { function “connectComponents"
}remove {
function “removeElement"}...
}}
![Page 8: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/8.jpg)
IST-33710
8
class Class Mo...
TargetModelImport
ActionDescriptorLanguageInstanceModelVariabilityModelImport
EvaluationAspect
TracingAspect TransformationAspect ActionTransformation
ConfigurationImport
1
*
*
1
1
*
1
VML* Architecture (2) class Class Mo...
TargetModelImport
ActionDescriptorLanguageInstanceModelVariabilityModelImport
EvaluationAspect
TracingAspect TransformationAspect ActionTransformation
ConfigurationImport
1
*
*
1
1
*
1
010203040506070809101112131415161718192021222324
vml instance vml4arch {features {
metamodel "/bin/fmp.ecore“function "getAllFeatures"
}
target model {metamodel "UML2"type "uml::Package“ function "dereferenceElement"
}
bundles: "unl.vml4req", "ca.uwaterloo.gp.fmp", ...
extensions: "unl::vml4req::library::umlUtil“
actions: connect {
params "List[uml::Component]" "List[uml::Component]" "uml::Interface"
}
252627282930313233343536373839404142434445
remove {params “List[uml::ModelElement]”
}...
aspects: transformation {
features { type "String“ function "getAllSelectedFeatures"
}
connect { function “connectComponents"
}remove {
function “removeElement"}...
}}
<<instance of>> Generate
• Grammar and Metamodel• Editor• Compiler• Evaluation Engine
Demo
![Page 9: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/9.jpg)
IST-33710
9
VML* Languages Built
Language Mapping Comments
VML4Arch Feature Models Component Models
Base for VML* Family
VML4RE Feature Models Use Cases Activity Models
Base for VML* Family
VML4SAP Feature Models SAP View Models Other SAP Models
“Initial overhead for first language”“Ease of reuse for following languages”“Set of concepts sufficient for the task”
VML4OAW Feature Models oAW workflows
(realisation ongoing)“Reduces expertise to xTend”“Action granularity issue”
![Page 10: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/10.jpg)
IST-33710
10
Conclusions
Model-Transformations, AOM-based approaches
Feature Tagging VML*
Complete power and flexibility of model-transformations
Power reduced to negative variability using markup of model elements
All variability approaches supported
Accidental complexity of model transformations and metamodels
Very simple and easy-to-understand specifications
VML* languages use concepts familiar to SPL engineers
No SPL-specific infrastructure support
SPL-specific tool support easily provided (e.g., FeatureMapper)
Product-derivation and tracing support generated for each language
A comparative study with FeatureMapper has been submitted to Transactions on Aspect-Oriented Software Development.
![Page 11: IST-33710 VML* – A Family of Languages for Variability Management in Software Product Lines Steffen Zschaler, Pablo Sánchez, João Santos, Mauricio Alférez,](https://reader036.vdocuments.us/reader036/viewer/2022072006/56649d195503460f949eeb54/html5/thumbnails/11.jpg)
IST-33710
QUESTIONS?
11