ATAM - Architecture Tradeoff Analysis Method


  • Overview of ATAM
  • Why-to-use-ATAM
  • What does ATAM Method discover
  • ATAM Cost and benefits
  • Roles of members in ATAM teams
  • Summary of ATAM Steps
  • ATAM Steps in details
  • What is Tradeoffs
  • What is Sensitivity-Points
  • Risks
  • Non-Risks
  • ATAM Overview

    ATAM stands for Architecture Tradeoff Analysis Method

    ATAM Method is designed by SEI (Software Engineering Institute)

    Objective of ATAM Method is to assess

    1. Consequence of software architecture decision
    2. Determine alternatives of architecture decision in line with quality attribute of application

    Why to use ATAM

    If you are not using ATAM method (fromarly or informaly) --> It means you are not validating whether architecture decision is right for requirement or not.  Following things can happen

    • Define architecture /design in which team has past experience
    • Build not required software component
    • Build favorite solution/yechnology
    • Ordered more than required hardware (or vice versa)
    • Ordered hardware that is not suiable for need
    • Delay, High Cost, Rework

    Do you want to realize these mistake after architecture is built or before?

    ATAM objective is to identify these factors in advance.

    When to fix Architecture Issues

    Do you want to execute on project.  Then identify architecture issues and fix it.   Many project get completed this way.  But they are costly.

    Instead use ATAM method.  Use ATAM method immediately after architecture is defined.  Determine the issues and ensure right decision are taken.  If trade off are taken - all parties will be aware of trade-offs and consquences.

    When to use ATAM

    You should use ATAM method immediately after architecture is designed.  You should have clear business requirement and a software architecture document.

    IF business requirements are not clear, it means you do not know what to design for.

    If business requirements are clear but software architecure document is not writtem - you do not know what to evaluate for.

    What does ATAM discover

    In ATAM Method right questions are asked early in software design cycle:

    Discover risks - Risk might create future problems in some quality attribute (mostly non functional aspect – maintainability, scalability, availability, performance…)
    Discover non-risks - decisions that promote qualities that help realize business/mission goals
    Discover sensitivity points - alternatives for which a slight change makes a significant difference in some quality attribute
    Discover tradeoffs - decisions affecting more than one quality attribute  (e.g.  performance vs maintability  )

    The purpose of an ATAM is NOT to provide precise analysis  of requirement or design.  The objective of ATAM method is  to discover risks created by architectural decisions.

    ATAM Cost and Benefit


     2 weeks of time for 6 – 8 senior member.  Using ATAM method can delays start of project by 1-2 week. 

    Benefit - Immediate

    Catch  architectural errors before building software.
    Clarified, improved quality attribute requirements.
    Clarified, Improved architecture documentation.
    Capture rationale - Objective basis for architectural decisions.
    Identified and documented risks early in the life-cycle
    Increased awareness, communication among stakeholders (business, technical isers)

    Benefit - long term

    You will see lot of benefit in long run :
    Project is more likely to get complete on time, within budget. Avoid rework, redesign
    Ensure architecture is fit for important scenarios
    Build requirement gathering, architecture, design competency in team

    Roles in ATAM Team

    You should assign a role to ATAM Team member.  Primary there are business member and architecture member. In addition you should have a moderator.

    Moderator — Moderator job is to facilitate discussions, brainstorming, analysis
    Scenario writing — Person writing scenario author utility tree, raw scenarios
    Architecture decision — Person playing this role document architecture decision taken. Person also document trade off agreed and sensitivity points.

    ATAM Steps


    1. Present the ATAM
    2. Present business drivers
    3. Present architecture

    Identify and Analyze.

    4. Identify architectural approaches
    5. Generate quality attribute utility tree
    6. Analyze architectural approaches against import Attribute

    Brainstorm and Validate Architecture Decision

    7. Brainstorm and prioritize scenarios
    8. Validate architectural approaches (continuation from step 6) Conclude
    9. Present results

    ATAM Steps

    If you are using ATAM evaluation - you will go thru these steps

    STEP 1

    Presents an overview of the ATAM including:
    Purpose, expectations, utility tree generation, scenarios, risks, “non-risks”, sensitivity points and tradeoffs

    The objective of this step is to educate about ATAM Method.

    STEP 2

    Customer representative describes the business drivers including
    Business context for the system, High-level functional requirements
    High-level quality attribute requirements
    Quality attributes most central to the system’s success

    Objective of this step is educate everyone about key business drivers.

    STEP 3

    Architect presents an overview of the architecture including: Layering
    Architecture patterns
    Important attribute and constraints such as an OS, hardware, tools
    Other systems with which the system must interact

    Objective of this method is to get familair with architecture decision made.

    Many times bussiness owner/Customer does not want to get invove in architecture.  They treat this as "How" and business want to focus on "What".  It is important to realize that Business owner is getting familiar with architecture decision to ensure business requirements will be met.  Any trade off in architecture is taken in favor of those requirement that matter most to business user.

    STEP 4

    Start to identify places in the architecture that are key for realizing quality attribute goals.
    Identify any predominant architectural approaches.

    Replication or SSIS
    Serach or Navigation
    Search or Database query

    Adhoc Reports or Standard Reports

    In this phase you focus on architecture apppraches that have impact on delivering requirement.  Using Search user can enter free form text and get input.  Using navigation user can only select from predefined option.  In Navigation system control the output.  In Search content control the output/

    Step 5

    Identify Quality Attribute
    • In this step you - dentify, prioritize, and refine the most important quality attribute goals by building a utility tree.A utility tree is a top-down vehicle for characterizing the “driving” attribute for a requirement.
    • Select the most important quality goals to be the high-level nodes (typically performance, modifiability, security, and availability).
    • Scenarios are the leaves of the utility tree.

    Output: In this phase you produce a output that show prioritization of specific quality attribute requirements.

    Step 6

    Evaluate architecture from Quality Attribute Perspective
    In this phase valuation Team probes architectural approaches from the point of view of specific quality attributes to identify risks.
    • Identify the architectural approaches that pertain to the highest priority quality attribute requirements
    • Generate quality-attribute specific questions for highest priority quality attribute requirement
    • Ask quality-attribute specific questions.
    • Identify and record risks and non-risks, sensitivity points and Tradeoffs.
    Analyze Architecture Approaches
    At this point there is - A set of concrete quality requirements + a set of architectural approaches => Size up how well suited they are to each other
    Output of this phase
    • The architectural approaches or decisions relevant to each priority utility tree scenario
    • The analyst questions associated with each approach
    • The architect’s response to the questions
    • The risks, non-risks, sensitivity points and tradeoff points identified
    At the end of this steps, the evaluation team should have a clear picture of the most important aspects of the entire architecture .


    Step 7

    Brainstorm and Prioritize Scenario
      In this phase you brainstorm and agree on priority of Scenarios
    • Priorituzation of scenarios represent stakeholders interests
    • Understand quality attribute requirements

    The ATAM evaluation team ask the stakeholders to brainstorm:

    • Use Case Scenarios
    • Growth Scenarios
    • Exploratory Scenarios - Limits, dramatic new performance attributes
    • Many times functional requirements are collected but non functional requirements are ignored. The above helps to define non functional requirement in sufficient detail. These non functional aspect impact architecture decision.

    Step 8

    Validate Architecture Decisions
    In this Step you validate
    If you have done most of things right, very little/no new information will be uncovered
    Team should validate that architecture decisions are in favor of utility required by business. If not, then architecture decision need to be corrected.

    Step 9

    Present the Results
    The collected information from the ATAM exercise is presented back to the stakeholders
    • PPT Slides/Doc + Written Report
    • List of Prioritized Scenarios
    • Architectural approaches agreed
    • The Utility tree
    • Risk discovered, Non Risks
    • Sensitivity points and Tradeoff points


    Tradeoff point is a property that affects more than one attribute or sensitivity point.

    Example of Tradeoff Point

    Upgrade cant be done during peak hours. It is trade-off between modifiability and reliability.
    Storing the head queries increase the performance of frequently used queries, but impact freshness of result.
    As time to market is more important, Configurable UI is postponed thereby reducing the ability to experiment.
    In order to achieve the required level of performance to give result to user C++, Assembly language need to be used thereby reducing the portability, maintainability of this component.

    Sensitivity Point

    Sensitivity – A property of a component that is critical to success of system.

    The number of simultaneous database clients will affect the number of transaction a database can process per second. This assignment is a sensitivity point for the performance.
     Power of encryption (Security) sensitive to number of bits of the key
    Frequency of crawl is sensitive to performance
    Machine learning platform for recommendation can produce better result by increasing the sample size which need more nodes. Merging results from multiple nodes impact the accuracy of recommendation algorithm.
    Recommendation works on old data. If data is > 7 days old, recommendation benefits starts reducing as data gets more stale


    Here are exampples of Risks :
    The software is not maintainable. User interface and business logic change need code change and deployment. It limits the capability to do a/b testing.
    Upgrade to software can’t be done during peak hours (11 AM-2PM PST) as all servers serving the traffic.
    The decision to copy data to reporting at interval of 24 hours means reporting business will see report with 24 hours delay.

    What is Non Risks

    Here are examples of Non-Risks

    As both Data center can take serve full traffic including peak hour, it means a failure/disaster in one DC can be handled.
    For Targetting it is okay to use yesterday data instead of real time data.

    10-Risks    11-Non-Risks    2-why-to-use-atam    3-What-does-ATAM-discover    4-ATAM-Cost-and-benefits    5-ATAM-roles    6-ATAM-Steps-Summary    7-ATAM-Steps    8-Tradeoffs    9-Sensitivity-Points