Skip to content

Commit f94ba6b

Browse files
authored
Merge pull request #134 from LLM-Coding/copilot/add-atam-anchoring-term
feat: Add ATAM semantic anchor
2 parents 1427b4d + 120e674 commit f94ba6b

8 files changed

Lines changed: 232 additions & 56 deletions

File tree

docs/all-anchors.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ include::anchors/adr-according-to-nygard.adoc[leveloffset=+2]
105105

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

108+
include::anchors/atam.adoc[leveloffset=+2]
109+
108110
include::anchors/c4-diagrams.adoc[leveloffset=+2]
109111

110112
include::anchors/clean-architecture.adoc[leveloffset=+2]

docs/anchors/atam.adoc

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
= ATAM
2+
:categories: software-architecture
3+
:roles: software-architect, team-lead, product-owner
4+
:related: arc42, adr-according-to-nygard
5+
:proponents: Rick Kazman, Mark Klein, Paul Clements
6+
:tags: architecture evaluation, quality attributes, tradeoffs, utility tree, SEI, risk analysis
7+
8+
[%collapsible]
9+
====
10+
Full Name:: Architecture Tradeoff Analysis Method
11+
12+
Also known as:: Architecture Evaluation, ATAM Review
13+
14+
[discrete]
15+
== *Core Concepts*:
16+
17+
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")
18+
19+
Quality Attribute Scenarios:: Testable, concrete expressions of quality requirements consisting of stimulus, source, environment, artifact, response, and response measure
20+
21+
Architectural Approaches:: Design decisions and patterns (e.g., caching, replication, layering) used to achieve quality attributes
22+
23+
Sensitivity Points:: Architectural decisions that significantly affect one specific quality attribute
24+
25+
Tradeoff Points:: Architectural decisions that affect two or more quality attributes in conflicting ways — the core insight of ATAM
26+
27+
Risks and Non-risks:: Identified architectural decisions that may (risks) or demonstrably will not (non-risks) lead to future problems
28+
29+
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
30+
31+
Key Proponents:: Rick Kazman, Mark Klein, Paul Clements (SEI / Carnegie Mellon University)
32+
33+
[discrete]
34+
== *When to Use*:
35+
36+
* Evaluating a software architecture before major investment in implementation
37+
* When multiple stakeholders have conflicting quality requirements (e.g., performance vs. security)
38+
* During architecture reviews of safety-critical or high-availability systems
39+
* When making buy-vs.-build decisions or selecting between competing architectural styles
40+
41+
[discrete]
42+
== *Related Anchors*:
43+
44+
* <<arc42,arc42 Architecture Documentation>>
45+
* <<adr-according-to-nygard,ADR according to Nygard>>
46+
====

