SlideShare a Scribd company logo
1 of 58
Evaluating Architectures

Analyzing, Selecting, Making Choices…
              The ATAM




              Shrikant Palkar
Goals for Today

w  High level building /pre-requisite blocks
w  Why Evaluate ? Why Trade-offs ?
w  High level ATAM components

w  Many slides and images from the book
  Evaluating Software Architectures: Methods and Case
  Studies – Paul Clements, Rick Kazman, Mark Klein
Looks Familiar ?

w  Should we use AIX or Linux for SAP ?
w  What should be the system of record for
    customer information?
w  Will Tlogs volume be supported in the new
    POS?
Architecture

w  'The (software) architecture of a program or
    computing system is the structure or
    structures of the system, which comprise
    software components, the externally visible
    properties of those components, and the
    relationships among them.’ Bass, Clements, and Kazman
w  “Not just the What but the Why”
Why is Architecture Important?

w  It is a vehicle for communication among
    stakeholders
w  It is the manifestation of earliest design
    decisions
w  It is a reusable, transferable abstraction of a
    system
Architecture Defines

w  Computation           w  Interaction among
    Components                Components
   n    Clients             n    Subprogram calls
   n    Servers             n    Shared data
   n    Databases           n    Client-server
   n    Filters             n    Piped streams
   n    Layers
Why Evaluate Architectures?

w  Because so much is riding on it !
w  Architecture evaluation is a cheap way to
    avoid disaster
w  Architectures allow or preclude nearly all of
    a system’s quality attributes
Architectural Decisions
            & Quality Attributes
w  The degree to which a system meets it’s quality
    attribute requirements is dependent on architectural
    decisions
w  A change in structure improving one quality often
    affects other qualities
w  These product qualities should be designed into the
    architecture
w  Architecture can only permit, not guarantee, any
    quality attribute
Architectural Decisions

solution
Architecture Descriptions
Description

w  Architectures are typically drawn as box and
    arrow diagrams
w  Understood mostly by intuition, context,
    explanation
w  Many different aspects need to be captured in
    the diagrams – structure, control, location of
    parts, relationships …
Is one picture enough?

w  Building Architects – multiple views
w  Address needs of multiple stakeholders
w  Consistency needs to be maintained
Views

w  A view is a representation of a set of system
    elements and the relations associated with
    them
w  Not all system elements, some of them
w  A view binds an element type and relation
    type of interest, and illustrates them
Common Views

w Structural , Conceptual
w Runtime, Process
w Code, Development,
w Physical, Hardware, Deployment
w Use case, Design
The 4+1 View
                Logical                  Implementation
                 View                         View

Analysts/
                     End-user                           Programmers
Designers
Structure            Functionality              Software management
                                     Use-Case
                                       View
                Process                  Deployment
                  View                      View
System Integrators                              System Engineering
Performance                                        System topology
Scalability                                     Delivery, installation
Throughput                                           communication
Views and Documents

w  Views give us our basic principle of
    architecture documentation:
w  Documenting a software architecture is a
    matter of documenting the relevant views,
    and then adding information that applies
    to more than one view
Which views are relevant?
w Depends on:
      l  who the stakeholders are
      l  how they will use the documentation

w Three primary uses for architecture
documentation:
n  Education -- introducing people to the project
n  Communication -- among stakeholders

n  Analysis -- assuring quality attributes
What views are available?

w An architect must consider the system in three
ways:
n  How is it structured as a set of code units?
n  How is it structured as a set of elements that have
    run-time behavior and interactions?
n  How does it relate to non-software structures in its
    environment?
Identifying Quality Attributes



  Tactics for architectural design
Architecture & Quality Attributes

w  Architecture is critical to the realization of
    many qualities of interest in a system
w  These qualities should be designed in and
    can be evaluated at the architectural level
w  Architecture, by itself is unable to achieve
    qualities. It provides foundation for
    achieving quality
System Quality Attribute
w    Performance
w    Availability
w    Usability       End User’s view      w  Time To Market
w    Security                             w  Cost and Benefits
                                           w  Projected life time
