クラス図の書き方

クラス図とは実は当たり前で簡単なものなのです。

クラス図の書き方

さて、精神論はこれくらいにして、実際にクラス図を書く事を考えていきましょ う。ここからは図の書き方は原則としてUML準拠とします。

クラス図は「クラス」と「関連」という2つの要素から成り立っています。 クラスは箱で、関連は箱をつなぐ線で表されます。例えばこんな感じにです。

裁判所の仕組み
裁判所の仕組み

これを見て「なんだこれは?何の変哲もない普通の図じゃないか」 と思う人もいるかもしれません。そうです。クラス図は決して特別なものでは ありません。クラス図というのは人が何かを説明するのに普通に使う図であり、 その書き方をきちんと定義したものにすぎないのです。

ともかく、クラスの書き方と関連の書き方を押さえればクラス図はマスターで きます。ではこれらを順に見ていきましょう。

クラスの書き方

まずは一番簡単な書き方から始めましょう。「自動車」というクラスを書くに は次のようにします。

クラスの書き方
クラスの書き方

簡単もなにも、四角を書いてその中に名前を書くだけです。わざわざ言うまで もないでしょう。

関連の書き方

関連はクラスとクラスの間に線を引いて表現します。そして線のそばにその関 連の名前を書きます。

関連の書き方(1)
関連の書き方(1)

この図は、「個人と自動車は所有関係にある」と読みます。

これでは「個人が自動車を所有している」のか「自動車が個人を所有している」 のかわからないという場合は、次の図のように黒い三角印をつけます。

関連の書き方(2)
関連の書き方(2)

線に矢印は基本的に書きません。なぜなら、UMLでは矢印には特別の意味があ るからです。それは後でお話しします。

インスタンス図

クラス図では四角の箱はクラスを表します。そしてクラス間の関係を記述しま す。しかし、クラスではなくインスタンスの関係を書きたい時もよくあります。 下の図のように、インスタンスの関係を書いた図をインスタンス図といいます。

五行相関図
五行相関図

インスタンス図も基本はクラス図と同じです。ただ次の点が違います。

  • インスタンスの場合は、名前の下にアンダーラインを引くことでクラスと区別 します。

  • インスタンス間の関係は、どっちがどっちだかわかりにくくなるので、インス タンスの箱の近くに、自分から見て相手が何にあたるのかを書きます。例えば 上の図では、「木から見て火は相生である」と読みます。

コメント

コメントの書き方も記しておきましょう。文章では説明しにくいので図 を見て下さい。

コメントの例
コメントの例

ノートの切れ端みたいな独特の四角を書き、その中にコメントを自由に書きま す。そして、その四角形とコメントを付けたい先とを点線で結びます。

とにかく、何か注釈をつけたければこの形式で書けばいいのです。

関連オブジェクト

最後に、普通の図ではあまり出てこない「関連オブジェクト」という特殊なオ ブジェクトの話をしましょう。

関連オブジェクトとは、オブジェクト間の関連を示すオブジェクトです。下の 例のように、関連を示す線とオブジェクトを点線で結びます。

関連オブジェクトの例
関連オブジェクトの例

これは、選挙で「住民が候補者に投票する」という関連を表しています。そし て、「どの住民がどの候補者に投票したかを示す何か」が関連オブジェクトな のです。この場合には「投票用紙」というダイレクトな「もの」がありました が、具体的なものがなくてもかまいません。オブジェクト同士がどういう関係 にあるかを示す(多くは抽象的な)ものが関連オブジェクトなのです。

関連オブジェクトは関係一つにつき一つ作成されます。つまり「AさんがPさん に投票した」という関連を表す「投票用紙1」というインスタンスや、「Bさん がQさんに投票した」という関連を表す「投票用紙2」というインスタンスがあ ります。もし一度に複数人に投票できるシステムだとしたらどうでしょう?こ の場合は、「投票用紙」というのは関連オブジェクトではありません。名前を 書く枠それぞれが「投票」という関連オブジェクトで、それをいくつか集めた のが「投票用紙」になります。

概念的には、すべての関連は関連オブジェクトです。人が自動車を所有してい るという関連を表すのは「所有」オブジェクトですし、五行の相克関係を表し ているのは「相克」オブジェクトです。ただどこにも使わないので記述を省略 しているだけなのです。「関連オブジェクトという特別なオブジェクトがある」 というよりは、「すべての関連はオブジェクトであり、そのうち特に記述する 必要があるものだけを関連オブジェクトとして書く」という方が正しい見方で す。

まとめ

クラス図の基本は、実はこれで終わりです。簡単でしょう?別にわざわざ勉強 するようなものでもないし、書き方に悩むようなものでもないのです。悩むと すれば書き方ではなく、何を書くかというもっと根本的な問題のはずです。