(vision) SCS/DDD

This commit is contained in:
2025-07-01 23:53:29 +02:00
parent 6e50b9d32d
commit f4b11b220d
14 changed files with 1381 additions and 0 deletions
@@ -0,0 +1,66 @@
@startuml
title "Datenmodell: Lizenzen_und_Qualifikationen_Context"
!theme vibrant
package "Lizenzen & Qualifikationen" {
' Das Aggregate Root: Der Lizenznehmer ist die zentrale Entität,
' die Konsistenz für ihre Lizenzen und Qualifikationen sicherstellt.
class Lizenznehmer <<(A,violet) Aggregate Root>> {
' Referenz zum Personen-Context, keine vollständige Person
+ oepsSatzNrPerson : VARCHAR(6)
--
name : string
vorname : string
' Methode zur Überprüfung der Startberechtigung
+ hatStartberechtigungFuer(anforderungen) : boolean
}
' Entität innerhalb des Aggregates
class Lizenz {
+ gueltigBis : Date
+ ausgestelltAm : Date
+ bezahltImJahr : INTEGER
}
' Entität innerhalb des Aggregates
class Qualifikation {
+ erworbenAm : Date
+ bemerkung : string
}
' Value Object: Beschreibt einen Lizenztyp, hat keine eigene Identität
class LizenzTyp <<VO>> {
+ code : string
+ bezeichnung : string
+ sparte: string
}
' Value Object: Beschreibt einen Qualifikationstyp
class QualifikationsTyp <<VO>> {
+ code : string
+ bezeichnung : string
+ sparte : string
}
' Beziehungen innerhalb des Aggregates
Lizenznehmer "1" *-- "0..*" Lizenz : "besitzt"
Lizenznehmer "1" *-- "0..*" Qualifikation : "hat"
' Beziehungen zu Value Objects
Lizenz "1" -- "1" LizenzTyp
Qualifikation "1" -- "1" QualifikationsTyp
}
note right of Lizenznehmer
**Aggregate Root: Lizenznehmer**
Alle Änderungen an Lizenzen oder
Qualifikationen einer Person
sollten über das Lizenznehmer-Objekt
laufen, um die Geschäftsregeln
(z.B. "Darf diese Lizenz haben?")
zu wahren.
end note
@enduml