Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
Advertisements

ベイズの定理と ベイズ統計学 東京工業大学大学院 社会理工学研究科 前川眞一. 2 Coffe or Tea 珈琲と紅茶のどちらが好きかと聞いた場合、 Star Trek のファンの 60% が紅茶を好む。 Star Wars のファンの 95% が珈琲を好む。 ある人が紅茶を好むと分かったとき、その人が.
第 5 章 2 次元モデル Chapter 5 2-dimensional model. Contents 1.2 次元モデル 2-dimensional model 2. 弱形式 Weak form 3.FEM 近似 FEM approximation 4. まとめ Summary.
シーケンス図の生成のための実行履歴圧縮手法
Building text features for object image classification
メソッド周辺の識別子と メソッド本体のAPI利用実績に基づいたAPI集合推薦手法
プログラムの変更前後での 実行履歴の差分検出手法
SSR 論文調査 Safety and Cyber-Physical Systems
Paper from PVLDB vol.7 (To appear in VLDB 2014)
 Combinations(2)        古川 勇輔.
バイナリ形式コンポーネントの 収集・解析・検索システムの開発
1 大阪大学で行っているリスク分類の原則 1)原則として、胎生期の一番早期に、信頼出来る条件で測定された
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
Estimating Position Information by Detecting Network-Connection
Licensing information
CRLA Project Assisting the Project of
Progressive User Profiling in Recommendation Systems
クラス動作シナリオ可視化手法の プログラム理解作業に対する有効性評価
プログラム実行履歴を用いたトランザクションファンクション抽出手法
プログラム実行時情報を用いたトランザクションファンクション抽出手法
コンパイラの解析 (2) GCJのデータ構造 - 1.
静的情報と動的情報を用いた プログラムスライス計算法
Topics on Japan これらは、過去のインターンが作成したパワポの写真です。毎回、同じような題材が多いため、皆さんの出身地等、ここにない題材も取り上げるようにしてください。
New accessory hardware Global Platform Division
類似するコーディングパターンの 利用状況調査ツールの提案
Input slides 1 – 11 – teacher says word - pupils repeat – word appears on click Ohayoo. おはよう。
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
リファクタリング中に生じる コンパイルエラーの自動解消手法
KMSF-CODEアーキテクチャ における動的QOS制御
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
シーケンス図を用いて実行履歴を可視化するデバッグ環境の試作
動的スライスを用いたバグ修正前後の実行系列の差分検出手法
Java Bytecode Modification and Applet Security
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
Javaプログラムの変更を支援する 影響波及解析システム
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
My Dance Circle December 13, 2018  表紙 my dance circle.
コードクローンの動作を比較するためのコードクローン周辺コードの解析
研究会 「LHCが切り拓く新しい素粒子物理学」
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
Satoshi Kawashima, LLD 川島 聡 University of Tokyo
コード片に共通した特性を自動抽出する ソースコード閲覧ツールの試作
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コーディングパターンの あいまい検索の提案と実装
コードクローン間の依存関係に基づく リファクタリング支援環境の実装
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
類似した振舞いのオブジェクトの グループ化による クラス動作シナリオの可視化
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
コードクローン間の依存関係に基づく リファクタリング支援手法の提案と実現
オブジェクトの動的支配関係解析を 用いたシーケンス図の縮約
オブジェクトの動的支配関係解析を用いた シーケンス図の縮約手法の提案
メソッドの同時更新履歴を用いたクラスの機能別分類法
蓄積されたオブジェクトの動作履歴を用いた 実行履歴削減手法の提案
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
ソフトウェア工学 知能情報学部 新田直也.
コードクローン解析に基づく デザインパターン適用候補の検出手法
回帰テストにおける実行系列の差分の効率的な検出手法
セッション名: (35) システム化技術 講演番号 2P
木構造の比較に基づく メソッド呼び出し履歴の変化の可視化手法
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
アノテーションガイドラインの管理を行う アノテーションシステムの提案
オブジェクト生成の観測に基づく プログラム実行の要約の抽出
オブジェクト生成の観測に基づく プログラム実行の要約の抽出
HYSPRIT Chiba campaign (daily)
Presentation transcript:

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がとっている戦術です.

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

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が提供している可視化機能の概要です.

