SlideShare a Scribd company logo
Managing Trade-offs among
Architectural Tactics
using Feature Models
and Feature-Solution Graphs
Jaime Chavarriaga, jchavarr@vub.ac.be
Carlos Noguera, cnogera@vub.ac.be
Rubby Casallas, rcasalla@uniandes.edu.o
Viviane Jonckers, vejoncke@vub.ac.be
Managing Trade-offs among
Architectural Tactics
using Feature Models
and Feature-Solution Graphs
Architectural Tactics
How to achieve a quality attribute ?
Architectural Tactics
there are tactics for each quality attribute
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
Architectural Tactics
there are designs to implement these tactics
Kim et al.
Quality-driven architecture
development using architectural
tactics
JSS, 82 (2009)., 1121-1231
Architectural Tactics
… using code or deployment options.
Architectural Tactics (Deployment)
Managing Trade-offs among
Architectural Tactics
using Feature Models
and Feature-Solution Graphs
Trade-offs
Considering multiple quality attributes…
Trade-offs
… an architect may select multiple tactics and
design alternatives
Trade-offs
Conflicts may occur: two design alternatives
cannot be selected at the same time
These options
cannot be selected
at the same time !!
Trade-offs
Trade-off point
(conflict)
Trade-off decision
(decisions to change)
Trade-off Management
Software architects must deal with trade-offs
⓪ Decide about tactics and design alternatives
❶ Detect conflicts among design alternatives
❷ Determine which tactics and qualities are involved
❸ Decide how to solve the conflict
13
Managing Trade-offs among
Architectural Tactics
using Feature Models
and Feature-Solution Graphs
Our Proposal
❶ Feature models to represent variability in:
• Architectural Tactics related to QAs,
• Platform design alternatives / configuration options
❷ Feature Solution Graphs to represent:
• Relationships between these feature models
❸ Automated tasks to help architect’s work
Managing Trade-offs among
Architectural Tactics
using Feature Models
and Feature-Solution Graphs
Feature Models
r
a b
f2f1 f3 f4 f5
Or
Group
Alternative
Group
Optional
Feature
Mandatory
Feature
Configuration
r
a b
f2f1 f3 f4 f5
Or
Group
Alternative
Group
Optional
Feature
Mandatory
Feature
C1 = { r, a, f1, b, f3 } valid
Configuration
r
a b
f2f1 f3 f4 f5
Or
Group
Alternative
Group
Optional
Feature
Mandatory
Feature
C2 = { r, b, f3 } invalid
Valid Feature Models
Set of valid
configurations=
𝑓𝑚 is valid if 𝑓 𝑚 ≠ ∅
FM for Architectural Tactics
Tactics
Performance Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
FM for Architectural Alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Managing Trade-offs among
Architectural Tactics
using Feature Models
and Feature-Solution Graphs
Feature Solution Graph (FS-Graphs)
forces
prohibits
suggests
Feature Solution Graph (FS-Graphs)
forces
prohibits
suggests
Feature Solution Graph (FS-Graphs)
forces
prohibits
suggests
Feature Solution Graph (FS-Graphs)
forces
prohibits
suggests
𝑓𝑠𝑔 = < 𝑓𝑚 𝑠 , 𝑓𝑚 𝑡, 𝐹𝑂𝑅, 𝑃𝑅𝑂, 𝑆𝑈𝐺 >
Our FS-Graphs
forces
prohibits
suggests
Architectural
Tactics
Design/Deploy
Alternatives
Example relationships
29
Architectural Tactic Design Alternatives
Maintain copies of data Suggests result cache
Forces entity cache
Maintain copies of
computation
Forces multi-node web tier
Introduce concurrency Forces optimistic locking
Reduce overhead Prohibits pessimistic locking
Suggests sticky-session load balancer
Active redundancy Forces normal load balancer
Transactions Prohibits optimistic locking
Prohibits session server
Example FS-Graphs
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
suggests
suggests
Example FS-Graphs
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
forces
Example FS-Graphs
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
prohibits
Example FS-Graphs
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
Managing Trade-offs among
Architectural Tactics
using Feature Models
and Feature-Solution Graphs
Trade-off Management
Software architects must deal with trade-offs
⓪ Decide about tactics and design alternatives
❶ Detect conflicts among design alternatives
❷ Determine which tactics and qualities are involved
❸ Decide how to solve the conflict
Propagate Decisions
⓪ Decide about tactics and design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
Propagate Decisions
⓪ Decide about tactics and design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
Propagate Decisions
⓪ Decide about tactics and design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
Propagate Decisions
⓪ Decide about tactics and design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
Propagate Decisions
⓪ Decide about tactics and design alternatives
– Feature-Architecture Relationships [Janota:]
– Multi-view Feature Models [Hubaux:2010]
– Constraint propagation on Configuration Links [Rein-Jury:2013]
– Decision propagation on FS-Graphs [Chavarriaga:2014]
Propagate Decisions
⓪ Decide about tactics and design alternatives
forces
prohibits
suggests
forces
prohibits
suggests
𝑓𝑠𝑔′ 𝐴𝑅2𝐷𝐸 = 𝒂𝒑𝒑𝒍𝒚𝑭𝑺𝑮 𝑐 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸
𝑓𝑚′ 𝐷𝐸 = 𝒔𝒑𝒆𝒄𝒊𝒂𝒍𝒊𝒛𝒆𝑭𝑺𝑮 𝑐 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸
Detect Conflicts
❶ Detect conflicts among design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
Detect Conflicts
❶ Detect conflicts among design alternatives
Architectural Alternatives
Deployment View
Web Tier Additional
Tier
Cache
Service
Layer
Business
Logic Layer
LockingResult
Cache
Optimistic Pessimistic
Logic View
Session
Server
Single Node Multi Node
Sticky Load
Balancer
Normal Load
Balancer
requires
Tactics
Performance
Availability
Active
Redundancy
Transactions
Reduce
Overhead
Copies of
Data
Copies of
Computation
Introduce
Concurrency
Detect Conflicts
❶ Detect conflicts among design alternatives
forces
prohibits
suggests
forces
prohibits
suggests
𝑓𝑠𝑔′ 𝐴𝑅2𝐷𝐸 = 𝒂𝒑𝒑𝒍𝒚𝑭𝑺𝑮 ( 𝑐 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 )
𝑓𝑚 𝐷𝐸 ∈ 𝑓𝑠𝑔′
𝐴𝑅2𝐷𝐸
, There is a conflict if 𝑓 𝑚 𝐷𝐸 = ∅
i.e, if 𝒔𝒑𝒆𝒄𝒊𝒂𝒍𝒊𝒛𝒆𝑭𝑺𝑮 𝐶𝐴𝑅 , 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 ) = ∅
Explain Conflicts
❷ Determine which tactics and qualities are involved
forces
prohibits
suggests
forces
prohibits
suggests
If there is a conflict caused by 𝐶𝐴𝑅
𝐶′ 𝐴𝑅 ⊂ 𝐶𝐴𝑅 is an explanation if
𝒔𝒑𝒆𝒄𝒊𝒂𝒍𝒊𝒛𝒆𝑭𝑺𝑮 𝐶𝐴𝑅 − 𝐶′ 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 ) ≠ ∅
Explain Conflicts
❷ Determine which tactics and qualities are involved
– Hitting Set Directed Acyclic Graph [Reiter:1987]
– Diagnosis Theory [Reiter:1987]
– QuickXplain [Junker:2004]
– FastDiag [Felferning:2012]
– Propagating Decisions [Chavarriaga:2014]
Managing Trade-offs among
Architectural Tactics
using Feature Models
and Feature-Solution Graphs
FM for Architectural Tactics
FM for Architectural Tactics
6 Quality Attributes
79 Architectural Tactics
Bass et al.
Software Architecture in Practice
Addison-Wesley
2014
FM for Jelastic Cloud Computing
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
Relating architectural tactics
to configuration options
52
Possible Combination of Tactics
Availability Performance Security Testability
Availability 289 277,151 54,527 867
Performance 959 91,105 2.877
Security 95 285
Testability 3
Possible Combination of Tactics
Availability Performance Security Testability
Availability 289
25 valid
264 confl
277,151
8 valid
277,143 confl
54,527
4,487 valid
50,040 confl
867
75 valid
792 confl
Performance 959
31 valid
928 confl
91,105
2,945 valid
88,160 confl
2.877
93 valid
2784 confl
Security 95
95 valid
0 confl
285
285 valid
0 confl
Testability 3
3 valid
0 confl
detected Conflicts
Availability Performance Security Testability
Availability
91.3% 99.9% 91.7% 91.3%
Performance
96.7% 96.7% 96.7%
Security
0% 0%
Testability
0%
Managing Trade-offs among
Architectural Tactics
using Feature Models
and Feature-Solution Graphs
Conclusions
• We have presented our approach
– To model architectural tactics and their implementation
– To detect trade-off points
– To explain trade-off solutions
• We have illustrated our approach using architectural
tactics and design alternatives for database-based
web applications.
Conclusions
• Limitations:
– Our approach only detects conflicts caused by constraints
defined in the models.
• Conflicts not related with constraints in the model cannot be detected
– Only considers quality attributes that can be realized using
architectural tactics
• It does not consider attributes such as development and deployment
costs.
• Current/Future work:
– Support for configuration processes with multiple vires and
multiple stakeholders.
– Specially those where stakeholders decide at the same time.
Questions ?
Jaime Chavarriaga, jchavarr@vub.ac.be
Carlos Noguera, cnogera@vub.ac.be
Rubby Casallas, rcasalla@uniandes.edu.o
Viviane Jonckers, vejoncke@vub.ac.be

