Javaの特訓を終えて、クラス図の勉強を開始しました。目指しているのは、オブジェクト指向とUMLをJavaを同時に覚えて、三者の関係をちゃんと理解すること。
と、いうよりも、オブジェクト指向の感覚が身についていなければ、UMLなんて理解できないヨ。動くソースコードが完成しないと、UMLなんて意味がないヨ。ということなのです。
同時に覚えていくというのは、結構良い方法だなぁ、と感じます。それぞれの理解しにくいところは、それぞれが補ってくれたりしますので。
今日は、その話。
覚える前に、描いてみること。コレを私の授業のモットーにすることにしました。
実装や継承の矢印には細かいルールがないので理解しやすいのですが、関連(Association)の線を教える・覚えるのは、なかなか大変。関連端や誘導可能性などという聴きなれない(ヤル気をソぐ)用語もたくさんあるし。
ですので、「関係があると思ったら、とりあえずズバッっと線を引け!」と教えました。集約(Aggregation)も同じ要領で。
そんな乱暴な説明で描いた図は、こちら。

次に、上のクラス図をEclipse Omondo UMLに書き写します。このツールは、描いたクラス図をダブルクリックするだけでJavaソースを生成してくれます。
意図しているものと違うソースコードが出来上がってしまったら、その段階でやっと、なんでそうなるのかを考え始める。「関連とは」「集約とは」をマジマジと・・・ヒトって、そんなもんだと思います。
Javaをある程度使える人ならば、あいまいな理解で引いた関連や集約の意味が、直ぐに理解できるはずです。
言葉は難しくても、ソースコードに直してみれば、とてもとても初歩的な話をしているわけです。
ノーガキたれてる暇があったら手を動かす。手を動かせば、気づくことはたくさんある。難しい言葉に怖気づくことなく、こういうプロセスを踏んで、確実に乗り切ってくれれば、いいな。→生徒たちへ。
UMLの便利さを理解できたところで(?)、次回からはユースケースに入っていく予定です。・・・でも、ちょっと悩み中。