w  Maintainability                        w  Targeted Market       Business
w  Portability                            w  Integration with      Community
                                               Legacy System         view
w  Reusability         Developer’s view
                                           w  Roll back Schedule
w  Testability
Quality Attribute Scenarios

w  Bass & others propose a mechanism to capture
    quality attributes
w  A scenario has six parts
   n    Source of stimulus
   n    Stimulus
   n    Environment
   n    Artifact
   n    Response
   n    Response measure
Tactics bridge quality attribute
        models and architectural design

w  Tactics identify key quality attribute concepts
    and bridge quality attribute model and
    architectural design
  n  Modifiability model has concepts such as
      “dependency”
  n  A tactic for controlling dependency is “use an

      intermediary”
Tactics bridge quality attribute
         models and architectural design

w  Quality attribute models (analytic, empirical
    or qualitative) drive the identification of
    tactics
  n    Derived from well-known analytic models
  n    Also derived from attribute experts
Example: Security Scenario
Architectural drivers

w  An architectural driver is a quality attribute
    requirement (concrete scenario) that has
    major impact on the design
w  Usually small number of architectural drivers
    (~ 5 to 8)
w  Located through examination of high
    business priority quality attribute
    requirements
Architecture Tradeoff Analysis
           Method

           ATAM
Architectural Trade Offs

w  All design, in any discipline, involves trade offs
w  How well does an architecture satisfy particular
    goals?
w  Provides insight into how quality goals interact,
    how they trade amongst themselves.
w  Has its origins in SAAM (Software Architecture
    Analysis Method) from the early 1990s
w  It is a qualitative methodology
Approaches to Architecture
                      Review
w  Inspection and Walkthrough
   n    Check documentations
   n    Walk through the designs (easier if UML-like model is available,
         difficult if no consistent model)
w  Review
   n    Check documentations
   n    Peer-reviewed group meeting
w  Methodological Approach
   n    Scenario-based Techniques: e.g. ATAM
   n    Simulation (e.g. weather simulation)
   n    Architectural-based Testing or Model-Checking
What is ATAM?

w  “The ATAM is a spiral model of refinement :
    one of postulating candidate architectures,
    followed by analysis and risk mitigation,
    leading to refined architectures. “
What is ATAM?

w  “ATAM is a method for evaluating
    architecture level designs that considers
    multiple quality attributes such as
    modifiability, performance, reliability and
    security in gaining insight as to whether the
    fully fleshed out incarnation of the
    architecture will meet it’s requirements”
ATAM in a Picture
ATAM

w  Identifies tradeoff points between attributes
w  Facilitates communication between
    stakeholders from the perspective of each
    attribute
w  Clarifies and refines requirements
w  Provides a framework for the concurrent
    process of system design and analysis
Attribute specific analyses are
                 interdependent
w  Each attribute is connected to other attributes with
    specific architectural elements
w  Architectural Element:
   n    It is a
          l    Component
          l    Property of a component
          l    Property of the relationships between components, that affects
                some quality attribute
   n    These dependencies are Tradeoff points
   n    Tradeoff points are architectural elements that are
         affected by multiple attributes
ATAM Outputs

w  Prioritized collection of Quality Attribute
    Requirements
w  Catalog of Architectural Approaches Used
w  Approach and Quality-Attribute-Specific
    Analysis Questions
w  Mapping of Architectural Approaches to
    Quality Attributes
w  Risks and Non-Risks
w  Sensitivity and Trade-off Points
ATAM Outputs

w  Not for precise analysis
w  Discovering risks for further analysis, design,
    prototyping so that the risks can be reduced.
w  Document the tradeoffs explicitly by means
    of documentation
ATAM – Detailed Steps

w  Step 1 : Present the ATAM
w  Step 2 : Present business drivers
w  Step 3 : Present architecture
w  Step 4 : Identify architectural approaches
w  Step 5 : Generate quality attribute utility tree
w  Step 6 : Analyze architectural approaches
Step 1 – Present ATAM

w  The evaluation team presents an overview of
    the ATAM including
