課題B4 (接近過程抽出)


接近過程抽出

ここでは, 課題B4 (機能理解) では使用しなかった逆方向バージョンのある機能を用いて, 課題B4 (機能理解) と同様,

「配置された図形がArgoUMLのシステム内部でどのように管理され,選択機能の実行によってどのように取り出されて,どのように選択図形として登録されるか?」
を理解することを目指します.

Fig クラスはグラフィックエディタ上の図形を表すGEFの内部のクラスです.
また, FigClass クラスはクラス図上に配置された「クラス」を表す ArgoUML のクラスで, Fig クラスの子孫クラスにあたります.

課題B4 (機能理解) の終了直後は下図のような状態になっているはずです.
ここで, 「実行時点の登録」ビュー上で登録している「130行目 SelectionManager.addFig(Fig)」をダブルクリックしてください.
すると, 現在の実行時点が SelectionManager クラスの addFig(Fig) メソッドの130行目に移ります.

addFig(Fig) の仮引数 f に渡された FigClass クラスのインスタンス (id = 1675174935) が, この機能によって選択されるクラス図上の1つの「クラス」に当たり,
この行の実行によってその「クラス」が選択状態になります.
まずは, SelectionManager クラスのインスタンス (id = 4310438) のフィールド selections が参照している ArrayList のインスタンスに
SelectionClass クラスのインスタンス (id = 1672744985) が, この行で追加されるようになるまでの経緯を見ていきます.
ここで, 変数ビュー上の「呼び出し前」のメソッド名が List.add(Object) であることを確認してください.
それを確認したら, 変数ビュー上の「呼び出し前」を開いて, 引数を右クリックしてください.
右クリックすると, ポップアップメニューが出てくるので, 上の方の ArrayList クラスのインスタンスと
SelectionClass のインスタンスを対象とした「オブジェクトの接近過程抽出」をクリックしてください.

実際に「オブジェクトの接近過程抽出」を実行すると, 下図のような状態になります.

「オブジェクトの接近過程」ビュー上の「開始時点」をクリックしてください.

「オブジェクトの接近過程」ビュー上の「参照先側001」から「参照先側040」までを順番にクリックしてください.

「オブジェクトの接近過程」ビュー上の「参照元側001」から「参照元側011」までを順番にクリックしてください.

「オブジェクトの接近過程」ビュー上の「参照時点」をクリックしてください.

ここまでで, SelectionManager クラスのインスタンス (id = 4310438) のフィールド selections が参照している ArrayList に
SelectionClass クラスのインスタンス (id = 1672744985) が追加されるまでの過程を見てきました.
ここで, 課題B4の接近過程抽出は終了です.
「オブジェクトの接近過程」ビューを全て閉じ, そのあとデバッグ実行を終了してください.


課題B4の接近過程抽出が終了しましたら, 以下のアンケートにお答えください.

アンケート回答

次へ