This document discusses the promise and challenges of runtime variability in software product lines. It defines key concepts like software product lines, feature modeling, context-awareness, and variability. It explains that runtime variability allows product design choices to be selected by customers at runtime, while design-time variability is managed by developers. The main challenges of runtime variability are representing and modifying variability at runtime, validating configurations through runtime checking, and rebinding systems with minimal disruption when reconfigurations occur. Open and closed variability models differ in whether new variants can be added dynamically. Runtime checking and rebinding help exploit variability and reconnect systems to different configurations. While runtime variability provides flexibility, selecting and activating features at runtime is more complex than design-time reconfiguration.
2. Agenda
• Introdution
• Technology and Design
• Feature Modeling
• Binding Design-Time and Runtime Variability
• The challenges of runtime variability
• Open and closed variability models
• Runtime checking and rebinding
• Conclusion
2
3. Introduction -Definition
• SPLs : Software product lines
• Development style of products - Changes with time
• Individual and Standard software
• Mass Customization- Large scale production of goods tailored
to individual customer’s need
A software product line is a set of software-intensive systems that share a
common, managed set of features satisfying the specific needs of a particular
market segment or mission and that are developed from a common set of
core assets in a prescribed way.
- Software Engineering Institute | Carnegie Mellon
3
4. Introduction -Definition
• FMs(Feature Model) : common approach to
designing products that share a set of common
characteristics or are in the same market segment.
• ex.
4
5. Introduction -Definition
• Context-aware : Including autonomic and ubiquitous
computing systems and software ecosystems
• Ubiquitous : Pervasive Computing
• Proactive/Autonomic Computing
• ex) Service-oriented computing
5
6. Introduction -Definition
• Context-aware / What is Context ?
• Not just “deliver any service at any time, anywhere”,
but rather “delivering the right service at the right
moment”
Louise Barhuus
Department of Design and Use of Information Technology
The IT University of Copenhagen
“An example of a piece of relevant context information is the
most common question posed when communicating on
mobile phones: ‘Where are you?’”
6
9. Technology and Design
• Binding Design-Time and Runtime Variability
• Runtime variability : Those product design choices
visible to customers and system users, who can
select among available configurable options.
• Design-time variability : hidden to the user and
managed by the product’s developers, who may
decide, for cost or other reasons, to activate certain
design options in a specific variant.
9
10. Technology and Design
• Variability …Differences among products in PL
• Variation Point … A point where / A variation can
occur
… Must be bound for each product
… Bind when?
… Bind how?
10
11. Technology and Design
• The challenges of runtime variability
• contemporary variability models face three main
challenges:
1. representing runtime variability, modifying variation points in existing and
new software units during system execution, and automating system
reconfiguration
2. automating runtime validation and checking reconfigured feature models to
maintain system consistency and stability
3. automating deployment and rebinding of reconfigured products at runtime
with minimal interruption.
11
13. Technology and Design
• Open and closed variability models
• Variability model : add, remove, modify variants,
variation points
• Software implementing the new variant must be
added to the system
Add : mom : IMmonitoring
13
14. Technology and Design
• Runtime checking and rebinding
• Runtime rebinding mechanisms exploit variability,
and configurable dynamic libraries reconnect the
system or part of it to a different target or
configuration.
14
15. Conclusion
• Runtime checking and rebinding
• Runtime variability offers a good choice for many
systems that experience dynamic change in their
properties and context.
• Selecting and activating features at runtime is far
more complicated than reconfiguration.
• Automating decision making in FMs would go a long
way toward achieving DSPLs.
15