w  The ATAM steps
w  Techniques
  n    Utility tree generation
  n    Architecture elicitation and analysis
  n    Scenario brainstorming and mapping
Step 2 – Business Goals

w  Business Representatives describe:
w  The system’s most important (high-level) functions
w  Any relevant technical, managerial, economic, or political
    constraints
w  The business goals and context as they relate to the project
   n    Architectural driver: quality attributes that shape the architecture
   n    Critical requirements: most important quality attributes for the
         success of the software
w  The major stakeholders
Step 3 -Present Architecture

w  Software Architect presents:
   n    An overview of the architectures
   n    Technical constraints such as OS, hardware and languages
   n    Other interfacing systems of the current system
   n    Architectural approaches used to address quality attributes
         requirements.
w  Important architectural information
   n    Context diagram
   n    Views: E.g.
          l    Module or layer view
          l    Component and connector view
          l    Deployment view
Step 3 - Present Architecture

w  Architectural approaches, patterns, tactics employed, what
    quality attributes they address and how they address those
    attributes
w  Use of COTS (Component-off-the-shelves) and their
    integration
w  Evaluation Team begins probing and capturing risks
w  Most important use case scenarios
w  Most important change scenarios
w  Issues/risk w.r.t. meeting the driving requirements
Step 4 – Architectural Approaches

w  Catalog the evident patterns and approaches
w  Based on step 3
w  Start to identify places in the architecture that are
    keys for realizing quality attributes requirements
w  Identify any useful architectural patterns for the
    current problems
w  E.g. Client-server, publish-subscribe, redundant
    hardware
Step 5 - Generate Utility Tree

w  Utility tree is a top-down tool to refine and
    structure quality attributes requirements
w  Select the general, important quality attributes
    to be the high-level node
   n    E.g. performance, modifiability, security and
         availability.
w  Refine them to more specific categories
w  All leaves of the utility tree are “scenarios”.
w  Prioritize scenarios
Step 5 - Generate Utility Tree

w  Important first, difficult to achieve first, and so on.
w  Importance with respect to system success
   n    High, Medium, Low
w  Difficulty in achieving
   n    High, Medium, Low
w  (H,H), (H,M), (M,H) most interesting
w  Present the quality attribute goals in detail
Utility Tree Example
(Priority, Difficulty)
Step 6 – Analyze Architectural
                Approaches

w  Examine the highest ranked scenarios
w  The goal is for the evaluation team to be convinced
    that the approach is appropriate for meeting the
    attribute-specific requirements
w  Scenario walkthroughs
w  Identify and record a set of sensitivity points and
    tradeoff points, risks and non-risks
w  Sensitivity and tradeoff points are candidate risks
Sensitivity Point, Tradeoff Points,
           Risks and non-Risks in Step 6
w  Sensitivity points
   n    Property of components that are critical in achieving
         particular quality attribute response
   n    E.g., security: level of confidentiality vs. number of bits
         in encryption key
w  Tradeoff points
   n    Property that is sensitivity point for more than one
         attribute
   n    E.g., encryption level vs. security and performance, in
         particular
Sensitivity Point, Tradeoff Points,
           Risks and non-Risks in Step 6

w  Risks
   n    Potentially problematic architectural decisions.
         (e.g. test by unacceptable values of responses)
w  Non-Risk
   n    Good architectural decision
Example Scenario
Example Risks
Example Risks
Example Sensitivity Points
Evaluation Phase 2

w  Step 7 : Brainstorm and prioritize scenarios
w  Step 8 : Analyze architectural approaches
w  Step 9 : Present results
Step 7 – Brainstorm & Prioritize

w  In Steps 5 and 6 we have captured and analyzed scenarios
    which covered the required quality attributes.
w  In Step 7 stakeholders bring in their scenarios in a
    brainstorm process.
w  Stakeholder scenarios are used to
    n    represent stakeholders. interests
    n    understand quality attribute requirements
w  Prioritization:
    n    Each stakeholder is allocated a number of votes.
    n    Each stakeholder allocates the votes to the scenarios most important
          to him/her.
