SlideShare a Scribd company logo
Supporting Architectural Variability
in Software Product Lines
Jaime Chavarriaga,
ja.chavarriaga908@uniandes.edu.co
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
Software Product Lines:
a short review
e.g. Software Product Lines
MS Office
4
e.g. Software Product Lines
MS Office
5
Feature Models / Configuration
‱ C1 = { Word, Excel, Powerpoint, OneNote}
‱ C2 = { Word, Excel, Powerpoint, OneNote , Access}
‱ C3 = { Word, Excel, Powerpoint, OneNote , Access, Publisher}
‱ C4 = { Word, Excel, Powerpoint, OneNote, Outlook}
‱ C5 = { Word, Excel, Powerpoint, OneNote , Access, Outlook}
‱ C6 = { Word, Excel, Powerpoint, OneNote , Access, Publisher, Outlook}
6
Feature Models / Configuration
‱ C1 = { Word, Excel, Powerpoint, OneNote}
‱ C2 = { Word, Excel, Powerpoint, OneNote , Access}
‱ C3 = { Word, Excel, Powerpoint, OneNote , Access, Publisher}
‱ C4 = { Word, Excel, Powerpoint, OneNote, Outlook}
‱ C5 = { Word, Excel, Powerpoint, OneNote , Access, Outlook}
‱ C6 = { Word, Excel, Powerpoint, OneNote , Access, Publisher, Outlook}
7
Commonalities Variabilities
e.g. Software Product Lines
Song Stores
8
e.g. Software Product Lines
Song Stores
9
Search
Functionality
e.g. Software Product Lines
Song Stores
10
Catalog
e.g. Software Product Lines
Song Stores
11
Social
Networks
e.g. Software Product Lines
Song Stores
12
Shopping Cart
e.g. Software Product Lines
Song Stores
13
Videos and
News
Software Product Lines
Song Stores
14
SPL Engineering:
a short review
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
Each product is derived based on a
configuration of features
Software Product Lines
17
Each product is derived based on a
configuration of features
Software Product Lines
18
Each product is derived based on a
configuration of features
Software Product Lines
19
Product
Derivation
Process
Software Product Lines
Each product is derived using shared assets
Assets
Product
Derivation
Process
Product Derivation
21
Product Derivation
22
Product Derivation
23
Product Line Architecture
Product Line Architecture (PLA)
‱ A shared PLA for all the products
– PLA = architectural design for all the products
+ orthogonal variability
25
Product Line Architecture
26
Social
Network
Twitter
V
Facebook
V
[0..2]
VP
Shopping
Cart
Shopping Cart
V
VP
Product Line Architecture
27
Shopping
Cart
Public Cart
V
For
Members
V
VP
Quality Attributes
and Architectural Tactics
Architectural Tactics
‱ e.g. For Performance (Bass et al.)
Architectural Tactics
How to achieve a quality attribute ?
30
Architectural Tactics
there is a theory for each quality attribute
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
31
Architectural Tactics
there is a theory for each quality attribute
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
32
Architectural Tactics
there is a theory for each quality attribute
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
33
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
Architectural Tactics
there are tactics for each concern
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
35
Architectural Tactics
there are designs to implement these tactics
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
36
Architectural Tactics

 using code or deployment options.
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
37
Implementing Architectural Tactics
using Design Patterns
Variants of Architectural Design
39
As a foundation,
we can use Three layers:
Presentation, Domain
Logic and Presentation
Variants of Architectural Design
40
For Performance,
caching elements to
maintain copies of data
Variants of Architectural Design
41
As a foundation,
we can use Three tiers:
Client, Web and
Database Tier
Variants of Architectural Design
42
For Performance,
application servers allow us to
introduce concurrency
Variants of Architectural Design
43
For Performance,
load balanced servers to maintain
copies of computation
A Feature Model
for Design Alternatives
45
Our Idea
A Configuration of Tactics can be used to derive
the Architectural Design of a product
46
Feature Solution Graph (FS-Graphs)
forces
prohibits
suggests
47
Feature Solution Graph (FS-Graphs)
forces
prohibits
suggests
48
Feature Solution Graph (FS-Graphs)
forces
prohibits
suggests
49
Our FS-Graphs
forces
prohibits
suggests
Architectural
Tactics
Design
Alternatives
FM for Architectural Tactics
6 Quality Attributes
79 Architectural Tactics
Bass et al.
Software Architecture in Practice
Addison-Wesley
2013
50
FM for Architectural Tactics
Bass et al.
Software Architecture in Practice
Addison-Wesley
2013
51
(again) A Feature Model
for Design Alternatives
Configure architecture
based on QA-Tactics
‱ Suggests relationships
53
suggests
forces
Configure architecture
based on QA-Tactics
‱ Forces relationships
54
suggests
forces
Configure architecture
based on QA-Tactics
‱ Forces relationships
55
forces
Configure architecture
based on QA-Tactics
‱ Forces relationships
56
forces
Configure architecture
based on QA-Tactics
‱ Prohibits relationships
57
Prohibits
Configure architecture
based on QA-Tactics
‱ Prohibits relationships
58
Prohibits
Implementing Architectural Tactics
using Configuration options
e.g. Cloud Platform
60
e.g. Cloud Platform
61
some Tactics in Cloud Computing
62
some Tactics in Cloud Computing
63
FM for Jelastic Cloud Computing
Quinton et al.
Handling Constraints in Cardinality-Based
Feature Models
INRIA, RR # 8478, 2014
64
FM for Jelastic Cloud Computing
Quinton et al.
Handling Constraints in Cardinality-Based
Feature Models
INRIA, RR # 8478, 2014
65
Jelastic

