DOPGを用いた オブジェクトの振舞い予測手法

Slides:



Advertisements
Similar presentations
ゲームプログラミング講習 第2章 関数の使い方
Advertisements

サービス管理責任者等研修テキスト 分野別講義    「アセスメントと        支援提供の基本姿勢」 <児童発達支援管理責任者> 平成27年10月1日.
ヒトの思考プロセスの解明を目的とするワーキングメモリの研究
第27講 オームの法則 電気抵抗の役割について知る オームの法則を使えるようにする 抵抗の温度変化を理解する 教科書P.223~226
コラッツ予想の変形について 東邦大学 理学部 情報科 白柳研究室 山中 陽子.
コンパイラ 第3回 字句解析 ― 決定性有限オートマトンの導出 ―
第5章 家計に関する統計 ー 経済統計 ー.
公共財 公共経済論 II no.3 麻生良文.
VTX alignment D2 浅野秀光 2011年12月15日  放射線研ミーティング.
冷却フランシウム原子を用いた 電子の永久電気双極子能率探索のための ルビジウム磁力計の研究
生命情報学 (8) スケールフリーネットワーク
前半戦 「史上最強」風 札上げクイズ.

認知症を理解し 環境の重要性について考える
フッ化ナトリウムによる洗口 2010・9・13 宮崎市郡東諸県郡薬剤師会 学校薬剤師  日高 華代子.
食品の安全性に関わる社会システム:総括 健康弱者 ハイリスク集団 HACCP (食肉処理場・食品工場) 農場でのQAP 一般的衛生管理
規制改革とは? ○規制改革の目的は、経済の活性化と雇用の創出によって、   活力ある経済社会の実現を図ることにあります。
地域保健対策検討会 に関する私見(保健所のあり方)
公共政策大学院 鈴木一人 第8回 専門化する政治 公共政策大学院 鈴木一人
医薬品ネット販売規制について 2012年5月31日 ケンコーコム株式会社.
平成26年8月27日(水) 大阪府 健康医療部 薬務課 医療機器グループ
平成26年度 呼吸器学会からの提案結果 (オレンジ色の部分が承認された提案) 新規提案 既収載の変更 免疫組織化学染色、免疫細胞化学染色
エナジードリンクの危険性 2015年6月23日 経営学部市場戦略学科MR3195稲沢珠依.
自動吸引は 在宅を変えるか 大分協和病院 院長         山本 真.
毎月レポート ビジネスの情報 (2016年7月号).
医療の歴史と将来 医療と医薬品産業 個人的経験 3. 「これからの医療を考える」 (1)医薬品の研究開発 -タクロリムスの歴史-
社会福祉調査論 第4講 2.社会調査の概要 11月2日.
2015年12月28日-2016年3月28日 掲載分.
2010度 民事訴訟法講義 補論 関西大学法学部教授 栗田 隆.
腫瘍学概論 埼玉医科大学国際医療センター 包括的がんセンター 緩和医療科/緩和ケアチーム 奈良林 至
“企業リスクへの考え方に変化を求められています。 トータルなリスクマネジメント・サービスをプロデュースします。“
情報漏えい 経済情報学科 E  西村 諭 E  釣 洋平.
金融班(ミクロ).
第11回 2009年12月16日 今日の資料=A4・4枚+解答用紙 期末試験:2月3日(水)N2教室
【ABL用語集】(あいうえお順) No 用語 解説 12 公正市場価格 13 債権 14 指名債権 15 事業収益資産 16 集合動産 17
基礎理論(3) 情報の非対称性と逆選択 公共政策論II No.3 麻生良文.
浜中 健児 昭和42年3月27日生まれ 東京都在住 株式会社ピー・アール・エフ 代表取締役 (学歴) 高 校:千葉県立東葛飾高校 卒業
COPYRIGHT(C) 2011 KYUSHU UNIVERSITY. ALL RIGHTS RESERVED
Blosxom による CMS 構築と SEO テクニック
記入例 JAWS DAYS 2015 – JOB BOARD 会社名 採用職種 営業職/技術職/その他( ) 仕事内容 待遇 募集数
ネットビジネスの 企業と特性 MR1127 まさ.
Future Technology活用による業務改革
ネットビジネス論(杉浦) 第8回 ネットビジネスと情報技術.
g741001 長谷川 嵩 g740796 迫村 光秋 g741000 西田 健太郎 g741147 小井出 真聡
自然独占 公共経済論 II no.5 麻生良文.
Autonomic Resource Provisioning for Cloud-Based Software
Webショップにおける webデザイン 12/6 08A1022 甲斐 広大.
物理的な位置情報を活用した仮想クラウドの構築
ハイブリッドクラウドを実現させるポイントと SCSKのOSSへの取組み
寺尾 敦 青山学院大学社会情報学部 第12回 情報デザイン(4) 情報の構造化と表現 寺尾 敦 青山学院大学社会情報学部
【1−1.開発計画 – 設計・開発計画】 システム開発計画にはシステム開発を効率的、効果的に実行する根拠(人員と経験、開発手順、開発・導入するシステム・アプリケーション・サービス等)を記述すること。 システム開発の開始から終了までの全体スケジュールを記載すること。 アプリケーション機能配置、ソフトウェア、インフラ構成、ネットワーク構成について概要を示すこと。
6 日本のコーポレート・ガバナンス 2008年度「企業論」 川端 望.
急成長する中国ソフトウェア産業 中国ソフトウェアと情報サービス産業の規模 総売上高は5年間で約5.3倍の成長
米国ユタ州LDS病院胸部心臓外科フェローの経験
公益社団法人日本青年会議所 関東地区埼玉ブロック協議会 JCの情熱(おもい)育成委員会 2011年度第1回全体委員会
次世代大学教育研究会のこれまでの活動 2005年度次世代大学教育研究大会 明治大学駿河台校舎リバティタワー9階1096教室
子どもの本の情報 大阪府内の協力書店の情報 こちらをクリック 大阪府内の公立図書館・図書室の情報
第2回産業調査 小島浩道.
〈起点〉を示す格助詞「を」と「から」の選択について
広東省民弁本科高校日語専業骨幹教師研修会 ①日本語の格助詞の使い分け ②動詞の自他受身の選択について   -日本語教育と中日カルチャーショックの観点から- 名古屋大学 杉村 泰.
■5Ahバッテリー使用報告 事例紹介/東【その1】 ■iphon4S(晴れの昼間/AM8-PM3) ◆約1時間で68%⇒100%
『ワタシが!!』『地域の仲間で!!』 市民が始める自然エネルギー!!
ポイントカードの未来形を形にした「MUJI Passport」
SAP NetWeaver を支える Microsoft テクノロジーの全貌 (Appendix)
ガイダンス(内業) 測量学実習 第1回.
Python超入門 久保 幹雄 東京海洋大学.
熱力学の基礎 丸山 茂夫 東京大学大学院 工学系研究科 機械工学専攻
京都民医連中央病院 CHDF学習推進委員会
資料2-④ ④下水道.
Accessによる SQLの操作 ~実際にテーブルを操作してみよう!~.
Presentation transcript:

