Objektorientierte Programmierung
LVA 185.162, VL 2.0, 2006 W

4. Übungsaufgabe

Themen:

Untertypen und Vererbung, Zusicherungen, geschachtelte Klassen

Termine:

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

Abgabeverzeichnis:

Aufgabe4

Programmaufruf:

java Test

Grundlage:

Skriptum bis Seite 81.

Aufgabe

Welche Aufgabe zu lösen ist:

Schreiben Sie Java-Klassen mit folgender Funktionalität:

Wie die Aufgabe zu lösen ist:

Schreiben Sie die Klassen Stammbaum und Graph so, dass möglichst viel Programmcode direkt geerbt wird und nicht überschrieben werden braucht. Sie können zusätzliche (abstrakte) Klassen und Interfaces einführen, vermeiden Sie jedoch unnötigen Code. Verwenden Sie Vererbungsbeziehungen nur dort, wo auch Untertypbeziehungen bestehen. Achten Sie darauf, dass Sie alle nötigen Zusicherungen in Form von Kommentaren (in Deutsch oder Englisch) in den Programmcode schreiben. Vermeiden Sie Kommentare, die keine Zusicherungen darstellen, sowie mehrdeutig formulierte Zusicherungen. Wählen Sie für alle Bedingungen jene Arten von Zusicherungen (Vorbedingungen, Nachbedingungen, Invarianten), durch welche die Abhängigkeiten mit Test am schwächsten sind. Bedenken Sie, dass Sie in Nachbedingungen neben dem Verhalten in Normalfällen auch das Verhalten in Sonderfällen (beispielsweise das Zurückmelden von Fehlern, wenn dies nötig ist) beschreiben sollen. Geben Sie klar formulierte Fehlermeldungen aus. Es soll jedoch stillschweigend (ohne Fehlermeldung) möglich sein, dass eine aufgerufene Methode nichts tut, wenn die Nachbedingungen der Methode bereits beim Aufruf erfüllt sind. Überlegen Sie, wie Sie geschachtelte Klassen in dieser Aufgabe sinnvoll einsetzen können.

Hinweise zur Beurteilung:

Für Vererbungsbeziehungen, die keine Untertypbeziehungen sind, sowie für nicht wahrgenommene Gelegenheiten für direkte Codevererbung gibt es kräftige Punkteabzüge. Ein Schwerpunkt bei der Beurteilung liegt auf der richtigen Verwendung von Zusicherungen. Zusicherungen in Testklassen werden jedoch nicht beurteilt. Für fehlende oder mißverständlich formulierte Zusicherungen gibt es kräftige Punkteabzüge, ebenso wie für Kommentare, die keine Zusicherungen darstellen. Die in dieser Aufgabenstellung angeführten Eigenschaften der Klassen dienen als Grundlage dafür, ob eine Zusicherung bei der Beurteilung als nötig angesehen wird. Die Aufgabenstellung selbst gehört nicht zum Programmcode. Daher dürfen Anforderungen in der Aufgabenstellung einem Leser des Programmcodes nicht als bekannt vorausgesetzt werden. Für unnötige Zusicherungen werden Punkte abgezogen, wenn dadurch sonst nicht benötigter Programmcode geschrieben werden muss oder sonst mögliche Vererbungs- und Untertypbeziehungen verhindert werden.

Was im Hinblick auf die Abgabe zu beachten ist:

Schreiben Sie Ihre Lösung in den bereits existierenden Ordner Aufgabe4 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 (23.11.2006, 12:45 Uhr) und der nachträglichen Abgabe (30.11.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 Aufgabe4.
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-16 (Puntigam)