More Related Content

What's hot

Using Composite Feature Models to Support Agile Software Product Line Evoluti...
Using Composite Feature Models to Support Agile Software Product Line Evoluti...Using Composite Feature Models to Support Agile Software Product Line Evoluti...
Using Composite Feature Models to Support Agile Software Product Line Evoluti...
Simon Urli
 
Toby Smith CV v4
Toby Smith CV v4Toby Smith CV v4
Toby Smith CV v4
Toby Smith
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
Martin Owen
 
What's new in System Architect 11.4.2
What's new in System Architect 11.4.2What's new in System Architect 11.4.2
What's new in System Architect 11.4.2
Corso
 
Strategic Product Development and Cost Estimates for Automotive Industry
Strategic Product Development and Cost Estimates for Automotive IndustryStrategic Product Development and Cost Estimates for Automotive Industry
Strategic Product Development and Cost Estimates for Automotive Industry
Vedant Borse
 
Modular Enterprise Systems - An Introduction
Modular Enterprise Systems - An IntroductionModular Enterprise Systems - An Introduction
Modular Enterprise Systems - An Introduction
Andreas Weidinger
 
Model Drivers: The testing profile and its opportunity 2013-09-01
Model Drivers: The testing profile and its opportunity 2013-09-01Model Drivers: The testing profile and its opportunity 2013-09-01
Model Drivers: The testing profile and its opportunity 2013-09-01
Greg Soulsby
 
