diff --git a/courseA/ArgoUML_Forward/problem1/ArgoUML1_Forward.html b/courseA/ArgoUML_Forward/problem1/ArgoUML1_Forward.html index 623a7c7..0f9bb78 100644 --- a/courseA/ArgoUML_Forward/problem1/ArgoUML1_Forward.html +++ b/courseA/ArgoUML_Forward/problem1/ArgoUML1_Forward.html @@ -20,37 +20,37 @@
現在は, 呼び出し元である FigNode クラスの removeFromDiagram() メソッドを見ています.
ここで, 変数ビューを見ると, このメソッドも同一の FigClass クラスのインスタンス (id = 1675174935) に対して呼び出されていることがわかります.
これを確認したら, 呼び出しスタック上でさらに1つ呼び出し元をクリックしてください.
-
現在は, 呼び出し元である FigNodeModelElement クラスの removeFromDiagramImpl() メソッドを見ています.
ここで, 変数ビューを見ると, このメソッドも先ほどと同様に FigClass クラスのインスタンス (id = 1675174935) によって呼び出されていることがわかります.
これを確認したら, 呼び出しスタック上でさらに1つ呼び出し元をクリックしてください.
-
現在は, 呼び出し元である FigNodeModelElement クラスの removeFromDiagram() メソッドを見ています.
@@ -90,7 +90,7 @@
ここでは, ローカル変数 delegate の値がどこから来たのかを見ていきます.
FigNodeModelElement クラスの removeFromDiagram() メソッドの1965行目にブレークポイントを入れ,
ブレークポイントビュー上の「ブレークポイントを取り入れる」ボタンを押してください.
-
ここで, いったんデバッグ実行を終了してから, 再びデバッグ実行してください.
@@ -103,29 +103,29 @@
先ほどの確認が終わったら, いったんデバッグ実行を終了して, 再びデバッグ実行してください.
FigClassModelElement クラスの removeFromDiagram() メソッドの1965行目に止まります.
ここでは, ステップインを2回押して getRemoveDelegate() メソッドの中に入ってください.
-
FigNodeModelElement クラスの getRemoveDelegate() メソッドに入りました.
ここで, ソースコードを見ると, このメソッドでは return this で自分自身が戻り値として返されていることがわかります.
これを確認したら, 呼び出しスタック上で1つ呼び出し元をクリックしてください.
-
現在は, 呼び出し元である FigNodeModelElement クラスの removeFromDiagram() メソッドを見ています.
ここで, 呼び出しスタック上でさらに1つ呼び出し元をクリックしてください.
-
現在は, 呼び出し元である ActionRemoveFromDiagram() クラスの actionPerformed(ActionEvent) メソッドの89行目を見ています.
ここで, 変数ビュー上で 「呼び出し前」を開いて, レシーバのIDを確認してください.
-
ソースコードを見ると, ローカル変数 f の値は, 86行目の拡張for文で ローカル変数 figs から取得した要素を代入していることが確認できます.
ここからは, ローカル変数 figs の値がどこから来たのかを見ていきます.
すぐ上にある85行目にブレークポイントを入れてから, ブレークポイントビュー上の「ブレークポイントを取り入れる」ボタンを押してください.
-
いったんデバッグ実行を終了してから, 再びデバッグ実行してください.
@@ -140,57 +140,57 @@
ソースコードを見ると, ここでは ローカル変数 ce で参照されているインスタンスに対して getSelectionManager() メソッドが呼び出され,
その戻り値に対して getFigs() メソッドが呼び出され, getFigs() メソッドの戻り値として返されたリストが, ローカル変数 figs に代入されていることが確認できます.
ここで, まずはステップインを1回押して Editor クラスの getSelectionManager() メソッドの中に入ってください.
-
Editor クラスの getSelectionManager() メソッドに入りました.
ここで, 変数ビュー上の this を開くと, Editor クラスのインスタンス (id = 371019845) が
フィールド _selectionManager として SelectionManager クラスのインスタンス (id = 4310438) を保持していることがわかります.
これを確認したら, ステップリターンを1回押して呼び出し元に戻ってください.
-
呼び出し元である ActionRemoveFromDiagram クラスの actionPerformed(ActionEvent) メソッドに戻ってきました.
ここでは, ステップイン1回押して, getSelectionManager クラスの getFigs() メソッドの中に入ってください.
-
SelectionManager クラスの getFigs() メソッドに入りました.
ソースコードを見ると, 360行目ではローカル変数 figs を生成し, それが366行目では return figs で戻り値として返されていることが確認できます.
ここで, ステップオーバーを2回押して363行目に進んでください.
-
現在は SelectionManager クラスの getFigs() メソッドの363行目にいます.
ソースコードを見ると, フィールド selections から get() メソッドで取り出した要素に対して,
さらに getContent() メソッドを呼び出し, その戻り値をローカル変数 figs に追加していることが確認できます.
-
ここで, まずはステップインを3回押してください.
すると, selections に対する get() メソッドの実行が終了し, その戻り値に対して getContent() メソッドを呼び出す直前の時点にまで現在の実行時点が進みます.
ここで, ステップインを1回押して, SelectionClass クラスの getContent() メソッドの中に入ってください.
-
SelectionClass クラスの getContent() メソッドの中に入りました.
ここで, 変数ビュー上の this を開くと SelectionClass クラスのインスタンス (id = 1672744985) が
フィールド content として FigClass クラスのインスタンス (id = 1675174935) を保持していることがわかります.
これを確認したら, ステップリターンを1回押して呼び出し元に戻ってください.
-
SelectionManager クラスの getFigs() メソッドに戻ってきました.
ここで, 変数ビュー上の「呼び出し前」を開いて引数のIDを確認してください.
すると, 先ほど取得してきた FigClass クラスのインスタンス (id = 1675174935) をローカル変数 figs に追加することがわかります.
-
ここで, ステップオーバーを1回押して, ローカル変数 figs にそれ以上何も追加されずに
そのまま366行目の return figs まで進むことを確認してください.
これを確認したら, ステップオーバーを1回押して呼び出し元に戻ってください.
-
呼び出し元である ActionRemoveFromDiagram クラスの actionPerformed(ActionEvent) メソッドに戻ってきました.
@@ -198,8 +198,8 @@
そのあと, 変数ビュー上の「呼び出し後」を開いて戻り値のIDを確認してください.
すると, 先ほどの FigClass クラスのインスタンス (id = 1675174935) を取得していることがわかります.
これを確認したら, ステップオーバーを2回押して89行目に進んでください.
-
現在は ActionRemoveFromDiagram クラスの actionPerformed(ActionEvent) メソッドの89行目にいます.
@@ -207,13 +207,13 @@
この「呼び出し前」を開いてレシーバのIDを確認してください.
すると, ここでは, 先ほどの FigClass クラスのインスタンス (id = 1675174935) に対して removeFromDiagram() メソッドを呼び出していることがわかります.
これを確認したら, ステップインをもう1回押して FigClass クラスの removeFromDiagram() メソッドの中に入ってください.
-
FigClass クラスの removeFromDiagram() メソッドに入りました.
ここでは, 変数ビューを見て this の ID を確認してください.
これを確認したら, 呼び出しスタック上で1つ呼び出し元をクリックしてください.
-
今までの結果から, FigClass クラスのインスタンス (id = 1675174935) に関連するオブジェクトについて, 以下のことがわかりました.
@@ -226,7 +226,7 @@
Editor クラスのインスタンスは, 85行目でローカル変数 ce の値として参照されていることがわかっています.
したがって, ここでは, ローカル変数 ce の値がどこから来たのかを探していきます.
すぐ上の83行目にブレークポイントを入れてから, ブレークポイントビュー上の「ブレークポイントを取り入れる」ボタンを押してください.
-
いったんデバッグ実行を終了してから, 再びデバッグ実行してください.
@@ -239,18 +239,18 @@
この83行目では, Globals クラスの static メソッドである curEditor() メソッドが呼び出され,
その戻り値がローカル変数 ce に代入されていることが確認できます.
ここで, ステップインを2回押してこのメソッドの中に入ってください.
-
Globals クラスの static メソッドである curEditor() メソッドに入りました.
ここで, ソースコードを見ると, Globals クラスが static フィールド _curEditor として Editor クラスのインスタンスを保持していることがわかります.
これを確認したら, 呼び出しスタック上で1つ呼び出し元をクリックしてください.
-
現在は 呼び出し元である ActionRemoveFromDiagram クラスの actionPerformed() メソッドを見ています.
ここで, 課題A1は終了です. 時間計測を終了してください.
-