Step 8 – Analyze Architectural
                    Approaches
w  Highest ranked scenarios from step 7 are presented
    to the architect
w  Evaluation Team probes architectural approaches
    from the point of view of quality attributes and
    business drivers to identify risks.
   n    Identify the approaches that pertain to the highest priority
         scenarios.
   n    Ask quality-attribute specific questions for highest
         priority scenarios.
   n    Identify and record risks, non-risks, sensitivity points,
         and tradeoffs.
Step 9 – Present Results

w  Outputs:
w  The architectural approaches documented
w  The set of scenarios and their prioritization from the
    brainstorming
w  The utility tree
w  The risks discovered
w  The non-risks documented
w  The sensitivity points and tradeoff points found
ATAM Summary

The ATAM relies critically on
w  Appropriate preparation by the customer
w  Clearly-articulated quality attribute requirements
w  Active stakeholder participation
w  Active participation by the architect
w  Familiarity with architectural approaches, styles and
    analytic models
UW Presentation - Architecture Trade-off Analysis Method

More Related Content

What's hot

Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns ppt
Aman Jain
 
Pm unit 1,2,3,4,5,6
Pm unit 1,2,3,4,5,6Pm unit 1,2,3,4,5,6
Pm unit 1,2,3,4,5,6
WE-IT TUTORIALS
 
Corba introduction and simple example
Corba introduction and simple example Corba introduction and simple example
Corba introduction and simple example
Alexia Wang
 

What's hot (20)

C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
SPM PPT
SPM PPTSPM PPT
SPM PPT
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Phases of compiler
Phases of compilerPhases of compiler
Phases of compiler
 
Syntax directed translation
Syntax directed translationSyntax directed translation
Syntax directed translation
 
C#.NET
C#.NETC#.NET
C#.NET
 
MG6088 SOFTWARE PROJECT MANAGEMENT
MG6088 SOFTWARE PROJECT MANAGEMENTMG6088 SOFTWARE PROJECT MANAGEMENT
MG6088 SOFTWARE PROJECT MANAGEMENT
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns ppt
 
Open gl
Open glOpen gl
Open gl
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Unit iii(part b - architectural design)
Unit   iii(part b - architectural design)Unit   iii(part b - architectural design)
Unit iii(part b - architectural design)
 
estimation-for-software-projects-chapter-26-ppt.pptx
estimation-for-software-projects-chapter-26-ppt.pptxestimation-for-software-projects-chapter-26-ppt.pptx
estimation-for-software-projects-chapter-26-ppt.pptx
 
Pm unit 1,2,3,4,5,6
Pm unit 1,2,3,4,5,6Pm unit 1,2,3,4,5,6
Pm unit 1,2,3,4,5,6
 
Unit iii(part d - component level design)
Unit   iii(part d - component level design)Unit   iii(part d - component level design)
Unit iii(part d - component level design)
 
Corba introduction and simple example
Corba introduction and simple example Corba introduction and simple example
Corba introduction and simple example
 
UML Diagrams
UML DiagramsUML Diagrams
UML Diagrams
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 

Viewers also liked

Pecha kucha - Cloud Computing
Pecha kucha - Cloud ComputingPecha kucha - Cloud Computing
Pecha kucha - Cloud Computing
Alex Georgiades
 
Workshop Trade-off Analysis - CGIAR_20 Feb 2013_Keynote Monika Zurek
Workshop Trade-off Analysis - CGIAR_20 Feb 2013_Keynote Monika ZurekWorkshop Trade-off Analysis - CGIAR_20 Feb 2013_Keynote Monika Zurek
Workshop Trade-off Analysis - CGIAR_20 Feb 2013_Keynote Monika Zurek
LotteKlapwijk
 
Multi-Objective Wind Farm Design: Exploring the Trade-off between Capacity Fa...
Multi-Objective Wind Farm Design: Exploring the Trade-off between Capacity Fa...Multi-Objective Wind Farm Design: Exploring the Trade-off between Capacity Fa...
Multi-Objective Wind Farm Design: Exploring the Trade-off between Capacity Fa...
Weiyang Tong
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
drewz lin
 