Resume2015
Resume2015Resume2015
IBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/SimulinkIBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/Simulink
gjuljo
 
A mathematical approach to sap functional work
A mathematical approach to sap functional workA mathematical approach to sap functional work
A mathematical approach to sap functional work
Som Nandivada
 
portfolio of products and processes
portfolio of products and processesportfolio of products and processes
portfolio of products and processes
Mark Stempski, Ph.D.
 
CV_Shigeyuki_Kobayashi
CV_Shigeyuki_KobayashiCV_Shigeyuki_Kobayashi
CV_Shigeyuki_Kobayashi
Shigeyuki Kobayashi
 
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...
IBM Rational software
 
Automatic measurements of use cases with cosmic thomas fehlmann
Automatic measurements of use cases with cosmic   thomas fehlmannAutomatic measurements of use cases with cosmic   thomas fehlmann
Automatic measurements of use cases with cosmic thomas fehlmann
IWSM Mensura
 

What's hot (14)

Using Composite Feature Models to Support Agile Software Product Line Evoluti...
Using Composite Feature Models to Support Agile Software Product Line Evoluti...Using Composite Feature Models to Support Agile Software Product Line Evoluti...
Using Composite Feature Models to Support Agile Software Product Line Evoluti...
 
Toby Smith CV v4
Toby Smith CV v4Toby Smith CV v4
Toby Smith CV v4
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
 
What's new in System Architect 11.4.2
What's new in System Architect 11.4.2What's new in System Architect 11.4.2
What's new in System Architect 11.4.2
 
Strategic Product Development and Cost Estimates for Automotive Industry
Strategic Product Development and Cost Estimates for Automotive IndustryStrategic Product Development and Cost Estimates for Automotive Industry
Strategic Product Development and Cost Estimates for Automotive Industry
 
Modular Enterprise Systems - An Introduction
Modular Enterprise Systems - An IntroductionModular Enterprise Systems - An Introduction
Modular Enterprise Systems - An Introduction
 
Model Drivers: The testing profile and its opportunity 2013-09-01
Model Drivers: The testing profile and its opportunity 2013-09-01Model Drivers: The testing profile and its opportunity 2013-09-01
Model Drivers: The testing profile and its opportunity 2013-09-01
 
Resume2015
Resume2015Resume2015
Resume2015
 
IBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/SimulinkIBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/Simulink
 
A mathematical approach to sap functional work
A mathematical approach to sap functional workA mathematical approach to sap functional work
A mathematical approach to sap functional work
 
portfolio of products and processes
portfolio of products and processesportfolio of products and processes
portfolio of products and processes
 
CV_Shigeyuki_Kobayashi
CV_Shigeyuki_KobayashiCV_Shigeyuki_Kobayashi
CV_Shigeyuki_Kobayashi
 
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...
 
Automatic measurements of use cases with cosmic thomas fehlmann
Automatic measurements of use cases with cosmic   thomas fehlmannAutomatic measurements of use cases with cosmic   thomas fehlmann
Automatic measurements of use cases with cosmic thomas fehlmann
 

Viewers also liked

Software architecture quality attributes & Trade-offs
Software architecture quality attributes & Trade-offs Software architecture quality attributes & Trade-offs
Software architecture quality attributes & Trade-offs
Asanka Dilruk
 
Cloud101-Introduction to cloud
Cloud101-Introduction to cloud Cloud101-Introduction to cloud
Cloud101-Introduction to cloud
Ranjan Ghosh
 
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...
ijgca
 
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...
Michael zur Muehlen
 
Cloud roadmap
Cloud roadmapCloud roadmap
Cloud roadmap
David Gentle
 
Architectures For The Cloud
Architectures For The CloudArchitectures For The Cloud
Architectures For The Cloud
Eberhard Wolff
 
Cloud Computing: A New Trend in IT
Cloud Computing: A New Trend in ITCloud Computing: A New Trend in IT
Cloud Computing: A New Trend in IT
Putchong Uthayopas
 
