SE1_Team_1/diagramme/klassendiagramm_programmobe...

107 lines
2.5 KiB
Plaintext

@startuml
!pragma layout smetana
title UML-Klassendiagramm Programmoberflaeche (Gruppe D)
skinparam classAttributeIconSize 0
skinparam linetype ortho
package "gui" {
class HauptFenster {
- aktuellesModul : String
- wechsleZu(String)
}
interface ModulPanel {
+ aktualisiere()
+ hatUngespeicherteAenderungen() : boolean
}
class KundenPanel
class ProduktPanel
class DokumentListenPanel
class RechnungsWizardDialog
class StammdatenController {
+ kundenListe(String) : List<Kunde>
+ produkteListe(String) : List<Produkt>
}
class DokumentListenController {
+ gefiltert(DokumentStatus) : List<Dokument>
+ aktionenFuer(Dokument) : BelegAktionen
+ storniere(String, boolean) : Meldung
}
class RechnungsWizardController {
+ weiter() : boolean
+ zurueck()
+ erzeugeZusammenfassung() : String
+ speichern() : Meldung
}
class RechnungsWizardModel {
- aktuellerSchritt : WizardSchritt
- kundenNr : String
- positionen : List<PositionsEingabe>
- rechnungsdatum : LocalDate
- zahlungsziel : LocalDate
}
enum WizardSchritt {
KUNDE_WAEHLEN
POSITIONEN_ERFASSEN
DATEN_BESTAETIGEN
ZUSAMMENFASSUNG
SPEICHERN
}
class Meldung {
- typ : MeldungsTyp
- feldname : String
- text : String
}
class BelegAktionen
class PositionsEingabe
}
package "Schnittstellen Gruppen A-C" {
interface DokumentService
interface KundenService
interface ProduktService
}
package "gemeinsam" {
class EreignisBus
}
ModulPanel <|.. KundenPanel
ModulPanel <|.. ProduktPanel
ModulPanel <|.. DokumentListenPanel
HauptFenster *-- KundenPanel
HauptFenster *-- ProduktPanel
HauptFenster *-- DokumentListenPanel
KundenPanel --> StammdatenController
ProduktPanel --> StammdatenController
DokumentListenPanel --> DokumentListenController
RechnungsWizardDialog --> RechnungsWizardController
StammdatenController --> KundenService
StammdatenController --> ProduktService
DokumentListenController --> DokumentService
RechnungsWizardController --> DokumentService
RechnungsWizardController --> KundenService
RechnungsWizardController --> ProduktService
RechnungsWizardController *-- RechnungsWizardModel
RechnungsWizardModel --> WizardSchritt
RechnungsWizardModel *-- PositionsEingabe
RechnungsWizardController --> Meldung
DokumentListenController --> BelegAktionen
KundenPanel ..> EreignisBus : aktualisiert
ProduktPanel ..> EreignisBus : aktualisiert
DokumentListenPanel ..> EreignisBus : aktualisiert
@enduml