Session
Server
App Server
Tomcat Glassfish Jetty
HA
requires
Tactics
Performance Availability

forces
TPC LB
forces
prohibits
Passive
Redundancy
Active
Redundancy
Reduce
Overhead
HTTP LB
Load
Balancer
Relating architectural tactics
to configuration options
66
Jelastic

Session
Server
App Server
Tomcat Glassfish Jetty
HA
requires
Tactics
Performance Availability

forces
TPC LB
forces
prohibits
Passive
Redundancy
Active
Redundancy
Reduce
Overhead
HTTP LB
Load
Balancer
Relating architectural tactics
to configuration options
67
Jelastic

Session
Server
App Server
Tomcat Glassfish Jetty
HA
requires
Tactics
Performance Availability

forces
TPC LB
forces
prohibits
Passive
Redundancy
Active
Redundancy
Reduce
Overhead
HTTP LB
Load
Balancer
Relating architectural tactics
to configuration options
68
Questions ?
Jaime Chavarriaga, jchavarr@vub.ac.be
Rubby Casallas, rcasalla@uniandes.edu.co

More Related Content

PDF
Software Product Lines
PPTX
Software Product Lines by Dr. Indika Kumara
PPTX
SW Product Line Engineering
PDF
Software Product Lines
PDF
7 - Architetture Software - Software product line
PPTX
Managing Trade-offs among Architectural Tactics using Feature models and Feat...
PPTX
Architectural Tactics Support in Cloud Computing Providers: The Jelastic Case
PPTX
Using multiple Feature Models to specify configuration options for Electrical...
Software Product Lines
Software Product Lines by Dr. Indika Kumara
SW Product Line Engineering
Software Product Lines
7 - Architetture Software - Software product line
Managing Trade-offs among Architectural Tactics using Feature models and Feat...
Architectural Tactics Support in Cloud Computing Providers: The Jelastic Case
Using multiple Feature Models to specify configuration options for Electrical...

What's hot (19)

PDF
TOGAF Classroom Series - M3 intro-adm
PPTX
Requirements wiederverwenden am Beispiel Jama
PPTX
Sda 6
PDF
Requirements strukturieren und nutzen — Requirements-Praktiken am Beispiel Co...
PPTX
Lecture 4
PDF
Requirements endlich 'richtig': Moderne Requirements-Tools erfolgreich einfĂŒh...
PPTX
Software models
PPTX
Architecture support for component
ZIP
Unified Process
PDF
Requirements flexibel und agil managen am Beispiel Jama Contour
DOCX
What is rad model
 