WSO2 Stratos 2010 September Workshop
WSO2 Stratos 2010 September WorkshopWSO2 Stratos 2010 September Workshop
WSO2 Stratos 2010 September Workshop
Afkham Azeez
 
JPJ1410 PACK: Prediction-Based Cloud Bandwidth and Cost Reduction System
JPJ1410  PACK: Prediction-Based Cloud Bandwidth and Cost Reduction SystemJPJ1410  PACK: Prediction-Based Cloud Bandwidth and Cost Reduction System
JPJ1410 PACK: Prediction-Based Cloud Bandwidth and Cost Reduction System
chennaijp
 
Cloud computing doing more with less
Cloud computing doing more with lessCloud computing doing more with less
Cloud computing doing more with less
talemadi
 
Managing A Cloud Environment: How To Get Started And Which Way To Go
Managing A Cloud Environment: How To Get Started And Which Way To Go Managing A Cloud Environment: How To Get Started And Which Way To Go
Managing A Cloud Environment: How To Get Started And Which Way To Go
talemadi
 
Is your infrastructure holding you back?
Is your infrastructure holding you back?Is your infrastructure holding you back?
Is your infrastructure holding you back?
Gabe Akisanmi
 
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
Abbie Barbir
 
How to move to the cloud
How to move to the cloudHow to move to the cloud
How to move to the cloud
Interxion
 
The shortest path to cloud success - your roadmap
The shortest path to cloud success - your roadmapThe shortest path to cloud success - your roadmap
The shortest path to cloud success - your roadmap
Gabe Akisanmi
 
Concerns with cloud computing
Concerns with cloud computingConcerns with cloud computing
Concerns with cloud computing
Ulf Mattsson
 
Building Cloud Tools for Netflix
Building Cloud Tools for NetflixBuilding Cloud Tools for Netflix
Building Cloud Tools for Netflix
Joe Sondow
 
Multi-tenancy in the cloud
Multi-tenancy in the cloudMulti-tenancy in the cloud
Multi-tenancy in the cloud
Inphina Technologies
 
Saa s multitenant database architecture
Saa s multitenant database architectureSaa s multitenant database architecture
Saa s multitenant database architecture
mmubashirkhan
 
Multi cloud PaaS
Multi cloud PaaSMulti cloud PaaS
Multi cloud PaaS
Fawaz Fernand PARAISO
 

Viewers also liked (20)

Software architecture quality attributes & Trade-offs
Software architecture quality attributes & Trade-offs Software architecture quality attributes & Trade-offs
Software architecture quality attributes & Trade-offs
 
