Objektorientierte Programmiertechniken
LVA 185.A01, VU, 3 ECTS, 2015/2016 W

2. Übungsaufgabe

Thema:

Aufwandsabschätzung, Programmiereffizienz, Untertypbeziehungen und dynamisches Binden

Termine:

Ausgabe: 21.10.2015
Abgabe: 28.10.2015, 12:00 Uhr

Abgabeverzeichnis:

Aufgabe1-3

Programmaufruf:

java Test

Grundlage:

Skriptum, Schwerpunkt auf Abschnitt 2.1

Aufgabe

Welche Aufgabe zu lösen ist:

Die Gemeinde Hinterwaldgstetten hat mit Hilfe des Programms aus Aufgabe 1 bereits mehrere Varianten zur Bepflanzung des Gemeindegrundstücks simuliert, aber noch keine Entscheidung getroffen. Immerhin hat man schon mit einer Nachbargemeinde und zwei privaten Waldbesitzern Kontakt aufgenommen, wo ähnliche Entscheidungen anstehen und Interesse an einem Simulationsprogramm besteht. Dabei hat sich gezeigt, dass das Programm aus Aufgabe 1 die Erwartungen bei Weitem noch nicht erfüllt. Folgende als Wesentlich erachtete Punkte wurden angesprochen:

Erweitern Sie Ihre Lösung von Aufgabe 1 entsprechend. Konzentrieren Sie sich wieder nur auf den Kern des Programms (ohne Benutzerschnittstelle) sowie das Testprogramm. Der Kern soll einen möglichst großen Teil der oben beschriebene Funktionalität abdecken, aber keinerlei Eingabe von der Tastatur oder Ausgabe auf den Bildschirm machen.

Das Testprogramm soll mittels java Test von Aufgabe1-3 aus aufrufbar sein und die selbst gewählte Funktionalität überprüfen. Tests sollen ohne Benutzerinteraktion ablaufen, sodass Aufrufer keine Testfälle auswählen oder Testdaten eintippen müssen. Ergebnisse sollen (in nachvollziehbarer und verständlicher Form) am Bildschirm ausgegeben werden.

Neben dem Testprogramm soll die Klasse Test.java als Kommentar eine kurze, aber verständliche Beschreibung der Aufteilung der Arbeiten auf die einzelnen Gruppenmitglieder enthalten – wer hat was gemacht.

Wie die Aufgabe zu lösen ist:

Die oben aufgezählten gewünschten Eigenschaften sind nur als Anhaltspunkte gedacht. Sie können auch andere sinnvoll erscheinende Eigenschaften einbauen und einzelne Punkte weglassen bzw. unvollständig oder anders als angedeutet lösen.

Eine der größten Schwierigkeiten dieser Aufgabe besteht in der richtigen Abschätzung des Umfangs der Arbeiten, die Sie bis zum Abgabetermin fertigstellen können. Planen Sie entsprechend Ihren Vorkenntnissen und Fähigkeiten möglichst viel ein, das Sie in der vorgesehenen Zeit auch zum Abschluss bringen können – das heißt, so viel Sie können, aber auf keinen Fall mehr als Sie können. Als groben Anhaltspunkt sollten Sie (jedes Gruppenmitglied) mindestens fünf bis sechs Stunden in die Lösung dieser Aufgabe fließen lassen. Versuchen Sie so effizient wie möglich zu arbeiten und sehr rasch zu einer brauchbaren Lösung zu kommen. Ignorieren Sie Details, die Ihnen als unwichtig erscheinen. Bedenken Sie, dass Sie alle Teile Ihrer Lösung durch Testfälle überprüfen sollen und planen Sie die Zeit für die Entwicklung der Testfälle und für die Fehlerbeseitigung ein.

Senden Sie möglichst bald ein grobes Konzept Ihrer geplanten Arbeiten – am besten mit einer Einteilung, welches Gruppenmitglied was machen soll – an Ihre(n) Tutor(in). Die Tutor(inn)en werden sich bemühen, rasch hilfreiche Rückmeldungen zu den Konzepten zu geben. Überschätzen Sie sich nicht. Erstellen Sie eher ein Konzept, von dem Sie sicher annehmen, dass Sie die Arbeiten zeitlich schaffen. Wenn das Konzept Ihrem Tutor oder Ihrer Tutorin nicht reicht, werden Sie um eine Abänderung gebeten.

Einer der Schwerpunkte dieser Aufgabe ist der Umgang mit Untertypbeziehungen. Planen Sie die Verwendung von Untertypbeziehungen zusammen mit dynamischem Binden ein.

Warum die Aufgabe diese Form hat:

Sie sollen möglichst große Freiheit bei der Lösung der Aufgabe haben und selbst die Verantwortung für alles übernehmen. Es gibt niemanden, der Ihnen vorschreibt, wie die Aufgabenstellung genau zu verstehen ist.

Diese Aufgabe stellt hohe Anforderungen an jedes einzelne Gruppenmitglied sowie die Zusammenarbeit innerhalb der Gruppe – eine Nagelprobe für das Funktionieren der Gruppe und zum Aufdecken möglicher Schwachstellen.

Untertypbeziehungen sind ein schwieriges, aber für die objektorientierte Programmierung sehr wichtiges Thema. Nutzen Sie die Gelegenheit, bei der Lösung der Aufgabe Erfahrungen damit zu gewinnen. Fehler, die Sie dabei noch machen, wirken sich nicht auf Ihre Beurteilung aus. Sie bekommen von den Tutor(inn)en Rückmeldungen und bei Bedarf maßgeschneiderte Hilfe.

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
            PK
            OOP
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
               4. Aufgabe
               5. Aufgabe
               6. Aufgabe
               7. Aufgabe
               8. Aufgabe
               9. Aufgabe
            Typsysteme
         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
         LVAs 2005 S
         LVAs 2004 W
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
Tutoren
Lernunterlagen
vorige Aufgabe
nächste Aufgabe
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2015-10-21 (Puntigam)