SE1_Team_1/dokumentation/diagramme/sequenz_kunde_loeschen_grup...

44 lines
1.3 KiB
Plaintext

@startuml sequenz_kunde_loeschen_gruppeC
' UML-Sequenzdiagramm "Kunde löschen mit Löschsperre (GR-04)" (Pflichtenheft Gruppe C, Abschnitt 7.2)
' Ablauf gemäß KundenVerwaltungsService.loescheKunde(kundennummer).
skinparam shadowing false
skinparam sequenceMessageAlign center
hide footbox
title UML-Sequenzdiagramm — „Kunde löschen mit Löschsperre (GR-04)" (Gruppe C)
participant "GUI\n(Gruppe D)" as GUI
participant "kundenService :\nKundenVerwaltungsService" as KVS
participant "referenzPruefung :\nKundenReferenzPruefung\n(Gruppe A)" as RP
participant "repository :\nKundenRepository" as REPO
participant "ereignisBus :\nEreignisBus" as EB
GUI -> KVS : loescheKunde(kundennummer)
activate KVS
KVS -> RP : anzahlVerknuepfterDokumente(kundennummer)
activate RP
RP --> KVS : anzahl
deactivate RP
alt anzahl > 0 (Löschsperre GR-04, F-09)
KVS --> GUI : LoeschAbgelehntException\n(Hinweis mit Anzahl verknüpfter Dokumente)
else anzahl == 0
note over GUI, KVS : Bestätigungsabfrage der Anwender:in (F-08)
KVS -> REPO : loesche(kundennummer)
activate REPO
REPO --> KVS
deactivate REPO
KVS -> EB : melde(DatenBereich.KUNDEN)
activate EB
note right of EB : benachrichtigt die abonnierte\nKundenansicht (Observer-Muster)
EB --> KVS
deactivate EB
KVS --> GUI : Kunde gelöscht
end
deactivate KVS
@enduml