クラス図を教える

クラス図を描いてJavaコードを生成するのが、なんといってもUMLの醍醐味。その感覚を味わってもらうための、今回の授業内容です。

ようやく

Javaの特訓を終えて、クラス図の勉強を開始しました。目指しているのは、オブジェクト指向とUMLをJavaを同時に覚えて、三者の関係をちゃんと理解すること。



と、いうよりも、オブジェクト指向の感覚が身についていなければ、UMLなんて理解できないヨ。動くソースコードが完成しないと、UMLなんて意味がないヨ。ということなのです。

同時に覚えていくというのは、結構良い方法だなぁ、と感じます。それぞれの理解しにくいところは、それぞれが補ってくれたりしますので。

今日は、その話。

クラス図の線

覚える前に、描いてみること。コレを私の授業のモットーにすることにしました。

実装や継承の矢印には細かいルールがないので理解しやすいのですが、関連(Association)の線を教える・覚えるのは、なかなか大変。関連端誘導可能性などという聴きなれない(ヤル気をソぐ)用語もたくさんあるし。

ですので、「関係があると思ったら、とりあえずズバッっと線を引け!」と教えました。集約(Aggregation)も同じ要領で。

そんな乱暴な説明で描いた図は、こちら。






あとはソースコードが教えてくれる

次に、上のクラス図をEclipse Omondo UMLに書き写します。このツールは、描いたクラス図をダブルクリックするだけでJavaソースを生成してくれます。

意図しているものと違うソースコードが出来上がってしまったら、その段階でやっと、なんでそうなるのかを考え始める。「関連とは」「集約とは」をマジマジと・・・ヒトって、そんなもんだと思います。

Javaをある程度使える人ならば、あいまいな理解で引いた関連集約の意味が、直ぐに理解できるはずです。

 「関連」の実像は、インスタンス変数。
 「集約」の実像は、Collection型のインスタンス変数。
 さらには、「関連端」は変数名、「誘導可能性」は参照を持つかどうか。

言葉は難しくても、ソースコードに直してみれば、とてもとても初歩的な話をしているわけです。

ノーガキたれてる暇があったら手を動かす。手を動かせば、気づくことはたくさんある。難しい言葉に怖気づくことなく、こういうプロセスを踏んで、確実に乗り切ってくれれば、いいな。→生徒たちへ。


UMLの便利さを理解できたところで(?)、次回からはユースケースに入っていく予定です。・・・でも、ちょっと悩み中。


コメント

コメントしてください

closed.