SlideShare a Scribd company logo
1 of 59
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 v4Toby Smith
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and RhapsodyMartin 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.2Corso
 
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 IndustryVedant Borse
 
Modular Enterprise Systems - An Introduction
Modular Enterprise Systems - An IntroductionModular Enterprise Systems - An Introduction
Modular Enterprise Systems - An IntroductionAndreas 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-01Greg Soulsby
 
IBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/SimulinkIBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/Simulinkgjuljo
 
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 workSom Nandivada
 
portfolio of products and processes
portfolio of products and processesportfolio of products and processes
portfolio of products and processesMark Stempski, Ph.D.
 
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 fehlmannIWSM 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
 
Architectures For The Cloud
Architectures For The CloudArchitectures For The Cloud
Architectures For The CloudEberhard 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 ITPutchong Uthayopas
 
WSO2 Stratos 2010 September Workshop
WSO2 Stratos 2010 September WorkshopWSO2 Stratos 2010 September Workshop
WSO2 Stratos 2010 September WorkshopAfkham 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 Systemchennaijp
 
Cloud computing doing more with less
Cloud computing doing more with lessCloud computing doing more with less
Cloud computing doing more with lesstalemadi
 
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 cloudInterxion
 
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 roadmapGabe Akisanmi
 
Concerns with cloud computing
Concerns with cloud computingConcerns with cloud computing
Concerns with cloud computingUlf Mattsson
 
Building Cloud Tools for Netflix
Building Cloud Tools for NetflixBuilding Cloud Tools for Netflix
Building Cloud Tools for NetflixJoe Sondow
 
Saa s multitenant database architecture
Saa s multitenant database architectureSaa s multitenant database architecture
Saa s multitenant database architecturemmubashirkhan
 

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 SwanFNian
 
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 SystemsUXDXConf
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano 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 enterpriseDBmaestro - Database DevOps
 
Cloud designpatterns
Cloud designpatternsCloud designpatterns
Cloud designpatternsVMEngine
 
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 businessYangJerng Hwa
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architectllangit
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architectureIvano Malavolta
 
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-ilAsher Sterkin
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability BpChris 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 WorksKenneth Peeples
 
VSTS Architecture Edition Overview
VSTS Architecture Edition OverviewVSTS Architecture Edition Overview
VSTS Architecture Edition OverviewSteve 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 patternsShimon 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 patternsAsher 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

Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Copilot para Microsoft 365 y Power Platform Copilot
Copilot para Microsoft 365 y Power Platform CopilotCopilot para Microsoft 365 y Power Platform Copilot
Copilot para Microsoft 365 y Power Platform CopilotEdgard Alejos
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 

Recently uploaded (20)

Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Copilot para Microsoft 365 y Power Platform Copilot
Copilot para Microsoft 365 y Power Platform CopilotCopilot para Microsoft 365 y Power Platform Copilot
Copilot para Microsoft 365 y Power Platform Copilot
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 

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