Zur Hauptnavigation springen [Alt]+[0] Zum Seiteninhalt springen [Alt]+[1]

Klassenentwurf

Hintergrundinformationen:

03_1_Klassenentwurf.odt

Im ersten Teil der Unterrichtseinheit haben die Schüler die Umsetzung eines fertigen Klassendiagramms in Java-Quelltext gelernt. Sie haben dabei die verschiedenen Beziehungen zwischen den Klassen und den Grund für ihre Verwendung kennen gelernt. Der Entwurf von einzelnen Klassen wurde besprochen.

Die Qualität des Klassenentwurfs entscheidet darüber, wie einfach sich später die Implementation umsetzen lässt. Daher ist der Klassenentwurf (Objektorientierte Modellierung) ein entscheidender Punkt in der Objektorientierung. Es muss entschieden werden, welche Klassen zum Einsatz kommen und welche Eigenschaften, der in der Realität vorkommenden Objekte, für das zu realisierende Softwareprojekt wichtig sind. Es muss festgelegt werden, über welche Methoden die Objekte verfügen sollen. Am Ende sollte ein Klassenentwurf mit verbindlichen Methodendefinitionen stehen, damit ein Projekt arbeitsteilig umgesetzt werden kann. Dies ist ein hoher Anspruch an programmierunerfahrene Schüler.

Daher ist es sinnvoll, die Softwareprojekte so zu wählen, dass sich der Kontext der Übungsaufgaben nicht zu sehr von dem Einführungsbeispiel unterscheidet. Eine Möglichkeit ist die Realisierung von einfachen Würfelspielen. Das Klassendiagramm bleibt dabei ähnlich.

Im vorliegenden Unterrichtsvorschlag wird der Klassenentwurf anhand von Craps (Präsentation: 03_EntwurfvonKlassen.odp und fertiges Programm im Tauschverzeichnis 03_Craps) eingeführt. Besonderer Stellenwert kommt dabei dem Objektspiel zu, weil dieses geeignet ist, den Klassenentwurf ohne Implementation des Programms auf Vollständigkeit zu testen. Selbst erfahrene Programmierer werden dabei feststellen, dass auch sie gerne mal einzelne Methoden beim ersten Entwurf vergessen. Die Schüler sollen dieses Projekt dann nicht selbst umsetzen, sondern nur anhand des fertigen Programms sehen, dass sich der im Unterrichtsgespräch erarbeitete Entwurf vermutlich nur wenig vom fertigen Programm unterscheidet. Es ist dabei kein Problem, wenn im Unterrichtsgespräch ein anderer tragfähiger Entwurf am Ende steht. Es gibt selbst bei so einfachen Beispielen viele korrekte Lösungen.

Nun sollte der Lehrer ein weiteres Projekt auswählen, das die Schüler selbstständig bearbeiten. Je nach Stärke des Kurses können unterschiedliche Projekte gewählt werden. Barbudi unterscheidet sich von Craps nur minimal. Wenn den Schülern also das Craps-Programm zur Verfügung gestellt wird, sollte es kein Problem sein, auch Barbudi umzusetzen. Der Wechsel von Würfelspielen zu Kartenspielen erhöht den Schwierigkeitsgrad, da nun für jeden Spieler die Handkarten verwaltet werden müssen. Bei den Würfelspielen kam nur ein Satz Würfel zum Einsatz. Die Grundstruktur bleibt auch hier erhalten. In Anlehnung an das Geometrieprogramm kann auch ein 3D-Geometrieprogramm umgesetzt werden. Die Klassen GPoint und GLine aus dem Geometrieprogramm können fast unverändert übernommen werden. Zusätzlich wird nur die Gerade wichtig, für die ein wenig Vektormathematik erforderlich ist. Reizvoll sind hier „echte“ Zweifarben-3D-Bilder.

Für alle 3 Projekte steht ein Dokument zur Verfügung (Kopiervorlage: 03_2_Craps, 03_3_Barbudi, 03_4_BlackJack, 03_5_3DGraphik.odt), in dem die einzelnen Stufen des Klassenentwurfs nachvollzogen sind. Auf einer Seite steht jeweils die Fragestellung, auf der nächsten befindet sich eine Musterlösung und die Fragestellung für die nächste Stufe. Da die Fragestellungen immer die gleichen sind, reicht es den Schülern die Projektbeschreibung auszuhändigen. Die Musterlösungen können auf dem Lehrertisch liegen. Die Schüler sollten in Gruppen einen eigenen Entwurf erarbeiten. Nach jeder Stufe kontrolliert jede Schülergruppe ihre Lösung und diskutiert Unterschiede mit dem Lehrer. Damit die Lösung der nächsten Stufe passt, müssen die Schüler allerdings die Musterlösung übernehmen, auch wenn andere Lösungen natürlich denkbar sind. Vor allem im Hinblick auf die spätere Umsetzung in Java, sollte man aber nicht zu viele verschiedene Lösungen zulassen, da sonst der Beratungsaufwand für den Lehrer riesig wird. Mögliche Testklassen passen auch immer nur zu einer Klassendefinition. Auch fertige GUIs können nur mit der Musterlösung zusammenarbeiten.

Als Hilfestellung für die Implementierung können Sie den Schülern die JavaDoc-Dokumentationen der Klassen zur Verfügung stellen, die in den Musterlösungen der Implementationen der Programme enthalten sind.

Alle fertigen Programme finden Sie bei den Lösungen. Für die 3D-Graphik steht auch eine Profiversion bereit, die mit den Klassen der normalen Version zusammenarbeitet, aber zusätzlich das Laden von Wavefront-Bildern erlaubt, die viele Hundert Strecken enthalten. Die Bilder lassen sich in dieser Version auch mit der Maus drehen und Zoomen (Mausrad). Die dafür notwendige Mathematik (Matrizen) ist nicht für den Unterricht gedacht!

 

 

Unterrichtsgang: Herunterladen [odt][60 KB]

 

Weiter zu Überblick