Skip to content

Commit 04fb001

Browse files
committed
feat: v3 Activitiy diagramm
1 parent 99b14ab commit 04fb001

5 files changed

Lines changed: 351 additions & 1 deletion

File tree

Lines changed: 167 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,174 @@
11
# Activity-Diagramme
22

3-
**Organismus:** `partition`, `swimlane`.
3+
Activity-Diagramme modellieren die **Ablauf- und Prozesssicht**: Aktionen, ihre Reihenfolge, Entscheidungen, parallele Pfade und die Zustaendigkeit (Swimlanes / Partitions). Sie nutzen die [Activity-Beta-Syntax](https://plantuml.com/de/activity-diagram-beta) (`start`, `:Aktion;`, `if/else`, `repeat`, `fork`, `|Swimlane|`). Diese Seite dokumentiert die **diagrammtyp-spezifischen** Sollwerte fuer Activity-Elemente.
4+
5+
**Organismus:** `:Aktion;` (Aktionsknoten), `diamond` (Entscheidungen aus `if`/`repeat`/`while`), `start` / `stop` / `end` (Start-/End-Knoten), `fork`/`join` (Synchronisationsbalken), `partition` (Gruppierung), `swimlane` (Verantwortungsspalten ueber `|Name|`).
6+
7+
Globale Typografie-, Farb- und Rendering-Defaults gelten zusaetzlich: [Globale Defaults](../global-defaults.md) · Farb-Token: [Design Tokens](../design-tokens.md).
48

59
**Golden Samples:**
610

711
- [`activity_model.puml`](https://github.com/doubleSlashde/umltheme/blob/main/examples/gen2/remote_testing/activity_model.puml)
812
- [`piprocess.puml`](https://github.com/doubleSlashde/umltheme/blob/main/examples/gen2/remote_testing/piprocess.puml)
13+
14+
=== "light"
15+
16+
```puml
17+
@startuml activitymodel
18+
!theme light from https://raw.githubusercontent.com/doubleSlashde/umltheme/refs/heads/main/doubleslash/v3/
19+
20+
title Activity-Diagramm
21+
22+
|Swimlane 1|
23+
start
24+
:Aktion 1;
25+
:Aktion 2;
26+
note right
27+
Diese Notiz erlaeutert
28+
den Zwischenzustand
29+
end note
30+
31+
|Swimlane 2|
32+
if (Alles OKAY?) then (nur zum Teil)
33+
:do more research;
34+
else (Ja)
35+
:do action;
36+
endif
37+
38+
|Swimlane 1|
39+
partition Abschluss {
40+
:final execution;
41+
}
42+
stop
43+
@enduml
44+
```
45+
46+
=== "dark"
47+
48+
```puml
49+
@startuml activitymodel
50+
!theme dark from https://raw.githubusercontent.com/doubleSlashde/umltheme/refs/heads/main/doubleslash/v3/
51+
52+
title Activity-Diagramm
53+
54+
|Swimlane 1|
55+
start
56+
:Aktion 1;
57+
:Aktion 2;
58+
note right
59+
Diese Notiz erlaeutert
60+
den Zwischenzustand
61+
end note
62+
63+
|Swimlane 2|
64+
if (Alles OKAY?) then (nur zum Teil)
65+
:do more research;
66+
else (Ja)
67+
:do action;
68+
endif
69+
70+
|Swimlane 1|
71+
partition Abschluss {
72+
:final execution;
73+
}
74+
stop
75+
@enduml
76+
```
77+
78+
## Geltende Werte
79+
80+
### Geltende Atome & Molekuele
81+
82+
<!-- markdownlint-disable MD060 -->
83+
84+
| Mechanismus | Soll-Wert (Light) | Soll-Wert (Dark) |
85+
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
86+
| Aktion (`:Text;`) | Hintergrund Blau-Tint `#D7E9F4`; BorderThickness 0; RoundCorner 16; Label Element-Labels `#000000` | Hintergrund Dark Blau-Grau `#22303C`; BorderThickness 0; RoundCorner 16; Label Element-Labels `#D7E9F4` |
87+
| Entscheidung (`diamond`) | Hintergrund Primary Cyan `#00A5E1`; Rahmen Primaer `#00759E`; Label `#000000`; FontSize **11 pt** | Hintergrund Primary Cyan `#00A5E1`; Rahmen Primaer (Bright Sky) `#77DDFF`; Label `#000000`; FontSize **11 pt** |
88+
| Start / Stop / End | Gefuellter Knoten Dark Grey `#515151` (gen2 `StartColor`/`EndColor`) | Gefuellter Knoten Light Grey `#CCCCCC` |
89+
| Synchronisation (`fork`/`join`-Bar) | Balken Valid Green `#6B9714` (gen2 `BarColor` = Success) | Balken Valid Green `#B9D478` |
90+
| Partition (`partition`/`group`) | Rahmen Primaer `#00759E`; FontColor Primaer `#00759E`; Hintergrund Canvas (transparent); RoundCorner 16 | Rahmen Primaer (Bright Sky) `#77DDFF`; FontColor `#77DDFF`; Hintergrund Canvas (transparent); RoundCorner 16 |
91+
| Swimlane-Titel | Hintergrund Super Light Grey `#F8F8F8`; FontColor `#000000`; **16 pt**; Rahmen Light Grey `#C6C6C6`; BorderThickness 1 | Hintergrund Dark Surface `#2D2D2D`; FontColor `#D7E9F4`; **16 pt**; Rahmen Medium Light Grey `#B6B6B6`; BorderThickness 1 |
92+
| Pfeile (Kontrollfluss) | Pfeilfarbe Medium Grey `#7A7A7A`; Pfeilstaerke **1.5**; Beschriftung **11 pt** (globales `arrow`) | Pfeilfarbe Medium Grey `#7A7A7A`; Pfeilstaerke **1.5**; Beschriftung **11 pt** |
93+
| Notiz (`note`) | Hintergrund transparent; Rahmen Medium Grey `#7A7A7A`; **11 pt**; linksbuendig (globales `note`) | Hintergrund transparent; Rahmen Medium Grey `#7A7A7A`; **11 pt**; linksbuendig |
94+
95+
Hinweis: Aktionsknoten erben die globale Form-Fuellung (Blau-Tint / Dark Blau-Grau) und den dezenten Rahmen (BorderThickness 0) — identisch zu `class`, `state`, `usecase`. Die Entscheidung (`diamond`) ist der einzige farblich hervorgehobene Akzent (Primary Cyan), damit Verzweigungen sofort lesbar sind.
96+
97+
### Element-Typen (Syntax)
98+
99+
| Zweck | Empfohlenes Element | Hinweis |
100+
| ------------------------ | ---------------------------------- | ------------------------------------------------------------------------------- |
101+
| Aktion / Prozessschritt | `:Text;` | Beta-Syntax; ein Schritt pro Zeile, abgeschlossen mit `;` |
102+
| Start / Ende des Flusses | `start` / `stop`/`end` | `start` einmal am Anfang; `stop` oder `end` an jedem terminierenden Pfad |
103+
| Entscheidung | `if/else/endif`, `repeat`, `while` | Wird als `diamond` gerendert (siehe [SG-36](#sg-36-entscheidungen-als-diamond)) |
104+
| Parallelitaet | `fork` / `fork again` / `end fork` | Synchronisationsbalken |
105+
| Verantwortung / Rolle | `\|Swimlane\|` | Spalte pro Rolle; Reihenfolge der Deklaration bestimmt Spaltenfolge |
106+
| Logische Gruppierung | `partition` / `group` | Rahmt zusammengehoerige Aktionen; `partition` traegt sichtbaren Titel |
107+
| Zwischenkommentar | `note left` / `note right` | Erbt globales `note`-Styling |
108+
109+
### Typografie
110+
111+
| Eigenschaft | Soll-Wert | Geltung |
112+
| ------------------------------- | ------------------------------------ | ---------------------------------------- |
113+
| **FontSize** (Aktion-Label) | **12 pt** | Standard-Fliesstext (globales `element`) |
114+
| **FontSize** (Diamond-Label) | **11 pt** | Beschriftung der Entscheidungsraute |
115+
| **FontSize** (Swimlane-Titel) | **16 pt** | Spaltenkopf der Swimlane |
116+
| **FontColor** (Aktion-Label) | Element-Labels `#000000` / `#D7E9F4` | Beschriftung auf Blau-Tint-Fuellung |
117+
| **FontColor** (Partition-Label) | Primaer `#00759E` / `#77DDFF` | Partition-Titel in Primaerfarbe |
118+
| **ArrowFontSize** | **11 pt** | Beschriftungen an Kontrollfluss-Pfeilen |
119+
120+
## Konfiguration
121+
122+
### [SG-33] Beta-Syntax verwenden
123+
124+
**Ebene:** Syntax / Diagrammstruktur
125+
**Geltung:** Activity
126+
127+
**Regel:** Activity-Diagramme **SOLLEN** die [Activity-Beta-Syntax](https://plantuml.com/de/activity-diagram-beta) nutzen (`start`, `:Aktion;`, `if/else`, `\|Swimlane\|`) — nicht die veraltete Syntax mit `(*)` und `-->`. Nur so greifen `activityDiagram`-Stylings korrekt.
128+
129+
```plantuml
130+
start
131+
:Aktion;
132+
stop
133+
```
134+
135+
### [SG-34] Layout-Richtung
136+
137+
**Ebene:** Page
138+
**Geltung:** Activity
139+
140+
**Regel:** Activity-Diagramme **SOLLEN** die globale Leserichtung **top to bottom** beibehalten — der Kontrollfluss laeuft von oben nach unten, Swimlanes rendern als vertikale Spalten. `left to right direction` **SOLLTE NICHT** gesetzt werden, da es den Fluss-Lesefluss bricht.
141+
142+
Globaler Default ist **top to bottom** — siehe [Globale Defaults — Richtung](../global-defaults.md#richtung-layout-logik).
143+
144+
### [SG-35] Swimlanes und Partitions
145+
146+
**Ebene:** Syntax / Diagrammstruktur
147+
**Geltung:** Activity
148+
149+
**Regel:** Verantwortlichkeiten **SOLLTEN** ueber Swimlanes (`|Name|`) modelliert werden; thematisch zusammengehoerige Schritte **DUERFEN** zusaetzlich in einer `partition` gebuendelt werden. Swimlane-Farben **SOLLEN** dem Theme-Token folgen (Titel Super Light Grey / Dark Surface); individuelle Lane-Farben nur bei fachlicher Notwendigkeit ueber `|#Farbe|Name|`.
150+
151+
```plantuml
152+
|Planung|
153+
:Angebot erstellen;
154+
|Entwicklung|
155+
:Umsetzung;
156+
```
157+
158+
### [SG-36] Entscheidungen als `diamond`
159+
160+
**Ebene:** Stil / Rendering
161+
**Geltung:** Activity
162+
163+
**Regel:** Entscheidungen (`if`/`repeat`/`while`) **SOLLEN** als Raute (`diamond`) dargestellt werden. Das Theme setzt dafuer `skinparam conditionStyle diamond`; in Autoren-Diagrammen ist keine zusaetzliche Direktive noetig. Die Raute nutzt als einziges Element die Akzentfarbe Primary Cyan.
164+
165+
```plantuml
166+
skinparam conditionStyle diamond
167+
```
168+
169+
### [SG-37] Keine Hardcoded-Farben
170+
171+
**Ebene:** Domain / Governance
172+
**Geltung:** Activity
173+
174+
**Regel:** Aktionen, Entscheidungen und Partitions **SOLLEN** die Theme-Defaults nutzen. Inline-Farben (`:Aktion; #red`, `<<#blue>>`) **SOLLTEN** nur fuer bewusste fachliche Hervorhebung (z. B. kritische Pfade) eingesetzt werden — nicht zur generellen Umfaerbung. Farbwerte folgen den [Design Tokens](../design-tokens.md), nicht beliebigen Hex-Werten.

doubleslash/v3/puml-theme-dark.puml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,21 @@ skinparam linetype polyline
2020
' Set "top to bottom direction" or "left to right direction"
2121
' in the concrete diagram where the diagram type supports it.
2222

23+
' Activity — legacy only (no CSS selector for start/stop, fork/join bar, swimlane)
24+
skinparam conditionStyle diamond
25+
skinparam activity {
26+
StartColor #CCCCCC
27+
EndColor #CCCCCC
28+
BarColor #B9D478
29+
}
30+
skinparam swimlane {
31+
TitleFontColor #D7E9F4
32+
TitleFontSize 16
33+
TitleBackgroundColor #2D2D2D
34+
BorderColor #B6B6B6
35+
BorderThickness 1
36+
}
37+
2338
hide circle
2439
hide empty members
2540
hide stereotype
@@ -193,4 +208,33 @@ hide stereotype
193208
}
194209
}
195210

211+
activityDiagram {
212+
activity {
213+
BackGroundColor #22303C
214+
}
215+
216+
activityBar {
217+
BackGroundColor #B9D478
218+
LineThickness 2
219+
}
220+
221+
start {
222+
BackgroundColor #CCCCCC
223+
LineColor #CCCCCC
224+
}
225+
226+
diamond {
227+
BackGroundColor #00A5E1
228+
LineColor #77DDFF
229+
FontColor #000000
230+
FontSize 11
231+
}
232+
233+
partition {
234+
LineColor #77DDFF
235+
FontColor #77DDFF
236+
BackGroundColor transparent
237+
}
238+
}
239+
196240
</style>

doubleslash/v3/puml-theme-light.puml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,21 @@ skinparam linetype polyline
2020
' Set "top to bottom direction" or "left to right direction"
2121
' in the concrete diagram where the diagram type supports it.
2222

23+
' Activity — legacy only (no CSS selector for start/stop, fork/join bar, swimlane)
24+
skinparam conditionStyle diamond
25+
skinparam activity {
26+
StartColor #515151
27+
EndColor #515151
28+
BarColor #6B9714
29+
}
30+
skinparam swimlane {
31+
TitleFontColor #000000
32+
TitleFontSize 16
33+
TitleBackgroundColor #F8F8F8
34+
BorderColor #C6C6C6
35+
BorderThickness 1
36+
}
37+
2338
hide circle
2439
hide empty members
2540
hide stereotype
@@ -192,4 +207,33 @@ hide stereotype
192207
}
193208
}
194209

210+
activityDiagram {
211+
activity {
212+
BackGroundColor #D7E9F4
213+
}
214+
215+
activityBar {
216+
BackGroundColor #6B9714
217+
LineThickness 2
218+
}
219+
220+
start {
221+
BackgroundColor #515151
222+
LineColor #515151
223+
}
224+
225+
diamond {
226+
BackGroundColor #00A5E1
227+
LineColor #00759E
228+
FontColor #000000
229+
FontSize 11
230+
}
231+
232+
partition {
233+
LineColor #00759E
234+
FontColor #00759E
235+
BackGroundColor transparent
236+
}
237+
}
238+
195239
</style>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
@startuml v3-theme-dark-activity
2+
!theme dark from ../../../doubleslash/v3
3+
4+
title UML Theme v3 — Dark Mode Activity Smoke Test
5+
6+
|Planung|
7+
start
8+
:Anforderung erfassen;
9+
:Kapazitaet pruefen;
10+
note right
11+
Erlaeuterung zum
12+
Zwischenschritt
13+
end note
14+
15+
|Entwicklung|
16+
if (Freigabe erteilt?) then (ja)
17+
partition Umsetzung {
18+
:Story implementieren;
19+
:Code Review;
20+
}
21+
else (nein)
22+
:Zurueck zur Planung;
23+
endif
24+
25+
|Abnahme|
26+
fork
27+
:Tests ausfuehren;
28+
fork again
29+
:Dokumentation aktualisieren;
30+
end fork
31+
:Release freigeben;
32+
stop
33+
34+
legend right
35+
|= Token |= Selector |
36+
| Activity node | activityDiagram activity |
37+
| Decision diamond | activityDiagram diamond |
38+
| Partition | activityDiagram partition |
39+
| Swimlane title | skinparam swimlane (legacy) |
40+
| Start / stop | skinparam activity StartColor/EndColor |
41+
| Fork / join bar | activityDiagram activityBar |
42+
| Arrow labels | global arrow |
43+
| Notes | global note |
44+
endlegend
45+
46+
footer Smoke test for puml-theme-dark.puml (v3 activity)
47+
48+
@enduml
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
@startuml v3-theme-light-activity
2+
!theme light from ../../../doubleslash/v3
3+
4+
title UML Theme v3 — Light Mode Activity Smoke Test
5+
6+
|Planung|
7+
start
8+
:Anforderung erfassen;
9+
:Kapazitaet pruefen;
10+
note right
11+
Erlaeuterung zum
12+
Zwischenschritt
13+
end note
14+
15+
|Entwicklung|
16+
if (Freigabe erteilt?) then (ja)
17+
partition Umsetzung {
18+
:Story implementieren;
19+
:Code Review;
20+
}
21+
else (nein)
22+
:Zurueck zur Planung;
23+
endif
24+
25+
|Abnahme|
26+
fork
27+
:Tests ausfuehren;
28+
fork again
29+
:Dokumentation aktualisieren;
30+
end fork
31+
:Release freigeben;
32+
stop
33+
end
34+
legend right
35+
|= Token |= Selector |
36+
| Activity node | activityDiagram activity |
37+
| Decision diamond | activityDiagram diamond |
38+
| Partition | activityDiagram partition |
39+
| Swimlane title | skinparam swimlane (legacy) |
40+
| Start / stop | skinparam activity StartColor/EndColor |
41+
| Fork / join bar | activityDiagram activityBar |
42+
| Arrow labels | global arrow |
43+
| Notes | global note |
44+
endlegend
45+
46+
footer Smoke test for puml-theme-light.puml (v3 activity)
47+
48+
@enduml

0 commit comments

Comments
 (0)