Skip to content

Commit f6aa0cf

Browse files
committed
aktueller Stand
1 parent 390cd3a commit f6aa0cf

28 files changed

Lines changed: 2260 additions & 0 deletions

docToolchainConfig.groovy

Lines changed: 545 additions & 0 deletions
Large diffs are not rendered by default.

dtcw

Lines changed: 687 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
:imagesdir: ../images

src/docs/01-arc42/arc42.adoc

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
:imagesdir: ../images
2+
:jbake-menu: -
3+
// header file for arc42-template,
4+
// including all help texts
5+
//
6+
// ====================================
7+
8+
9+
// configure DE settings for asciidoc
10+
include::chapters/config.adoc[]
11+
12+
= image:arc42-logo.png[arc42] Template
13+
:revnumber: 8.2 DE
14+
:revdate: Januar 2023
15+
:revremark: (basiert auf AsciiDoc Version)
16+
// toc-title definition MUST follow document title without blank line!
17+
:toc-title: Inhaltsverzeichnis
18+
19+
//additional style for arc42 help callouts
20+
ifdef::backend-html5[]
21+
++++
22+
<style>
23+
.arc42help {font-size:small; width: 14px; height: 16px; overflow: hidden; position: absolute; right: 0; padding: 2px 0 3px 2px;}
24+
.arc42help::before {content: "?";}
25+
.arc42help:hover {width:auto; height: auto; z-index: 100; padding: 10px;}
26+
.arc42help:hover::before {content: "";}
27+
@media print {
28+
.arc42help {display:none;}
29+
}
30+
</style>
31+
++++
32+
endif::backend-html5[]
33+
34+
35+
include::chapters/about-arc42.adoc[]
36+
37+
// horizontal line
38+
***
39+
40+
ifdef::arc42help[]
41+
[role="arc42help"]
42+
****
43+
[NOTE]
44+
====
45+
Diese Version des Templates enthält Hilfen und Erläuterungen.
46+
Sie dient der Einarbeitung in arc42 sowie dem Verständnis der Konzepte.
47+
Für die Dokumentation eigener System verwenden Sie besser die _plain_ Version.
48+
====
49+
****
50+
endif::arc42help[]
51+
52+
// numbering from here on
53+
:numbered:
54+
55+
<<<<
56+
// 1. Anforderungen und Ziele
57+
include::chapters/01_introduction_and_goals.adoc[]
58+
59+
<<<<
60+
// 2. Randbedingungen
61+
include::chapters/02_architecture_constraints.adoc[]
62+
63+
<<<<
64+
// 3. Kontextabgrenzung
65+
include::chapters/03_context_and_scope.adoc[]
66+
67+
<<<<
68+
// 4. Lösungsstrategie
69+
include::chapters/04_solution_strategy.adoc[]
70+
71+
<<<<
72+
// 5. Bausteinsicht
73+
include::chapters/05_building_block_view.adoc[]
74+
75+
<<<<
76+
// 6. Laufzeitsicht
77+
include::chapters/06_runtime_view.adoc[]
78+
79+
<<<<
80+
// 7. Verteilungssicht
81+
include::chapters/07_deployment_view.adoc[]
82+
83+
<<<<
84+
// 8. Querschnittliche Konzepte
85+
include::chapters/08_concepts.adoc[]
86+
87+
<<<<
88+
// 9. Entscheidungen
89+
include::chapters/09_architecture_decisions.adoc[]
90+
91+
<<<<
92+
// 10. Qualitätsanforderungen
93+
include::chapters/10_quality_requirements.adoc[]
94+
95+
<<<<
96+
// 11. Risiken
97+
include::chapters/11_technical_risks.adoc[]
98+
99+
<<<<
100+
// 12. Glossar
101+
include::chapters/12_glossary.adoc[]
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
:imagesdir: ../../images
2+
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
:jbake-title: Einführung und Ziele
2+
:jbake-type: page_toc
3+
:jbake-status: published
4+
:jbake-menu: arc42
5+
:jbake-order: 1
6+
:filename: /chapters/01_introduction_and_goals.adoc
7+
ifndef::imagesdir[:imagesdir: ../../images]
8+
9+
:toc:
10+
11+
12+
13+
[[section-introduction-and-goals]]
14+
== Einführung und Ziele
15+
16+
Erster Absatz.
17+
18+
zweiter Absatz.
19+
20+
*bold* _italic_ `mono`
21+
22+
=== dsfsdf
23+
24+
25+
=== Aufgabenstellung
26+
27+
ifdef::arc42help[]
28+
[role="arc42help"]
29+
****
30+
.Inhalt
31+
Kurzbeschreibung der fachlichen Aufgabenstellung, treibenden Kräfte, Extrakt (oder Abstract) der Anforderungen.
32+
Verweis auf (hoffentlich vorliegende) Anforderungsdokumente (mit Versionsbezeichnungen und Ablageorten).
33+
34+
.Motivation
35+
Aus Sicht der späteren Nutzung ist die Unterstützung einer fachlichen Aufgabe oder Verbesserung der Qualität der eigentliche Beweggrund, ein neues System zu schaffen oder ein bestehendes zu modifizieren.
36+
37+
.Form
38+
Kurze textuelle Beschreibung, eventuell in tabellarischer Use-Case Form.
39+
Sofern vorhanden, sollte die Aufgabenstellung Verweise auf die entsprechenden Anforderungsdokumente enthalten.
40+
41+
Halten Sie diese Auszüge so knapp wie möglich und wägen Sie Lesbarkeit und Redundanzfreiheit gegeneinander ab.
42+
43+
44+
.Weiterführende Informationen
45+
46+
Siehe https://docs.arc42.org/section-1/[Anforderungen und Ziele] in der online-Dokumentation (auf Englisch!).
47+
48+
****
49+
endif::arc42help[]
50+
51+
=== Qualitätsziele
52+
53+
ifdef::arc42help[]
54+
[role="arc42help"]
55+
****
56+
.Inhalt
57+
Die Top-3 bis Top-5 der Qualitätsanforderungen für die Architektur, deren Erfüllung oder Einhaltung den maßgeblichen Stakeholdern besonders wichtig sind.
58+
Gemeint sind hier wirklich Qualitätsziele, die nicht unbedingt mit den Zielen des Projekts übereinstimmen.
59+
Beachten Sie den Unterschied.
60+
61+
Hier ein Überblick möglicher Themen (basierend auf dem ISO 25010 Standard):
62+
63+
image::01_2_iso-25010-topics-DE.drawio.png["Kategorien von Qualitätsanforderungen"]
64+
65+
.Motivation
66+
Weil Qualitätsziele grundlegende Architekturentscheidungen oft maßgeblich beeinflussen, sollten Sie die für Ihre Stakeholder relevanten Qualitätsziele kennen, möglichst konkret und operationalisierbar.
67+
68+
.Form
69+
Tabellarische Darstellung der Qualitätsziele mit möglichst konkreten Szenarien, geordnet nach Prioritäten.
70+
****
71+
endif::arc42help[]
72+
73+
=== Stakeholder
74+
75+
ifdef::arc42help[]
76+
[role="arc42help"]
77+
****
78+
.Inhalt
79+
Expliziter Überblick über die Stakeholder des Systems – über alle Personen, Rollen oder Organisationen –, die
80+
81+
* die Architektur kennen sollten oder
82+
* von der Architektur überzeugt werden müssen,
83+
* mit der Architektur oder dem Code arbeiten (z.B. Schnittstellen nutzen),
84+
* die Dokumentation der Architektur für ihre eigene Arbeit benötigen,
85+
* Entscheidungen über das System und dessen Entwicklung treffen.
86+
87+
.Motivation
88+
Sie sollten die Projektbeteiligten und -betroffenen kennen, sonst erleben Sie später im Entwicklungsprozess Überraschungen.
89+
Diese Stakeholder bestimmen unter anderem Umfang und Detaillierungsgrad der von Ihnen zu leistenden Arbeit und Ergebnisse.
90+
91+
.Form
92+
Tabelle mit Rollen- oder Personennamen, sowie deren Erwartungshaltung bezüglich der Architektur und deren Dokumentation.
93+
****
94+
endif::arc42help[]
95+
96+
[cols="1,1,2" options="header"]
97+
|===
98+
|Rolle |Kontakt |Erwartungshaltung
99+
| _<Rolle-1>_ | _<Kontakt-1>_ | _<Erwartung-1>_
100+
| _<Rolle-2>_ | _<Kontakt-2>_ | _<Erwartung-2>_
101+
|===
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
:jbake-title: Randbedingungen
2+
:jbake-type: page_toc
3+
:jbake-status: published
4+
:jbake-menu: arc42
5+
:jbake-order: 2
6+
:filename: /chapters/02_architecture_constraints.adoc
7+
ifndef::imagesdir[:imagesdir: ../../images]
8+
9+
:toc:
10+
11+
12+
13+
[[section-architecture-constraints]]
14+
== Randbedingungen
15+
16+
[cols="1,3,6", options="header"]
17+
|===
18+
|ID
19+
|Title
20+
|Description
21+
22+
|RB1
23+
|Java
24+
|Wir haben ein Java-Team
25+
26+
|RB2
27+
|React
28+
|Frontend mit React
29+
30+
|===
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
:jbake-title: Kontextabgrenzung
2+
:jbake-type: page_toc
3+
:jbake-status: published
4+
:jbake-menu: arc42
5+
:jbake-order: 3
6+
:filename: /chapters/03_context_and_scope.adoc
7+
ifndef::imagesdir[:imagesdir: ../../images]
8+
9+
:toc:
10+
11+
12+
13+
[[section-context-and-scope]]
14+
== Kontextabgrenzung
15+
16+
[plantuml, context, svg]
17+
----
18+
actor User
19+
component "Mein-\nSystem" as s #8ef
20+
component "Login-System" as login #ddd
21+
User -down-> s : via browser
22+
s -down-> login : oAuth2
23+
----
24+
25+
=== Fachlicher Kontext
26+
27+
ifdef::arc42help[]
28+
[role="arc42help"]
29+
****
30+
.Inhalt
31+
Festlegung *aller* Kommunikationsbeziehungen (Nutzer, IT-Systeme, ...) mit Erklärung der fachlichen Ein- und Ausgabedaten oder Schnittstellen.
32+
Zusätzlich (bei Bedarf) fachliche Datenformate oder Protokolle der Kommunikation mit den Nachbarsystemen.
33+
34+
.Motivation
35+
Alle Beteiligten müssen verstehen, welche fachlichen Informationen mit der Umwelt ausgetauscht werden.
36+
37+
.Form
38+
Alle Diagrammarten, die das System als Blackbox darstellen und die fachlichen Schnittstellen zu den Nachbarsystemen beschreiben.
39+
40+
Alternativ oder ergänzend können Sie eine Tabelle verwenden.
41+
Der Titel gibt den Namen Ihres Systems wieder; die drei Spalten sind: Kommunikationsbeziehung, Eingabe, Ausgabe.
42+
****
43+
endif::arc42help[]
44+
45+
**<Diagramm und/oder Tabelle>**
46+
47+
**<optional: Erläuterung der externen fachlichen Schnittstellen>**
48+
49+
=== Technischer Kontext
50+
51+
ifdef::arc42help[]
52+
[role="arc42help"]
53+
****
54+
.Inhalt
55+
Technische Schnittstellen (Kanäle, Übertragungsmedien) zwischen dem System und seiner Umwelt.
56+
Zusätzlich eine Erklärung (_mapping_), welche fachlichen Ein- und Ausgaben über welche technischen Kanäle fließen.
57+
58+
.Motivation
59+
Viele Stakeholder treffen Architekturentscheidungen auf Basis der technischen Schnittstellen des Systems zu seinem Kontext.
60+
61+
Insbesondere bei der Entwicklung von Infrastruktur oder Hardware sind diese technischen Schnittstellen durchaus entscheidend.
62+
63+
.Form
64+
Beispielsweise UML Deployment-Diagramme mit den Kanälen zu Nachbarsystemen, begleitet von einer Tabelle, die Kanäle auf Ein-/Ausgaben abbildet.
65+
****
66+
endif::arc42help[]
67+
68+
**<Diagramm oder Tabelle>**
69+
70+
**<optional: Erläuterung der externen technischen Schnittstellen>**
71+
72+
**<Mapping fachliche auf technische Schnittstellen>**
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
:jbake-title: Lösungsstrategie
2+
:jbake-type: page_toc
3+
:jbake-status: published
4+
:jbake-menu: arc42
5+
:jbake-order: 4
6+
:filename: /chapters/04_solution_strategy.adoc
7+
ifndef::imagesdir[:imagesdir: ../../images]
8+
9+
:toc:
10+
11+
12+
13+
[[section-solution-strategy]]
14+
== Lösungsstrategie
15+
16+
ifdef::arc42help[]
17+
[role="arc42help"]
18+
****
19+
.Inhalt
20+
Kurzer Überblick über die grundlegenden Entscheidungen und Lösungsansätze, die Entwurf und Implementierung des Systems prägen.
21+
Hierzu gehören:
22+
23+
* Technologieentscheidungen
24+
* Entscheidungen über die Top-Level-Zerlegung des Systems, beispielsweise die Verwendung gesamthaft prägender Entwurfs- oder Architekturmuster,
25+
* Entscheidungen zur Erreichung der wichtigsten Qualitätsanforderungen sowie
26+
* relevante organisatorische Entscheidungen, beispielsweise für bestimmte Entwicklungsprozesse oder Delegation bestimmter Aufgaben an andere Stakeholder.
27+
28+
.Motivation
29+
Diese wichtigen Entscheidungen bilden wesentliche „Eckpfeiler“ der Architektur.
30+
Von ihnen hängen viele weitere Entscheidungen oder Implementierungsregeln ab.
31+
32+
.Form
33+
Fassen Sie die zentralen Entwurfsentscheidungen *kurz* zusammen.
34+
Motivieren Sie, ausgehend von Aufgabenstellung, Qualitätszielen und Randbedingungen, was Sie entschieden haben und warum Sie so entschieden haben.
35+
Vermeiden Sie redundante Beschreibungen und verweisen Sie eher auf weitere Ausführungen in Folgeabschnitten.
36+
37+
.Weiterführende Informationen
38+
39+
Siehe https://docs.arc42.org/section-4/[Lösungsstrategie] in der online-Dokumentation (auf Englisch!).
40+
41+
****
42+
endif::arc42help[]

0 commit comments

Comments
 (0)