TRADE-OFF-ORIENTED
DEVELOPMENT
Making Quality AttributeTrade-offs First-Class
Tobias DÜRSCHMID, Eunsuk KANG, David GARLAN
Carnegie Mellon University, Pittsburgh, USA
Institute for Software Research
Alice is a software engineer at a
banking company
2
Data
Client Application Server Application
User Interface
Alice
It can’t be that hard
to develop a banking
application, can it?
Alice
MakingTrade-offs for Client-Server
Systems is Hard
3
• Signing data to ensure data integrity while sacrificing performance?
• Ping / echo or Heartbeat to ensure availability while consuming more
bandwidth?
• Compression of data stream to increase the bandwidth while adding a small
performance overhead at both components?
Data
Client Application Server Application
PerformancePerformance
Data Integrity
Bandwidth
Availability
User Interface
There are many implementations for each
feature varying in QAs
4
Encrypted Pipe
Compressed
Pipe Signed Pipe
Symmetrically
Encrypted Pipe
Encrypted &
Signed Pipe
Deflated Pipe
Motivation
• Hard to evaluate implementations based on quality attribute (QA) trade-offs
• Decisions in practice might be sub-optimal, because of lacking deliberateness
• Trade-offs between quality attributes are implicit in the code
• Lack of traceability of quality attribute requirements
When requirements change, quality attribute trade-off implementations are hard
to change
5
Hypothesis
Making quality attribute trade-offs first-class
results in better traceability and changeability of
quality attribute requirements.
6
: Pipe Contract
Banking Application
q[] : Quality Attributes
e.g. [Security: High,
Performance: Low]
Design Decision Library
1: findSatisfying(c, q[])
2: i
3: init(sink, source)
i : Compressed Pipe
Implementation
: Signed Pipe
Implementation
c : Context
Message
Dependency
Generalization
: Control
: Implementation Evaluator <Pipe>
: Encrypted Pipe
Implementation
Trade-off-oriented Development (ToD)
7
contract = functional interface of implementations
varying in quality attributes.
context = information about environment (e.g. the hardware)
Use Case Scenario:Automatic Upgrading
• Domain experts create
implementations
• Adding better
implementations
results in replacement of
existing implementation
• => improving
software quality attributes
8
: Pipe Contract
Design Decision Library
i : Compressed Pipe
Implementation
: Signed Pipe
Implementation
Message
Dependency
Generalization
: Encrypted Pipe
Implementation
b : Optimized Pipe
Implementation
Crosscutting QualityAttribute Scopes
9
Send message
Display webpage
Contract Use
Legend
Module
Quality Attribute
Scope
Store data
Client Server Database
Security
Alice
Send message
Store data
Send message
Performance
Adjusting QATrade-offs is Easy
10
Send message
Display webpage Legend
Store data
Client Server Database
Security
Alice
Send message
Store data
Only insensitive data
involved
Send message
Performance
Contract Use
Module
Quality Attribute
Scope
Adjusting QATrade-offs is Easy
11
Send message
Display webpage
Contract Use
Legend
Module
Quality Attribute
Scope
Store data
Client Server Database
Security
Alice
Send message
Store data
Send message
PerformancePerformance
Challenges and FutureWork
• How to evaluate quality attributes (semi) automatically?
• How to specify quality attribute trade-offs?
• How to optimize the quality attributes globally?
12
Conclusion
Making quality attribute trade-offs first-class results in
better traceability and changeability of quality requirements.
Trade-off-oriented Development automates the selection of reusable
implementations based on declarative quality attribute trade-offs.
13
Send message
Display webpage
Store data
Client Server Database
Security
Send message Store data
Only insensitive data
involved
Send message
Performance
Pipe Contract
Design Decision Library
Compressed Pipe
Implementation
Signed Pipe
Implementation
Implementation Selector <Pipe>
Encrypted Pipe
Implementation

