Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/all-anchors.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ include::anchors/adr-according-to-nygard.adoc[leveloffset=+2]

include::anchors/arc42.adoc[leveloffset=+2]

include::anchors/atam.adoc[leveloffset=+2]

include::anchors/c4-diagrams.adoc[leveloffset=+2]

include::anchors/clean-architecture.adoc[leveloffset=+2]
Expand Down
46 changes: 46 additions & 0 deletions docs/anchors/atam.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
= ATAM
:categories: software-architecture
:roles: software-architect, team-lead, product-owner
:related: arc42, adr-according-to-nygard
:proponents: Rick Kazman, Mark Klein, Paul Clements
:tags: architecture evaluation, quality attributes, tradeoffs, utility tree, SEI, risk analysis

[%collapsible]
====
Full Name:: Architecture Tradeoff Analysis Method

Also known as:: Architecture Evaluation, ATAM Review

[discrete]
== *Core Concepts*:

Utility Tree:: Hierarchical decomposition of system quality goals into concrete, prioritized quality attribute scenarios (e.g., Performance → Response Time → "Search results returned in < 1s under peak load")

Quality Attribute Scenarios:: Testable, concrete expressions of quality requirements consisting of stimulus, source, environment, artifact, response, and response measure

Architectural Approaches:: Design decisions and patterns (e.g., caching, replication, layering) used to achieve quality attributes

Sensitivity Points:: Architectural decisions that significantly affect one specific quality attribute

Tradeoff Points:: Architectural decisions that affect two or more quality attributes in conflicting ways — the core insight of ATAM

Risks and Non-risks:: Identified architectural decisions that may (risks) or demonstrably will not (non-risks) lead to future problems

Nine-step process:: Presentation of ATAM → presentation of business drivers → presentation of architecture → identification of architectural approaches → generation of utility tree → analysis of architectural approaches → brainstorming scenarios → analysis of scenarios → presentation of results

Key Proponents:: Rick Kazman, Mark Klein, Paul Clements (SEI / Carnegie Mellon University)

[discrete]
== *When to Use*:

* Evaluating a software architecture before major investment in implementation
* When multiple stakeholders have conflicting quality requirements (e.g., performance vs. security)
* During architecture reviews of safety-critical or high-availability systems
* When making buy-vs.-build decisions or selecting between competing architectural styles

[discrete]
== *Related Anchors*:

* <<arc42,arc42 Architecture Documentation>>
* <<adr-according-to-nygard,ADR according to Nygard>>
====
46 changes: 46 additions & 0 deletions docs/anchors/atam.de.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
= ATAM
:categories: software-architecture
:roles: software-architect, team-lead, product-owner
:related: arc42, adr-according-to-nygard
:proponents: Rick Kazman, Mark Klein, Paul Clements
:tags: architecture evaluation, quality attributes, tradeoffs, utility tree, SEI, risk analysis

[%collapsible]
====
Vollständiger Name:: Architecture Tradeoff Analysis Method (Architektur-Kompromiss-Analysemethode)

Auch bekannt als:: Architekturbewertung, ATAM-Review

[discrete]
== *Kernkonzepte*:

Utility Tree:: Hierarchische Zerlegung von Systemqualitätszielen in konkrete, priorisierte Qualitätsattribut-Szenarien (z.B. Performance → Antwortzeit → „Suchergebnisse werden in < 1s unter Spitzenlast geliefert")

Qualitätsattribut-Szenarien:: Testbare, konkrete Ausdrücke von Qualitätsanforderungen bestehend aus Stimulus, Quelle, Umgebung, Artefakt, Reaktion und Reaktionsmaß

Architekturansätze:: Entwurfsentscheidungen und Muster (z.B. Caching, Replikation, Schichtung), die zur Erreichung von Qualitätsattributen eingesetzt werden

Sensitivitätspunkte:: Architekturentscheidungen, die ein bestimmtes Qualitätsattribut maßgeblich beeinflussen

Kompromißpunkte (Tradeoff Points):: Architekturentscheidungen, die zwei oder mehr Qualitätsattribute in widersprüchlicher Weise beeinflussen — die zentrale Erkenntnis von ATAM

Risiken und Nicht-Risiken:: Identifizierte Architekturentscheidungen, die zu zukünftigen Problemen führen können (Risiken) oder nachweislich nicht führen werden (Nicht-Risiken)

Neunstufiger Prozess:: Präsentation von ATAM → Darstellung der Geschäftsziele → Präsentation der Architektur → Identifikation von Architekturansätzen → Erstellung des Utility Tree → Analyse der Architekturansätze → Brainstorming von Szenarien → Analyse der Szenarien → Präsentation der Ergebnisse

Schlüsselvertreter:: Rick Kazman, Mark Klein, Paul Clements (SEI / Carnegie Mellon University)

[discrete]
== *Wann zu verwenden*:

* Bewertung einer Softwarearchitektur vor größeren Investitionen in die Implementierung
* Wenn mehrere Stakeholder widersprüchliche Qualitätsanforderungen haben (z.B. Performance vs. Sicherheit)
* Bei Architekturreviews von sicherheitskritischen oder hochverfügbaren Systemen
* Bei Kauf-vs.-Bau-Entscheidungen oder der Auswahl zwischen konkurrierenden Architekturstilen

[discrete]
== *Verwandte Anker*:

* <<arc42,arc42 Architekturdokumentation>>
* <<adr-according-to-nygard,ADR nach Nygard>>
====
30 changes: 30 additions & 0 deletions website/public/data/anchors.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,36 @@
"tags": [],
"filePath": "docs/anchors/arc42.adoc"
},
{
"id": "atam",
"title": "ATAM",
"categories": [
"software-architecture"
],
"roles": [
"software-architect",
"team-lead",
"product-owner"
],
"related": [
"arc42",
"adr-according-to-nygard"
],
"proponents": [
"Rick Kazman",
"Mark Klein",
"Paul Clements"
],
"tags": [
"architecture evaluation",
"quality attributes",
"tradeoffs",
"utility tree",
"SEI",
"risk analysis"
],
"filePath": "docs/anchors/atam.adoc"
},
{
"id": "bem-methodology",
"title": "BEM Methodology",
Expand Down
1 change: 1 addition & 0 deletions website/public/data/categories.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
"anchors": [
"adr-according-to-nygard",
"arc42",
"atam",
"c4-diagrams",
"clean-architecture",
"domain-driven-design",
Expand Down
2 changes: 1 addition & 1 deletion website/public/data/metadata.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"generatedAt": "2026-03-06T17:54:22.119Z",
"generatedAt": "2026-03-06T17:47:31.258Z",
"version": "1.0.0",
"counts": {
"anchors": 55,
Expand Down
3 changes: 3 additions & 0 deletions website/public/data/roles.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
"id": "product-owner",
"name": "Product Owner / Product Manager",
"anchors": [
"atam",
"chatham-house-rule",
"cynefin-framework",
"impact-mapping",
Expand Down Expand Up @@ -135,6 +136,7 @@
"anchors": [
"adr-according-to-nygard",
"arc42",
"atam",
"c4-diagrams",
"clean-architecture",
"cynefin-framework",
Expand Down Expand Up @@ -203,6 +205,7 @@
"anchors": [
"adr-according-to-nygard",
"arc42",
"atam",
"bluf",
"c4-diagrams",
"chatham-house-rule",
Expand Down
Loading
Loading