Big Data Agile Analytics by Ken Collier - Director Agile Analytics, Thoughtwo...
Big Data Agile Analytics by Ken Collier - Director Agile Analytics, Thoughtwo...Big Data Agile Analytics by Ken Collier - Director Agile Analytics, Thoughtwo...
Big Data Agile Analytics by Ken Collier - Director Agile Analytics, Thoughtwo...
Thoughtworks
 

Viewers also liked (20)

4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Costco open group - mumbai presentation final
Costco   open group - mumbai presentation finalCostco   open group - mumbai presentation final
Costco open group - mumbai presentation final
 
Pecha kucha - Cloud Computing
Pecha kucha - Cloud ComputingPecha kucha - Cloud Computing
Pecha kucha - Cloud Computing
 
Saam
SaamSaam
Saam
 
Workshop Trade-off Analysis - CGIAR_20 Feb 2013_Keynote Monika Zurek
Workshop Trade-off Analysis - CGIAR_20 Feb 2013_Keynote Monika ZurekWorkshop Trade-off Analysis - CGIAR_20 Feb 2013_Keynote Monika Zurek
Workshop Trade-off Analysis - CGIAR_20 Feb 2013_Keynote Monika Zurek
 
2016 03-09 research seminar
2016 03-09 research seminar2016 03-09 research seminar
2016 03-09 research seminar
 
Multi-Objective Wind Farm Design: Exploring the Trade-off between Capacity Fa...
Multi-Objective Wind Farm Design: Exploring the Trade-off between Capacity Fa...Multi-Objective Wind Farm Design: Exploring the Trade-off between Capacity Fa...
Multi-Objective Wind Farm Design: Exploring the Trade-off between Capacity Fa...
 
Joern Fischer land sparing land sharing BES AAB Dec 2013
Joern Fischer land sparing land sharing BES AAB Dec 2013Joern Fischer land sparing land sharing BES AAB Dec 2013
Joern Fischer land sparing land sharing BES AAB Dec 2013
 
Architectural Driver
Architectural DriverArchitectural Driver
Architectural Driver
 
Saam
SaamSaam
Saam
 
Debs2010 tutorial on epts reference architecture v1.1c
Debs2010 tutorial on epts reference architecture v1.1cDebs2010 tutorial on epts reference architecture v1.1c
Debs2010 tutorial on epts reference architecture v1.1c
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGES
 
Agile Big Data Analytics Development: An Architecture-Centric Approach
Agile Big Data Analytics Development: An Architecture-Centric ApproachAgile Big Data Analytics Development: An Architecture-Centric Approach
Agile Big Data Analytics Development: An Architecture-Centric Approach
 
Big Data Agile Analytics by Ken Collier - Director Agile Analytics, Thoughtwo...
Big Data Agile Analytics by Ken Collier - Director Agile Analytics, Thoughtwo...Big Data Agile Analytics by Ken Collier - Director Agile Analytics, Thoughtwo...
Big Data Agile Analytics by Ken Collier - Director Agile Analytics, Thoughtwo...
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: Styles
 
Structured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignStructured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and Design
 

Similar to UW Presentation - Architecture Trade-off Analysis Method

14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniques
Majong DevJfu
 
13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architectures
Majong DevJfu
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overview
elliando dias
 
1 introduction to sa
1 introduction to sa1 introduction to sa
1 introduction to sa
david10hm
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
Sudarshan Dhondaley
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09
Luktalja
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
Majong DevJfu
 

Similar to UW Presentation - Architecture Trade-off Analysis Method (20)

14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniques
 
Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
 
Architecting Component-Based Systems
Architecting Component-Based SystemsArchitecting Component-Based Systems
Architecting Component-Based Systems
 
13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architectures
 
