2009年2月11日水曜日

多重度のススメ


UMLとはUnified Modeling Languageの略で日本語でいうと「統一モデリング言語」です。現実世界の事象をモデルとして抽出するときに論理的な概念を分かりやすくする共通語です。

今日はそのなかで、情報処理技術者試験にもよく出てくる多重度というものを紹介します。

多重度とは、線で結ばれた関係において、それぞれの側からみて”いくつ”つながっているかを示します。関係性のつながりを数で表現します。

上の図を例に説明しますと、「雇用する」という関係は、「人」は「会社」と0(雇用関係がない)か1社とつながる可能性があることを示しています。多重度の表現、ここでは「0..1」はその数字が書かれている線がつながる先の対象(今の場合「人」)を主語として、かつ、その数字の側(今の場合「会社」)を相手としてみることがミソです。

「会社」からみれば「人」のほうに「0..*」という多重度が示されており、「会社」は0人以上を雇用していることを示しています。

要は、対象が相手といくつつながる可能性があるかを相手側に書いた数字で示します。

ここでもし、図の「0..1」を「1」に書き換えると、人は誰もが会社に属していると定義することができます。「人」の部分は「社員」になりますね。
さらに図の「0..*」を「100..*」にすることで、何が言いたいか分かりますね。会社はかならず100人以上の人を雇用すると言えます。
こうありたいですね。

この多重度の表現を日常生活でも使うように心がけることで、関係性や問題の明確化につながるとは思いませんか。
さらに情報処理技術者試験の勉強にもつながります。一石二鳥ではありませんか。