PPTX
RAD Model
PDF
IBM Rational Developer for System z Quick Start Sales Presentation
PPT
Rup
PPT
Defining and Aligning Requirements using System Architect and DOORS
PPT
SSE Practices Overview
PPT
E3 chap-06
PPTX
Modern Requirements Tools: Advantages & Applications
PDF
Posh Consulting Inc. Overview
TOGAF Classroom Series - M3 intro-adm
Requirements wiederverwenden am Beispiel Jama
Sda 6
Requirements strukturieren und nutzen — Requirements-Praktiken am Beispiel Co...
Lecture 4
Requirements endlich 'richtig': Moderne Requirements-Tools erfolgreich einfĂŒh...
Software models
Architecture support for component
Unified Process
Requirements flexibel und agil managen am Beispiel Jama Contour
What is rad model
 
RAD Model
IBM Rational Developer for System z Quick Start Sales Presentation
Rup
Defining and Aligning Requirements using System Architect and DOORS
SSE Practices Overview
E3 chap-06
Modern Requirements Tools: Advantages & Applications
Posh Consulting Inc. Overview
Ad

Similar to Supporting Architectural Variabiality in Software Product Lines (20)

PDF
Modern development paradigms
PPT
24 dssa and_product_lines
PDF
[2015/2016] Modern development paradigms
PPTX
Software Engineering Architectural Design
PPTX
Software architecture styles families_research_gssi_nov2013
PDF
01 Introduction to SDA 2.pdf software architecture
PPT
02 architectures in_context
PDF
[2016/2017] Modern development paradigms
PPTX
NISI Agile Software Architecture Slide Deck
DOCX
Software architecture Unit 1 notes
PPT
01 the big_idea
PPT
Chapter1
PPT
Software Architecture
PPT
Unit 2
PPTX
Software Product Line
DOC
PPTX
Software Architecture and Design
PDF
Democratising Software Architecture
PDF
Lecture-2-Architectural_Concepts.pdf
PPT
Unit 1
Modern development paradigms
24 dssa and_product_lines
[2015/2016] Modern development paradigms
Software Engineering Architectural Design
Software architecture styles families_research_gssi_nov2013
01 Introduction to SDA 2.pdf software architecture
02 architectures in_context
[2016/2017] Modern development paradigms
NISI Agile Software Architecture Slide Deck
Software architecture Unit 1 notes
01 the big_idea
Chapter1
Software Architecture
Unit 2
Software Product Line
Software Architecture and Design
Democratising Software Architecture
Lecture-2-Architectural_Concepts.pdf
Unit 1
Ad

Recently uploaded (20)

PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
ai tools demonstartion for schools and inter college
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Digital Strategies for Manufacturing Companies
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Introduction to Artificial Intelligence
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
AI in Product Development-omnex systems
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
System and Network Administraation Chapter 3
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
Adobe Illustrator 28.6 Crack My Vision of Vector Design
ai tools demonstartion for schools and inter college
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Odoo Companies in India – Driving Business Transformation.pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Digital Strategies for Manufacturing Companies
Upgrade and Innovation Strategies for SAP ERP Customers
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
How to Migrate SBCGlobal Email to Yahoo Easily
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Design an Analysis of Algorithms I-SECS-1021-03
Introduction to Artificial Intelligence
Internet Downloader Manager (IDM) Crack 6.42 Build 41
AI in Product Development-omnex systems
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
System and Network Administraation Chapter 3
ISO 45001 Occupational Health and Safety Management System
How Creative Agencies Leverage Project Management Software.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development

Supporting Architectural Variabiality in Software Product Lines

Editor's Notes

  • #5: 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.
  • #6: 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.
  • #7: 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
  • #8: 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
  • #21: Feature Oriented Programming Component-based SPLs Model-driven SPLs 

  • #62: (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
  • #65: Numero de opciones Note they are features

  • #66: Numero de opciones Note they are features