Objektorientierte Programmierung
LVA 185.162, VL 2.0, 2006 W

5. Übungsaufgabe

NEU:

Wegen kleiner Fehler wurde die Aufgabenstellung im Nachhinein leicht verändert. Alle geänderten Stellen sind folgendermaßen markiert: gelöschter Text - nachträglich eingefügter Text. Durch die Änderungen sollte die Lösung im Wesentlichen unberührt bleiben.

Themen:

Pakete, Sichtbarkeit, Interfaces

Termine:

Ausgabe: 23.11.2006
reguläre Abgabe: 30.11.2006, 12:45 Uhr
nachträgliche Abgabe: 07.12.2006, 12:45 Uhr

Abgabeverzeichnis:

Aufgabe5

Programmaufruf:

java Test

Grundlage:

Skriptum bis Seite 91.

Aufgabe

Welche Aufgabe zu lösen ist:

Entwickeln Sie in Java ein Paket graphsammlung, welches Klassen und Interfaces für folgende Zwecke enthält:

Entwickeln Sie auch ein Paket anwendung, welches die Klasse Stammbaum (wie in Aufgabe 4 beschrieben) enthält. Stammbaum soll zumindest die Methoden von EditGraph und Verwandtschaft LeseGraph, SchreibeGraph, LeseVerwandtschaft und SchreibeVerwandschaft unterstützen.

Entwickeln Sie weiters ein Paket test, das zum nicht interaktiven Testen der Klassen und Interfaces dieser Aufgabe dient. Die wichtigsten Normal- und Grenzfälle sollen überprüft werden, und die Testergebnisse sind in allgemein verständlicher Form in der Standardausgabe darzustellen.

Schreiben Sie eine Klasse Test im existierenden Ordner Aufgabe5. Ein Aufruf von java Test in Aufgabe5 soll die Tests im Paket test ausführen.

Wie die Aufgabe zu lösen ist:

Überlegen Sie genau, wo sie (abstrakte) Klassen und wo Interfaces verwenden. Achten Sie darauf, Pakete wie oben beschrieben einzusetzen, und sorgen Sie dafür, dass Methoden, Klassen und Interfaces nur dort sichtbar sind, wo sie gebraucht werden. Bei den Methoden, Klassen und Interfaces, die in dieser Aufgabenstellung (oder in Aufgabe 4) beschrieben sind, ist davon auszugehen, dass sie auch außerhalb der vorgegebenen Pakete verwendet werden sollen. Wie in den vorangegangenen Aufgabenstellungen sollen Sie Vererbung nur dort einsetzen, wo auch Untertypbeziehungen bestehen. Überall, wo Ersetzbarkeit ermöglicht werden kann, soll Ersetzbarkeit gegeben sein. Keine Methode darf so implementiert sein, dass sie unabhängig vom Objektzustand immer einen Fehler meldet oder eine Exception wirft. Erben Sie so viel Code wie möglich, und vermeiden Sie unnötigen Code. Vermeiden Sie Kommentare, die keine Zusicherungen darstellen, sowie mehrdeutig formulierte Zusicherungen. Wählen Sie stets jene Faktorisierung und jene Arten von Zusicherungen, durch welche die Abhängigkeiten zwischen unterschiedlichen Paketen am schwächsten sind.

Hinweise zur Beurteilung:

Der Schwerpunkt bei der Beurteilung liegt auf einem vernünftigen Einsatz von Interfaces und (abstrakten) Klassen, der korrekten Verwendung von Paketen und einer kontrollierten Verwendung von private, protected und public. Daneben spielen (wie in der vorhergehenden Aufgabe) die Themen Vererbung, Subtyping und Zusicherungen auch bei der Beurteilung der Lösung dieser Aufgabe eine wichtige Rolle.

Was im Hinblick auf die Abgabe zu beachten ist:

Schreiben Sie Ihre Lösung in den bereits existierenden Ordner Aufgabe5 in Ihrem Verzeichnis auf dem Übungsrechner b3. Das Programm soll von diesem Ordner aus durch java Test aufrufbar sein. Schreiben Sie nicht mehr als eine Klasse in jede Datei. Der Ordner soll zum Zeitpunkt der Abgabe (30.11.2006, 12:45 Uhr) und der nachträglichen Abgabe (7.12.2006, 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. Vermeiden Sie die Verwendung von Ordnern innerhalb des Abgabeordners Aufgabe5; ausgenommen davon sind nur Ordner (bitte keine Links) mit den Namen graphsammlung, anwendung und test.
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
            OOP
               Laborübung
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
               4. Aufgabe
               5. Aufgabe
               6. Aufgabe
               7. Aufgabe
               8. Aufgabe
            Typsysteme
            Seminar
         LVAs 2006 S
         LVAs 2005 W
         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: 2006-11-27 (Puntigam)