Objektorientierte Programmierung
LVA 185.162, VL 2.0, 2005 W

6. Übungsaufgabe

Themen:

Zusicherungen, Wiederverwendung

Termine:

Ausgabe: 17.11.2005
reguläre Abgabe: 24.11.2005, 12:45 Uhr
nachträgliche Abgabe: 01.12.2005, 12:45 Uhr

Abgabeverzeichnis:

Aufgabe6

Programmaufruf:

java Test

Grundlage:

Skriptum bis Seite 91

Aufgabe:

Der Baumarkt möchte die in Aufgabe 5 entwickelte Software ausbauen und in mehreren Filialen einsetzen. Die Umstellung der Filialen von der in Aufgabe 5 entwickelten auf die ausgebaute Software soll schrittweise erfolgen - eine Filiale nach der anderen, und die Software der Registrierkassen erst nach der Software zur Verwaltung der Kundenumsätze. Daher muss die ausgebaute Software auch von alten Registrierkassen aus verwendbar sein. Die ausgebaute Software soll in vollständig umgestellten Filialen folgende zusätzliche Funktionalität bieten: Auf folgende Gemeinsamkeiten und Unterschiede zur entsprechend Aufgabe 5 erstellten Software ist zu achten: Es wird angenommen, dass in bereits bestehende Kundennummern und Verkaufsnummern die Filiale einkodiert ist. Das haben Registrierkassen (ohne dass dies den Erstellern der Software zur Verwaltung der Kundenumsätze bekannt war) so gemacht. Die in die Kundennummer einkodierte Filiale gilt als Stammfiliale, während die Filiale in der Verkaufsnummer angibt, wo der Verkauf tatsächlich erfolgte. Es gilt auch nach wie vor, dass Kundennummern und Verkaufsnummern pro Filiale aufsteigend vergeben werden. Jedoch besteht zwischen Verkaufsnummern unterschiedlicher Filialen kein direkter zeitlicher Zusammenhang. Bei der Berechnung von Umsätzen und Rabatten werden Verkaufsnummern jedoch zur Angabe zeitlicher Grenzen verwendet. Um diese Verwendung der Nummern auch in der ausgebauten Software zu erlauben, wird pro Filiale eine Tabelle mit der kleinsten Verkaufsnummer jeden Tages verwaltet. Statt die Verkaufsnummern direkt als zeitliche Grenzen zu verwenden, werden nur mehr Tage, an denen die Verkäufe stattgefunden haben, als Grenzen verwendet.

Lesen Sie das Skriptum bis Seite 91. Schreiben Sie eine Klasse Kundenumsaetze2 als Untertyp der bestehenden (unveränderten) Klasse Kundenumsaetze mit der gewünschten Funktionalität. Achten Sie darauf, dass Sie alle nötigen Zusicherungen in Form von Kommentaren (in Deutsch oder Englisch) in die Klasse Kundenumsaetze2 schreiben. Kommentare, die keine Zusicherungen darstellen, mehrdeutig formulierte Zusicherungen und Zusicherungen, die in Widerspruch zu Zusicherungen in Kundenumsaetze stehen, sollen vermieden werden. Erweitern Sie die Klasse Test aus Aufgabe 5 um Tests der neuen Funktionalität (ohne interaktive Eingabe, daher nur vorgegebene Testfälle). Tests der Funktionalität von Kundenumsaetze sollen auch unter der Annahme erfolgen, dass Filialen in Kunden- und Verkaufsnummern einkodiert sind.

Schreiben Sie Ihre Lösung in den bereits existierenden Ordner Aufgabe6 in Ihrem Verzeichnis auf dem Übungsrechner b3. Das Programm soll von diesem Ordner aus durch java Test aufrufbar sein; das heißt, die Methode main soll in der Klasse Test in der Datei Test.java (die Sie selbst schreiben) stehen. Schreiben Sie nicht mehr als eine Klasse in jede Datei. Der Ordner soll zum Zeitpunkt der Abgabe (24.11.2005, 12:45 Uhr) und der nachträglichen Abgabe (01.12.2005, 12:45 Uhr) alle .java-Dateien enthalten, die Sie für Ihre Lösung benötigen. Bitte entfernen Sie alle .java-Dateien, die nicht zur Abgabe gehören. Dateien mit anderen Endungen werden bei der Beurteilung nicht berücksichtigt. Verzichten Sie auf die Verwendung von Ordnern innerhalb von Aufgabe6.

Hinweise zur Beurteilung:

Der Schwerpunkt bei der Beurteilung liegt auf der Wiederverwendung bestehender Software und auf Zusicherungen in Kundenumsaetze2, vor allem der Konsistenz der Zusicherungen zwischen Kundenumsaetze2 und Kundenumsaetze. Zusicherungen in Testklassen werden nicht beurteilt. Für fehlende, mißverständlich formulierte, oder inkonsistente Zusicherungen gibt es kräftige Punkteabzüge, ebenso wie für Kommentare, die keine Zusicherungen darstellen. Kundenumsaetze2 muss ein Untertyp von Kundenumsaetze sein, und Kundenumsaetze muss unverändert von Aufgabe5 nach Aufgabe6 kopiert werden; eine Veränderung dieser Klasse kann zu Punkteabzügen führen.
Complang
Puntigam
   Kontakt
   Research
   Lehre
      OOP
      Typsysteme
      EP2
      FOOP
      Prog.spr.
      frühere Lehre
         LVAs 2017 W
         LVAs 2017 S
         LVAs 2016 W
         LVAs 2016 S
         LVAs 2015 W
         LVAs 2015 S
         LVAs 2014 W
         LVAs 2014 S
         LVAs 2013 W
         LVAs 2013 S
         LVAs 2012 W
         LVAs 2012 S
         LVAs 2011 W
         LVAs 2011 S
         LVAs 2010 W
         LVAs 2010 S
         LVAs 2009 W
         LVAs 2009 S
         LVAs 2008 W
         LVAs 2008 S
         LVAs 2007 W
         LVAs 2007 S
         LVAs 2006 W
         LVAs 2006 S
         LVAs 2005 W
            OOP
               Laborübung
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
               4. Aufgabe
               5. Aufgabe
               6. Aufgabe
               7. Aufgabe
               8. Aufgabe
               9. Aufgabe
            Typsysteme
            Seminar, WA
         LVAs 2005 S
         LVAs 2004 W
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
Laborübung
Tutoren
Skriptum
Folien
Aufgaben
vorige Aufgabe
nächste Aufgabe
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2005-11-17 (Puntigam)