Trade-off-Oriented Development - Making Quality Attribute Trade-offs First-Class

  • 1.
    TRADE-OFF-ORIENTED DEVELOPMENT Making Quality AttributeTrade-offsFirst-Class Tobias DÜRSCHMID, Eunsuk KANG, David GARLAN Carnegie Mellon University, Pittsburgh, USA Institute for Software Research
  • 2.
    Alice is asoftware engineer at a banking company 2 Data Client Application Server Application User Interface Alice It can’t be that hard to develop a banking application, can it?
  • 3.
    Alice MakingTrade-offs for Client-Server Systemsis Hard 3 • Signing data to ensure data integrity while sacrificing performance? • Ping / echo or Heartbeat to ensure availability while consuming more bandwidth? • Compression of data stream to increase the bandwidth while adding a small performance overhead at both components? Data Client Application Server Application PerformancePerformance Data Integrity Bandwidth Availability User Interface
  • 4.
    There are manyimplementations for each feature varying in QAs 4 Encrypted Pipe Compressed Pipe Signed Pipe Symmetrically Encrypted Pipe Encrypted & Signed Pipe Deflated Pipe
  • 5.
    Motivation • Hard toevaluate implementations based on quality attribute (QA) trade-offs • Decisions in practice might be sub-optimal, because of lacking deliberateness • Trade-offs between quality attributes are implicit in the code • Lack of traceability of quality attribute requirements When requirements change, quality attribute trade-off implementations are hard to change 5
  • 6.
    Hypothesis Making quality attributetrade-offs first-class results in better traceability and changeability of quality attribute requirements. 6
  • 7.
    : Pipe Contract BankingApplication q[] : Quality Attributes e.g. [Security: High, Performance: Low] Design Decision Library 1: findSatisfying(c, q[]) 2: i 3: init(sink, source) i : Compressed Pipe Implementation : Signed Pipe Implementation c : Context Message Dependency Generalization : Control : Implementation Evaluator <Pipe> : Encrypted Pipe Implementation Trade-off-oriented Development (ToD) 7 contract = functional interface of implementations varying in quality attributes. context = information about environment (e.g. the hardware)
  • 8.
    Use Case Scenario:AutomaticUpgrading • Domain experts create implementations • Adding better implementations results in replacement of existing implementation • => improving software quality attributes 8 : Pipe Contract Design Decision Library i : Compressed Pipe Implementation : Signed Pipe Implementation Message Dependency Generalization : Encrypted Pipe Implementation b : Optimized Pipe Implementation
  • 9.
    Crosscutting QualityAttribute Scopes 9 Sendmessage Display webpage Contract Use Legend Module Quality Attribute Scope Store data Client Server Database Security Alice Send message Store data Send message Performance
  • 10.
    Adjusting QATrade-offs isEasy 10 Send message Display webpage Legend Store data Client Server Database Security Alice Send message Store data Only insensitive data involved Send message Performance Contract Use Module Quality Attribute Scope
  • 11.
    Adjusting QATrade-offs isEasy 11 Send message Display webpage Contract Use Legend Module Quality Attribute Scope Store data Client Server Database Security Alice Send message Store data Send message PerformancePerformance
  • 12.
    Challenges and FutureWork •How to evaluate quality attributes (semi) automatically? • How to specify quality attribute trade-offs? • How to optimize the quality attributes globally? 12
  • 13.
    Conclusion Making quality attributetrade-offs first-class results in better traceability and changeability of quality requirements. Trade-off-oriented Development automates the selection of reusable implementations based on declarative quality attribute trade-offs. 13 Send message Display webpage Store data Client Server Database Security Send message Store data Only insensitive data involved Send message Performance Pipe Contract Design Decision Library Compressed Pipe Implementation Signed Pipe Implementation Implementation Selector <Pipe> Encrypted Pipe Implementation

Editor's Notes

  • #5 Define contract
  • #8  take more time (what is i? What is ToD) We automate the choice of implementation
  • #9 It is also good for other things
  • #10 Maybe cut here