Zur Haupt­na­vi­ga­ti­on sprin­gen [Alt]+[0] Zum Sei­ten­in­halt sprin­gen [Alt]+[1]

Klas­sen­ent­wurf

Hin­ter­grund­in­for­ma­tio­nen:

03_1_Klas­sen­ent­wurf.odt

Im ers­ten Teil der Un­ter­richts­ein­heit haben die Schü­ler die Um­set­zung eines fer­ti­gen Klas­sen­dia­gramms in Java-Quell­text ge­lernt. Sie haben dabei die ver­schie­de­nen Be­zie­hun­gen zwi­schen den Klas­sen und den Grund für ihre Ver­wen­dung ken­nen ge­lernt. Der Ent­wurf von ein­zel­nen Klas­sen wurde be­spro­chen.

Die Qua­li­tät des Klas­sen­ent­wurfs ent­schei­det dar­über, wie ein­fach sich spä­ter die Im­ple­men­ta­ti­on um­set­zen lässt. Daher ist der Klas­sen­ent­wurf (Ob­jekt­ori­en­tier­te Mo­del­lie­rung) ein ent­schei­den­der Punkt in der Ob­jekt­ori­en­tie­rung. Es muss ent­schie­den wer­den, wel­che Klas­sen zum Ein­satz kom­men und wel­che Ei­gen­schaf­ten, der in der Rea­li­tät vor­kom­men­den Ob­jek­te, für das zu rea­li­sie­ren­de Soft­ware­pro­jekt wich­tig sind. Es muss fest­ge­legt wer­den, über wel­che Me­tho­den die Ob­jek­te ver­fü­gen sol­len. Am Ende soll­te ein Klas­sen­ent­wurf mit ver­bind­li­chen Me­tho­den­de­fi­ni­tio­nen ste­hen, damit ein Pro­jekt ar­beits­tei­lig um­ge­setzt wer­den kann. Dies ist ein hoher An­spruch an pro­gram­mie­ru­n­er­fah­re­ne Schü­ler.

Daher ist es sinn­voll, die Soft­ware­pro­jek­te so zu wäh­len, dass sich der Kon­text der Übungs­auf­ga­ben nicht zu sehr von dem Ein­füh­rungs­bei­spiel un­ter­schei­det. Eine Mög­lich­keit ist die Rea­li­sie­rung von ein­fa­chen Wür­fel­spie­len. Das Klas­sen­dia­gramm bleibt dabei ähn­lich.

Im vor­lie­gen­den Un­ter­richts­vor­schlag wird der Klas­sen­ent­wurf an­hand von Craps (Prä­sen­ta­ti­on: 03_­Ent­wurf­von­Klas­sen.odp und fer­ti­ges Pro­gramm im Tausch­ver­zeich­nis 03_­Craps) ein­ge­führt. Be­son­de­rer Stel­len­wert kommt dabei dem Ob­jekt­spiel zu, weil die­ses ge­eig­net ist, den Klas­sen­ent­wurf ohne Im­ple­men­ta­ti­on des Pro­gramms auf Voll­stän­dig­keit zu tes­ten. Selbst er­fah­re­ne Pro­gram­mie­rer wer­den dabei fest­stel­len, dass auch sie gerne mal ein­zel­ne Me­tho­den beim ers­ten Ent­wurf ver­ges­sen. Die Schü­ler sol­len die­ses Pro­jekt dann nicht selbst um­set­zen, son­dern nur an­hand des fer­ti­gen Pro­gramms sehen, dass sich der im Un­ter­richts­ge­spräch er­ar­bei­te­te Ent­wurf ver­mut­lich nur wenig vom fer­ti­gen Pro­gramm un­ter­schei­det. Es ist dabei kein Pro­blem, wenn im Un­ter­richts­ge­spräch ein an­de­rer trag­fä­hi­ger Ent­wurf am Ende steht. Es gibt selbst bei so ein­fa­chen Bei­spie­len viele kor­rek­te Lö­sun­gen.

