713 lines
43 KiB
Markdown
713 lines
43 KiB
Markdown
**Pflichtenheft Benutzeroberfläche Fakturierungssystem**
|
|
|
|
Software Engineering 1 Pflichtenheft zum Lastenheft Team 3 Modul: Benutzeroberfläche Version: 1.0 Datum: 12.06.2026
|
|
|
|
**Inhalt**
|
|
|
|
- Metainformationen
|
|
- Einleitung und Bezug zum Lastenheft
|
|
- Systemübersicht
|
|
- Funktionale Anforderungen
|
|
- Nichtfunktionale Anforderungen
|
|
- Daten und Schnittstellen
|
|
- Systemarchitektur
|
|
- Abnahmekriterien
|
|
- Traceability Matrix
|
|
- Modultestplan
|
|
- Glossar
|
|
|
|
**1\. Metainformationen**
|
|
|
|
**1.1 Dokumentinformationen**
|
|
|
|
| **Feld** | **Inhalt** |
|
|
| ------------ | ---------------------------------------------------- |
|
|
| Dokumentname | Pflichtenheft Benutzeroberfläche Fakturierungssystem |
|
|
| Version | 1.0 |
|
|
| Datum | 12.06.2026 |
|
|
| Projekt | Lokales Fakturierungssystem |
|
|
| Modul | Benutzeroberfläche |
|
|
| Bezug | Lastenheft Team 3, Version 1.0 |
|
|
| Gruppe | Gruppe I |
|
|
| Autorin | Meltem Bardakci |
|
|
|
|
**1.2 Freigabeübersicht**
|
|
|
|
| **Rolle** | **Name** | **Datum** |
|
|
| --------- | ----------------- | ---------- |
|
|
| Autorin | Meltem Bardakci | 12.06.2026 |
|
|
| Prüfer | Prof. Dr. Marmitt | |
|
|
|
|
**1.3 Änderungshistorie**
|
|
|
|
| **Version** | **Datum** | **Autorin** | **Änderung** |
|
|
| ----------- | ---------- | --------------- | ----------------------------------------------------------------------- |
|
|
| 1.0 | 12.06.2026 | Meltem Bardakci | Initiale Erstellung des Pflichtenhefts für das Modul Benutzeroberfläche |
|
|
|
|
**2\. Einleitung und Bezug zum Lastenheft**
|
|
|
|
**2.1 Zweck des Dokuments**
|
|
|
|
Dieses Pflichtenheft beschreibt die technische Umsetzung der Benutzeroberfläche des Fakturierungssystems. Es basiert auf dem Lastenheft von Team 3 und konkretisiert die dort beschriebenen Anforderungen aus Sicht der Umsetzung.
|
|
|
|
Der Schwerpunkt dieses Pflichtenhefts liegt auf der Bedienung durch den Einzelanwender. Dazu gehören Navigation, Eingabemasken, Übersichtstabellen, Validierung, Fehlermeldungen, Statusanzeigen und die einfache Durchführung der Kernprozesse.
|
|
|
|
**2.2 Ziel des UI Moduls**
|
|
|
|
Ziel des UI Moduls ist eine übersichtliche und verständliche Desktop Oberfläche. Der Einzelanwender soll die wichtigsten Funktionen des Fakturierungssystems ohne lange Einarbeitung bedienen können.
|
|
|
|
Die Oberfläche soll folgende Aufgaben unterstützen:
|
|
|
|
- Kunden erfassen und anzeigen
|
|
- Produkte erfassen und anzeigen
|
|
- Angebote erstellen
|
|
- Auftragsbestätigungen und Lieferscheine anzeigen oder erzeugen
|
|
- Rechnungen aus vorhandenen Angeboten erzeugen
|
|
- Pflichtfelder prüfen
|
|
- Fehlermeldungen verständlich anzeigen
|
|
- finalisierte Rechnungen als schreibgeschützt kennzeichnen
|
|
- PDF Export über eine klare Bedienaktion starten
|
|
|
|
**2.3 Abgrenzung**
|
|
|
|
Dieses Pflichtenheft beschreibt nur das Modul Benutzeroberfläche. Die interne Speicherung, die vollständige Beleglogik und die steuerrechtliche Detailprüfung werden nur so weit beschrieben, wie sie für die Bedienoberfläche sichtbar sind.
|
|
|
|
Nicht Bestandteil dieses Moduls sind:
|
|
|
|
- externe Cloud Anbindung
|
|
- Mehrbenutzerverwaltung
|
|
- mobile Oberfläche
|
|
- Web Anwendung
|
|
- vollständige Buchhaltung
|
|
- Schnittstellen zu Finanzamt oder Buchhaltungssystemen
|
|
|
|
**2.4 Referenzen**
|
|
|
|
- Lastenheft Fakturierungssystem, Team 3, Version 1.0
|
|
- Vorlesungsunterlagen Software Engineering 1, Thema Lastenheft und Pflichtenheft
|
|
- Java Dokumentation zu Datentypen String, int, BigDecimal und List
|
|
- UML Grundlagen für Klassen und Sequenzdiagramme
|
|
|
|
**2.5 Stakeholder und Kontext**
|
|
|
|
Maßgeblicher Akteur ist der Einzelanwender bzw. die Einzelanwenderin des Fakturierungssystems. Diese Person nutzt die Benutzeroberfläche, um Kunden, Produkte und Dokumente aufzurufen, Daten einzugeben, Angebote zu erstellen, Rechnungen aus vorhandenen Angeboten zu erzeugen und PDF Dateien zu exportieren.
|
|
|
|
Angrenzende Komponenten sind die Kundenverwaltung, die Produktverwaltung, der DocumentService, der ValidationService, der MessageService und der PdfExportService. Die Benutzeroberfläche ruft diese Komponenten über definierte Schnittstellen auf und stellt deren Ergebnisse sichtbar dar.
|
|
|
|
Nicht Aufgabe der Benutzeroberfläche ist die dauerhafte Speicherung oder fachliche Berechnung der Belegdaten. Diese Aufgaben liegen bei den fachlichen Services.
|
|
|
|
**3\. Systemübersicht**
|
|
|
|
Das Fakturierungssystem wird als lokale Desktop Anwendung umgesetzt. Der Einzelanwender arbeitet über eine grafische Benutzeroberfläche mit dem System.
|
|
|
|
Die Benutzeroberfläche ist die zentrale Schnittstelle zwischen Anwender und Systemfunktionen. Über die Oberfläche kann der Anwender Kunden, Produkte und Dokumente verwalten. Außerdem erhält er Rückmeldungen zu erfolgreichen Aktionen, fehlerhaften Eingaben und dem Status von Dokumenten.
|
|
|
|
Das UI Modul besteht aus folgenden Bereichen:
|
|
|
|
| **Bereich** | **Aufgabe** |
|
|
| -------------------- | ------------------------------------------------------------------------------------------ |
|
|
| Hauptfenster | Einstiegspunkt der Anwendung |
|
|
| Navigation | Wechsel zwischen Kunden, Produkten und Dokumenten |
|
|
| Kundenmaske | Eingabe und Anzeige von Kundendaten |
|
|
| Produktmaske | Eingabe und Anzeige von Produktdaten |
|
|
| Dokumentenmaske | Erstellung und Anzeige von Angeboten, Auftragsbestätigungen, Lieferscheinen und Rechnungen |
|
|
| Validierungsanzeige | Anzeige fehlender oder ungültiger Eingaben |
|
|
| Statusanzeige | Anzeige von Erfolgsmeldungen, Warnungen und Fehlern |
|
|
| Exportdialog | Auswahl des Speicherorts für PDF Dateien |
|
|
| Schreibschutzanzeige | Kennzeichnung finalisierter Rechnungen |
|
|
|
|
Die Oberfläche verarbeitet selbst keine dauerhafte Speicherung. Sie nimmt Eingaben entgegen, zeigt Daten an und übergibt Benutzeraktionen an die zuständigen Systemkomponenten.
|
|
|
|
**4\. Funktionale Anforderungen**
|
|
|
|
**PH-UI-01 Hauptfenster und Navigation**
|
|
|
|
Das System stellt ein Hauptfenster bereit, das nach dem Start der Anwendung angezeigt wird. Im Hauptfenster befindet sich eine Navigation zu den wichtigsten Bereichen.
|
|
|
|
Die Navigation enthält mindestens folgende Menüpunkte:
|
|
|
|
| **Menüpunkt** | **Ziel** |
|
|
| ------------- | --------------------------------------------------------------------------- |
|
|
| Kunden | Öffnet die Kundenübersicht |
|
|
| Produkte | Öffnet die Produktübersicht |
|
|
| Dokumente | Öffnet die Dokumentenübersicht |
|
|
| Export | Öffnet Exportfunktionen oder startet den PDF Export bei geöffnetem Dokument |
|
|
|
|
Die Navigation muss dauerhaft sichtbar oder schnell erreichbar sein. Der Anwender soll jederzeit erkennen können, in welchem Bereich er sich befindet.
|
|
|
|
Erfüllungskriterium: Nach dem Start der Anwendung ist das Hauptfenster sichtbar und der Anwender kann zwischen Kunden, Produkten und Dokumenten wechseln.
|
|
|
|
**PH-UI-02 Kundenmaske**
|
|
|
|
Das System stellt eine Kundenmaske bereit. In dieser Maske kann der Einzelanwender Kundendaten erfassen, anzeigen und bearbeiten.
|
|
|
|
Die Kundenmaske enthält folgende Eingabefelder:
|
|
|
|
| **Feld** | **Datentyp** | **Pflichtfeld** |
|
|
| -------------------------- | ------------ | --------------- |
|
|
| Name oder Firmenname | String | Ja |
|
|
| Anschrift | String | Ja |
|
|
| Steuernummer oder USt IdNr | String | Nein |
|
|
| E-Mail | String | Nein |
|
|
| Telefon | String | Nein |
|
|
|
|
Die Kundenmaske enthält folgende Schaltflächen:
|
|
|
|
| **Schaltfläche** | **Funktion** |
|
|
| ---------------- | -------------------------------------------------- |
|
|
| Speichern | Speichert den Kundendatensatz |
|
|
| Abbrechen | Verwirft die Eingabe |
|
|
| Bearbeiten | Aktiviert die Bearbeitung eines bestehenden Kunden |
|
|
| Zurück | Führt zurück zur Kundenübersicht |
|
|
|
|
Erfüllungskriterium: Der Anwender kann Kundendaten über die Maske eingeben und speichern. Fehlende Pflichtfelder werden sichtbar markiert.
|
|
|
|
**PH-UI-03 Produktmaske**
|
|
|
|
Das System stellt eine Produktmaske bereit. In dieser Maske kann der Einzelanwender Produktdaten erfassen, anzeigen und bearbeiten.
|
|
|
|
Die Produktmaske enthält folgende Eingabefelder:
|
|
|
|
| **Feld** | **Datentyp** | **Pflichtfeld** |
|
|
| ------------------ | ------------ | --------------- |
|
|
| Bezeichnung | String | Ja |
|
|
| Netto Einzelpreis | BigDecimal | Ja |
|
|
| Mehrwertsteuersatz | BigDecimal | Ja |
|
|
| Beschreibung | String | Nein |
|
|
| Bestand | int | Ja |
|
|
|
|
Die Produktmaske prüft, ob der Preis größer oder gleich 0 ist. Der Bestand darf nicht negativ sein.
|
|
|
|
Erfüllungskriterium: Der Anwender kann ein Produkt über die Maske anlegen. Ungültige Zahlenwerte werden abgelehnt und mit einer verständlichen Fehlermeldung angezeigt.
|
|
|
|
**PH-UI-04 Dokumentenübersicht**
|
|
|
|
Das System stellt eine Dokumentenübersicht bereit. Dort kann der Anwender vorhandene Dokumente einsehen.
|
|
|
|
Die Dokumentenübersicht zeigt mindestens folgende Informationen:
|
|
|
|
| **Spalte** | **Beschreibung** |
|
|
| -------------- | --------------------------------------------------------- |
|
|
| Dokumentnummer | Nummer des Dokuments |
|
|
| Dokumenttyp | Angebot, Auftragsbestätigung, Lieferschein oder Rechnung |
|
|
| Kunde | Zugeordneter Kunde |
|
|
| Datum | Erstellungsdatum |
|
|
| Status | offen, überführt, festgeschrieben, bezahlt oder verworfen |
|
|
| Bruttosumme | Gesamtbetrag, sofern für den Dokumenttyp relevant |
|
|
|
|
Der Anwender kann Dokumente auswählen und öffnen.
|
|
|
|
Erfüllungskriterium: Vorhandene Dokumente werden tabellarisch angezeigt und können geöffnet werden.
|
|
|
|
**PH-UI-05 Dokumentenmaske zur Erstellung von Angeboten**
|
|
|
|
Das System stellt eine Dokumentenmaske zur Erstellung von Angeboten bereit. Der Anwender wählt einen vorhandenen Kunden und mindestens eine Produktposition aus.
|
|
|
|
Die Maske enthält folgende Bereiche:
|
|
|
|
| **Bereich** | **Inhalt** |
|
|
| ---------------- | ------------------------------------ |
|
|
| Kundenauswahl | Auswahl eines vorhandenen Kunden |
|
|
| Positionsbereich | Hinzufügen von Produkten mit Menge |
|
|
| Summenbereich | Anzeige von Netto, Steuer und Brutto |
|
|
| Aktionsbereich | Speichern, Abbrechen und PDF Export |
|
|
|
|
Die Oberfläche verhindert, dass ein Angebot ohne Kunde oder ohne Produktposition gespeichert wird.
|
|
|
|
Erfüllungskriterium: Der Anwender kann ein Angebot über die Oberfläche erstellen. Die Summen werden sichtbar angezeigt.
|
|
|
|
**PH-UI-06 Rechnung aus Angebot erzeugen**
|
|
|
|
Das System stellt in der Oberfläche eine Aktion bereit, mit der der Anwender aus einem vorhandenen Angebot eine Rechnung erzeugen kann.
|
|
|
|
Der Workflow umfasst:
|
|
|
|
| **Ausgangsdokument** | **Folgedokument** |
|
|
| -------------------- | ----------------- |
|
|
| Angebot | Rechnung |
|
|
|
|
Die Oberfläche zeigt die Aktion zur Rechnungserstellung nur an, wenn ein passendes Angebot ausgewählt wurde. Die Benutzeroberfläche erzeugt die Rechnung nicht selbst, sondern ruft dafür die Methode createInvoiceFromOffer(String offerId) des DocumentService auf.
|
|
|
|
Erfüllungskriterium: Der Anwender kann über eine sichtbare Schaltfläche aus einem vorhandenen Angebot eine Rechnung erzeugen.
|
|
|
|
**PH-UI-07 Eingabevalidierung**
|
|
|
|
Das System prüft Eingaben spätestens beim Speichern. Fehlerhafte Eingaben werden sichtbar angezeigt.
|
|
|
|
Folgende Validierungen werden über die Oberfläche sichtbar gemacht:
|
|
|
|
| **Bereich** | **Prüfung** |
|
|
| ----------- | ------------------------------------------------------------- |
|
|
| Kunde | Name und Anschrift dürfen nicht leer sein |
|
|
| Produkt | Bezeichnung, Preis, Steuersatz und Bestand müssen gültig sein |
|
|
| Dokument | Kunde und mindestens eine Position müssen vorhanden sein |
|
|
| Position | Menge muss größer als 0 sein |
|
|
| Rechnung | Finalisierte Rechnung darf nicht bearbeitet werden |
|
|
|
|
Fehlerhafte Felder werden markiert. Zusätzlich wird eine kurze Fehlermeldung angezeigt.
|
|
|
|
Erfüllungskriterium: Ungültige Eingaben werden nicht gespeichert und der Anwender erhält eine verständliche Rückmeldung.
|
|
|
|
**PH-UI-08 Fehlermeldungen und Erfolgsmeldungen**
|
|
|
|
Das System zeigt klare Rückmeldungen an.
|
|
|
|
Beispiele für Erfolgsmeldungen:
|
|
|
|
| **Situation** | **Meldung** |
|
|
| ------------------- | ------------------------------------- |
|
|
| Kunde gespeichert | Kunde wurde erfolgreich gespeichert |
|
|
| Produkt gespeichert | Produkt wurde erfolgreich gespeichert |
|
|
| Angebot erstellt | Angebot wurde erfolgreich erstellt |
|
|
| Rechnung erzeugt | Rechnung wurde erfolgreich erzeugt |
|
|
|
|
Beispiele für Fehlermeldungen:
|
|
|
|
| **Situation** | **Meldung** |
|
|
| -------------------- | --------------------------------------------------------------- |
|
|
| Pflichtfeld leer | Bitte füllen Sie alle Pflichtfelder aus |
|
|
| Preis negativ | Der Preis darf nicht negativ sein |
|
|
| Menge ungültig | Die Menge muss größer als 0 sein |
|
|
| Rechnung finalisiert | Diese Rechnung ist finalisiert und kann nicht bearbeitet werden |
|
|
|
|
Erfüllungskriterium: Jede erfolgreiche oder fehlerhafte Aktion erzeugt eine verständliche Rückmeldung.
|
|
|
|
**PH-UI-09 Schreibschutzanzeige bei finalisierten Rechnungen**
|
|
|
|
Finalisierte Rechnungen werden in der Oberfläche schreibgeschützt angezeigt. Eingabefelder und Bearbeitungsfunktionen sind deaktiviert.
|
|
|
|
Die Oberfläche zeigt zusätzlich einen sichtbaren Hinweis an:
|
|
|
|
| **Status** | **Anzeige** |
|
|
| ----------- | --------------------------------------------------- |
|
|
| Finalisiert | Diese Rechnung ist finalisiert und schreibgeschützt |
|
|
|
|
Folgende Daten dürfen bei finalisierten Rechnungen nicht mehr bearbeitet werden:
|
|
|
|
- Rechnungsnummer
|
|
- Kundendaten
|
|
- Positionen
|
|
- Nettosumme
|
|
- Steuerbetrag
|
|
- Bruttosumme
|
|
- Leistungsdatum
|
|
|
|
Erfüllungskriterium: Eine finalisierte Rechnung kann über die Oberfläche nicht mehr verändert werden.
|
|
|
|
**PH-UI-10 PDF Export Bedienung**
|
|
|
|
Das System stellt eine sichtbare Exportfunktion bereit. Der Anwender kann aus einem geöffneten Dokument eine PDF Datei erzeugen.
|
|
|
|
Die Oberfläche zeigt einen Exportbutton an. Nach dem Klick öffnet sich ein Dialog zur Auswahl des Speicherorts.
|
|
|
|
Erfüllungskriterium: Der Anwender kann den PDF Export über die Oberfläche starten und einen lokalen Speicherort auswählen.
|
|
|
|
**5\. Nichtfunktionale Anforderungen**
|
|
|
|
**PH-Q-01 Benutzerfreundlichkeit**
|
|
|
|
Die Oberfläche muss so gestaltet sein, dass ein neuer Einzelanwender die wichtigsten Kernprozesse ohne technische Vorkenntnisse durchführen kann.
|
|
|
|
Die Kernprozesse sind:
|
|
|
|
- Kunde anlegen
|
|
- Produkt anlegen
|
|
- Angebot erstellen
|
|
- Rechnung aus vorhandenem Angebot erzeugen
|
|
|
|
Erfüllungskriterium: Ein neuer Anwender kann diese Prozesse in einem Usability Test ohne Hilfestellung innerhalb von maximal 10 Minuten durchführen.
|
|
|
|
**PH-Q-02 Übersichtlichkeit**
|
|
|
|
Die Oberfläche muss klar strukturiert sein. Zusammengehörige Informationen werden gruppiert dargestellt.
|
|
|
|
| **Bereich** | **Darstellung** |
|
|
| ------------- | -------------------------------------------------- |
|
|
| Kundendaten | In einer eigenen Kundenmaske |
|
|
| Produktdaten | In einer eigenen Produktmaske |
|
|
| Dokumentdaten | In einer eigenen Dokumentenmaske |
|
|
| Summen | In einem sichtbaren Summenbereich |
|
|
| Fehler | In unmittelbarer Nähe zur Eingabe oder als Meldung |
|
|
|
|
Erfüllungskriterium: Der Anwender erkennt ohne Suche, in welchem Bereich er sich befindet und welche Aktion möglich ist.
|
|
|
|
**PH-Q-03 Konsistenz**
|
|
|
|
Schaltflächen, Begriffe und Statusanzeigen werden in der gesamten Oberfläche einheitlich verwendet.
|
|
|
|
| **Begriff** | **Verwendung** |
|
|
| ----------- | ---------------------------------- |
|
|
| Speichern | Daten dauerhaft sichern |
|
|
| Abbrechen | Eingabe ohne Speicherung verlassen |
|
|
| Bearbeiten | Bestehende Daten ändern |
|
|
| Exportieren | PDF Datei erzeugen |
|
|
| Finalisiert | Dokument ist schreibgeschützt |
|
|
|
|
Erfüllungskriterium: Gleiche Aktionen werden in allen Masken gleich benannt.
|
|
|
|
**PH-Q-04 Fehlertoleranz**
|
|
|
|
Das System soll Fehleingaben verhindern oder frühzeitig erkennen. Fehlerhafte Eingaben dürfen nicht stillschweigend gespeichert werden.
|
|
|
|
Erfüllungskriterium: Bei jeder fehlerhaften Eingabe wird das Speichern verhindert und eine verständliche Fehlermeldung angezeigt.
|
|
|
|
**PH-Q-05 Lokale Nutzbarkeit**
|
|
|
|
Die Oberfläche muss ohne Internetverbindung nutzbar sein. Alle sichtbaren Funktionen des UI Moduls müssen lokal bedienbar sein.
|
|
|
|
Erfüllungskriterium: Die Anwendung startet und die Oberfläche ist ohne Internetverbindung nutzbar.
|
|
|
|
**PH-Q-06 Lesbarkeit**
|
|
|
|
Texte, Tabellen, Eingabefelder und Schaltflächen müssen gut lesbar sein. Pflichtfelder sollen eindeutig erkennbar sein.
|
|
|
|
Erfüllungskriterium: Pflichtfelder sind markiert und alle Beschriftungen sind verständlich formuliert.
|
|
|
|
**6\. Daten und Schnittstellen**
|
|
|
|
**6.1 Datenobjekte in der Benutzeroberfläche**
|
|
|
|
Die Benutzeroberfläche zeigt Daten aus den fachlichen Modulen an. Das UI Modul berechnet und speichert diese Daten nicht selbst dauerhaft. Es nimmt Eingaben entgegen, zeigt Daten an und übergibt Benutzeraktionen an die zuständigen Systemkomponenten.
|
|
|
|
| **Objekt** | **Sichtbare Daten in der Oberfläche** |
|
|
| ------------------- | ------------------------------------------------------------------------------------------------ |
|
|
| Kunde | Name, Anschrift, Steuernummer, E Mail, Telefon |
|
|
| Produkt | Bezeichnung, Netto Einzelpreis, Mehrwertsteuersatz, Beschreibung, Bestand |
|
|
| Dokumentposition | Produkt, Menge, Einzelpreis, Steuersatz, Positionssumme |
|
|
| Angebot | Angebotsnummer, Kunde, Datum, Positionen, Summen, Status |
|
|
| Auftragsbestätigung | AB Nummer, Kunde, Datum, Positionen, Status |
|
|
| Lieferschein | Lieferscheinnummer, Kunde, Lieferdatum, Positionen, Status |
|
|
| Rechnung | Rechnungsnummer, Kunde, Rechnungsdatum, Leistungsdatum, Positionen, Summen, Zahlungsziel, Status |
|
|
|
|
**6.2 UI interne Datenmodelle**
|
|
|
|
Für die Oberfläche werden interne UI Modelle verwendet. Diese Modelle dienen dazu, Eingaben aus Formularen zwischenzuspeichern und für die Validierung vorzubereiten.
|
|
|
|
| **UI Modell** | **Zweck** |
|
|
| ----------------- | ------------------------------------------------------- |
|
|
| CustomerFormModel | Zwischenspeicherung der Eingaben in der Kundenmaske |
|
|
| ProductFormModel | Zwischenspeicherung der Eingaben in der Produktmaske |
|
|
| DocumentFormModel | Zwischenspeicherung der Eingaben in der Dokumentenmaske |
|
|
| ValidationResult | Rückgabe von Validierungsfehlern |
|
|
| UiMessage | Darstellung von Fehlern, Warnungen und Erfolgsmeldungen |
|
|
|
|
**6.2.1 Java nahe UI Modelle**
|
|
|
|
Die folgenden Klassen beschreiben die Datenmodelle, die innerhalb der Benutzeroberfläche verwendet werden. Sie dienen zur Zwischenspeicherung von Formulareingaben und zur Übergabe an Validierungs und Serviceklassen.
|
|
|
|
public class CustomerFormModel {
|
|
|
|
private String name;
|
|
|
|
private String anschrift;
|
|
|
|
private String steuernummer;
|
|
|
|
private String email;
|
|
|
|
private String telefon;
|
|
|
|
}
|
|
|
|
public class ProductFormModel {
|
|
|
|
private String bezeichnung;
|
|
|
|
private BigDecimal nettoPreis;
|
|
|
|
private BigDecimal mehrwertsteuerSatz;
|
|
|
|
private String beschreibung;
|
|
|
|
private int bestand;
|
|
|
|
}
|
|
|
|
public class DocumentFormModel {
|
|
|
|
private String customerId;
|
|
|
|
private List<DocumentPositionFormModel> positionen;
|
|
|
|
private String status;
|
|
|
|
}
|
|
|
|
public class DocumentPositionFormModel {
|
|
|
|
private String productId;
|
|
|
|
private int menge;
|
|
|
|
}
|
|
|
|
public class ValidationResult {
|
|
|
|
private boolean valid;
|
|
|
|
private List<String> messages;
|
|
|
|
}
|
|
|
|
Diese Modelle dienen nur der Benutzeroberfläche. Die dauerhafte Speicherung und fachliche Verarbeitung erfolgen in den jeweiligen Services.
|
|
|
|
**6.3 Schnittstellen des UI Moduls**
|
|
|
|
Das UI Modul kommuniziert mit mehreren fachlichen Services. Diese Services übernehmen die eigentliche Verarbeitung, Speicherung und Ausgabe der Daten.
|
|
|
|
**6.3.1 Java nahe Schnittstellendefinitionen**
|
|
|
|
Die folgenden Schnittstellen beschreiben, wie das UI Modul mit den fachlichen Komponenten kommuniziert. Die Angaben sind Java nah formuliert, damit sie als Grundlage für die spätere Implementierung und für Modultests verwendet werden können.
|
|
|
|
public interface CustomerService {
|
|
|
|
List<CustomerDto> loadCustomers();
|
|
|
|
CustomerDto saveCustomer(CustomerFormModel model);
|
|
|
|
CustomerDto updateCustomer(String customerId, CustomerFormModel model);
|
|
|
|
}
|
|
|
|
public interface ProductService {
|
|
|
|
List<ProductDto> loadProducts();
|
|
|
|
ProductDto saveProduct(ProductFormModel model);
|
|
|
|
ProductDto updateProduct(String productId, ProductFormModel model);
|
|
|
|
}
|
|
|
|
public interface DocumentService {
|
|
|
|
List<DocumentDto> loadDocuments();
|
|
|
|
OfferDto createOffer(DocumentFormModel model);
|
|
|
|
InvoiceDto createInvoiceFromOffer(String offerId);
|
|
|
|
DocumentDto loadDocument(String documentId);
|
|
|
|
}
|
|
|
|
public interface ValidationService {
|
|
|
|
ValidationResult validateCustomer(CustomerFormModel model);
|
|
|
|
ValidationResult validateProduct(ProductFormModel model);
|
|
|
|
ValidationResult validateDocument(DocumentFormModel model);
|
|
|
|
}
|
|
|
|
public interface PdfExportService {
|
|
|
|
Path exportDocumentAsPdf(String documentId, Path targetPath);
|
|
|
|
}
|
|
|
|
Die Benutzeroberfläche greift nicht direkt auf die lokale Speicherung zu. Sie ruft stattdessen Services auf und erhält Datenobjekte oder Validierungsergebnisse zurück.
|
|
|
|
| **ID** | **Schnittstelle** | **Zweck** |
|
|
| -------- | ----------------- | ---------------------------------------------- |
|
|
| UI-IF-01 | CustomerService | Speichern, Laden und Anzeigen von Kundendaten |
|
|
| UI-IF-02 | ProductService | Speichern, Laden und Anzeigen von Produktdaten |
|
|
| UI-IF-03 | DocumentService | Erstellen und Anzeigen von Dokumenten |
|
|
| UI-IF-04 | PdfExportService | Export eines Dokuments als PDF Datei |
|
|
| UI-IF-05 | ValidationService | Prüfung von Eingaben vor dem Speichern |
|
|
|
|
**6.4 Eingabeformate und Datentypen**
|
|
|
|
Die Oberfläche muss die Eingaben des Anwenders prüfen, bevor sie an die fachlichen Services übergeben werden.
|
|
|
|
| **Feld** | **Datentyp** | **Validierung** |
|
|
| ------------------ | ------------ | -------------------------------- |
|
|
| name | String | darf nicht leer sein |
|
|
| anschrift | String | darf nicht leer sein |
|
|
| email | String | optional, einfache Formatprüfung |
|
|
| telefon | String | optional |
|
|
| bezeichnung | String | darf nicht leer sein |
|
|
| nettoPreis | BigDecimal | muss größer oder gleich 0 sein |
|
|
| mehrwertsteuerSatz | BigDecimal | muss größer oder gleich 0 sein |
|
|
| bestand | int | darf nicht negativ sein |
|
|
| menge | int | muss größer als 0 sein |
|
|
| status | String | nur erlaubte Statuswerte |
|
|
|
|
**6.5 Rückmeldungen an die Oberfläche**
|
|
|
|
Die Services geben Rückmeldungen an die Benutzeroberfläche zurück. Diese Rückmeldungen werden in der Oberfläche als Erfolgs-, Warn- oder Fehlermeldung angezeigt.
|
|
|
|
| **Rückmeldung** | **Bedeutung** | **Anzeige in der Oberfläche** |
|
|
| --------------- | --------------------------------------- | ----------------------------- |
|
|
| success | Aktion war erfolgreich | Erfolgsmeldung |
|
|
| validationError | Eingabe ist unvollständig oder ungültig | Fehlermeldung am Formular |
|
|
| warning | Aktion ist möglich, aber kritisch | Warnmeldung |
|
|
| locked | Dokument ist schreibgeschützt | Hinweis auf Finalisierung |
|
|
| exportFinished | PDF Export wurde abgeschlossen | Erfolgsmeldung |
|
|
|
|
**7\. Systemarchitektur**
|
|
|
|
**7.1 Beschreibung der Architektur**
|
|
|
|
Das UI Modul wird in mehrere Komponenten aufgeteilt. Das Hauptfenster verwaltet die Navigation. Die einzelnen Views stellen die Masken für Kunden, Produkte und Dokumente bereit. Controller oder ViewModels verbinden die Oberfläche mit den fachlichen Services.
|
|
|
|
Die Benutzeroberfläche führt selbst keine dauerhafte Speicherung durch. Sie nimmt Eingaben entgegen, zeigt Daten an, prüft Eingaben und übergibt gültige Benutzeraktionen an die zuständigen Services.
|
|
|
|
Die Architektur besteht aus folgenden Bereichen:
|
|
|
|
| **Bereich** | **Aufgabe** |
|
|
| -------------------- | ------------------------------------- |
|
|
| MainWindow | Startpunkt der Oberfläche |
|
|
| NavigationController | Steuerung der Navigation |
|
|
| CustomerView | Anzeige und Eingabe von Kundendaten |
|
|
| ProductView | Anzeige und Eingabe von Produktdaten |
|
|
| DocumentView | Anzeige und Erstellung von Dokumenten |
|
|
| ValidationService | Prüfung von Eingaben |
|
|
| MessageService | Anzeige von Rückmeldungen |
|
|
| Fachliche Services | Verarbeitung, Speicherung und Export |
|
|
|
|
**7.2 UML Klassendiagramm**
|
|
|
|
**Abbildung 1: UML Klassendiagramm des UI Moduls**
|
|
|
|
Abbildung 1 zeigt die wichtigsten Klassen des UI Moduls und deren Beziehungen zu den fachlichen Services.
|
|
|
|
**7.3 Textuelle Beschreibung zum Klassendiagramm**
|
|
|
|
Das Hauptfenster ist der Einstiegspunkt der Anwendung. Über den NavigationController kann der Anwender zwischen Kundenansicht, Produktansicht und Dokumentenansicht wechseln.
|
|
|
|
Die CustomerView ist für die Anzeige und Eingabe von Kundendaten zuständig. Die ProductView übernimmt die Anzeige und Eingabe von Produktdaten. Die DocumentView ist für Angebote, Auftragsbestätigungen, Lieferscheine, Rechnungen und den PDF Export zuständig.
|
|
|
|
Die FormModels speichern die Eingaben aus den Formularen vorübergehend. Der ValidationService prüft diese Eingaben vor dem Speichern. Das Ergebnis der Prüfung wird als ValidationResult zurückgegeben.
|
|
|
|
Der MessageService zeigt Erfolgsmeldungen, Warnungen und Fehlermeldungen an. Die fachlichen Services übernehmen die eigentliche Verarbeitung der Daten.
|
|
|
|
**7.4 UML Sequenzdiagramm**
|
|
|
|
**Abbildung 2: UML Sequenzdiagramm zur Rechnungserstellung**
|
|
|
|
Abbildung 2 zeigt beispielhaft den Ablauf, wenn ein Anwender über die Benutzeroberfläche eine Rechnung aus einem vorhandenen Angebot erzeugt.
|
|
|
|
**7.5 Textuelle Beschreibung zum Sequenzdiagramm**
|
|
|
|
Der Anwender öffnet zuerst über das Hauptfenster die Dokumentenansicht. Die DocumentView fordert daraufhin über den DocumentService die vorhandenen Dokumente an. Anschließend werden die Dokumente in der Dokumentenübersicht angezeigt.
|
|
|
|
Danach wählt der Anwender ein vorhandenes Angebot aus und klickt auf die Aktion zur Rechnungserstellung. Die DocumentView prüft die Auswahl über den ValidationService. Wenn die Auswahl gültig ist, wird über den DocumentService eine Rechnung erzeugt.
|
|
|
|
Nach erfolgreicher Erstellung zeigt der MessageService eine Erfolgsmeldung in der Benutzeroberfläche an. Dadurch erhält der Anwender eine direkte Rückmeldung, dass die Rechnung erfolgreich erzeugt wurde.
|
|
|
|
**8\. Abnahmekriterien**
|
|
|
|
Die Abnahmekriterien legen fest, wann das Modul Benutzeroberfläche als erfolgreich umgesetzt gilt. Sie beziehen sich auf die funktionalen und nichtfunktionalen Anforderungen dieses Pflichtenhefts.
|
|
|
|
| **ID** | **Bezug** | **Abnahmekriterium** | **Testmethode** |
|
|
| -------- | --------- | -------------------------------------------------------------------------------------------------- | ----------------- |
|
|
| AK-UI-01 | PH-UI-01 | Das Hauptfenster startet und zeigt eine Navigation zu Kunden, Produkten und Dokumenten an. | Manueller UI Test |
|
|
| AK-UI-02 | PH-UI-02 | Ein Kunde kann über die Kundenmaske eingegeben und gespeichert werden. | Funktionstest |
|
|
| AK-UI-03 | PH-UI-03 | Ein Produkt kann über die Produktmaske eingegeben und gespeichert werden. | Funktionstest |
|
|
| AK-UI-04 | PH-UI-04 | Vorhandene Dokumente werden in einer Tabelle angezeigt. | UI Test |
|
|
| AK-UI-05 | PH-UI-05 | Ein Angebot kann über die Dokumentenmaske mit Kunde und mindestens einer Position erstellt werden. | Workflow Test |
|
|
| AK-UI-06 | PH-UI-06 | Eine Rechnung kann aus einem vorhandenen Angebot über eine sichtbare Aktion erzeugt werden. | Workflow Test |
|
|
| AK-UI-07 | PH-UI-07 | Fehlende Pflichtfelder verhindern das Speichern und werden sichtbar markiert. | Negativtest |
|
|
| AK-UI-08 | PH-UI-08 | Erfolgs und Fehlermeldungen werden verständlich angezeigt. | UI Test |
|
|
| AK-UI-09 | PH-UI-09 | Finalisierte Rechnungen sind in der Oberfläche schreibgeschützt. | Funktionstest |
|
|
| AK-UI-10 | PH-UI-10 | Der PDF Export kann über einen sichtbaren Button gestartet werden. | Funktionstest |
|
|
| AK-UI-11 | PH-Q-01 | Ein neuer Anwender kann die Kernprozesse innerhalb von maximal 10 Minuten durchführen. | Usability Test |
|
|
| AK-UI-12 | PH-Q-05 | Die Oberfläche ist ohne Internetverbindung nutzbar. | Systemtest |
|
|
|
|
**9\. Traceability Matrix**
|
|
|
|
Die Traceability Matrix zeigt, welche Anforderungen aus dem Lastenheft durch welche Anforderungen im Pflichtenheft umgesetzt werden. Dadurch ist nachvollziehbar, dass die Benutzeroberfläche die geforderten Funktionen sichtbar unterstützt.
|
|
|
|
| **Lastenheft ID** | **Inhalt aus dem Lastenheft** | **Pflichtenheft ID** |
|
|
| ----------------- | ------------------------------------------------------------- | ---------------------------- |
|
|
| BA-01 | Kundendatensätze anlegen | PH-UI-02, PH-UI-07, PH-UI-08 |
|
|
| BA-02 | Produktdaten speichern | PH-UI-03, PH-UI-07, PH-UI-08 |
|
|
| BA-03 | Angebot für vorhandenen Kunden mit Produktposition erstellen | PH-UI-05, PH-UI-07, PH-UI-08 |
|
|
| BA-04 | Rechnung aus vorhandenem Angebot erzeugen | PH-UI-06, PH-UI-09 |
|
|
| Q-01 | Benutzerfreundlichkeit und Bedienung innerhalb von 10 Minuten | PH-Q-01, PH-Q-02, PH-Q-03 |
|
|
| Q-02 | Datensicherheit und zuverlässige Datenverfügbarkeit | PH-UI-07, PH-Q-04, PH-Q-05 |
|
|
| Q-03 | Revisionssicherheit finaler Rechnungen | PH-UI-09 |
|
|
| IF-01 | Benutzerschnittstelle GUI | PH-UI-01 bis PH-UI-10 |
|
|
| IF-03 | Druck und Export Schnittstelle | PH-UI-10 |
|
|
| GR-02 | Unveränderlichkeit finaler Belege | PH-UI-09 |
|
|
| GR-05 | Dokumentenketten Konsistenz | PH-UI-06 |
|
|
| GR-06 | Summenberechnung | PH-UI-05 |
|
|
|
|
**10\. Modultestplan**
|
|
|
|
Der Modultestplan beschreibt Testfälle für das Modul Benutzeroberfläche. Die Testfälle prüfen, ob die Oberfläche die geforderten Funktionen korrekt anzeigt, Eingaben richtig behandelt und dem Anwender verständliche Rückmeldungen gibt.
|
|
|
|
Die Tests können manuell über die Oberfläche durchgeführt werden. Einzelne Prüfungen, zum Beispiel Validierungen, können zusätzlich automatisiert auf Controller, ViewModel oder Service Ebene getestet werden.
|
|
|
|
| **Testfall ID** | **Anforderung** | **Testziel** | **Vorbedingung** | **Testschritte** | **Erwartetes Ergebnis** |
|
|
| --------------- | ------------------ | ------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------- |
|
|
| MT-UI-01 | PH-UI-01 | Start des Hauptfensters prüfen | Anwendung ist installiert | Anwendung starten | Hauptfenster wird angezeigt und Navigation ist sichtbar |
|
|
| MT-UI-02 | PH-UI-01 | Navigation zur Kundenmaske prüfen | Hauptfenster ist geöffnet | Menüpunkt Kunden anklicken | Kundenübersicht wird angezeigt |
|
|
| MT-UI-03 | PH-UI-01 | Navigation zur Produktmaske prüfen | Hauptfenster ist geöffnet | Menüpunkt Produkte anklicken | Produktübersicht wird angezeigt |
|
|
| MT-UI-04 | PH-UI-02 | Kunde mit gültigen Daten speichern | Kundenmaske ist geöffnet | Name und Anschrift eingeben, Speichern anklicken | Kunde wird gespeichert und Erfolgsmeldung erscheint |
|
|
| MT-UI-05 | PH-UI-02, PH-UI-07 | Kunde ohne Pflichtfeld ablehnen | Kundenmaske ist geöffnet | Name oder Anschrift leer lassen, Speichern anklicken | Speicherung wird verhindert und Fehlermeldung erscheint |
|
|
| MT-UI-06 | PH-UI-03 | Produkt mit gültigen Daten speichern | Produktmaske ist geöffnet | Bezeichnung, Preis, Steuersatz und Bestand eingeben, Speichern anklicken | Produkt wird gespeichert und Erfolgsmeldung erscheint |
|
|
| MT-UI-07 | PH-UI-03, PH-UI-07 | Negativen Produktpreis ablehnen | Produktmaske ist geöffnet | Negativen Preis eingeben, Speichern anklicken | Speicherung wird verhindert und Fehlermeldung erscheint |
|
|
| MT-UI-08 | PH-UI-03, PH-UI-07 | Negativen Bestand ablehnen | Produktmaske ist geöffnet | Negativen Bestand eingeben, Speichern anklicken | Speicherung wird verhindert und Fehlermeldung erscheint |
|
|
| MT-UI-09 | PH-UI-04 | Dokumentenübersicht anzeigen | Es existiert mindestens ein Dokument | Dokumentenbereich öffnen | Dokumente werden tabellarisch angezeigt |
|
|
| MT-UI-10 | PH-UI-05 | Angebot mit Kunde und Position erstellen | Kunde und Produkt existieren | Kunde auswählen, Produktposition hinzufügen, Speichern anklicken | Angebot wird erstellt und Summenbereich wird angezeigt |
|
|
| MT-UI-11 | PH-UI-05, PH-UI-07 | Angebot ohne Produktposition ablehnen | Kunde existiert | Kunde auswählen, keine Position hinzufügen, Speichern anklicken | Speicherung wird verhindert und Fehlermeldung erscheint |
|
|
| MT-UI-12 | PH-UI-06 | Rechnung über Oberfläche erzeugen | Passendes Angebot existiert | Dokument öffnen, Aktion für Rechnungserstellung anklicken | Rechnung wird erzeugt und Erfolgsmeldung erscheint |
|
|
| MT-UI-13 | PH-UI-08 | Erfolgsmeldung prüfen | Gültige Eingabe liegt vor | Daten speichern | Verständliche Erfolgsmeldung wird angezeigt |
|
|
| MT-UI-14 | PH-UI-08 | Fehlermeldung prüfen | Ungültige Eingabe liegt vor | Speichern anklicken | Verständliche Fehlermeldung wird angezeigt |
|
|
| MT-UI-15 | PH-UI-09 | Schreibschutz finalisierter Rechnung prüfen | Finalisierte Rechnung existiert | Rechnung öffnen und Bearbeitung versuchen | Eingabefelder sind deaktiviert und Rechnung kann nicht geändert werden |
|
|
| MT-UI-16 | PH-UI-10 | PDF Export starten | Dokument existiert | Dokument öffnen, Export Button anklicken | Dialog zur Auswahl des Speicherorts wird geöffnet |
|
|
| MT-UI-17 | PH-Q-01 | Bedienbarkeit prüfen | Testperson kennt das System nicht | Testperson legt Kunde, Produkt und Dokument an | Aufgaben werden innerhalb von maximal 10 Minuten ohne Hilfe abgeschlossen |
|
|
| MT-UI-18 | PH-Q-05 | Offline Nutzung prüfen | Internetverbindung ist deaktiviert | Anwendung starten und Hauptfunktionen öffnen | Oberfläche ist ohne Internetverbindung nutzbar |
|
|
|
|
**10.1 Testdaten**
|
|
|
|
Für die Modultests werden folgende Beispieldaten verwendet.
|
|
|
|
| **Objekt** | **Testdaten** |
|
|
| ------------------ | ------------------------------------------------------------------------------ |
|
|
| Kunde | Max Mustermann, Musterstraße 1, 68161 Mannheim |
|
|
| Produkt | Beratung, Netto Einzelpreis 100,00 Euro, Mehrwertsteuer 19 Prozent, Bestand 10 |
|
|
| Dokumentposition | Produkt Beratung, Menge 2 |
|
|
| Rechnung | Finalisierte Rechnung mit Rechnungsnummer 1 |
|
|
| Ungültiger Preis | minus 10,00 Euro |
|
|
| Ungültiger Bestand | minus 5 |
|
|
| Ungültige Menge | 0 |
|
|
|
|
**10.2 Bewertung der Testergebnisse**
|
|
|
|
Ein Testfall gilt als bestanden, wenn das erwartete Ergebnis vollständig eintritt. Ein Testfall gilt als nicht bestanden, wenn eine Funktion nicht erreichbar ist, eine falsche Meldung angezeigt wird oder ungültige Eingaben gespeichert werden können.
|
|
|
|
Fehlgeschlagene Testfälle werden dokumentiert und nach der Fehlerbehebung erneut durchgeführt.
|
|
|
|
**11\. Glossar**
|
|
|
|
| **Begriff** | **Erklärung** |
|
|
| --------------------- | ------------------------------------------------------------------------------------------------- |
|
|
| Benutzeroberfläche | Grafische Oberfläche, über die der Anwender mit dem System arbeitet |
|
|
| UI | User Interface, also Benutzeroberfläche |
|
|
| GUI | Graphical User Interface, grafische Benutzeroberfläche |
|
|
| Maske | Eingabebereich für bestimmte Daten, zum Beispiel Kundenmaske oder Produktmaske |
|
|
| Pflichtfeld | Feld, das ausgefüllt werden muss, damit eine Eingabe gespeichert werden kann |
|
|
| Validierung | Prüfung, ob eine Eingabe korrekt und vollständig ist |
|
|
| Fehlermeldung | Hinweis, dass eine Eingabe oder Aktion nicht gültig ist |
|
|
| Erfolgsmeldung | Hinweis, dass eine Aktion erfolgreich abgeschlossen wurde |
|
|
| Warnmeldung | Hinweis auf eine mögliche kritische Situation |
|
|
| Schreibschutz | Zustand, bei dem Daten nicht mehr verändert werden können |
|
|
| Finalisierte Rechnung | Rechnung, die abgeschlossen ist und nicht mehr verändert werden darf |
|
|
| Dokumentenworkflow | Ablauf, bei dem aus einem Dokument ein Folgedokument entsteht |
|
|
| Angebot | Dokument, mit dem einem Kunden eine Leistung oder Ware angeboten wird |
|
|
| Auftragsbestätigung | Dokument, das einen angenommenen Auftrag bestätigt |
|
|
| Lieferschein | Dokument, das die Lieferung von Waren oder Leistungen dokumentiert |
|
|
| Rechnung | Dokument, mit dem eine Zahlung gefordert wird |
|
|
| Medienbruch | Unterbrechung eines Prozesses durch Wechsel in ein anderes System oder durch manuelle Übertragung |
|
|
| View | Sichtbarer Bereich der Benutzeroberfläche |
|
|
| Service | Fachliche Komponente, die Daten verarbeitet oder speichert |
|
|
| ViewModel | Objekt, das Daten zwischen Oberfläche und Logik vorbereitet |
|
|
| PDF Export | Erstellung einer PDF Datei aus einem Dokument |
|
|
| Traceability Matrix | Tabelle, die Anforderungen aus dem Lastenheft mit Anforderungen aus dem Pflichtenheft verbindet |
|
|
| Abnahmekriterium | Bedingung, anhand der geprüft wird, ob eine Anforderung erfüllt ist |
|
|
| Modultest | Test eines einzelnen Systembereichs, hier des UI Moduls |
|
|
| Usability Test | Test, bei dem geprüft wird, ob ein Anwender die Oberfläche einfach bedienen kann | |