Autonomic Software Product Lines (ASPL)
Nadeem Abbas, Jesper Andersson, Welf Löwe
Linnaeus University, Sweden
Monday, August 23, 2010
1st International Workshop on Variability in Software Product Line Architectures, ECSA 2010.
Introduction
Universal Business Goals– High Quality– Time-to-Market– Low Cost
Strategic Reuse of Resources– Requirements– Domain Knowledge– Design– Code/Components
Product Line Engineering
Software Product Lines
Dynamic SPLs
Changes & Product Line Evolutions– Dynamic Changes
• Goals• Requirements• Context/Environment• Components
– New Products
Dynamic SPLs
Software Variability
variability is the ability of a software to be efficiently extended, changed, or configured for use in a specific context
We abstract variability as:– Variants and– Variation Points
Variant Selection/Binding depends on system goals and context
Fig 1. Variability: Variants and Variation Points
Q.1: Stakeholders?
Software Producers/Manufacturers
Software Architects
Developers
Users
Q. 2: Architectural Models?
Component and Connector Model
Goal Model
Environment Model
Q. 3 Variability and Views?
“Separation of Concerns”
Variability View on Component-Connector Model
Variability Management - MAPE-K
To manage variability in a product line, product line components are modeled as an Autonomic Elements.
Autonomic elements implement a MAPE-K control loop Fig 2. Autonomic Element
Autonomic SPLs in Practice
There are 3-Key steps to put Autonomic SPLs in action:
1. System Design
2. Offline Training
3. Dynamic Product Instantiation
Offline Training
Training data provides artificial call context.
Each variant is invoked against with all specific context attributes.
Variant’s performance is analyzed against the given goals
Best-fit variants are tagged in the Dispatch Table.
Fig 3. Offline Training with AEs
Product Instantiation - Online Learning
Dynamic Product composition by selecting best-fit variants from the Dispatch Table, based on the system context and goals.
Online learning addresses issues of context and core asset evolution
Fig 4. Autonomic SPL Instance
Performance Evaluation
Fig 5. Autonomic Matrix Multiplication Product Line vs Simple Multiplication Product
Performance Evaluation
Fig 6. Self-Optimization of the SPL with On-line Learning
Conclusion
Promising results with short term variability management in SPLs.
Autonomic Elements powered with online learning results in an effective “Variability Management” mechanism in Dynamic Software Product Lines.
Combining Autonomic Computing and SPL research is useful
Future Work
More on Evaluation/Testing, particularly in Open World
Incorporate other learning strategies
ASPL against other classic SPL & DSPL approaches