クラス図の落とし穴UML BASIC LECTURE(2/3 ページ)

» 2004年07月16日 12時00分 公開
[羽生田栄一(豆蔵 取締役会長), 岡村敦彦(豆蔵),@IT]

クラスと関連:オブジェクト指向 vs ひも理論

 次の図(図5)を見て下さい。一見なんでもない図のリストですが、ここにUMLの秘密の一端が隠されています。今までの物理学では、世界は粒子(素粒子)から成り立っているという立場でしたが、一般相対論と量子力学を融合させることがうまくいかず、現在それに替わる「ひも理論」に注目が集まっています、ひも理論では、世界の根源は「ひも」から構成され、「粒子」はそこから間接的に導き出されるという立場です。

 したがって、いまの図で言うと、UMLの文法においてクラスを表わす「箱」は単独で存在できるが、関連を表わす「ひも」1本だけ、片側しかオブジェクトにつながっていない関連の存在は許されない、ということです。必ず、関連にはそれに参加するオブジェクトがその両端に必要になります。

 ちなみに、「関連」はクラスレベルのモデル要素、それに対応するインスタンスレベルは「リンク」と呼ばれるので覚えておいてください。

ALT 図5 箱、棒、箱と棒、箱と棒と箱

オブジェクト指向は構造主義

 クラスの意味は、それがどんな関連によって他のクラスと繋がっているかということに依存して決まります。ですから、クラス図においてそのくらい関連は重要なわけです。クラスの意味は周囲のほかのクラスとの位置関係(位置価)で相対的に決まる、ということがフェルディナン・ド・ソシュール氏が言語学で応用した構造主義的な考え方です。

 構造主義的な考え方を簡単にご紹介しましょう。

 例えば、ジャンケンの「グー・チョッキ・パー」も「石・鋏・紙」「庄屋・猟師・キツネ」も各対象間の意味関係は同じなので、概念としては同じに扱えます。つまり、各クラス図の「構造」は同じだということです(図6)。

ALT 図6 いろいろなジャンケンとオブジェクト図/クラス図

 さらに、細かなビジネスプロセスを無視すれば、文房具小売業も書籍販売業も商品と貨幣の交換という観点では同じ、さらに介護サービスや夜の接客サービス業などもサービスを抽象クラス「商品」の下位概念(サブクラス)と考えれば、商品と貨幣の交換という構造は一緒ということになります。このように異なる具体的な問題状況の背後にある本質的な概念関係を抽出し分析する作業が「概念モデリング」です(図7)。

ALT 図7 概念クラス「商品」とクラス図

 ここでは詳しく述べませんが、デザインパターンやフレームワークという考え方は、今説明した「構造」を明示的に抽出して再利用可能にする仕組みだといえるでしょう。なおここで言っている構造主義は構造化設計や構造化プログラミングとは直接のつながりはありませんので誤解なきようお願いします。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