(vision) SCS/DDD
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user