docs/anchors/atam.de.adoc

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
= ATAM
2+
:categories: software-architecture
3+
:roles: software-architect, team-lead, product-owner
4+
:related: arc42, adr-according-to-nygard
5+
:proponents: Rick Kazman, Mark Klein, Paul Clements
6+
:tags: architecture evaluation, quality attributes, tradeoffs, utility tree, SEI, risk analysis
7+
8+
[%collapsible]
9+
====
10+
Vollständiger Name:: Architecture Tradeoff Analysis Method (Architektur-Kompromiss-Analysemethode)
11+
12+
Auch bekannt als:: Architekturbewertung, ATAM-Review
13+
14+
[discrete]
15+
== *Kernkonzepte*:
16+
17+
Utility Tree:: Hierarchische Zerlegung von Systemqualitätszielen in konkrete, priorisierte Qualitätsattribut-Szenarien (z.B. Performance → Antwortzeit → „Suchergebnisse werden in < 1s unter Spitzenlast geliefert")
18+
19+
Qualitätsattribut-Szenarien:: Testbare, konkrete Ausdrücke von Qualitätsanforderungen bestehend aus Stimulus, Quelle, Umgebung, Artefakt, Reaktion und Reaktionsmaß
20+
21+
Architekturansätze:: Entwurfsentscheidungen und Muster (z.B. Caching, Replikation, Schichtung), die zur Erreichung von Qualitätsattributen eingesetzt werden
22+
23+
Sensitivitätspunkte:: Architekturentscheidungen, die ein bestimmtes Qualitätsattribut maßgeblich beeinflussen
24+
25+
Kompromißpunkte (Tradeoff Points):: Architekturentscheidungen, die zwei oder mehr Qualitätsattribute in widersprüchlicher Weise beeinflussen — die zentrale Erkenntnis von ATAM
26+
27+
Risiken und Nicht-Risiken:: Identifizierte Architekturentscheidungen, die zu zukünftigen Problemen führen können (Risiken) oder nachweislich nicht führen werden (Nicht-Risiken)
28+
29+
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
30+
31+
Schlüsselvertreter:: Rick Kazman, Mark Klein, Paul Clements (SEI / Carnegie Mellon University)
32+
33+
[discrete]
34+
== *Wann zu verwenden*:
35+
36+
* Bewertung einer Softwarearchitektur vor größeren Investitionen in die Implementierung
37+
* Wenn mehrere Stakeholder widersprüchliche Qualitätsanforderungen haben (z.B. Performance vs. Sicherheit)
38+
* Bei Architekturreviews von sicherheitskritischen oder hochverfügbaren Systemen
39+
* Bei Kauf-vs.-Bau-Entscheidungen oder der Auswahl zwischen konkurrierenden Architekturstilen
40+
41+
[discrete]
42+
== *Verwandte Anker*:
43+
44+
* <<arc42,arc42 Architekturdokumentation>>
45+
* <<adr-according-to-nygard,ADR nach Nygard>>
46+
====

website/public/data/anchors.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,36 @@
3434
"tags": [],
3535
"filePath": "docs/anchors/arc42.adoc"
3636
},
37+
{
38+
"id": "atam",
39+
"title": "ATAM",
40+
"categories": [
41+
"software-architecture"
42+
],
43+
"roles": [
44+
"software-architect",
45+
"team-lead",
46+
"product-owner"
47+
],
48+
"related": [
49+
"arc42",
50+
"adr-according-to-nygard"
51+
],
52+
"proponents": [
53+
"Rick Kazman",
54+
"Mark Klein",
55+
"Paul Clements"
56+
],
57+
"tags": [
58+
"architecture evaluation",
59+
"quality attributes",
60+
"tradeoffs",
61+
"utility tree",
62+
"SEI",
63+
"risk analysis"
64+
],
65+
"filePath": "docs/anchors/atam.adoc"
66+
},
3767
{
3868
"id": "bem-methodology",
3969
"title": "BEM Methodology",

website/public/data/categories.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
"anchors": [
8585
"adr-according-to-nygard",
8686
"arc42",
87+
"atam",
8788
"c4-diagrams",
8889
"clean-architecture",
8990
"domain-driven-design",

website/public/data/metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"generatedAt": "2026-03-06T17:54:22.119Z",
2+
"generatedAt": "2026-03-06T17:47:31.258Z",
33
"version": "1.0.0",
44
"counts": {
55
"anchors": 55,

website/public/data/roles.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
"id": "product-owner",
9898
"name": "Product Owner / Product Manager",
9999
"anchors": [
100+
"atam",
100101
"chatham-house-rule",
101102
"cynefin-framework",
102103
"impact-mapping",
@@ -135,6 +136,7 @@
135136
"anchors": [
136137
"adr-according-to-nygard",
137138
"arc42",
139+
"atam",
138140
"c4-diagrams",
139141
"clean-architecture",
140142
"cynefin-framework",
@@ -203,6 +205,7 @@
203205
"anchors": [
204206
"adr-according-to-nygard",
205207
"arc42",
208+
"atam",
206209
"bluf",
207210
"c4-diagrams",
208211
"chatham-house-rule",

0 commit comments

Comments
 (0)