How does SAAM (Software Architecture Analysis Method) differ from ATAM (Architecture Tradeoff Analysis Method), and when would you choose the simpler one?
answer
- SAAM first, modifiability-focused
- direct vs indirect scenarios
- scenario interaction = hot spot
- ATAM adds utility tree + tactics + trade-offs
- cheap comparison vs expensive multi-attribute review
basics
~20 sSAAM came first and is simpler: stakeholders write change scenarios, you check which components each one touches, and compare candidate designs — mainly for modifiability. ATAM extends it to many quality attributes at once and adds explicit trade-off and sensitivity analysis.
solid answer
~50 sSAAM (Software Architecture Analysis Method, early 1990s, SEI) is the original scenario-based review. You describe the architecture, brainstorm scenarios, classify each as **direct** (the architecture supports it as-is) or **indirect** (it requires changes), and for indirect ones list the components/connectors that must change and estimate the effort. Scenario **interaction** — many unrelated scenarios hitting the same component — signals poor separation of concerns; that component is a modifiability hot spot. Comparing two candidate architectures on the same scenario set gives a defensible choice. Its focus is essentially modifiability/extensibility, and it has no vocabulary for attribute conflicts. ATAM built on SAAM: multiple quality attributes, a prioritised utility tree, explicit architectural approaches/tactics, and the risk / non-risk / sensitivity-point / trade-off-point outputs. Choose SAAM-style analysis when the question is narrow — "which of these two designs absorbs the roadmap's changes more cheaply" — or when time and stakeholder availability rule out a full ATAM.
go deeper
Say SAAM is the older, simpler, modifiability-focused scenario method and ATAM extends it to many attributes plus trade-offs.
Add direct vs indirect scenarios, scenario interaction, and ATAM's utility tree and four finding categories.
Argue selection by decision cost and reversibility, and describe the hybrid lightweight review you'd actually run.
Frame it as an evaluation portfolio: cheap continuous reviews plus a heavyweight ATAM reserved for irreversible, cross-cutting bets, with CBAM to prioritise spend.
## SAAM in detail **SAAM** — Software Architecture Analysis Method — was the first widely documented scenario-based architecture review (SEI, early-mid 1990s). Its steps: 1. **Describe candidate architectures** in a notation everyone understands (components, connectors, responsibilities). 2. **Develop scenarios** — stakeholders brainstorm uses and, crucially, *anticipated changes*: new features, new platforms, new integrations, new regulations. 3. **Classify scenarios**: - **Direct** — executable with the architecture as it stands, no modification. - **Indirect** — requires modification: new components, changed interfaces, altered connectors. 4. **Evaluate indirect scenarios** — for each, enumerate the components/connectors that change and estimate cost/effort. 5. **Assess scenario interaction** — count how many *semantically unrelated* scenarios require changing the same component. High interaction is a smell: that component carries several concerns at once, so unrelated future work will collide there. It is often a symptom of poor decomposition or a missing abstraction. 6. **Create an overall evaluation** — weight scenarios by business importance and compare candidates. SAAM's superpower is **comparison**: run the same scenario set over architecture A and architecture B and you get an evidence-based, non-religious answer. SAAM's limits: it is dominated by modifiability; it says little about performance, availability or security; and it has no way to express that a decision helping one attribute harms another. ## ATAM in detail (as an evolution) **ATAM** keeps the scenario core and adds: | Aspect | SAAM | ATAM | |---|---|---| | Quality attributes | mainly modifiability | many, explicitly (performance, availability, security, modifiability…) | | Scenario organisation | brainstormed list | **utility tree**: attributes → refinements → six-part scenarios, rated (importance, difficulty) | | Design vocabulary | components/connectors | named **architectural approaches/tactics** (replication, caching, layering, bulkheads…) with attribute-specific question sets | | Conflict handling | none | **sensitivity points** and **trade-off points** | | Outputs | change-cost comparison, interaction hot spots | risks, non-risks, sensitivity points, trade-off points, risk themes → business drivers | | Process | one pass | two phases, second with a broad stakeholder group that votes | | Cost | low | higher — days, many stakeholders, prepared architect | ATAM's name earns the "T": its distinctive contribution is making conflicts between attributes explicit and forcing a conscious decision. ## Choosing Use **SAAM-style** analysis when: - The question is narrow and mostly about change cost ("which decomposition absorbs the next two quarters of roadmap more cheaply?"). - You are comparing concrete alternatives. - Stakeholder time is scarce; you want a half-day, not a week. - The system is small or the decision is reversible. Use **ATAM-style** analysis when: - Several quality attributes are in genuine tension (latency vs consistency, security vs usability). - The decision is expensive or hard to reverse (data-store choice, regionalisation, service decomposition, platform migration). - Multiple stakeholder groups — ops, security, product — hold different, unstated priorities. - You need findings tied to business drivers to unlock funding. In practice most teams run hybrids: an internally facilitated one-day review that borrows ATAM's utility tree and finding vocabulary at SAAM's cost. Related relatives worth naming: **ARID** (Active Reviews for Intermediate Designs — stakeholders try to *use* a partial design), **ATAM's follow-on CBAM** (Cost Benefit Analysis Method — attaches utility and cost to candidate responses so investment can be ranked), and **LAAAM**-style lightweight matrix reviews. ## Pitfalls - Running SAAM and concluding the system "is fine" — it only tells you about the scenarios you wrote, mostly change scenarios. - Ignoring scenario interaction, the single most useful signal SAAM produces. - Running the ATAM ceremony for a two-week reversible decision. - Scoring architectures by counting direct vs indirect scenarios without weighting by business importance.
- What does high scenario interaction in a SAAM review tell you?That several semantically unrelated scenarios all require modifying the same component — a sign that component mixes concerns. It predicts future change collisions and merge contention, and usually points to a missing abstraction or a decomposition along the wrong axis.
- What is CBAM and how does it relate to these methods?The Cost Benefit Analysis Method extends ATAM by attaching estimated utility (value of a response measure) and estimated cost to candidate architectural responses, producing a ranked, ROI-style list. It turns "here are risks" into "here is what to fund first".
saying these in an interview costs you the question
- "SAAM and ATAM are the same thing under different names"
- Claiming SAAM analyses performance and security trade-offs
- Using scenario counts as a score without weighting by business importance
- Running the full heavyweight ceremony for cheap, reversible decisions
- Concluding a design is sound when only the scenarios you happened to write were checked