Software Architecture: Why and What?
Software Architecture: Why and What?Software Architecture: Why and What?
Software Architecture: Why and What?
 
Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overview
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Sda 6
Sda   6Sda   6
Sda 6
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
1 introduction to sa
1 introduction to sa1 introduction to sa
1 introduction to sa
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
Architecture and Iasa Introduction
Architecture and Iasa IntroductionArchitecture and Iasa Introduction
Architecture and Iasa Introduction
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Chapter1
Chapter1Chapter1
Chapter1
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 

UW Presentation - Architecture Trade-off Analysis Method

  • 1. Evaluating Architectures Analyzing, Selecting, Making Choices… The ATAM Shrikant Palkar
  • 2. Goals for Today w  High level building /pre-requisite blocks w  Why Evaluate ? Why Trade-offs ? w  High level ATAM components w  Many slides and images from the book Evaluating Software Architectures: Methods and Case Studies – Paul Clements, Rick Kazman, Mark Klein
  • 3. Looks Familiar ? w  Should we use AIX or Linux for SAP ? w  What should be the system of record for customer information? w  Will Tlogs volume be supported in the new POS?
  • 4. Architecture w  'The (software) architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.’ Bass, Clements, and Kazman w  “Not just the What but the Why”
  • 5. Why is Architecture Important? w  It is a vehicle for communication among stakeholders w  It is the manifestation of earliest design decisions w  It is a reusable, transferable abstraction of a system
  • 6. Architecture Defines w  Computation w  Interaction among Components Components n  Clients n  Subprogram calls n  Servers n  Shared data n  Databases n  Client-server n  Filters n  Piped streams n  Layers
  • 7. Why Evaluate Architectures? w  Because so much is riding on it ! w  Architecture evaluation is a cheap way to avoid disaster w  Architectures allow or preclude nearly all of a system’s quality attributes
  • 8. Architectural Decisions & Quality Attributes w  The degree to which a system meets it’s quality attribute requirements is dependent on architectural decisions w  A change in structure improving one quality often affects other qualities w  These product qualities should be designed into the architecture w  Architecture can only permit, not guarantee, any quality attribute
  • 11. Description w  Architectures are typically drawn as box and arrow diagrams w  Understood mostly by intuition, context, explanation w  Many different aspects need to be captured in the diagrams – structure, control, location of parts, relationships …
  • 12. Is one picture enough? w  Building Architects – multiple views w  Address needs of multiple stakeholders w  Consistency needs to be maintained
  • 13. Views w  A view is a representation of a set of system elements and the relations associated with them w  Not all system elements, some of them w  A view binds an element type and relation type of interest, and illustrates them
  • 14. Common Views w Structural , Conceptual w Runtime, Process w Code, Development, w Physical, Hardware, Deployment w Use case, Design
  • 15. The 4+1 View Logical Implementation View View Analysts/ End-user Programmers Designers Structure Functionality Software management Use-Case View Process Deployment View View System Integrators System Engineering Performance System topology Scalability Delivery, installation Throughput communication
  • 16. Views and Documents w  Views give us our basic principle of architecture documentation: w  Documenting a software architecture is a matter of documenting the relevant views, and then adding information that applies to more than one view
  • 17. Which views are relevant? w Depends on: l  who the stakeholders are l  how they will use the documentation w Three primary uses for architecture documentation: n  Education -- introducing people to the project n  Communication -- among stakeholders n  Analysis -- assuring quality attributes
  • 18. What views are available? w An architect must consider the system in three ways: n  How is it structured as a set of code units? n  How is it structured as a set of elements that have run-time behavior and interactions? n  How does it relate to non-software structures in its environment?
  • 19. Identifying Quality Attributes Tactics for architectural design
  • 20. Architecture & Quality Attributes w  Architecture is critical to the realization of many qualities of interest in a system w  These qualities should be designed in and can be evaluated at the architectural level w  Architecture, by itself is unable to achieve qualities. It provides foundation for achieving quality
  • 21. System Quality Attribute w  Performance w  Availability w  Usability End User’s view w  Time To Market w  Security w  Cost and Benefits w  Projected life time w  Maintainability w  Targeted Market Business w  Portability w  Integration with Community Legacy System view w  Reusability Developer’s view w  Roll back Schedule w  Testability
  • 22. Quality Attribute Scenarios w  Bass & others propose a mechanism to capture quality attributes w  A scenario has six parts n  Source of stimulus n  Stimulus n  Environment n  Artifact n  Response n  Response measure
  • 23. Tactics bridge quality attribute models and architectural design w  Tactics identify key quality attribute concepts and bridge quality attribute model and architectural design n  Modifiability model has concepts such as “dependency” n  A tactic for controlling dependency is “use an intermediary”
  • 24. Tactics bridge quality attribute models and architectural design w  Quality attribute models (analytic, empirical or qualitative) drive the identification of tactics n  Derived from well-known analytic models n  Also derived from attribute experts
  • 26. Architectural drivers w  An architectural driver is a quality attribute requirement (concrete scenario) that has major impact on the design w  Usually small number of architectural drivers (~ 5 to 8) w  Located through examination of high business priority quality attribute requirements
  • 28. Architectural Trade Offs w  All design, in any discipline, involves trade offs w  How well does an architecture satisfy particular goals? w  Provides insight into how quality goals interact, how they trade amongst themselves. w  Has its origins in SAAM (Software Architecture Analysis Method) from the early 1990s w  It is a qualitative methodology
  • 29. Approaches to Architecture Review w  Inspection and Walkthrough n  Check documentations n  Walk through the designs (easier if UML-like model is available, difficult if no consistent model) w  Review n  Check documentations n  Peer-reviewed group meeting w  Methodological Approach n  Scenario-based Techniques: e.g. ATAM n  Simulation (e.g. weather simulation) n  Architectural-based Testing or Model-Checking
  • 30. What is ATAM? w  “The ATAM is a spiral model of refinement : one of postulating candidate architectures, followed by analysis and risk mitigation, leading to refined architectures. “
  • 31. What is ATAM? w  “ATAM is a method for evaluating architecture level designs that considers multiple quality attributes such as modifiability, performance, reliability and security in gaining insight as to whether the fully fleshed out incarnation of the architecture will meet it’s requirements”
  • 32. ATAM in a Picture
  • 33. ATAM w  Identifies tradeoff points between attributes w  Facilitates communication between stakeholders from the perspective of each attribute w  Clarifies and refines requirements w  Provides a framework for the concurrent process of system design and analysis
  • 34. Attribute specific analyses are interdependent w  Each attribute is connected to other attributes with specific architectural elements w  Architectural Element: n  It is a l  Component l  Property of a component l  Property of the relationships between components, that affects some quality attribute n  These dependencies are Tradeoff points n  Tradeoff points are architectural elements that are affected by multiple attributes
  • 35. ATAM Outputs w  Prioritized collection of Quality Attribute Requirements w  Catalog of Architectural Approaches Used w  Approach and Quality-Attribute-Specific Analysis Questions w  Mapping of Architectural Approaches to Quality Attributes w  Risks and Non-Risks w  Sensitivity and Trade-off Points
  • 36. ATAM Outputs w  Not for precise analysis w  Discovering risks for further analysis, design, prototyping so that the risks can be reduced. w  Document the tradeoffs explicitly by means of documentation
  • 37. ATAM – Detailed Steps w  Step 1 : Present the ATAM w  Step 2 : Present business drivers w  Step 3 : Present architecture w  Step 4 : Identify architectural approaches w  Step 5 : Generate quality attribute utility tree w  Step 6 : Analyze architectural approaches
  • 38. Step 1 – Present ATAM w  The evaluation team presents an overview of the ATAM including w  The ATAM steps w  Techniques n  Utility tree generation n  Architecture elicitation and analysis n  Scenario brainstorming and mapping
  • 39. Step 2 – Business Goals w  Business Representatives describe: w  The system’s most important (high-level) functions w  Any relevant technical, managerial, economic, or political constraints w  The business goals and context as they relate to the project n  Architectural driver: quality attributes that shape the architecture n  Critical requirements: most important quality attributes for the success of the software w  The major stakeholders
  • 40. Step 3 -Present Architecture w  Software Architect presents: n  An overview of the architectures n  Technical constraints such as OS, hardware and languages n  Other interfacing systems of the current system n  Architectural approaches used to address quality attributes requirements. w  Important architectural information n  Context diagram n  Views: E.g. l  Module or layer view l  Component and connector view l  Deployment view
  • 41. Step 3 - Present Architecture w  Architectural approaches, patterns, tactics employed, what quality attributes they address and how they address those attributes w  Use of COTS (Component-off-the-shelves) and their integration w  Evaluation Team begins probing and capturing risks w  Most important use case scenarios w  Most important change scenarios w  Issues/risk w.r.t. meeting the driving requirements
  • 42. Step 4 – Architectural Approaches w  Catalog the evident patterns and approaches w  Based on step 3 w  Start to identify places in the architecture that are keys for realizing quality attributes requirements w  Identify any useful architectural patterns for the current problems w  E.g. Client-server, publish-subscribe, redundant hardware
  • 43. Step 5 - Generate Utility Tree w  Utility tree is a top-down tool to refine and structure quality attributes requirements w  Select the general, important quality attributes to be the high-level node n  E.g. performance, modifiability, security and availability. w  Refine them to more specific categories w  All leaves of the utility tree are “scenarios”. w  Prioritize scenarios
  • 44. Step 5 - Generate Utility Tree w  Important first, difficult to achieve first, and so on. w  Importance with respect to system success n  High, Medium, Low w  Difficulty in achieving n  High, Medium, Low w  (H,H), (H,M), (M,H) most interesting w  Present the quality attribute goals in detail
  • 46. Step 6 – Analyze Architectural Approaches w  Examine the highest ranked scenarios w  The goal is for the evaluation team to be convinced that the approach is appropriate for meeting the attribute-specific requirements w  Scenario walkthroughs w  Identify and record a set of sensitivity points and tradeoff points, risks and non-risks w  Sensitivity and tradeoff points are candidate risks
  • 47. Sensitivity Point, Tradeoff Points, Risks and non-Risks in Step 6 w  Sensitivity points n  Property of components that are critical in achieving particular quality attribute response n  E.g., security: level of confidentiality vs. number of bits in encryption key w  Tradeoff points n  Property that is sensitivity point for more than one attribute n  E.g., encryption level vs. security and performance, in particular
  • 48. Sensitivity Point, Tradeoff Points, Risks and non-Risks in Step 6 w  Risks n  Potentially problematic architectural decisions. (e.g. test by unacceptable values of responses) w  Non-Risk n  Good architectural decision
  • 53. Evaluation Phase 2 w  Step 7 : Brainstorm and prioritize scenarios w  Step 8 : Analyze architectural approaches w  Step 9 : Present results
  • 54. Step 7 – Brainstorm & Prioritize w  In Steps 5 and 6 we have captured and analyzed scenarios which covered the required quality attributes. w  In Step 7 stakeholders bring in their scenarios in a brainstorm process. w  Stakeholder scenarios are used to n  represent stakeholders. interests n  understand quality attribute requirements w  Prioritization: n  Each stakeholder is allocated a number of votes. n  Each stakeholder allocates the votes to the scenarios most important to him/her.
  • 55. Step 8 – Analyze Architectural Approaches w  Highest ranked scenarios from step 7 are presented to the architect w  Evaluation Team probes architectural approaches from the point of view of quality attributes and business drivers to identify risks. n  Identify the approaches that pertain to the highest priority scenarios. n  Ask quality-attribute specific questions for highest priority scenarios. n  Identify and record risks, non-risks, sensitivity points, and tradeoffs.
  • 56. Step 9 – Present Results w  Outputs: w  The architectural approaches documented w  The set of scenarios and their prioritization from the brainstorming w  The utility tree w  The risks discovered w  The non-risks documented w  The sensitivity points and tradeoff points found
  • 57. ATAM Summary The ATAM relies critically on w  Appropriate preparation by the customer w  Clearly-articulated quality attribute requirements w  Active stakeholder participation w  Active participation by the architect w  Familiarity with architectural approaches, styles and analytic models