Objektorientierte Programmierung
LVA 185.162, VL 2.0, 2008 W
| Ausgabe: | 09.10.2008 |
| reguläre Abgabe: | 16.10.2008, 12:45 Uhr |
| nachträgliche Abgabe: | 23.10.2008, 12:45 Uhr |
Folgende Bedingungen sollen stets erfüllt sein, und ihre Einhaltung ist an geeigneten Stellen zu überprüfen:
Die Messdatenerfassung ist als Teil eines größeren Programmpaketes vorgesehen. Ihre Methoden werden von anderen Programmteilen (und nicht direkt von einer Person) verwendet. Daher brauchen Sie keine Benutzerschnittstelle entwickeln.
Zu Beginn des Programmlaufs ist die Liste der gespeicherten Messwerte leer. Bei Programmbeendigung können Daten verloren gehen, das heißt, die Daten brauchen nicht permanent gespeichert zu werden. Geben Sie geeignete Fehlermeldungen aus, falls notwendige Bedingungen nicht erfüllt sind. Alle Ausgaben (Fehlermeldungen genauso wie Ergebnisse von Auflistungen und Abfragen) sollen als Strings an den Aufrufer zurückgegeben (und nicht direkt in die Standardausgabe geschrieben) werden.
Schreiben Sie eine Klasse Test
zum Testen Ihrer Lösung.
Durch Aufruf von java Test
sollen alle wichtigen Teile der Messdatenerfassung zumindest einmal durchlaufen werden.
Diese Tests sollen nicht interaktiv sein (das heißt, der Programmlauf soll keine Benutzereingaben verlangen).
Sorgen Sie dafür, dass die Tests möglichst klar von der eigentlichen Messdatenerfassung getrennt sind, und dass Testergebnisse eindeutig erkennen lassen, welche Tests erfolgreich waren.
g0bekommen. In diesem Account können Sie unabhängig von anderen Übungsteilnehmern (auch unabhängig von anderen Mitgliedern Ihrer Gruppe) arbeiten. Das Verzeichnis
Gruppegehört jedoch allen Gruppenmitgliedern gemeinsam. Legen Sie alle Daten, die von den Gruppenmitgliedern gemeinsam (und nicht nur von Ihnen persönlich) verwendet werden, in diesem Verzeichnis ab. Das gilt insbesondere für Lösungen von Aufgaben. Es kann pro Gruppe und Aufgabe nur eine gemeinsame Lösung geben, auf die sich die Gruppenmitglieder einigen müssen. Es bleibt der Gruppe überlassen, wie die Arbeit aufgeteilt wird, solange die Aufteilung einigermaßen gerecht ist (wird beim Abgabegespräch überprüft).
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 Ihrer Lösung 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, es können Ihnen auch für unnötig komplizierte oder umfangreiche Lösungen viele Punkte abgezogen werden.
Unterschiedliche Aufgaben haben unterschiedliche Schwerpunkte.
Verlassen Sie sich also 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. Als Hilfestellung sind in jeder Aufgabenstellung die Teile des Skriptums genannt, in denen die relevantesten Themen behandelt werden - manchmal ein ganzes Kapitel, manchmal (vor allem bei komplizierten Themen) 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 nicht selten Schwierigkeiten, die nur mit Allgemeinwissen oder über 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 finden sich im Skriptum oder lassen sich vom Tutor erfragen.
Gruppe/Aufgabe1für die erste Aufgabe) auf der
g0. Das Programm soll von diesem Verzeichnis aus durch den ebenfalls oben genannten Befehl (
java Testfür diese und einige weitere Aufgaben) aufrufbar sein; das heißt, die Methode
mainsoll in der Klasse
Testin der Datei
Test.java(die Sie selbst schreiben) stehen. Schreiben Sie (abgesehen von geschachtelten Klassen) nie mehr als eine Klasse in jede Datei. Das Verzeichnis soll zum Zeitpunkt der Abgabe und der nachträglichen Abgabe 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 Verzeichnissen innerhalb des Abgabeverzeichnisses, außer für spätere Aufgaben, wo dies in der Aufgabenstellung ausdrücklich erlaubt oder verlangt wird. Wo keine Unterverzeichnisse erlaubt sind, ist es auch nicht möglich,
packageszu verwenden. Stellen Sie sicher, dass ein Aufruf von
javac *.javain keinem zur Abgabe gehörenden Verzeichnis eine Fehlermeldung liefert, da Lösungen mit Syntaxfehlern in der Regel nicht beurteilt werden. Warnings sind bei den ersten Aufgaben zwar erlaubt, später aber nicht mehr. Versuchen Sie gleich von Anfang an, alle Warnings zu vermeiden. Verwenden Sie (außer den Java-Standardbibliotheken) keine vorgefertigten Programmteile, da diese bei der Beurteilung als nicht vorhanden angesehen werden. Vermeiden Sie jede Änderung der Verzeichnisstruktur der Abgabeverzeichnisse (kein Verschieben, Umbenennen, Löschen und Neuanlegen) um die automatische Abgabe nicht zu behindern.
Gruppe/TUTOR) schicken um sich kurz vorzustellen. Teilen Sie bitte Folgendes mit:
Gruppe/GRUPPE)