Cloud101-Introduction to cloud
Cloud101-Introduction to cloud Cloud101-Introduction to cloud
Cloud101-Introduction to cloud
 
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...
PERFORMANCE FACTORS OF CLOUD COMPUTING DATA CENTERS USING [(M/G/1) : (∞/GDM O...
 
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...
Making Things Simpler: How Primitives Help Integrate BPM and Enterprise Archi...
 
Cloud roadmap
Cloud roadmapCloud roadmap
Cloud roadmap
 
Architectures For The Cloud
Architectures For The CloudArchitectures For The Cloud
Architectures For The Cloud
 
Cloud Computing: A New Trend in IT
Cloud Computing: A New Trend in ITCloud Computing: A New Trend in IT
Cloud Computing: A New Trend in IT
 
WSO2 Stratos 2010 September Workshop
WSO2 Stratos 2010 September WorkshopWSO2 Stratos 2010 September Workshop
WSO2 Stratos 2010 September Workshop
 
JPJ1410 PACK: Prediction-Based Cloud Bandwidth and Cost Reduction System
JPJ1410  PACK: Prediction-Based Cloud Bandwidth and Cost Reduction SystemJPJ1410  PACK: Prediction-Based Cloud Bandwidth and Cost Reduction System
JPJ1410 PACK: Prediction-Based Cloud Bandwidth and Cost Reduction System
 
Cloud computing doing more with less
Cloud computing doing more with lessCloud computing doing more with less
Cloud computing doing more with less
 
Managing A Cloud Environment: How To Get Started And Which Way To Go
Managing A Cloud Environment: How To Get Started And Which Way To Go Managing A Cloud Environment: How To Get Started And Which Way To Go
Managing A Cloud Environment: How To Get Started And Which Way To Go
 
Is your infrastructure holding you back?
Is your infrastructure holding you back?Is your infrastructure holding you back?
Is your infrastructure holding you back?
 
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
Comparative Analysis of SOA and Cloud Computing Architectures using Fact Base...
 
How to move to the cloud
How to move to the cloudHow to move to the cloud
How to move to the cloud
 
The shortest path to cloud success - your roadmap
The shortest path to cloud success - your roadmapThe shortest path to cloud success - your roadmap
The shortest path to cloud success - your roadmap
 
Concerns with cloud computing
Concerns with cloud computingConcerns with cloud computing
Concerns with cloud computing
 
Building Cloud Tools for Netflix
Building Cloud Tools for NetflixBuilding Cloud Tools for Netflix
Building Cloud Tools for Netflix
 
Multi-tenancy in the cloud
Multi-tenancy in the cloudMulti-tenancy in the cloud
Multi-tenancy in the cloud
 
Saa s multitenant database architecture
Saa s multitenant database architectureSaa s multitenant database architecture
Saa s multitenant database architecture
 
Multi cloud PaaS
Multi cloud PaaSMulti cloud PaaS
Multi cloud PaaS
 

Similar to Managing Trade-offs among Architectural Tactics using Feature models and Feature Solution Graphs

Ogf20 Gmb Chris Swan
Ogf20 Gmb Chris SwanOgf20 Gmb Chris Swan
Ogf20 Gmb Chris Swan
FNian
 
MS Cloud Day - Cloud Computing – A Crash Course for Architects
MS Cloud Day - Cloud Computing – A Crash Course for Architects MS Cloud Day - Cloud Computing – A Crash Course for Architects
MS Cloud Day - Cloud Computing – A Crash Course for Architects
Spiffy
 
Building Sustainable Design Systems
Building Sustainable Design SystemsBuilding Sustainable Design Systems
Building Sustainable Design Systems
UXDXConf
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
Ivano Malavolta
 
Webinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseWebinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterprise
DBmaestro - Database DevOps
 
Cloud designpatterns
Cloud designpatternsCloud designpatterns
Cloud designpatterns
VMEngine
 
Architecturing the software stack at a small business
Architecturing the software stack at a small businessArchitecturing the software stack at a small business
Architecturing the software stack at a small business
YangJerng Hwa
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architect
llangit
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
Ivano Malavolta
 
Day1
Day1Day1
Application Migrations at Scale
Application Migrations at ScaleApplication Migrations at Scale
Application Migrations at Scale
Amazon Web Services
 
Shaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-ilShaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-il
Asher Sterkin
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability Bp
Chris Adkin
 
Service Lifecycle Management with Fuse Service Works
Service Lifecycle Management with Fuse Service WorksService Lifecycle Management with Fuse Service Works
Service Lifecycle Management with Fuse Service Works
Kenneth Peeples
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
Châu Thanh Chương
 
Day5
Day5Day5
VSTS Architecture Edition Overview
VSTS Architecture Edition OverviewVSTS Architecture Edition Overview
VSTS Architecture Edition Overview
Steve Lange
 
An LSP infrastructure to build EMF language servers for Web-deployable model ...
An LSP infrastructure to build EMF language servers for Web-deployable model ...An LSP infrastructure to build EMF language servers for Web-deployable model ...
An LSP infrastructure to build EMF language servers for Web-deployable model ...
Roberto Rodriguez-Echeverria
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
Shimon Tolts
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
Asher Sterkin
 

Similar to Managing Trade-offs among Architectural Tactics using Feature models and Feature Solution Graphs (20)

Ogf20 Gmb Chris Swan
Ogf20 Gmb Chris SwanOgf20 Gmb Chris Swan
Ogf20 Gmb Chris Swan
 
MS Cloud Day - Cloud Computing – A Crash Course for Architects
MS Cloud Day - Cloud Computing – A Crash Course for Architects MS Cloud Day - Cloud Computing – A Crash Course for Architects
MS Cloud Day - Cloud Computing – A Crash Course for Architects
 
Building Sustainable Design Systems
Building Sustainable Design SystemsBuilding Sustainable Design Systems
Building Sustainable Design Systems
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Webinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseWebinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterprise
 
Cloud designpatterns
Cloud designpatternsCloud designpatterns
Cloud designpatterns
 
Architecturing the software stack at a small business
Architecturing the software stack at a small businessArchitecturing the software stack at a small business
Architecturing the software stack at a small business
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architect
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Day1
Day1Day1
Day1
 
Application Migrations at Scale
Application Migrations at ScaleApplication Migrations at Scale
Application Migrations at Scale
 
Shaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-ilShaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-il
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability Bp
 
Service Lifecycle Management with Fuse Service Works
Service Lifecycle Management with Fuse Service WorksService Lifecycle Management with Fuse Service Works
Service Lifecycle Management with Fuse Service Works
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Day5
Day5Day5
Day5
 
VSTS Architecture Edition Overview
VSTS Architecture Edition OverviewVSTS Architecture Edition Overview
VSTS Architecture Edition Overview
 
An LSP infrastructure to build EMF language servers for Web-deployable model ...
An LSP infrastructure to build EMF language servers for Web-deployable model ...An LSP infrastructure to build EMF language servers for Web-deployable model ...
An LSP infrastructure to build EMF language servers for Web-deployable model ...
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
 

Recently uploaded

Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
Envertis Software Solutions
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
ervikas4
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 

Recently uploaded (20)

Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 

Managing Trade-offs among Architectural Tactics using Feature models and Feature Solution Graphs

  • 1. Managing Trade-offs among Architectural Tactics using Feature Models and Feature-Solution Graphs Jaime Chavarriaga, jchavarr@vub.ac.be Carlos Noguera, cnogera@vub.ac.be Rubby Casallas, rcasalla@uniandes.edu.o Viviane Jonckers, vejoncke@vub.ac.be
  • 2. Managing Trade-offs among Architectural Tactics using Feature Models and Feature-Solution Graphs
  • 3. Architectural Tactics How to achieve a quality attribute ?
  • 4. Architectural Tactics there are tactics for each quality attribute Bass et al. Software Architecture in Practice Addison-Wesley 2014
  • 5. Architectural Tactics there are designs to implement these tactics Kim et al. Quality-driven architecture development using architectural tactics JSS, 82 (2009)., 1121-1231
  • 6. Architectural Tactics … using code or deployment options.
  • 8. Managing Trade-offs among Architectural Tactics using Feature Models and Feature-Solution Graphs
  • 10. Trade-offs … an architect may select multiple tactics and design alternatives
  • 11. Trade-offs Conflicts may occur: two design alternatives cannot be selected at the same time These options cannot be selected at the same time !!
  • 13. Trade-off Management Software architects must deal with trade-offs ⓪ Decide about tactics and design alternatives ❶ Detect conflicts among design alternatives ❷ Determine which tactics and qualities are involved ❸ Decide how to solve the conflict 13
  • 14. Managing Trade-offs among Architectural Tactics using Feature Models and Feature-Solution Graphs
  • 15. Our Proposal ❶ Feature models to represent variability in: • Architectural Tactics related to QAs, • Platform design alternatives / configuration options ❷ Feature Solution Graphs to represent: • Relationships between these feature models ❸ Automated tasks to help architect’s work
  • 16. Managing Trade-offs among Architectural Tactics using Feature Models and Feature-Solution Graphs
  • 17. Feature Models r a b f2f1 f3 f4 f5 Or Group Alternative Group Optional Feature Mandatory Feature
  • 18. Configuration r a b f2f1 f3 f4 f5 Or Group Alternative Group Optional Feature Mandatory Feature C1 = { r, a, f1, b, f3 } valid
  • 19. Configuration r a b f2f1 f3 f4 f5 Or Group Alternative Group Optional Feature Mandatory Feature C2 = { r, b, f3 } invalid
  • 20. Valid Feature Models Set of valid configurations= 𝑓𝑚 is valid if 𝑓 𝑚 ≠ ∅
  • 21. FM for Architectural Tactics Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency
  • 22. FM for Architectural Alternatives Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires
  • 23. Managing Trade-offs among Architectural Tactics using Feature Models and Feature-Solution Graphs
  • 24. Feature Solution Graph (FS-Graphs) forces prohibits suggests
  • 25. Feature Solution Graph (FS-Graphs) forces prohibits suggests
  • 26. Feature Solution Graph (FS-Graphs) forces prohibits suggests
  • 27. Feature Solution Graph (FS-Graphs) forces prohibits suggests 𝑓𝑠𝑔 = < 𝑓𝑚 𝑠 , 𝑓𝑚 𝑡, 𝐹𝑂𝑅, 𝑃𝑅𝑂, 𝑆𝑈𝐺 >
  • 29. Example relationships 29 Architectural Tactic Design Alternatives Maintain copies of data Suggests result cache Forces entity cache Maintain copies of computation Forces multi-node web tier Introduce concurrency Forces optimistic locking Reduce overhead Prohibits pessimistic locking Suggests sticky-session load balancer Active redundancy Forces normal load balancer Transactions Prohibits optimistic locking Prohibits session server
  • 30. Example FS-Graphs Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency suggests suggests
  • 31. Example FS-Graphs Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency forces
  • 32. Example FS-Graphs Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency prohibits
  • 33. Example FS-Graphs Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency
  • 34. Managing Trade-offs among Architectural Tactics using Feature Models and Feature-Solution Graphs
  • 35. Trade-off Management Software architects must deal with trade-offs ⓪ Decide about tactics and design alternatives ❶ Detect conflicts among design alternatives ❷ Determine which tactics and qualities are involved ❸ Decide how to solve the conflict
  • 36. Propagate Decisions ⓪ Decide about tactics and design alternatives Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency
  • 37. Propagate Decisions ⓪ Decide about tactics and design alternatives Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency
  • 38. Propagate Decisions ⓪ Decide about tactics and design alternatives Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency
  • 39. Propagate Decisions ⓪ Decide about tactics and design alternatives Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency
  • 40. Propagate Decisions ⓪ Decide about tactics and design alternatives – Feature-Architecture Relationships [Janota:] – Multi-view Feature Models [Hubaux:2010] – Constraint propagation on Configuration Links [Rein-Jury:2013] – Decision propagation on FS-Graphs [Chavarriaga:2014]
  • 41. Propagate Decisions ⓪ Decide about tactics and design alternatives forces prohibits suggests forces prohibits suggests 𝑓𝑠𝑔′ 𝐴𝑅2𝐷𝐸 = 𝒂𝒑𝒑𝒍𝒚𝑭𝑺𝑮 𝑐 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 𝑓𝑚′ 𝐷𝐸 = 𝒔𝒑𝒆𝒄𝒊𝒂𝒍𝒊𝒛𝒆𝑭𝑺𝑮 𝑐 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸
  • 42. Detect Conflicts ❶ Detect conflicts among design alternatives Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency
  • 43. Detect Conflicts ❶ Detect conflicts among design alternatives Architectural Alternatives Deployment View Web Tier Additional Tier Cache Service Layer Business Logic Layer LockingResult Cache Optimistic Pessimistic Logic View Session Server Single Node Multi Node Sticky Load Balancer Normal Load Balancer requires Tactics Performance Availability Active Redundancy Transactions Reduce Overhead Copies of Data Copies of Computation Introduce Concurrency
  • 44. Detect Conflicts ❶ Detect conflicts among design alternatives forces prohibits suggests forces prohibits suggests 𝑓𝑠𝑔′ 𝐴𝑅2𝐷𝐸 = 𝒂𝒑𝒑𝒍𝒚𝑭𝑺𝑮 ( 𝑐 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 ) 𝑓𝑚 𝐷𝐸 ∈ 𝑓𝑠𝑔′ 𝐴𝑅2𝐷𝐸 , There is a conflict if 𝑓 𝑚 𝐷𝐸 = ∅ i.e, if 𝒔𝒑𝒆𝒄𝒊𝒂𝒍𝒊𝒛𝒆𝑭𝑺𝑮 𝐶𝐴𝑅 , 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 ) = ∅
  • 45. Explain Conflicts ❷ Determine which tactics and qualities are involved forces prohibits suggests forces prohibits suggests If there is a conflict caused by 𝐶𝐴𝑅 𝐶′ 𝐴𝑅 ⊂ 𝐶𝐴𝑅 is an explanation if 𝒔𝒑𝒆𝒄𝒊𝒂𝒍𝒊𝒛𝒆𝑭𝑺𝑮 𝐶𝐴𝑅 − 𝐶′ 𝐴𝑅, 𝑓𝑠𝑔 𝐴𝑅2𝐷𝐸 ) ≠ ∅
  • 46. Explain Conflicts ❷ Determine which tactics and qualities are involved – Hitting Set Directed Acyclic Graph [Reiter:1987] – Diagnosis Theory [Reiter:1987] – QuickXplain [Junker:2004] – FastDiag [Felferning:2012] – Propagating Decisions [Chavarriaga:2014]
  • 47. Managing Trade-offs among Architectural Tactics using Feature Models and Feature-Solution Graphs
  • 49. FM for Architectural Tactics 6 Quality Attributes 79 Architectural Tactics Bass et al. Software Architecture in Practice Addison-Wesley 2014
  • 50. FM for Jelastic Cloud Computing
  • 51. 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
  • 52. Relating architectural tactics to configuration options 52
  • 53. Possible Combination of Tactics Availability Performance Security Testability Availability 289 277,151 54,527 867 Performance 959 91,105 2.877 Security 95 285 Testability 3
  • 54. Possible Combination of Tactics Availability Performance Security Testability Availability 289 25 valid 264 confl 277,151 8 valid 277,143 confl 54,527 4,487 valid 50,040 confl 867 75 valid 792 confl Performance 959 31 valid 928 confl 91,105 2,945 valid 88,160 confl 2.877 93 valid 2784 confl Security 95 95 valid 0 confl 285 285 valid 0 confl Testability 3 3 valid 0 confl
  • 55. detected Conflicts Availability Performance Security Testability Availability 91.3% 99.9% 91.7% 91.3% Performance 96.7% 96.7% 96.7% Security 0% 0% Testability 0%
  • 56. Managing Trade-offs among Architectural Tactics using Feature Models and Feature-Solution Graphs
  • 57. Conclusions • We have presented our approach – To model architectural tactics and their implementation – To detect trade-off points – To explain trade-off solutions • We have illustrated our approach using architectural tactics and design alternatives for database-based web applications.
  • 58. Conclusions • Limitations: – Our approach only detects conflicts caused by constraints defined in the models. • Conflicts not related with constraints in the model cannot be detected – Only considers quality attributes that can be realized using architectural tactics • It does not consider attributes such as development and deployment costs. • Current/Future work: – Support for configuration processes with multiple vires and multiple stakeholders. – Specially those where stakeholders decide at the same time.
  • 59. Questions ? Jaime Chavarriaga, jchavarr@vub.ac.be Carlos Noguera, cnogera@vub.ac.be Rubby Casallas, rcasalla@uniandes.edu.o Viviane Jonckers, vejoncke@vub.ac.be