(実行履歴には大抵,人間が理解するには困難なほど大量の相互作用が含まれているため,適切に量を減らし動作理解を支援する手法が必要です.) 1枚目 (実行履歴には大抵,人間が理解するには困難なほど大量の相互作用が含まれているため,適切に量を減らし動作理解を支援する手法が必要です.) OGANは,Javaプログラムから取得した実行履歴を解析し,開発者が注目する2つのクラスの間の相互作用の内,特に代表的なもののみを抽出し可視化します. この可視化は2ステップで行われます. まず,それぞれのクラスのオブジェクト群を,振舞いの類似するものが同じグループになるように分類します. (この時,それぞれのグループはそのクラスの代表的な振舞いに対応しているといえます.) 次に,2つのクラスの各グループ群から,それぞれ1つずつグループを選ぶことで組を作り,各組ごとにその間の相互作用を抽出し1枚のシーケンス図として可視化します. この可視化は全ての組み合わせについて行われ,例えば,クラスA・Bがそれぞれ2つグループをもつ場合,2×2=4通りの組み合わせが考えられるため,最大で4枚のシーケンス図が生成されます. グループの組み合わせが異なるとき,その間の相互作用も異なることが期待でき,抽出した相互作用はそれぞれ2つのクラスの間の代表的な相互作用であるといえます. 以上が,OGANがとっている戦術です.

2枚目 1つのクラスのオブジェクト群を,振舞いの違いごとに分類するために,OGANは各オブジェクトの動作コンテキスト(実行中にどのような要素を用いて,どのような相互作用を行ったのか)を比較に用います. 具体的には,’メソッド呼び出ししたクラスの集合’ と ‘メソッド呼び出しをされた(受けた)クラスの集合’ が完全に一致するオブジェクトを,同じグループに分類します. (FileInputStreamクラスはファイル入力担当するなど)クラスにはそれぞれ異なる役割があるため,関係するクラス群が等しいとき,その振舞いもまた類似することが期待できます. (ただし,そうならない場合も観測されており,他の分類基準も幾つか提案しています.これらの基準を組み合わせることで,より妥当な分類ができると考えています.)

このグループ化を用いて,2つのクラスの間の代表的な相互作用の可視化を,次の手順で行います. 3枚目 このグループ化を用いて,2つのクラスの間の代表的な相互作用の可視化を,次の手順で行います. まず,それぞれにグループ化を行い,両クラスのグループの全ての組み合わせについて,相互作用するオブジェクトのペアを1つずつ抽出します. (相互作用するオブジェクトのペアとは,それぞれ異なるクラスのグループに所属していて,かつ一方がもう一方を呼び出しているものを指します.) (同じ組み合わせで抽出されるペアは,互いに相互作用が類似することが期待できるため,複数抽出し確認することは効率が悪いと考えられます.) (ペアは両クラスがそれぞれ2つグループをもつとき最大で2×2=4つ抽出されるが,実際には高々少数のグループの組み合わせでのみ相互作用が存在する傾向があるため,抽出数はより少ない可能性が高いです.) 次に,この(グループの組み合わせごとの)ペア1つ1つについて,ペアのどちらかのオブジェクトと直接関係のあるイベント(メソッド呼び出しや復帰イベントなど)を実行履歴から取り出し,これをシーケンス図として可視化します. 各シーケンス図は,両クラス間の代表的な相互作用に対応しており,これらを比較しながら確認することで,より効果的に動作理解をすることができると考えています. 以上が,OGANが提供している可視化機能の概要です.