SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Simplilearn
 
Clean architecture
Clean architectureClean architecture
Clean architectureandbed
 
Azure DevOps & GitHub... Better Together!
Azure DevOps & GitHub... Better Together!Azure DevOps & GitHub... Better Together!
Azure DevOps & GitHub... Better Together!Lorenzo Barbieri
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For BeginnersRahul Nath
 
JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and FunctionsJussi Pohjolainen
 
Chapter 2 Flutter Basics Lecture 1.pptx
Chapter 2 Flutter Basics Lecture 1.pptxChapter 2 Flutter Basics Lecture 1.pptx
Chapter 2 Flutter Basics Lecture 1.pptxfarxaanfarsamo
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Waysmalltown
 
Clean Code II - Dependency Injection
Clean Code II - Dependency InjectionClean Code II - Dependency Injection
Clean Code II - Dependency InjectionTheo Jungeblut
 
The Integration of Laravel with Swoole
The Integration of Laravel with SwooleThe Integration of Laravel with Swoole
The Integration of Laravel with SwooleAlbert Chen
 
Ddd reboot (english version)
Ddd reboot (english version)Ddd reboot (english version)
Ddd reboot (english version)Thomas Pierrain
 
Clean architecture
Clean architectureClean architecture
Clean architecture.NET Crowd
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICDKnoldus Inc.
 
Pipeline oriented programming
Pipeline oriented programmingPipeline oriented programming
Pipeline oriented programmingScott Wlaschin
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hubJasleenSondhi
 

Was ist angesagt? (20)

Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Azure DevOps & GitHub... Better Together!
Azure DevOps & GitHub... Better Together!Azure DevOps & GitHub... Better Together!
Azure DevOps & GitHub... Better Together!
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For Beginners
 
JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and Functions
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Chapter 2 Flutter Basics Lecture 1.pptx
Chapter 2 Flutter Basics Lecture 1.pptxChapter 2 Flutter Basics Lecture 1.pptx
Chapter 2 Flutter Basics Lecture 1.pptx
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
UI Programming with Qt-Quick and QML
UI Programming with Qt-Quick and QMLUI Programming with Qt-Quick and QML
UI Programming with Qt-Quick and QML
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
 
Angular
AngularAngular
Angular
 
Clean Code II - Dependency Injection
Clean Code II - Dependency InjectionClean Code II - Dependency Injection
Clean Code II - Dependency Injection
 
The Integration of Laravel with Swoole
The Integration of Laravel with SwooleThe Integration of Laravel with Swoole
The Integration of Laravel with Swoole
 
Ddd reboot (english version)
Ddd reboot (english version)Ddd reboot (english version)
Ddd reboot (english version)
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Pipeline oriented programming
Pipeline oriented programmingPipeline oriented programming
Pipeline oriented programming
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 

Andere mochten auch

Costco open group - mumbai presentation final
Costco   open group - mumbai presentation finalCostco   open group - mumbai presentation final
Costco open group - mumbai presentation finalShrikant Palkar
 
Pecha kucha - Cloud Computing
Pecha kucha - Cloud ComputingPecha kucha - Cloud Computing
Pecha kucha - Cloud ComputingAlex 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 ZurekLotteKlapwijk
 
2016 03-09 research seminar
2016 03-09 research seminar2016 03-09 research seminar
2016 03-09 research seminarifi8106tlu
 
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
 
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 2013joernfischer
 
Architectural Driver
Architectural DriverArchitectural Driver
Architectural DriverNghia Le
 
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.1cPaul Vincent
 
소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)소프트웨어 아키텍처 평가(Atam)
소프트웨어 아키텍처 평가(Atam)영기 김
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecturedrewz lin
 
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 Architecturebashcode
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIvano Malavolta
 
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 ApproachSoftServe
 
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
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture designLen Bass
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: StylesHenry Muccini
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 

Andere mochten auch (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
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 

Ähnlich wie UW Presentation - Architecture Trade-off Analysis Method

14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniquesMajong DevJfu
 
Architecting Component-Based Systems
Architecting Component-Based SystemsArchitecting Component-Based Systems
Architecting Component-Based Systemsvadapav123
 
13 analysis of_software_architectures
13 analysis of_software_architectures13 analysis of_software_architectures
13 analysis of_software_architecturesMajong DevJfu
 
Software Architecture: Why and What?
Software Architecture: Why and What?Software Architecture: Why and What?
Software Architecture: Why and What?Chris F Carroll
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overviewelliando dias
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
[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
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
1 introduction to sa
1 introduction to sa1 introduction to sa
1 introduction to sadavid10hm
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09Luktalja
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
Architecture and Iasa Introduction
Architecture and Iasa IntroductionArchitecture and Iasa Introduction
Architecture and Iasa IntroductionTom Creighton
 

Ähnlich wie 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
 
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
 

Kürzlich hochgeladen

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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 businesspanagenda
 
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 FMESafe Software
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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 DevelopmentsTrustArc
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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 FresherRemote DBA Services
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Kürzlich hochgeladen (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.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...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

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