UML2メタモデルを読む − 知識とは何か?(2):オブジェクト指向の世界(24)(2/2 ページ)
知識というものには、「幅」と「深さ」がある。そして、UMLの仕様にもそれは如実に表れている。こうした点について、今回も前回に引き続きソクラテス式対話の形を借りて論じていく。
「関連」と「関連クラス」
司会 前回も少し触れましたが、「関連」も“Class”と同じく分類子の一種です。このあたりを今回見てみましょう。UML仕様書には「関連は、型付けられたインスタンス間に発生し得る意味的関係を指定する。2つ以上の終端を持ち、それぞれ型への接続を表すプロパティを持つ」(Infrastructure version 2.1.1 "11.3.1 Association")とあります。「型付けられたインスタンス」とは、例えば、M1レベルのクラス図で使用されるクラスです。関連の両端が、それぞれクラスとつながるわけです。
開発者 クラスとクラスが関連していると考えるより、関連がクラスとクラスをつないでいると考えるわけですね。
関連−Association
司会 前回お見せした「“Class”周辺のメタモデル」の図にメタクラス“Association”(「関連」)を追加すると、次のようになります(図1)。
司会 ご覧のように、メタクラス“Association”は“Classifier”の一種ですが、同時に“Relationship”の一種でもあります。このように、複数の親から継承することを「多重継承」と呼びます。この再利用の仕組みを用いてモデル要素をどんどん定義していくのも、UML仕様書の特徴です。図1の“Association”と関連している“Property”は関連端として定義されます。これは例えば、M1レベルのクラス図でいえば関連の両端がそれぞれクラスにつながっているイメージです。多重度が2以上となっているのは、普通の関連では2つのクラス間の意味的な関係を表す2項関連なので多重度は2になりますが、3つ以上のクラスの間の関連を表すn項関連もあるためです。
関連クラス−AssociationClass
司会 「関連クラス」というモデル要素も多重継承で定義されています(Superstructure version 2.1.1 "7.3.4 AssociationClass")。以下に示す図2のように、メタクラス“Association”(「関連」)と“Class”(「クラス」)を多重継承しています。つまり、関連クラスは関連の一種であるので、複数のクラスを意味的に関係付ける機能があります。と同時に、クラスの一種でもあるので、通常のクラスのように属性と操作を持ちます。このように、多重継承をうまく使えば、複数の親の特性を再利用した新たな要素を作れる可能性が開けてきます。
継承で幅を、マージで深さを拡大していく
司会 今回は、UML2のメタモデルによる仕様の語彙の幅と深さを段階的に拡大していく仕組みについて見てきました。特に、「要素定義の方法のベースとして、継承および多重継承の仕組みを用いて親の特性を引き継ぎ、名前の異なる新たな要素を追加して語彙を広げていく」「パッケージのマージを用いて、同じ名前の要素の意味付けを拡張し、深めていく」という2点に注目してみました。
ソクラテス 知識とは何かを考えるのに、また1つのヒントを得た。
某 継承により語彙を増やしていき、マージにより意味を深めていく。
ソクラテス 幅も深さも、一歩一歩段階的に拡大していく。
司会 どうもありがとうございました。次回も引き続き、「知識とは何か?」について考えていきたいと思います。よろしくお願いします。
筆者プロフィール
河合 昭男(かわい あきお)
大阪大学理学部数学科卒業、日本ユニシス株式会社にてメインフレームのOS保守、性能評価の後、PCのGUI系基本ソフト開発、クライアント/サーバシステム開発を通してオブジェクト指向分析・設計に携わる。
オブジェクト指向の本質を追究すべく1998年に独立後、有限会社オブジェクトデザイン研究所設立。 OO/UML関連の教育コース講師・教材開発、Rational University認定講師、東京国際大学非常勤講師。
ホームページ:「オブジェクト指向と哲学」
- 情報を媒体に転写する? 形相と質料
- SFC学習パターンを新人研修に適用する- 暗黙知と形式知
- フラクタル - 自己相似形とべき乗則
- パターン言語事例 − 慶應SFCの『学習パターン』
- クラウドの潮流を考える――らせん的進化・その2
- 世界はらせん的に進化する
- オブジェクト指向を考える──普遍の知識
- UML2メタモデルを読む − 知識とは何か?(2)
- UML2メタモデルを読む− 知識とは何か?
- ソフトウェアは知識の結晶
- オブジェクト指向のソクラテス式対話編
- RUP7で開発の「苦」から解放される
- RUPをパターン言語として考える
- ネットコミュニティのQWAN(無名の質)
- パレートの法則 vs. ロングテール現象
- モノ・コト分析をパターン言語で表現
- モノ・コト分析の段階的モデリング
- モノとコトによるモデリング
- 分かりやすいモノ・コト方式のモデリング
- アリストテレス編(その2)“what & why”4原因説をビジネスモデルに応用
- アリストテレス編−“what & why”4つの原因説
- プラトン編−イデア論とクラス/インスタンス
- 分析手法のキホン:「分解と分類」
- 分析から設計へのモデル変換などについて
- パターンとパターン言語入門
- 名前のない品質とパターン言語
- 全体最適とアーキテクチャ
- 「ピカソ、113億円で落札」をUMLで表現する
- UMLで新聞記事を読む
- 第2回 自然言語をUMLで表現してみる
- 流れ去るものと不変なもの
Copyright © ITmedia, Inc. All Rights Reserved.