Studentisches Java Projekt
1.1 Entwicklungsumgebung
Erstellen Sie ein JAVA-Dialogprogramm, mit dem neue Rechnungen
eingegeben und bestehende Rechnungen angezeigt werden können.
Persistente Daten sind in geeigneten Tabellen einer relationalen
Datenbank (Oracle auf rzserv2) zu speichern. Für die Realisierung
sind ausschließlich das API der Java SE 6 und die Klassenbibliothek
ojdbc14.zip von Oracle zu verwenden. Die Einbindung automatisch
generierten Quellcodes ist nicht zulässig.
1.2 Geschäftsregeln
Jede Rechnung bezieht sich keinen oder auf genau einen Auftrag; zu
einem Auftrag können jedoch mehrere Rechnungen gehören. Ein
Auftrag wird von genau einem Kunden erteilt. Ein Kunde kann
dagegen mehrere Aufträge erteilen. Ein Auftrag besteht aus
Auftragskopfdaten (Auftragsnummer [identifiziert Auftrag eindeutig],
Auftragsdatum, Kundennummer [identifiziert Kunden eindeutig],
Name und Anschrift des Kunden) und mindestens einer
Auftragsposition. Jede Auftragsposition besteht aus Positionsnummer
[fortlaufend nummeriert, beginnend mit 1], Artikelnummer
*identifiziert Position eindeutig+, Artikelbezeichnung, Stückpreis (in €
mit 2 Nachkommastellen) und Menge (bis zu 4stellige ganze Zahl >
0).
Eine Rechnung besteht aus Rechnungskopfdaten und mindestens einer
Rechnungsposition. Eine Rechnung wird für genau einen Kunden
erstellt. Ein Kunde kann dagegen mehrere Rechnungen erhalten. Die
Rechnungskopfdaten enthalten Rechnungsnummer [identifiziert
Rechnung eindeutig], Rechnungsdatum, Kundennummer, Name und
Anschrift des Kunden, den Gesamtbetrag aller Rechnungspositionen
und im Falle einer Rechnung, die sich auf einen Auftrag bezieht,
zusätzlich Auftragsnummer und Auftragsdatum. Das Rechnungsdatum
darf nicht vor dem Auftragsdatum liegen. Jede Rechnungsposition
besteht aus Positionsnummer [fortlaufend nummeriert, beginnend mit
1], Artikelnummer [identifiziert Position eindeutig],
Artikelbezeichnung, Stückpreis (in € mit 2 Nachkommastellen) und
Menge (bis zu 4stellige ganze Zahl > 0). Im Falle einer Rechnung zu
einem Auftrag bezieht sich die Rechnungsposition auf genau eine
Auftragsposition. Eine Rechnung kann eine, mehrere oder alle
Auftragspositionen des zugehörigen Auftrags umfassen.
1.3 Benutzerschnittstelle
a) Alle Eingaben werden geprüft und ggf. mit Fehlermeldungen
quittiert. Fehlerhafte Eingaben können korrigiert werden. Die
Bearbeitung einer Rechnung kann jederzeit abgebrochen werden. In
diesem Fall wird die Rechnung nicht gespeichert. Nach Eingabe oder
Anzeige einer Rechnung können weitere Rechnungen bearbeitet
werden.
b) Im ersten Dialogschritt wird der Bearbeitungsmodus ausgewählt
(Eingabe oder Anzeigen einer Rechnung).
c) Eingabe einer neuen Rechnung:
Nach Eingabe einer noch nicht vergebenen Rechnungsnummer sind
Kundennummer oder Auftragsnummer einzugeben.
Falls eine Auftragsnummer eingegeben wird, werden alle noch nicht
berechneten Auftragspositionen als Rechnungspositionen
übernommen und die Rechnungskopfdaten angezeigt. Dabei wird das
Rechnungsdatum automatisch mit dem aktuellen Tagesdatum
vorbesetzt, kann jedoch mit einem zulässigen anderen Datum
überschrieben werden. Die voreingestellte Menge einer
Rechnungsposition stimmt mit der Menge der Auftragsposition
überein und kann mit dem Wert 0 überschrieben werden. Dadurch
wird die Rechnungsposition entfernt.
Falls eine Kundennummer eingegeben wird, werden die
Rechnungskopfdaten erzeugt. Dabei wird das Rechnungsdatum
automatisch mit dem aktuellen Tagesdatum vorbesetzt, kann jedoch
mit einem zulässigen anderen Datum überschrieben werden. Danach
können beliebig viele Rechnungspositionen mit Artikelnummer und
Menge eingegeben werden. Daraufhin werden Artikelbezeichnung,
Stückpreis und der aktuelle Gesamtbetrag angezeigt.
d) Anzeige einer Rechnung:
Nach Eingabe der Rechnungsnummer werden Rechnungskopf und
alle Rechnungspositionen angezeigt. Änderungen sind nicht möglich.
1.3 Softwarearchitektur
Die Anwendung ist in Form einer Drei-Schichten-Architektur
(Benutzeroberfläche, Anwendungslogik, Datenzugriff) zu realisieren
und soll erweiterungsfähig sein.
Es handelt sich um ein Programm für die Uni. Dementsprechend niedrig ist das Budget.