Editor's Notes

  1. Estoy realizando mi investigación doctoral en el contexto de la administración de variabilidad, en particular en el uso de múltiples modelos de features para modelar productos complejos y guíar procesos colaborativos de configuración. Hoy voy a presentar nuestras ideas sobre como aplicar múltiples modelos de features y feature-solution graphs para gestionar trade-offs entre tácticas de arquitectura de software. El manejo de los trade-off es una tarea común en arquitectura de software, y aquí estamos presentando una propuesta para ayudar el trabajo de los arquitectos
  2. En la presentación, primero voy a explicar un poco las tácticas de arquitectura y la ocurrencia de los trade-offs, luego presentaré nuestra propuesta y algunas experiencias sobre su aplicación.
  3. En un producto de software, la arquitectura se define para atender los requerimientos en términos de funcionalidades y de atributos de calidad. Por ejemplo, en un producto determinado, el producto puede tener requerimientos en torno a atributos de calidad como rendimiento, disponibilidad, seguridad o escalabilidad.
  4. En propuestas como el Attribute Driven Design del Software Engineering Institute, los arquitectos toman los requerimientos de atributos de calidad y un conjunto de tácticas de arquitectura para definir la arquitectura del producto. Las tácticas de arquitectura son descripciones de diseños que permiten lograr un atributo de calidad. Por ejemplo, si el arquitecto debe cumplir con requerimientos en torno al rendimiento de la aplicación, puede usar diseños que planteen copias de computación, copias de datos o que reduzcan el overhead o la latencia de los procesos.
  5. Estas tácticas de arquitectura le premiten al arquitecto seleccionar que patrones de diseño incluir en la solución. Por ejemplo, si yo deseo mantener copias de computación puede usar un patrón con delegados de servicio que repartan tareas entre varios hilos o en un pool de objetos. Kim – other authors Quality-driven architecture development using architectural tactics
  6. Igualmente, para el caso de aplicaciones empresariales, estas tácticas también pueden ser implementadas usando patrones o esquemas de despliegue. Por ejemplo, si deseo lograr un mayor rendimiento aplicando la táctica de múltiples copias de computación, puedo usar diferentes opciones de despliegue. However, sometimes missed in the literature, there are other forms to implement architectural tactics. In Enterprise Platforms and Cloud Computing, some tactics can be implemented using deployment options. In these environments, applications run in application servers and middleware with multiple alternatives for configuration.
  7. Por ejemplo, con el fin de mantener copias de computación, el arquitecto de software puede optar por servidores de aplicaciones con un balanceo de carga o servidores de aplicaciones en cluster (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
  8. Cada una de las tácticas se enfoca en un único atributo de calidad. Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad. Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
  9. Por ejemplo, consideremos un caso en donde se desea lograr al tiempo rendimiento y disponibilidad
  10. Es posible que un arquitecto opte, para el rendimiento, por mantener copias de computación usando un balanceador de carga en TCP/IP, que es muy rápido. Por otro lado, el mismo arquitecto, intentando lograr disponibilidad, puede optar por utilizar redundancia activa usando servidores en clusters.
  11. Es posible que un arquitecto opte, para el rendimiento, por mantener copias de computación usando un balanceador de carga en TCP/IP, que es muy rápido. Por otro lado, el mismo arquitecto, intentando lograr disponibilidad, puede optar por utilizar redundancia activa usando servidores en clusters.
  12. Es posible que un arquitecto opte, para el rendimiento, por mantener copias de computación usando un balanceador de carga en TCP/IP, que es muy rápido. Por otro lado, el mismo arquitecto, intentando lograr disponibilidad, puede optar por utilizar redundancia activa usando servidores en clusters.
  13. Cada una de las tácticas se enfoca en un único atributo de calidad. Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad. Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
  14. Feature Models have been used to represent variability in a domain. For instance, to represent which options or configuration elements can be included in an application. Our approach is based on feature models to represent alternatives about the architectural tactics that can be used to achieve a Quality Attribute and the Diverse options to configure Jelastic. We are proposing the use of Feature-Solution graphs to relate the architectural tactics to the jelastic configuration options. We use these graphs to represent how an architectural tactic can be implemented using that configuration options.
  15. Cada una de las tácticas se enfoca en un único atributo de calidad. Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad. Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
  16. Extractos -números, con tamaño
  17. Numero de opciones Note they are features…
  18. Cada una de las tácticas se enfoca en un único atributo de calidad. Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad. Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
  19. Cada una de las tácticas se enfoca en un único atributo de calidad. Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad. Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
  20. Cada una de las tácticas se enfoca en un único atributo de calidad. Una situación de trade-off, de negociación, se da cuando se intentan lograr varios atributos de calidad al tiempo. Puede ocurrir que una decisión que ayude a lograr un atributo de calidad vaya en contra del logro de otro atributo de calidad. Si se tienen dos tácticas o dos patrones de diseño en conflicto. Es necesario que el arquitecto detecte el conflicto y seleccione una de las dos tácticas o patrones. Debe revisar cuál atributo de calidad es más importante o cuál táctica y patrón es más conveniente, seleccionar uno y desechar el otro.
  21. Extractos -números, con tamaño
  22. Extractos -números, con tamaño
  23. Numero de opciones Note they are features…
  24. From 2,147,483,647 combinations of tactics only 210,862,079 results in valid configurations in Jelastic.
  25. Usamos técnicas que estamos desarrollando en nuestor proyecto doctoral
  26. Future work: Recommenders for cloud configuration in Jelastic and other platforms - Tool support for FS-Graphs