Advanced Prgramming Techniques Autr: Prf. Dr. Bernhard Humm, FB Infrmatik, Hchschule Darmstadt Datum: 8. Juli 2008 Klausur Advanced Prgramming Techniques 1 Spielregeln zur Klausur Allgemeines Die Bearbeitungszeit beträgt 3 Zeitstunden. Bitte halten Sie Ihren Studenten- und Persnalausweis bereit Um eine differenzierte Leistungsbeurteilung zu ermöglichen, besteht die Klausur aus einzelnen Teilaufgaben entlang der Kmpnenten des zu erstellenden Systems. Jede Teilaufgabe entspricht einer Ausbaustufe des Systems. Arbeiten Sie in der angegebenen Reihenflge. Erfüllen Sie die Aufgabenstellung genau: machen Sie nicht weniger, aber auch nicht mehr! Entwerfen Sie Ihr Prgramm entweder mit deutschen der englischen Bezeichnern. Halten Sie die Sprache knsequent durch, d.h. bei allen Interface- / Klassen- / Methden- / Attributnamen swie bei der Dkumentatin. Überlegen Sie, welche Java-Strukturen für die Aufgabe angemessen sind (Klassen und / der Schnittstellen, Neuimplementierung und / der Nutzung / Erweiterung vn Klassen im JDK, ) Sie brauchen nur die Außensicht der Kmpnenten des Systems mittels JavaDc zu spezifizieren. Nicht spezifiziert werden muss die Innensicht, swie triviale get- und set- Methden und triviale Knstruktren (selbst wenn diese Teil der Außensicht sein sllten). Sie brauchen nur die Methden der Außensicht der Kmpnenten des Systems mittels JUnit zu testen als analg zu der JavaDc Spezifikatin. Als Ergebnis der Klausur sind abzugeben alle zum System gehörigen Dateien durch Kpieren auf den Server (genauere Infrmatinen zu Beginn der Klausur). 8. Juli 2008 Seite 1
Klausur: Advanced Prgramming Techniques Zugelassene Hilfsmittel Ausgedruckte Vrlesungsunterlagen und Bücher Persönliche Ntizen auf Papier JDK 6 API Dcumentatin (auf Klausurrechner installiert) Guid Krüger Handbuch der Java Prgrammierung (Online-Versin auf Klausurrechner installiert) Online Hilfe in NetBeans Verbten ist die Benutzung eigener Datenträger (Diskette, USB-Stick etc.); insbesndere dürfen keine Prgramme der snstige Daten auf Datenträger mitgebracht werden. die Benutzung eines anderen Rechners (Taschenrechner, Palmtp, Ntebk,...) als des zur Verfügung gestellten jegliche Kmmunikatin (mündlich, schriftlich, elektrnisch, per Handy, übers Netz, wie auch immer...) mit anderen Persnen, ausgenmmen die Aufsichtführenden. Lgin unter einem anderen Accunt als dem für die Klausur angegebenen. Zugriff auf andere Verzeichnisse eines Servers, als die ausdrücklich zugelassenen. Beurteilungskriterien Funktin des Systems: das Prgramm sll kmpilieren und Tests fehlerfrei durchlaufen Klarheit und Eleganz des Entwurfs: Einhaltung aller Regeln zu Advanced Prgramming Dkumentatin: knapp, aber vllständig 2 Überblick Shp System In der Klausur sll ein einfaches Shp-System prttpyisch implementiert werden. Die flgende Abbildung gibt einen Überblick über das System als UML Kmpnenten-Diagramm (hier mit englischen Bezeichnern bitte entscheiden Sie sich für Englisch der Deutsch!). Seite 2
Klausur: Advanced Prgramming Techniques cmp Shp Sales Custmer Management Prduct Management Beachten Sie bei Ihrer Lösung die Dependencies zwischen den Kmpnenten! Insgesamt sind 80 Punkte zu vergeben. 3 Kmpnente Custmer Management (20 Punkte) Entwerfen und implementieren Sie eine Kmpnente für die Kundenverwaltung. Dies sind die Anfrderungen: Kunden sllen durch Namen und Adresse beschrieben werden (Unterscheidungen in Vr- und Nachnamen, swie einzelne Adressfelder sind hier nicht ntwendig). Kunden sllen durch eine eindeutige Kundennummer identifiziert werden. Die Nummer sll autmatisch vm Shp-System generiert werden. In der Außensicht der Kmpnente sllen flgende Funktinen angebten werden: Anlegen eines neuen Kunden (einschließlich der Generierung der eindeutigen Kundennummer). Tipp: simulieren Sie die Datenbank durch eine Liste aller Kundenbjekte Suche eines Kunden nach seiner Kundennummer. Legen Sie fest, wie die Kmpnente knfiguriert wird. Zeigen Sie im JUnit-Test, wie es geht. 4 Kmpnente Prduct Management (20 Punkte) Entwerfen und implementieren Sie eine Kmpnente für die Prduktverwaltung. Dies sind die Anfrderungen: Seite 3
Klausur: Advanced Prgramming Techniques Im Shp sllen Bücher und CDs verkauft werden können. Die Unterscheidung zwischen Büchern und CDs ist wichtig. Allerdings reicht ein allgemeiner Name für Prdukte aller Art aus (Unterscheidung in Autr bzw. Interpret und Titel ist hier nicht ntwendig). Jedes Prdukt sll einen festen Verkaufspreis in Eur haben. Jedes Prdukt sll durch eine eindeutige Prduktnummer identifiziert werden. Die Nummer sll autmatisch vm Shp-System generiert werden. In der Außensicht der Kmpnente sllen flgende Funktinen angebten werden: Anlegen eines neuen Prdukts (einschließlich der Generierung der eindeutigen Prduktnummer). Tipp: simulieren Sie die Datenbank durch eine Liste aller Kundenbjekte Suche eines Prdukts nach seiner Nummer. Legen Sie fest, wie die Kmpnente knfiguriert wird. Zeigen Sie im JUnit-Test, wie es geht. 5 Kmpnente Sales (20 Punkte) Entwerfen und implementieren Sie eine Kmpnente für den Verkauf vn Prdukten. Dies sind die Anfrderungen: Kunden sllen Prdukte bestellen können. Dies nennt man einen Auftrag. Ein Auftrag sll sich auf einen Kunden und mehrere Prdukte beziehen. Ein Prdukt kann in einem Auftrag mehrfach vrkmmen. Jeder Auftrag sll durch eine eindeutige Auftragsnummer identifiziert werden. Die Nummer sll autmatisch vm Shp-System generiert werden. Das Datum der Bestellung sll festgehalten werden. In der Außensicht der Kmpnente sllen flgende Funktinen angebten werden: Bestellung (Anlegen eines neuen Auftrags einschließlich der Generierung der eindeutigen Auftragsnummer). Tipp: simulieren Sie die Datenbank durch eine Liste aller Auftragsbjekte Suche eines Auftrags nach seiner Nummer. Legen Sie fest, wie die Kmpnente knfiguriert wird. Zeigen Sie im JUnit-Test, wie es geht. Seite 4
Klausur: Advanced Prgramming Techniques 6 Gesamtpreis (10 Punkte) Es sll der Gesamtpreis eines Auftrags (in Eur) berechnet werden können als Summe der Einzelpreise der Prdukte. 7 Rechnungstext (10 Punkte) Es sll der Rechnungstext für einen Auftrag generiert werden. Das Aussehen sll beispielsweise wie flgt sein: *** Invice fr Order #4 *** Custmer #1: Humm - Friedberg Prduct #2: BOOK Siedersleben - Sftware Architektur: EUR 45.0 Prduct #3: CD Pink Flyd - The Wall: EUR 19.95 ------------------------------------------------- Ttal: EUR 64.95 Tipps: Zeilenumbruch ist \n Sie brauchen im JUnit-Test keinen aufwändigen Vergleich zum erwarteten Rechnungstext zu prgrammieren. Mir reicht die Ausgabe auf die Knsle, s dass ich das Ergebnis inspizieren kann. Der Testauftrag sll mindestens zwei Prdukte umfassen. 8 Test und Dkumentatin Vergessen Sie nicht, JUnit-Tests für die Außensicht der Kmpnenten zu erstellen. Nicht getestet werden muss die Innensicht, swie triviale get- und set-methden und triviale Knstruktren (selbst wenn diese Teil der Außensicht sein sllten). Vergessen Sie auch nicht die Spezifikatin der Außensicht mittels JavaDc. Dieselben Methden, die getestet werden sllen, sllen auch dkumentiert werden. Viel Erflg! Seite 5