From 679703df4694a0eeedf4719698a95c069b7cdc3e Mon Sep 17 00:00:00 2001 From: Ulli Hafner Date: Tue, 30 Jun 2026 13:23:37 +0200 Subject: [PATCH] Improve legend of component diagrams --- doc/uml/component-diagram-artifacts.puml | 91 ++++++++++++++++++++++++ doc/uml/component-diagram-details.puml | 2 +- doc/uml/component-diagram-overview.puml | 17 ++--- 3 files changed, 98 insertions(+), 12 deletions(-) create mode 100644 doc/uml/component-diagram-artifacts.puml diff --git a/doc/uml/component-diagram-artifacts.puml b/doc/uml/component-diagram-artifacts.puml new file mode 100644 index 000000000..9936aaf0a --- /dev/null +++ b/doc/uml/component-diagram-artifacts.puml @@ -0,0 +1,91 @@ +@startuml + +skinparam component { + BackgroundColor #f8f8f8 + BorderColor #a0a0a0 + BackgroundColor<
> #FFFF00 + BorderColor black + FontName Arial Unicode MS + FontSize 20 + ArrowFontName Arial Unicode MS + ArrowFontSize 18 +} + +skinparam classFontSize 24 +skinparam classAttributeIconSize 0 +skinparam defaultFontSize 20 + +skinparam ArrowColor black +skinparam ArrowThickness 2 + +skinparam note { + BackgroundColor LightBlue + BorderColor #a0a0a0 + FontName Arial + FontSize 14 + FontColor black + RoundCorner 15 + LineType solid +} + +hide circle + +skinparam componentStyle uml2 + +component "Anwendung" <> as anwendung { + artifact anwendung-1.0.0.war <> as war { + } +} + +component "Fachkomponente" <> as fachkomponente { + artifact fachlogik-1.0.0.jar <> as jar { + } +} + +component " org.apache.commons:commons-lang3:3.12 " <> as library { + artifact commons-lang3-3.12.jar <> as lang { + } +} + +anwendung .up.> library : " <>" +circle "\t Fassade " as fassade +anwendung ..> fassade : " <>" + +note "Artefakt\nEndung je nach Projekttyp" as artefact +note "Komponente, identifiziert\nmit 3 Koordinaten" as component +note "Schnittstelle" as schnittstelle +note "Implementierung\neiner Schnittstelle" as Implementierung +note "Aufruf einer\nSchnittstelle" as Use +note "gerichtete Abhängigkeit\nohne Angabe Interface" as Dependency +note "Bei Inhouse Komponenten\nwird oft der Name genutzt\nstatt der 3 Koordinaten" as Inhouse + +fassade -up- fachkomponente + +anwendung .[#blue,dotted]down. Use +fassade .[#blue,dotted]up. Use + +fassade .[#blue,dotted]left. schnittstelle +library .[#blue,dotted]up. component +lang .[#blue,dotted]down. artefact + +fassade .[#blue,dotted]down. Implementierung +fachkomponente .[#blue,dotted]right. Implementierung + +anwendung .up[#blue,dotted]. Dependency +library .down[#blue,dotted]. Dependency + +anwendung .[#blue,dotted]left. Inhouse +fachkomponente .[#blue,dotted]left. Inhouse + +note as notes + Anmerkungen + + Die blauen Boxen und gepunkteten + Linien sind nur Anmerkungen. In + eigenen Diagrammen werden sie + nicht verwendet. +end note + +notes .[hidden]up. anwendung + +@enduml diff --git a/doc/uml/component-diagram-details.puml b/doc/uml/component-diagram-details.puml index 81cc7b199..f434be7f5 100644 --- a/doc/uml/component-diagram-details.puml +++ b/doc/uml/component-diagram-details.puml @@ -67,7 +67,7 @@ component "Anwendung" <> as anwendung { component "Fachkomponente" <> as fachkomponente { } -component " org.apache.commons:commons-lang3 " <> as library { +component " org.apache.commons:commons-lang3:3.12 " <> as library { artifact commons-lang3-3.12.jar <> as lang { } } diff --git a/doc/uml/component-diagram-overview.puml b/doc/uml/component-diagram-overview.puml index ce33a372a..a849e069f 100644 --- a/doc/uml/component-diagram-overview.puml +++ b/doc/uml/component-diagram-overview.puml @@ -33,31 +33,24 @@ hide circle skinparam componentStyle uml2 component "Anwendung" <> as anwendung { - artifact anwendung-1.0.0.war <> as war { - } } component "Fachkomponente" <> as fachkomponente { - artifact fachlogik-1.0.0.jar <> as jar { - } } -component " org.apache.commons:commons-lang3 " <> as library { - artifact commons-lang3-3.12.jar <> as lang { - } +component " org.apache.commons:commons-lang3:3.12 " <> as library { } anwendung .up.> library : " <>" circle "\t Fassade " as fassade anwendung ..> fassade : " <>" -note "Artefakt" as artefact -note "Komponente" as component +note "Komponente, identifiziert\nmit 3 Koordinaten" as component note "Schnittstelle" as schnittstelle note "Implementierung\neiner Schnittstelle" as Implementierung note "Aufruf einer\nSchnittstelle" as Use note "gerichtete Abhängigkeit\nohne Angabe Interface" as Dependency - +note "Bei Inhouse Komponenten\nwird oft der Name genutzt\nstatt der 3 Koordinaten" as Inhouse fassade -up- fachkomponente @@ -66,7 +59,6 @@ fassade .[#blue,dotted]up. Use fassade .[#blue,dotted]left. schnittstelle library .[#blue,dotted]up. component -lang .[#blue,dotted]down. artefact fassade .[#blue,dotted]down. Implementierung fachkomponente .[#blue,dotted]right. Implementierung @@ -74,6 +66,9 @@ fachkomponente .[#blue,dotted]right. Implementierung anwendung .up[#blue,dotted]. Dependency library .down[#blue,dotted]. Dependency +anwendung .[#blue,dotted]left. Inhouse +fachkomponente .[#blue,dotted]left. Inhouse + note as notes Anmerkungen