Nun soll­te der Leh­rer ein wei­te­res Pro­jekt aus­wäh­len, das die Schü­ler selbst­stän­dig be­ar­bei­ten. Je nach Stär­ke des Kur­ses kön­nen un­ter­schied­li­che Pro­jek­te ge­wählt wer­den. Bar­bu­di un­ter­schei­det sich von Craps nur mi­ni­mal. Wenn den Schü­lern also das Craps-Pro­gramm zur Ver­fü­gung ge­stellt wird, soll­te es kein Pro­blem sein, auch Bar­bu­di um­zu­set­zen. Der Wech­sel von Wür­fel­spie­len zu Kar­ten­spie­len er­höht den Schwie­rig­keits­grad, da nun für jeden Spie­ler die Hand­kar­ten ver­wal­tet wer­den müs­sen. Bei den Wür­fel­spie­len kam nur ein Satz Wür­fel zum Ein­satz. Die Grund­struk­tur bleibt auch hier er­hal­ten. In An­leh­nung an das Geo­me­trie­pro­gramm kann auch ein 3D-Geo­me­trie­pro­gramm um­ge­setzt wer­den. Die Klas­sen GPoint und GLine aus dem Geo­me­trie­pro­gramm kön­nen fast un­ver­än­dert über­nom­men wer­den. Zu­sätz­lich wird nur die Ge­ra­de wich­tig, für die ein wenig Vek­tor­ma­the­ma­tik er­for­der­lich ist. Reiz­voll sind hier „echte“ Zwei­far­ben-3D-Bil­der.

Für alle 3 Pro­jek­te steht ein Do­ku­ment zur Ver­fü­gung (Ko­pier­vor­la­ge: 03_2_­Craps, 03_3_Bar­bu­di, 03_4_Black­Jack, 03_5_3D­Gra­phik.odt), in dem die ein­zel­nen Stu­fen des Klas­sen­ent­wurfs nach­voll­zo­gen sind. Auf einer Seite steht je­weils die Fra­ge­stel­lung, auf der nächs­ten be­fin­det sich eine Mus­ter­lö­sung und die Fra­ge­stel­lung für die nächs­te Stufe. Da die Fra­ge­stel­lun­gen immer die glei­chen sind, reicht es den Schü­lern die Pro­jekt­be­schrei­bung aus­zu­hän­di­gen. Die Mus­ter­lö­sun­gen kön­nen auf dem Leh­rer­tisch lie­gen. Die Schü­ler soll­ten in Grup­pen einen ei­ge­nen Ent­wurf er­ar­bei­ten. Nach jeder Stufe kon­trol­liert jede Schü­ler­grup­pe ihre Lö­sung und dis­ku­tiert Un­ter­schie­de mit dem Leh­rer. Damit die Lö­sung der nächs­ten Stufe passt, müs­sen die Schü­ler al­ler­dings die Mus­ter­lö­sung über­neh­men, auch wenn an­de­re Lö­sun­gen na­tür­lich denk­bar sind. Vor allem im Hin­blick auf die spä­te­re Um­set­zung in Java, soll­te man aber nicht zu viele ver­schie­de­ne Lö­sun­gen zu­las­sen, da sonst der Be­ra­tungs­auf­wand für den Leh­rer rie­sig wird. Mög­li­che Test­klas­sen pas­sen auch immer nur zu einer Klas­sen­de­fi­ni­ti­on. Auch fer­ti­ge GUIs kön­nen nur mit der Mus­ter­lö­sung zu­sam­men­ar­bei­ten.

Als Hil­fe­stel­lung für die Im­ple­men­tie­rung kön­nen Sie den Schü­lern die Ja­va­Doc-Do­ku­men­ta­tio­nen der Klas­sen zur Ver­fü­gung stel­len, die in den Mus­ter­lö­sun­gen der Im­ple­men­ta­tio­nen der Pro­gram­me ent­hal­ten sind.

Alle fer­ti­gen Pro­gram­me fin­den Sie bei den Lö­sun­gen. Für die 3D-Gra­phik steht auch eine Pro­fi­ver­si­on be­reit, die mit den Klas­sen der nor­ma­len Ver­si­on zu­sam­men­ar­bei­tet, aber zu­sätz­lich das Laden von Wa­vefront-Bil­dern er­laubt, die viele Hun­dert Stre­cken ent­hal­ten. Die Bil­der las­sen sich in die­ser Ver­si­on auch mit der Maus dre­hen und Zoo­men (Maus­rad). Die dafür not­wen­di­ge Ma­the­ma­tik (Ma­tri­zen) ist nicht für den Un­ter­richt ge­dacht!

 

 

Un­ter­richts­gang: Her­un­ter­la­den [odt][60 KB]

 

Wei­ter zu Über­blick