Download presentation
Presentation is loading. Please wait.
Published byえつみ ねぎたや Modified 約 7 年前
1
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair of classes 1st Classifying objects into groups so that objects in the same group have similar behaviors each other It applies to the objects of each class 2nd Visualizing interactions of each pair of groups as a sequence diagram When the combination of groups is different, it is expected that the interaction is also different Representative interactions (実行履歴には大抵,人間が理解するには困難なほど大量の相互作用が含まれているため,適切に量を減らし動作理解を支援する手法が必要です.) OGANは,Javaプログラムから取得した実行履歴を解析し,開発者が注目する2つのクラスの間の相互作用の内,特に代表的なものを抽出し可視化します. この可視化は2ステップで行われます. まず,それぞれのクラスのオブジェクト群を,振舞いが類似するものが同じグループになるように分類します. (この時,それぞれのグループはそのクラスの代表的な振舞いに対応しているといえます.) 次に,2つのクラスの各グループ群から,それぞれ1つずつグループを選ぶことで組を作り,組ごとにその間の相互作用を抽出し1枚のシーケンス図として可視化します. これは全ての組み合わせについて行われ,例えば,クラスA・Bがそれぞれ2つグループをもつ場合,2×2=4通りの組み合わせが考えられ,最大で4枚のシーケンス図が生成されます. グループの組み合わせが異なるとき,その間の相互作用も異なることが期待され,これは2つのクラスの間の代表的な相互作用であるといえます. 以上が,実行履歴を簡約するために, OGANがとっている戦術です.
2
Classifying Objects Into Groups
Based on dynamic interaction contexts Iff : Use(o1)=Use(o2) ∧ Used(o1)=Used(o2) Use(obj) = Classes CALLING a method of obj Used(obj) = Classes CALLED by obj It’s expected that the behaviors of o1 and o2 Class A Group Method Call Class X o2 1つのクラスのオブジェクト群を,振舞いの違いごとに分類するために,OGANは各オブジェクトの動作コンテキスト(実行中にどのような要素を用いて,どのような相互作用を行ったのか)を比較に用います. 具体的には,’メソッド呼び出ししたクラスの集合’ と ‘メソッド呼び出しをされた(受けた)クラスの集合’ が完全に一致するオブジェクトを,同じグループに分類します. (FileInputStreamクラスはファイル入力担当するなど)クラスにはそれぞれ異なる役割があり,関係するクラス群が等しいとき振舞いも類似することが期待できます. (ただし,そうならない場合も観測されており,他の分類基準も幾つか提案しています.これらの基準を組み合わせることで,より妥当な分類ができると考えています.) o1 Class Y o3 Class B
3
Visualizing interactions
Selecting each pair of objects from each combination of 2 groups In each pair, one calls the another one For each pair 1st Extracting events directly related to one of the pair 2nd Visualizing those events as a sequence diagram Class A Class B このグループ化を用いて,2つのクラスの間の代表的な相互作用の可視化は,次の手順で行います. まず,それぞれにグループ化を行い,両クラスのグループの全ての組み合わせについて,相互作用するオブジェクトのペアを1つずつ抽出します. (相互作用するオブジェクトのペアとは,それぞれ異なるクラスのグループに所属していて,かつ一方がもう一方を呼び出しているものを指します.) (同じ組み合わせで抽出されるペアは,互いに相互作用が類似することが期待できるため,複数抽出し確認することは効率が悪いと考えられます.) (ペアは両クラスがそれぞれ2つグループをもつとき最大で2×2=4つ抽出されるが,実際には高々少数のグループの組み合わせでのみ相互作用が存在する傾向があるため,抽出数はより少ない可能性が高いです.) 次に,このグループの組み合わせごとのペア1つ1つについて,ペアのどちらかのオブジェクトと直接関係のあるイベント(メソッド呼び出しや復帰イベントなど)を実行履歴から取り出し,これをシーケンス図として可視化します. 各シーケンス図は,両クラス間の代表的な相互作用に対応しており,これらを比較しながら確認することで,より効果的に動作理解をすることができると考えています. 以上が,OGANが提供している可視化機能の概要です.
4
(実行履歴には大抵,人間が理解するには困難なほど大量の相互作用が含まれているため,適切に量を減らし動作理解を支援する手法が必要です.)
1枚目 (実行履歴には大抵,人間が理解するには困難なほど大量の相互作用が含まれているため,適切に量を減らし動作理解を支援する手法が必要です.) OGANは,Javaプログラムから取得した実行履歴を解析し,開発者が注目する2つのクラスの間の相互作用の内,特に代表的なもののみを抽出し可視化します. この可視化は2ステップで行われます. まず,それぞれのクラスのオブジェクト群を,振舞いの類似するものが同じグループになるように分類します. (この時,それぞれのグループはそのクラスの代表的な振舞いに対応しているといえます.) 次に,2つのクラスの各グループ群から,それぞれ1つずつグループを選ぶことで組を作り,各組ごとにその間の相互作用を抽出し1枚のシーケンス図として可視化します. この可視化は全ての組み合わせについて行われ,例えば,クラスA・Bがそれぞれ2つグループをもつ場合,2×2=4通りの組み合わせが考えられるため,最大で4枚のシーケンス図が生成されます. グループの組み合わせが異なるとき,その間の相互作用も異なることが期待でき,抽出した相互作用はそれぞれ2つのクラスの間の代表的な相互作用であるといえます. 以上が,OGANがとっている戦術です.
5
2枚目 1つのクラスのオブジェクト群を,振舞いの違いごとに分類するために,OGANは各オブジェクトの動作コンテキスト(実行中にどのような要素を用いて,どのような相互作用を行ったのか)を比較に用います. 具体的には,’メソッド呼び出ししたクラスの集合’ と ‘メソッド呼び出しをされた(受けた)クラスの集合’ が完全に一致するオブジェクトを,同じグループに分類します. (FileInputStreamクラスはファイル入力担当するなど)クラスにはそれぞれ異なる役割があるため,関係するクラス群が等しいとき,その振舞いもまた類似することが期待できます. (ただし,そうならない場合も観測されており,他の分類基準も幾つか提案しています.これらの基準を組み合わせることで,より妥当な分類ができると考えています.)
6
このグループ化を用いて,2つのクラスの間の代表的な相互作用の可視化を,次の手順で行います.
3枚目 このグループ化を用いて,2つのクラスの間の代表的な相互作用の可視化を,次の手順で行います. まず,それぞれにグループ化を行い,両クラスのグループの全ての組み合わせについて,相互作用するオブジェクトのペアを1つずつ抽出します. (相互作用するオブジェクトのペアとは,それぞれ異なるクラスのグループに所属していて,かつ一方がもう一方を呼び出しているものを指します.) (同じ組み合わせで抽出されるペアは,互いに相互作用が類似することが期待できるため,複数抽出し確認することは効率が悪いと考えられます.) (ペアは両クラスがそれぞれ2つグループをもつとき最大で2×2=4つ抽出されるが,実際には高々少数のグループの組み合わせでのみ相互作用が存在する傾向があるため,抽出数はより少ない可能性が高いです.) 次に,この(グループの組み合わせごとの)ペア1つ1つについて,ペアのどちらかのオブジェクトと直接関係のあるイベント(メソッド呼び出しや復帰イベントなど)を実行履歴から取り出し,これをシーケンス図として可視化します. 各シーケンス図は,両クラス間の代表的な相互作用に対応しており,これらを比較しながら確認することで,より効果的に動作理解をすることができると考えています. 以上が,OGANが提供している可視化機能の概要です.
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.