Ergaenze UML-Diagramme fuer Gruppe D
parent
6aaa409f49
commit
c2bd6e1432
|
|
@ -3,7 +3,7 @@ title: "Pflichtenheft"
|
||||||
subtitle: "Desktop-Fakturierungsanwendung — Gruppe D: Programmoberfläche"
|
subtitle: "Desktop-Fakturierungsanwendung — Gruppe D: Programmoberfläche"
|
||||||
author:
|
author:
|
||||||
- Team 1 – Gruppe D
|
- Team 1 – Gruppe D
|
||||||
version: "1.0"
|
version: "1.1"
|
||||||
lang: de-DE
|
lang: de-DE
|
||||||
toc: true
|
toc: true
|
||||||
toc-depth: 3
|
toc-depth: 3
|
||||||
|
|
@ -14,7 +14,7 @@ fontsize: 12pt
|
||||||
linestretch: 1.5
|
linestretch: 1.5
|
||||||
mainfont: "Times New Roman"
|
mainfont: "Times New Roman"
|
||||||
sansfont: "Arial"
|
sansfont: "Arial"
|
||||||
monofont: "DejaVu Sans Mono"
|
monofont: "Menlo"
|
||||||
header-includes: |
|
header-includes: |
|
||||||
\usepackage{fancyhdr}
|
\usepackage{fancyhdr}
|
||||||
\usepackage{lastpage}
|
\usepackage{lastpage}
|
||||||
|
|
@ -22,7 +22,7 @@ header-includes: |
|
||||||
\fancyhf{}
|
\fancyhf{}
|
||||||
\fancyhead[L]{Team 1 – Gruppe D}
|
\fancyhead[L]{Team 1 – Gruppe D}
|
||||||
\fancyhead[C]{Pflichtenheft}
|
\fancyhead[C]{Pflichtenheft}
|
||||||
\fancyhead[R]{Version 1.0}
|
\fancyhead[R]{Version 1.1}
|
||||||
\fancyfoot[C]{\thepage\ /\ \pageref{LastPage}}
|
\fancyfoot[C]{\thepage\ /\ \pageref{LastPage}}
|
||||||
\renewcommand{\headrulewidth}{0.4pt}
|
\renewcommand{\headrulewidth}{0.4pt}
|
||||||
\renewcommand{\footrulewidth}{0pt}
|
\renewcommand{\footrulewidth}{0pt}
|
||||||
|
|
@ -39,7 +39,7 @@ header-includes: |
|
||||||
+-----------------------------+-------------------------+-------------------------+
|
+-----------------------------+-------------------------+-------------------------+
|
||||||
| Gruppe D (Oberfläche) | Modulverantwortlicher | Modulverantwortlicher |
|
| Gruppe D (Oberfläche) | Modulverantwortlicher | Modulverantwortlicher |
|
||||||
+-----------------------------+-------------------------+-------------------------+
|
+-----------------------------+-------------------------+-------------------------+
|
||||||
| 10.06.2026 | 10.06.2026 | 10.06.2026 |
|
| 13.06.2026 | 13.06.2026 | 13.06.2026 |
|
||||||
+-----------------------------+-------------------------+-------------------------+
|
+-----------------------------+-------------------------+-------------------------+
|
||||||
|
|
||||||
**Freigabevermerk:** Dieses Dokument ist nach Prüfung und Freigabe durch den
|
**Freigabevermerk:** Dieses Dokument ist nach Prüfung und Freigabe durch den
|
||||||
|
|
@ -51,6 +51,7 @@ und den Modultest der Komponente *Programmoberfläche*.
|
||||||
| Version | Datum | Autor | Grund der Änderung |
|
| Version | Datum | Autor | Grund der Änderung |
|
||||||
|---------|------------|----------------------------------------------|---------------------|
|
|---------|------------|----------------------------------------------|---------------------|
|
||||||
| 1.0 | 10.06.2026 | Mirkan Güngör, Moritz König, Mohammed Bouhki | Initiale Erstellung |
|
| 1.0 | 10.06.2026 | Mirkan Güngör, Moritz König, Mohammed Bouhki | Initiale Erstellung |
|
||||||
|
| 1.1 | 13.06.2026 | Mirkan Güngör, Moritz König, Mohammed Bouhki | Einfügen der UML-Diagramme und Aktualisierung der Referenzen |
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
|
|
@ -100,7 +101,7 @@ Kapitel 11.
|
||||||
### 1.5 Referenzen
|
### 1.5 Referenzen
|
||||||
- Lastenheft „Desktop-Fakturierungsanwendung", Team 1, Version 1.3, 09.06.2026
|
- Lastenheft „Desktop-Fakturierungsanwendung", Team 1, Version 1.3, 09.06.2026
|
||||||
- Project Charter, Team 1, Version 1.3, 14.05.2026
|
- Project Charter, Team 1, Version 1.3, 14.05.2026
|
||||||
- Pflichtenheft Gruppe A „Prozess / Dokumentenzyklus", Version 1.0, 09.06.2026
|
- Pflichtenheft Gruppe A „Prozess / Dokumentenzyklus", Version 1.1, 13.06.2026
|
||||||
- Pflichtenheft Gruppe B „Verwaltung von Produkten", Version 1.0, 10.06.2026
|
- Pflichtenheft Gruppe B „Verwaltung von Produkten", Version 1.0, 10.06.2026
|
||||||
- Pflichtenheft Gruppe C „Verwaltung von Kunden", Version 1.0, 10.06.2026
|
- Pflichtenheft Gruppe C „Verwaltung von Kunden", Version 1.0, 10.06.2026
|
||||||
- Vorlesungsunterlagen Software Engineering 1 (SoSe 2026), Foliensatz „Lasten- und Pflichtenheft"
|
- Vorlesungsunterlagen Software Engineering 1 (SoSe 2026), Foliensatz „Lasten- und Pflichtenheft"
|
||||||
|
|
@ -333,10 +334,13 @@ auslösenden Aktionen an (F-07).
|
||||||
**Interne Schnittstellen (genutzte Dienste der anderen Komponenten), als Java-Interfaces
|
**Interne Schnittstellen (genutzte Dienste der anderen Komponenten), als Java-Interfaces
|
||||||
skizziert:**
|
skizziert:**
|
||||||
|
|
||||||
|
Hinweis: `PositionsEingabe` ist das UI-interne Modell der Gruppe D und wird im
|
||||||
|
Controller vor dem Aufruf der Gruppe-A-Schnittstelle in `Positionsangabe` umgewandelt.
|
||||||
|
|
||||||
```java
|
```java
|
||||||
// Gruppe A — Dokumentenzyklus (genutzt von F-06 bis F-15)
|
// Gruppe A — Dokumentenzyklus (genutzt von F-06 bis F-15)
|
||||||
public interface DokumentService {
|
public interface DokumentService {
|
||||||
Rechnung erstelleRechnung(String kundenNr, List<PositionsEingabe> positionen,
|
Rechnung erstelleRechnung(String kundenNr, List<Positionsangabe> positionen,
|
||||||
LocalDate rechnungsdatum, LocalDate zahlungsziel);
|
LocalDate rechnungsdatum, LocalDate zahlungsziel);
|
||||||
void storniere(String rechnungsnummer);
|
void storniere(String rechnungsnummer);
|
||||||
List<Dokument> alleDokumente();
|
List<Dokument> alleDokumente();
|
||||||
|
|
@ -379,9 +383,7 @@ von GUI-Framework-Klassen und damit im Modultest ohne Oberfläche prüfbar.
|
||||||
|
|
||||||
### 7.1 Klassendiagramm
|
### 7.1 Klassendiagramm
|
||||||
|
|
||||||
<!-- TODO: UML-Klassendiagramm hier einfügen (Abbildung 1) -->
|

|
||||||
|
|
||||||
![Abbildung 1: UML-Klassendiagramm Programmoberfläche (Gruppe D)]
|
|
||||||
|
|
||||||
**Beschreibung zu Abbildung 1:** Das Klassendiagramm zeigt die View- und Controller-Schicht
|
**Beschreibung zu Abbildung 1:** Das Klassendiagramm zeigt die View- und Controller-Schicht
|
||||||
der Oberfläche. Das `HauptFenster` (ein `JFrame`) verwaltet die Navigation (F-01, F-02): es
|
der Oberfläche. Das `HauptFenster` (ein `JFrame`) verwaltet die Navigation (F-01, F-02): es
|
||||||
|
|
@ -398,9 +400,7 @@ einheitlich über die Klasse `Meldung` dargestellt (F-16, F-17).
|
||||||
|
|
||||||
### 7.2 Sequenzdiagramm
|
### 7.2 Sequenzdiagramm
|
||||||
|
|
||||||
<!-- TODO: UML-Sequenzdiagramm hier einfügen (Abbildung 2) -->
|

|
||||||
|
|
||||||
![Abbildung 2: UML-Sequenzdiagramm „Geführte Rechnungserstellung (Wizard)" (Gruppe D)]
|
|
||||||
|
|
||||||
**Beschreibung zu Abbildung 2:** Das Sequenzdiagramm stellt die Dialogfolge *geführte
|
**Beschreibung zu Abbildung 2:** Das Sequenzdiagramm stellt die Dialogfolge *geführte
|
||||||
Rechnungserstellung* dar. Die Anwender:in startet den Wizard; der
|
Rechnungserstellung* dar. Die Anwender:in startet den Wizard; der
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 137 KiB |
|
|
@ -0,0 +1,106 @@
|
||||||
|
@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
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 109 KiB |
|
|
@ -0,0 +1,53 @@
|
||||||
|
@startuml
|
||||||
|
title UML-Sequenzdiagramm Gefuehrte Rechnungserstellung (Gruppe D)
|
||||||
|
autonumber
|
||||||
|
|
||||||
|
actor "Anwender:in" as Anw
|
||||||
|
boundary "RechnungsWizardDialog" as Dialog
|
||||||
|
control "RechnungsWizardController" as Controller
|
||||||
|
participant "KundenService\n(Gruppe C)" as Kunden
|
||||||
|
participant "ProduktService\n(Gruppe B)" as Produkte
|
||||||
|
participant "DokumentService\n(Gruppe A)" as Dokumente
|
||||||
|
|
||||||
|
Anw -> Dialog : Wizard starten
|
||||||
|
Dialog -> Controller : getModel()
|
||||||
|
Controller --> Dialog : aktuellerSchritt = KUNDE_WAEHLEN
|
||||||
|
Dialog --> Anw : Schritt 1: Kunde waehlen
|
||||||
|
|
||||||
|
Anw -> Dialog : Kunde suchen und auswaehlen
|
||||||
|
Dialog -> Kunden : suche(suchbegriff)
|
||||||
|
Kunden --> Dialog : List<Kunde>
|
||||||
|
Dialog -> Controller : weiter()
|
||||||
|
Controller --> Dialog : Schritt 2 anzeigen
|
||||||
|
|
||||||
|
Anw -> Dialog : Produktposition und Menge erfassen
|
||||||
|
Dialog -> Produkte : suche(suchbegriff)
|
||||||
|
Produkte --> Dialog : List<Produkt>
|
||||||
|
Dialog -> Controller : weiter()
|
||||||
|
|
||||||
|
alt Position fehlt oder Menge <= 0
|
||||||
|
Controller --> Dialog : Meldung mit Feldname
|
||||||
|
Dialog --> Anw : Feld markieren und Meldung anzeigen
|
||||||
|
else Eingabe vollstaendig
|
||||||
|
Controller --> Dialog : Schritt 3 anzeigen
|
||||||
|
end
|
||||||
|
|
||||||
|
Anw -> Dialog : Rechnungsdatum und Zahlungsziel bestaetigen
|
||||||
|
Dialog -> Controller : weiter()
|
||||||
|
Controller --> Dialog : Schritt 4 anzeigen
|
||||||
|
|
||||||
|
Dialog -> Controller : erzeugeZusammenfassung()
|
||||||
|
Controller -> Kunden : findeKunde(kundennummer)
|
||||||
|
Controller -> Produkte : findeProdukt(produktnummer)
|
||||||
|
Controller -> Dokumente : berechneSummen(positionen)
|
||||||
|
Dokumente --> Controller : Summen
|
||||||
|
Controller --> Dialog : Zusammenfassung
|
||||||
|
Dialog --> Anw : Zusammenfassung anzeigen
|
||||||
|
|
||||||
|
Anw -> Dialog : Speichern bestaetigen
|
||||||
|
Dialog -> Controller : speichern()
|
||||||
|
Controller -> Dokumente : erstelleRechnung(kundenNr, positionen,\nrechnungsdatum, zahlungsziel)
|
||||||
|
Dokumente --> Controller : Rechnung mit Rechnungsnummer
|
||||||
|
Controller --> Dialog : Erfolgsmeldung
|
||||||
|
Dialog --> Anw : Rechnungsnummer anzeigen
|
||||||
|
@enduml
|
||||||
Loading…
Reference in New Issue