DOPGを用いた オブジェクトの振舞い予測手法 大阪大学大学院情報科学研究科 博士前期課程1年 井上研究室 脇阪大輝

目次 オブジェクト指向プログラムにおけるデバッグの問題点 オブジェクトの振舞い予測手法の詳細 予備実験の内容および結果 今後の予定

目次 オブジェクト指向プログラムにおけるデバッグの問題点 オブジェクトの振舞い予測手法の詳細 予備実験の内容および結果 今後の予定

背景 プログラムにバグがあるとき開発者はプログラムの動作を観察しバグの原因を調査する デバッガは開発者がプログラムの動作を理解するために重要なツールの1つ プログラムの動作を詳細に調査するための機能を提供 ブレイクポイントを使用してプログラムを停止 ステップ実行を使用してプログラムの動作の調査 オブジェクト指向プログラムとの相性が良くない デバッガがプログラム文単位で動作するため

問題点 オブジェクト指向プログラムは多数のオブジェクトの機能を実行して動作する ブレイクポイントではオブジェクトを区別できない 同じプログラム文でもオブジェクトの状態によって異なる動作を行う場合がある ブレイクポイントではオブジェクトを区別できない 興味のないオブジェクトについてもプログラムを停止する オブジェクトの判別には実行を進める必要がある 調査したいプログラム文を通過してしまう

