2. What is the subject of this talk?
Architectural Variability in SPLs
– Software Product Lines
– Architecting a single product and an SPL
– Product Line Architecture
– Implementing Variability in Architecture
• Using tactics and design patterns
• Using tactics and deployment options
2
16. Problem Statement
• How to build all the products in the product
line in a cost-effective way ?
– Reducing development effort / Reusing assets
– Reducing the cost of creating a new product
16
17. Each product is derived based on a
configuration of features
Software Product Lines
17
18. Each product is derived based on a
configuration of features
Software Product Lines
18
19. Each product is derived based on a
configuration of features
Software Product Lines
19
Product
Derivation
Process
31. Architectural Tactics
there is a theory for each quality attribute
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
31
32. Architectural Tactics
there is a theory for each quality attribute
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
32
33. Architectural Tactics
there is a theory for each quality attribute
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
33
34. Architectural Tactics
there are concerns for each quality attribute
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
34
To Increase the
number or capacity of
nodes
To Control the arrival
rate of events or the
queue
35. Architectural Tactics
there are tactics for each concern
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
35
36. Architectural Tactics
there are designs to implement these tactics
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
36
37. Architectural Tactics
… using code or deployment options.
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
37
A Software product Line (or a Software product family) represents a set of software products that are made from the same assets, e.g. the same components or the same classes.
An example is Microsoft Office.
A Software product Line (or a Software product family) represents a set of software products that are made from the same assets, e.g. the same components or the same classes.
An example is Microsoft Office.
In an SPL, each product is defined by a configuration.
That is that each product is defined by a subset of the features in a feature model.
Each configuration must be consistent with the constraints and rules defined in the feature model.
In turn, each feature model represents a set of products, i.e. a set of configurations.
Each
In an SPL, each product is defined by a configuration.
That is that each product is defined by a subset of the features in a feature model.
Each configuration must be consistent with the constraints and rules defined in the feature model.
In turn, each feature model represents a set of products, i.e. a set of configurations.
Each
(Options to deploy in cloud computing)
For instance, a Java application may be deployed in a Cloud platform such as Jelastic using multiple options.
An application can be installed using a single tomcat application server, multiple application servers using an sticky session load balancer or an application server cluster with a non-sticky session load balancer