# 課題A1 (接近過程抽出)

## 接近過程抽出

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

課題A1終了直後は下図のような状態になっているはずです.
右上にあるパースペクティブを右クリックし, いったん「トレースデバッガ(順方向)」のパースペクティブを閉じてください.

ここで, 「トレースデバッガ(逆方向)」のパースペクティブを開いてください.

その状態のままで, ブレークポイントビュー上にある「ブレークポイントを取り入れる」をクリックしてください.
ブレークポイントを取り入れたら, デバッグ実行してください.

現在は, ActionRemoveFromDiagram クラスの actionPerformed(ActionEvent) メソッドの83行目にいます.
まずは, ActionRemoveFromDiagram クラスのインスタンスに FigClass クラスのインスタンス (id = 1675174935) が接近する過程を抽出して見ていきます.
ここで, ステップオーバーを6回押して, 89行目にまで進んでください.
そのあと, ステップネクストを1回押してください.

現在は, ActionRemoveFromDiagram クラスの actionPerformed(ActionEvent) メソッドの89行目にいます.
ここで, 変数ビュー上の「呼び出し前」を開いて, レシーバを右クリックしてください.
右クリックすると, ポップアップメニューが出てくるので, 「オブジェクトの接近過程抽出」をクリックしてください.

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

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

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

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

ここまでで, ActionRemoveFromDiagram クラスのインスタンスに FigClass クラスのインスタンス (id = 1675174935) が接近する過程を見てきました.
抽出した結果を見ると, SelectionManager クラスのインスタンス (id = 4310438) のローカル変数 figs が参照している Vector に追加されていた FigClass クラスのインスタンスを
取得してきていることがわかりましたが, その FigClass クラスのインスタンスがどうやって追加されたのかについては, この抽出範囲だけではわかりません.
そこで, ここからは, そのローカル変数 figs に FigClass クラスのインスタンス (id = 1675174935) が追加されるまでの過程を見ていきます.
まずは, 「オブジェクトの接近過程抽出」ビュー上の「参照先側012」をクリックしてください.

先ほどの操作によって, 現在は SelectionManager クラスの getFigs() メソッドの360行目にいます.
ここで, まずはステップオーバーを2回押して363行目にまで進んでください.
363行目にまで進んだら, 次はステップネクストを4回押してください.

ここで, 変数ビュー上の「呼び出し前」を開いて, 引数を右クリックしてください.
右クリックすると, ポップアップメニューが出てくるので, 上の方の「オブジェクトの接近過程抽出」をクリックしてください.

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

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

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

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

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

ここまでで, SelectionManager クラスのインスタンス (id = 4310438) のローカル変数 figs が参照している Vector に
FigClass クラスのインスタンス (id = 1675174935) が追加されるまでの過程を見てきました.
ここで, 課題A1の接近過程抽出は終了です.
「オブジェクトの接近過程」ビューを全て閉じ, そのあとデバッグ実行を終了してください.
デバッグ実行を終了したら, この「トレースデバッガ(逆方向)」のパースペクティブを閉じてください.

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

アンケート回答
次へ