オブジェクトの判別 特定の動作をするオブジェクトが関わる実行のみを詳細に調査したい 実行によって 異なるオブジェクトを取得 特定のメソッドを while(…){ Object obj = getInstance(…); /* 調査したいプログラム文 */ … /* */ if(…){ /* このメソッドが呼び出されるオブジェクトに興味がある */ obj.interest() } 実行によって 異なるオブジェクトを取得 特定のメソッドを 実行するオブジェクトに興味がある

目次 オブジェクト指向プログラムにおけるデバッグの問題点 オブジェクトの振舞い予測手法の詳細 予備実験の内容および結果 今後の予定

アイデア 過去の研究より,同一クラスのオブジェクトの動作はいくつかのグループに分類できることがわかっている オブジェクトが既知のどのグループに属するかを知ることで オブジェクトの動作をあらかじめ知ることができる クラス A

提案手法概要 ? 一度プログラムを実行し実行履歴を取得する 一度目の実行 オブジェクト 一度プログラムを実行し実行履歴を取得する オブジェクトごとの動作をDynamic Object Process Graph(DOPG)[1]として抽出する 各DOPGをオブジェクトの動作を表す有限オートマトンに変換する 二度目の実行で出現したオブジェクトの動作がどのオートマトンに属するかを実行中に求める 求まったオートマトンから,オブジェクトの未来の動作を実行中に予測する ? 二度目の実行 [1]Jochen Quante and Rainer Koschke. Dynamic object process graphs. J. Syst. Softw., Vol. 81, pp. 481-501, April 2008.

実行履歴の取得 本手法では,プログラムの実行からオブジェクトの動作を知るために実行履歴を取得する メソッドの呼出しについて以下を記録する 呼出されたオブジェクト 呼出しを行ったソースコード位置 呼出されたメソッド 実行順序 オブジェクト1 オブジェクト2 オブジェクト3 1 MethodA#L.10 2 MethodB#L.20 MethodC#L.22 3 MethodD#L.30 4 MethodE#L.40 MethodF#L.50 実行履歴の例

DOPGの抽出 実行履歴からオブジェクトごとのDOPGを作成する DOPGとはオブジェクトの動作を表す有向グラフ Call MethodA L.10 MethodB L.20 MethodD L.30 MethodE L.40 Call MethodA L.10 MethodC L.22 MethodD L.30 MethodF L.50 実行履歴からオブジェクトごとのDOPGを作成する DOPGとはオブジェクトの動作を表す有向グラフ 各頂点はオブジェクトに対するメソッド呼出しを表す 各辺はメソッド呼出しの順序を表す 同じ位置のメソッド呼出しは同じノードとなる 例の実行履歴から作成したDOPG: オブジェクト1と2は1つのDOPGにまとめられる

有限オートマトンの作成 各DOPGをオートマトンに変換 メソッド呼出しを入力として状態遷移 MethodA L.10 MethodB MethodD L.30 MethodE L.40 MethodC L.22 MethodF L.50 各DOPGをオートマトンに変換 メソッド呼出しを入力として状態遷移 DOPGを変換して作成したオートマトン

どのオートマトンに属するかの判定 二度目のプログラムの実行で以下を全てのオブジェクトについて行う あるオブジェクトAについて Aのクラスの全てのオートマトンを,Aが属するオートマトンの候補とする Aに対してメソッド呼出しがあれば,それを候補のオートマトン全てに入力として与える 状態遷移できないオートマトンがあれば,それを候補から除外する 2,3を候補が残り1つになるまで行う Aの動作はその残ったオートマトンに属すると決定する

オートマトン判定の例 MethodA#L.10 MethodB#L.20 MethodA L.10 MethodB L.20 MethodD MethodE L.40 MethodA L.10 MethodB L.20 MethodD L.30 MethodE L.40 MethodC L.22 MethodF L.50 MethodA L.10 MethodB L.20 MethodD L.30 MethodE L.40 MethodC L.22 MethodF L.50 MethodA L.10 MethodB L.20 MethodD L.30 MethodE L.40 MethodC L.22 MethodF L.50 MethodA#L.10 MethodB#L.20

オブジェクトが属するオートマトンが判明 オートマトンの形状から 未来の動作を予測する 未来の動作の予測 MethodA L.10 MethodB L.20 MethodD L.30 MethodE L.40 オブジェクトが属するオートマトンが判明 オートマトンの形状から 未来の動作を予測する

目次 オブジェクト指向プログラムにおけるデバッグの問題点 オブジェクトの振舞い予測手法の詳細 予備実験の内容および結果 今後の予定

実験 – 内容 目的 対象 手順 手法により, オブジェクトの動作をどの程度予測できるかを調査 DaCapoベンチマークに収録されたプログラムのうち, avrora, batik, lusearch, pmd, xalanを対象とした 手順 既存ツールAmidaを使用して実行履歴とDOPGを取得 作成したツールでオートマトンに変換 オートマトンの性質を調査

実験 – 評価尺度 クラスごとのオートマトン集合の性質 Trace Predict R オブジェクトが属する オートマトンを判定するために   オートマトンを判定するために    必要なメソッド呼出しの数の平均値 Predict 予測できる最小メソッド呼出し数の平均値 R 𝑅= 𝑃𝑟𝑒𝑑𝑖𝑐𝑡 𝑇𝑟𝑎𝑐𝑒+𝑃𝑟𝑒𝑑𝑖𝑐𝑡   予測可能部分の割合 𝑅= 1 2 MethodA L.10 MethodB L.20 MethodD L.30 MethodE L.40 𝑇𝑟𝑎𝑐𝑒 =2 𝑃𝑟𝑒𝑑𝑖𝑐𝑡

実験 – 結果 約66%のクラスでR=1 約24%のクラスで0<R<1 約10%のクラスでR=0 グループが1種類 𝑅= 𝑃𝑟𝑒𝑑𝑖𝑐𝑡 𝑇𝑟𝑎𝑐𝑒+𝑃𝑟𝑒𝑑𝑖𝑐𝑡 約66%のクラスでR=1 グループが1種類 Trace=0 全ての動作が予測可能 約24%のクラスで0<R<1 少なくとも1つ以上の メソッド呼出しを予測可能 約10%のクラスでR=0 Predict=0 オートマトンを判定できたとき 受理状態に到達している

クラスの性質 1つのオブジェクトで 機能を実行を担当する いくつか同じ動作をした後 異なる動作をする 最後の動作のみ異なる Rの値でソートしたときの順位 クラスごとに計算したRの値 𝑅= 𝑃𝑟𝑒𝑑𝑖𝑐𝑡 𝑇𝑟𝑎𝑐𝑒+𝑃𝑟𝑒𝑑𝑖𝑐𝑡 1つのオブジェクトで 機能を実行を担当する ClockDomain DisplayManager いくつか同じ動作をした後 異なる動作をする StyleSheet / PathParser 最後の動作のみ異なる GenericText

同じプログラム文でも動作が 異なる可能性のあるクラスは全体の約34% そのうちの約70%が動作の予測が可能 デバッグで予測を用いることは可能 実験 – 考察 同じプログラム文でも動作が 異なる可能性のあるクラスは全体の約34% そのうちの約70%が動作の予測が可能 デバッグで予測を用いることは可能

目次 オブジェクト指向プログラムにおけるデバッグの問題点 オブジェクトの振舞い予測手法の詳細 予備実験の内容および結果 今後の予定

今後の予定 予測手法をデバッガに実装 予測機能の評価実験 Eclipseに実装 オブジェクトの未来の動作をオートマトンで提示 オブジェクトの動作を指定できるブレイクポイントを提供 予測機能の評価実験 有効性の調査

予測の使用 予測機能の実装案 「予測機能を使用してデバッグを開始」を選択 1度目の実行が開始される 実行履歴取得・DOPG作成・オートマトン作成が行われる 2度目の実行が開始される 開発者は予測機能を用いて実行を観察する

オブジェクトの動作を提示 2.変数を選択 3.オートマトンを提示 候補全てのオートマトン 現状態を強調表示 1.ブレイクポイントで実行を停止

ブレイクポイントの拡張 2.停止条件をオブジェクトの動作で指定 特定のメソッド呼出しを行う可能性のあるオブジェクト 1.ブレイクポイントの設定画面を開く 2.停止条件をオブジェクトの動作で指定 特定のメソッド呼出しを行う可能性のあるオブジェクト 指定したオートマトンと形状が同じオブジェクト

まとめ オブジェクト指向とデバッガの相性が悪い問題 オブジェクト動作の予測手法を提案 予測可能性調査実験の内容と結果 予測機能の実装計画

DOPG 同じ位置で同じメソッドが呼び出された場合,それに対応するノードは同じ 繰返しはループで表現される Call MethodA MethodB L.20 MethodE L.40 実行順序 オブジェクト 1 MethodA#L.10 2 MethodB#L.20 3 4 MethodE#L.40

DOPG メソッドの呼出しの中でさらにメソッド呼出しが行われた場合 in MethodA Call MethodA L.10 MethodB 各オブジェクトのメソッドの呼出し元のノードをスタックによって記憶する必要がある

Trace-Predict計算 クラスごとに生存オートマトン木を作成 2 2 1 1 MethodA L.10 MethodB L.20 MethodD L.30 MethodE L.40 MethodC L.22 MethodF L.50 各頂点の数値は 候補オートマトンの数 MethodA L.10 2 MethodB L.20 MethodC L.22 1 1 Trace = 葉の深さ predict = 根から葉までのメソッド呼出し列を 入力された後の状態から受理状態に 到達するまでの最小遷移数