Objektorientierte Programmiertechniken
LVA 185.A01, VU, 3 Ects, 2013/2014 W
| Ausgabe: | 09.10.2013 |
| Abgabe: | 16.10.2013, 12:00 Uhr |
Schreiben Sie in Java den Kern eines solchen Programms (ohne Benutzerschnittstelle) sowie ein Testprogramm. Der Kern soll die oben beschriebene Funktionalität aufweisen, aber keinerlei Eingabe von der Tastatur oder Ausgabe auf den Bildschirm (und auch nicht von/auf eine Datei) machen. Daher müssen alle benötigten bzw. erzeugten Daten über Parameter und Rückgabewerte von Methoden übergeben werden. Zum Testen können Sie die 100 Tage, in der der Kürbis wächst, in kurzer Zeit simulieren, Sie brauchen also nicht tatsächlich 100 Tage warten.
Das Testprogramm soll mittels java Test von Aufgabe1 aus aufrufbar sein und die oben beschriebene Funktionalität überprüfen. Die Tests sollen selbständig ohne Benutzerinteraktion ablaufen, sodass Aufrufer keine Testfälle auswählen oder Testdaten eintippen müssen. Testergebnisse 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.
Achten Sie bei der Lösung der Aufgabe besonders auf Datenabstraktion: Alles, was kaum trennbar miteinander verbunden ist, soll in einem Objekt gekapselt sein, leicht voneinander trennbare Einheiten sollen zu verschiedenen Objekten gehören. Es soll in Ihrem Programm mehrere, voneinander möglichst unabhängige Objekte geben. Auf Daten soll nur über dafür vorgesehene Methoden zugegriffen werden. Unnötige Zugriffe und unnötige Zugreifbarkeit von Daten und Methoden sind zu vermeiden. Achten Sie auf hohen Klassenzusammenhalt und schwache Objektkopplung.
Diese Aufgabe hilft auch den Tutor(inn)en bei der Einschätzung Ihrer Kenntnisse sowie der Zusammenarbeit in der Gruppe. Bitte sorgen Sie in Ihrem eigenen Interesse dafür, dass Sie diese Aufgabe in der Gruppe lösen (ohne Abschreiben) und jedes Gruppenmitglied etwa in gleichem Maße mitarbeitet. Sonst könnten Sie bei einer Fehleinstufung wertvolle Zeit verlieren. Scheuen Sie sich bitte nicht, Ihre(n) Tutor(in) um Hilfe zu bitten, falls Sie bei der Lösung der Aufgabe Probleme haben oder keine brauchbare Zusammenarbeit in der Gruppe zustandekommt.
Unter der Überschrift Wie die Aufgabe zu lösen ist
finden Sie einerseits Hinweise darauf, wie Sie die Lösung der Aufgabe vereinfachen können und welche Fallen Sie umgehen sollen, erfahren andererseits aber auch, welche Aspekte bei der Beurteilung als besonders wichtig betrachtet werden.
Bei der ersten Aufgabe kommt es beispielsweise besonders auf Datenabstraktion, Klassenzusammenhalt, Objektkopplung und die Einfachheit der Lösung an.
Das heißt, in späteren Aufgaben können Ihnen bei solchen Hinweisen auch für unnötig komplizierte oder umfangreiche Lösungen Punkte abgezogen werden, weil Sie sich nicht an die Vorgaben gehalten haben.
Fleißaufgaben
sind in diesem Fall also unerwünscht.
Unterschiedliche Aufgaben haben unterschiedliche Schwerpunkte.
Verlassen Sie sich nicht darauf, dass die nächste Aufgabe nach demselben Schema beurteilt wird wie die vorangegangene, sondern richten Sie sich nach der jeweiligen Aufgabenstellung.
Ein häufiger Fehler besteht darin, eine Aufgabe nur nach Gefühl zu lösen ohne zu verstehen, worauf es ankommt. Meist bezieht sich die Aufgabe auf ein Thema, das kurz zuvor in der Vorlesung behandelt wurde. Versuchen Sie, eine Beziehung zwischen der Aufgabenstellung und dem Vorlesungsstoff herzustellen. Achten Sie besonders darauf, Fachbegriffe (wie Datenabstraktion, Klassenzusammenhalt und Objektkopplung) nicht nur umgangssprachlich zu interpretieren, sondern verwenden Sie diese Begriffe so wie in der Vorlesung und im Skriptum beschrieben. Die ersten Aufgaben werden Sie vermutlich auch ohne Skriptum noch leicht lösen können, spätere Aufgaben aber kaum mehr. Als Hilfestellung sind in jeder Aufgabenstellung Teile des Skriptums genannt, in denen die relevantesten Themen behandelt werden – bei komplizierten Themen oft nur wenige Seiten.
Versuchen Sie nicht, Teile der Aufgabenstellung durch Tricks oder Spitzfindigkeiten zu umgehen.
Beispielsweise gibt es immer wieder Lösungen, in denen die Test-Klasse nur den String Tests erfolgreich
ausgibt statt tatsächlich Tests durchzuführen.
Solche Versuche werden durch händische Beurteilungen mit hoher Wahrscheinlichkeit erkannt.
Spätere Aufgaben enthalten oft Schwierigkeiten, die mit Allgemeinwissen alleine oder über aufgabenbezogene Internet-Recherchen kaum zu lösen sind.
Gerade in solchen Fällen ist davon abzuraten, die Schwierigkeiten durch Tricks zu umgehen.
Hinweise zur richtigen Lösung lassen sich im Skriptum und auf den Vorlesungsfolien finden.