Kommentare zur Lösung der 4. Aufgabe von Hubert Hausegger, Michael Schoener und Herbert Moser: Die Beurteilung der Lösung lautet: ---------------------------------- +100 Compilation erfolgreich + 0 Beispiel OK Struktur der Lösung: -------------------- Die Klasse "Stammbaum" erbt von "Graph" den größten Teil des Codes, und eine Untertypbeziehunge zwischen "Stammbaum" und "Graph" ist gegeben. Zur Darstellung der Knoten von Graphen wird die private innere Klasse "Node" verwendet. Statt einem String für die Namen von Knoten wird ein Typparameter T verwendet (und damit ein großer Teil einer späteren Aufgabe vorweggenommen). Knotenmengen wurden direkt als Instanzen des vordefinierten Typs "Set" dargestellt. Was an der Lösung positiv auffällt: ----------------------------------- Das ist eine fast perfekte Lösung. Die Struktur ist klar und einfach. Es wurde auf Sichtbarkeit geachtet. Alle Zusicherungen sind ausführlich, verständlich, und eindeutig. Sie beschreiben alles, was jemand wissen muss, der diese Klassen verwendet. Es wurde ausführlich getestet. Was man anders machen könnte: ----------------------------- Die sehr gute Qualität der Lösung hat sicher auch ihren Preis; das heißt, vermutlich wurde sehr viel Zeit in die Entwicklung dieser Lösung gesteckt. Auch eine etwas weniger perfekte Lösung wäre sicher noch mit 100 Punkten beurteilt worden. Auf den ersben Blick unklar ist, warum lookupCycle in "Graph" und nicht in "Stammbaum" implementiert ist, wo die Methode logisch eher hinpassen würde. Der Grund ist die Verwendung einer privaten Variable. Für dieses kleine "Problem" könnte man sich verschiedene Lösungen vorstellen, die aber alle eines gemeinsam haben: Die Lösung würde dadurch weniger einfach sein. Vielleicht könnte man als Ausweg die Lösung belassen wie sie ist, und durch einen kurzen Kommentar eine Motivation dafür geben, warum die Methode an dieser Stelle steht.