<!DOCTYPE HTML> <html lang = "ja"> <head> <title>課題B4 (接近過程抽出)</title> <meta charset = "UTF-8"> <link rel = "stylesheet" type = "text/css" href = "../../../prettify.css"> </head> <body> <h1>課題B4 (接近過程抽出)</h1> <hr> <h2>接近過程抽出</h2> <p> ここでは, 課題B4 (機能理解) では使用しなかった逆方向バージョンのある機能を用いて, 課題B4 (機能理解) と同様,<br> <blockquote> 「配置された図形がArgoUMLのシステム内部でどのように管理され,選択機能の実行によってどのように取り出されて,どのように選択図形として登録されるか?」 </blockquote> を理解することを目指します. </p> <p> Fig クラスはグラフィックエディタ上の図形を表すGEFの内部のクラスです.<br> また, FigClass クラスはクラス図上に配置された「クラス」を表す ArgoUML のクラスで, Fig クラスの子孫クラスにあたります.<br> </p> <p> <p class = "explanation"> 課題B4 (機能理解) の終了直後は下図のような状態になっているはずです.<br> ここで, 「実行時点の登録」ビュー上で登録している「130行目 SelectionManager.addFig(Fig)」をダブルクリックしてください.<br> すると, 現在の実行時点が SelectionManager クラスの addFig(Fig) メソッドの130行目に移ります.<br> <div class = "image"><img src = "./images/images_problem2_delta_pre/ArgoUML_2_delta_pre_01.png" class = "threeQuartersSize"></div> <div class = "image"><img src = "./images/images_problem2_delta_pre/ArgoUML_2_delta_pre_03.png" class = "threeQuartersSize"></div> </p> <p class = "explanation"> addFig(Fig) の仮引数 f に渡された FigClass クラスのインスタンス (id = 1675174935) が, この機能によって選択されるクラス図上の1つの「クラス」に当たり,<br> この行の実行によってその「クラス」が選択状態になります.<br> まずは, SelectionManager クラスのインスタンス (id = 4310438) のフィールド selections が参照している ArrayList のインスタンスに<br> SelectionClass クラスのインスタンス (id = 1672744985) が, この行で追加されるようになるまでの経緯を見ていきます.<br> ここで, 変数ビュー上の「呼び出し前」のメソッド名が List.add(Object) であることを確認してください.<br> それを確認したら, 変数ビュー上の「呼び出し前」を開いて, 引数を右クリックしてください.<br> 右クリックすると, ポップアップメニューが出てくるので, 上の方の ArrayList クラスのインスタンスと<br> SelectionClass のインスタンスを対象とした「オブジェクトの接近過程抽出」をクリックしてください.<br> <div class = "image"><img src = "./images/images_problem2_delta_pre/ArgoUML_2_delta_pre_04.png" class = "threeQuartersSize"></div> </p> <p class = "explanation"> 実際に「オブジェクトの接近過程抽出」を実行すると, 下図のような状態になります.<br> <div class = "image"><img src = "./images/images_problem2_delta/ArgoUML_2_delta_01.png" class = "threeQuartersSize"></div> </p> <p class = "explanation"> 「オブジェクトの接近過程」ビュー上の「開始時点」をクリックしてください.<br> <div class = "image"><img src = "./images/images_problem2_delta/ArgoUML_2_delta_02.png" class = "threeQuartersSize"></div> </p> <p class = "explanation"> 「オブジェクトの接近過程」ビュー上の「参照先側001」から「参照先側040」までを順番にクリックしてください.<br> <div class = "image"><img src = "./images/images_problem2_delta/ArgoUML_2_delta_04.png" class = "threeQuartersSize"></div> <div class = "image"><img src = "./images/images_problem2_delta/ArgoUML_2_delta_05.png" class = "threeQuartersSize"></div> </p> <p class = "explanation"> 「オブジェクトの接近過程」ビュー上の「参照元側001」から「参照元側011」までを順番にクリックしてください.<br> <div class = "image"><img src = "./images/images_problem2_delta/ArgoUML_2_delta_07.png" class = "threeQuartersSize"></div> <div class = "image"><img src = "./images/images_problem2_delta/ArgoUML_2_delta_08.png" class = "threeQuartersSize"></div> </p> <p class = "explanation"> 「オブジェクトの接近過程」ビュー上の「参照時点」をクリックしてください.<br> <div class = "image"><img src = "./images/images_problem2_delta/ArgoUML_2_delta_09.png" class = "threeQuartersSize"></div> </p> <p class = "explanation"> ここまでで, SelectionManager クラスのインスタンス (id = 4310438) のフィールド selections が参照している ArrayList に<br> SelectionClass クラスのインスタンス (id = 1672744985) が追加されるまでの過程を見てきました.<br> ここで, 課題B4の接近過程抽出は終了です.<br> 「オブジェクトの接近過程」ビューを全て閉じ, そのあとデバッグ実行を終了してください.<br> <div class = "image"><img src = "./images/images_problem2_delta/ArgoUML_2_delta_11.png" class = "threeQuartersSize"></div> </p> </p> <hr> <p> 課題B4の接近過程抽出が終了しましたら, 以下のアンケートにお答えください. <div><a href = "https://docs.google.com/forms/d/e/1FAIpQLSdoJD5_EVBJ-DUrg2CbPwcFC-2ZdVJOVeJZSTsnU4Ldn-wESw/viewform" target = "_blank">アンケート回答</a></div> </p> <a href="../../../Closing.html">次へ</a> </body> </html>