振る舞いをUMLで表現する−相互作用図ここから始めるオブジェクト指向(6)

 「第5回 分類と分解をUMLで表現する」はクラス図解説の2回目として、クラスの汎化関係、集約関係について説明しました。クラス図はクラス間の静的な関係を表現するモデルです。今回は動的モデルの第1回としてオブジェクト間のコラボレーションを表す相互作用図について説明します。

» 2003年03月26日 12時00分 公開
[河合昭男(有)オブジェクトデザイン研究所]

この記事は会員限定です。会員登録すると全てご覧いただけます。

 はじめに前回の復習の意味で、宿題として挙げておきました問題について考えてみましょう。

【前回の問題】

 電気スタンドには電球式と蛍光灯式があります。汎化と集約関係を用いて以下の条件を満たすクラス図を作成してください。

電球式と蛍光灯式
電球式は電球を、蛍光灯式は蛍光灯を持つ
蛍光灯式にはインバータ型とグロー型
グロー型はグローを持つ
電気スタンドはスイッチを持つ

ALT 図1 電気スタンドのクラス図

 これは、クラスの分類を汎化関係で表現し、オブジェクトの分解を集約関係で表現するという問題です。UMLのクラス図で表現すると図1のようになります。汎化関係により親クラスの属性、操作および関連を子クラスが継承すると前回説明しましたが、集約関係も関連の一種であり継承します。図ではスイッチは一番おおもとの電気スタンドの部品として集約関連で接続されています。これは電気スタンドのすべてのサブクラスがスイッチを持つことを意味します。

 オブジェクト図を描いてみるとクラス図の意味が理解できます。図2(a)はインバータ式蛍光灯スタンドの例です。クラス図の汎化関係をたどっていくと、インバータ式蛍光灯スタンドはスイッチおよび蛍光灯とリンクします。図2(b)はグロー式の例です。グロー式は、スイッチ、蛍光灯とさらにグロー球とリンクします。この問題で汎化と集約の使い方を少しは理解できたと思います。

ALT 図2 オブジェクト図の例

相互作用図

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