Booch法によるクラス定義の記述
1.はじめに
クラス定義を記述するのは、最終的にはC++のヘッダーファイルなどになる
わけですが、クラスの関係などをよりわかりやすくグラフィカルに表現する
方法が考えられています。そのひとつにBooch法があります。Booch法では
クラス図、シナリオ図、状態図、モジュール図、プロセス図などを使って
プログラムを記述していくことになります。ここではクラス図を中心に
説明します。
2.クラスカテゴリー
密接に関係のあるクラスの集団をもってクラスカテゴリーと呼びます。
Booch法では長方形で表されます。
Rational Roseでは、この箱をクリックすると中身を表すウィンドウが現われます。
3.クラス
Booch法ではクラスは点線で書かれた雲型になります。
内部にアブストラクトメンバー(実体のない、名前だけのメンバー)を持った
クラス(アブストラクトクラス)は三角にAを書いたマークを付けて表します。
C++でいうテンプレートクラス、パラメトライズドクラスともいわれますが、
それは雲型に点線の箱がつきます。
パラメトライズドクラスに実際の型が与えられ、インスタンシエートされた
クラスは箱だけが実線になります。
4.関係
4.1.継承関係
まず継承関係を見ていきましょう。継承は実線の矢印で表されます。
この図ではClassBは親クラスClassAを継承していることを表します。
仮想継承の場合は三角にVを付けます。
4.2.所有(has)関係
あるクラスが別のクラスのオブジェクトを持っている場合、has関係とも
いいますが、その場合は実線に黒丸を付けた線で表します。この場合
黒丸側がクライアントです。下の図ではClassBがClassCのオブジェクトを
持っていることを表します。
オブジェクトの持ち方ですが、直接値を持っている場合、
参照を持っている場合は
staticメンバーとして持っている場合、
4.3.使用(uses)関係
あるクラスが別のクラスを使用する場合、uses関係ともいいますが、
その場合は実線に白丸を付けてあらわします。この場合白丸側が
利用する側です。
アクセスの仕方によって、上に書いたものはpublicな使用ですが、
protectedやprivateなアクセスも記述できます。これらは使用関係
だけでなく、所有関係や継承関係でも使える表現です。
protectedなアクセスは縦線を一本追加します。
privateなアクセスは縦線を二本追加します。
friendの場合は三角にFを書きます。
4.4.インスタンシエーション
パラメトライズドクラスをインスタンシエートしてインスタンシエートされた
クラスを作る関係を点線矢印で表します。
5.シナリオ図
6.状態図
7.モジュール図
8.プロセス図
[booch/booch.html] Last Modified : 10-Apr-1997.
坂本 宏
sakamoto@scphys.kyoto-u.ac.jp