識別子の読解を目的とした名詞辞書の作成方法の一試案

Slides:



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

1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
大規模コーパスから獲得した 名詞の出現パターンを用いた 事態名詞の項構造解析
システム開発におけるユーザ要求の 明示的表現に関する一検討
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
最大エントロピーモデルに基づく形態素解析と辞書による影響
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
メソッド周辺の識別子と メソッド本体のAPI利用実績に基づいたAPI集合推薦手法
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
プログラムの動作を理解するための技術として
デバイスからの異常注入が指定可能なCPUエミュレータ
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
ソースコードに対する適用可能な修正手順を 可視化するリファクタリング支援手法の提案
Javaソフトウェア部品検索システムのための索引付け手法の提案と実装
プログラム実行履歴を用いたトランザクションファンクション抽出手法
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
ギャップを含むコードクローンの フィルタリング手法の提案
ソースコード中に出現する 動詞-目的語関係を利用した メソッド名の命名支援手法
Javaクラスの利用関係を用いた ソフトウェア部品のカテゴリ階層構築法
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
識別子の共起関係に基づく類似コード検索法の提案と 欠陥検出への適用
動的依存グラフの3-gramを用いた 実行トレースの比較手法
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
オブジェクト指向プログラムにおける エイリアス解析について
Javaプログラムの変更を支援する 影響波及解析システム
社会シミュレーションのための モデル作成環境
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
リファクタリング支援のための コードクローンに含まれる識別子の対応関係分析
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
動的データ依存関係解析を用いた Javaプログラムスライス手法
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
コードクローンの動作を比較するためのコードクローン周辺コードの解析
UMLモデルを対象とした リファクタリング候補検出の試み
Javaバイトコードの 動的依存解析情報を用いた スライシングシステムの実現
プログラムで多用される 動詞と目的語の関係を利用した メソッド名提案ツール
プログラム理解におけるThin sliceの 統計的調査による有用性評価
バイトコードを単位とするJavaスライスシステムの試作
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
既存ソフトウェア中の 頻出コード片を用いた コード補完手法の提案
Javaバーチャルマシンを利用した 動的依存関係解析手法の提案
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
コードクローン間の依存関係に基づく リファクタリング支援環境の実装
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
メソッドに用いられる 動詞-目的語関係を収録した 辞書構築手法の提案
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
設計情報の再利用を目的とした UML図の自動推薦ツール
依存関係の局所性を利用した プログラム依存グラフの 効率的な構築法
保守請負時を対象とした 労力見積のためのメトリクスの提案
コードクローン間の依存関係に基づく リファクタリング支援手法の提案と実現
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
オープンソースソフトウェアに対する コーディングパターン分析の適用
メソッドの同時更新履歴を用いたクラスの機能別分類法
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
ソフトウェア理解支援を目的とした 辞書の作成法
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
プログラム理解のための 付加注釈 DocumentTag の提案
オブジェクト生成の観測に基づく プログラム実行の要約の抽出
Presentation transcript:

識別子の読解を目的とした名詞辞書の作成方法の一試案  藤木哲也,早瀬康裕,井上克郎 大阪大学大学院 情報科学研究科 2019/9/16

背景 保守作業者は識別子名から関数や変数の役割,振舞い等を類推し理解を進める[1] 自然言語用の辞書を活用することは困難 名称の意味を知らなければ類推不可 適切な命名がなされていなければ類推不可 自然言語用の辞書を活用することは困難 ソフトウェアにおける用法≠一般的な用法 例.prefix :文字列などの先頭≠接頭辞 [1] Latoza,Garlan,Hersleb,Myers:Program comprehension as factfinding,ESEC-FSE,pp.361-370(2007) 2019/9/16

提案手法 ソフトウェア中で用いられる名詞単語の説明を 集めた辞書を作成 名詞に着目する理由 オブジェクト指向プログラム中の識別子名の多くに名詞が含まれる 使用される名詞の種類は膨大 名詞から様々な情報を取得可能 型,構造,動作の対象 2019/9/16

提案手法の概要 Javaソースコード集合から,目的の名詞に対するコメントを収集し,名詞とコメント集合のセットを作成 名詞を識別子名中に含む識別子へのコメント コメント集合を要約,説明となりうる文を抽出 A indicate … … As are … …use A for… A:A is … use A for … ソースコード集合 辞書 説明文 コメント集合 名詞:A 識別子とコメント解析部 説明文作成部 要約 A is ... コメントではある識別子の役割や振舞などが説明されており, その説明の中には名詞から類推する内容が含まれていると考え コメントベースの手法を提案する 2019/9/16

説明文作成方法の選択 辞書の質は説明文作成アルゴリズムに依存 既存の自動要約技術による説明文作成への適用可能性を調査 5つの名詞に対して説明文作成 name,table,buffer,tree,node 商用自動要約ツールを利用 Copernic Summarizer,Intellexer Summarizer 2019/9/16

実験結果の一部 Buffer:連想可能な文 Tree:説明と無関係な文 目的の単語ではなく,特定のクラスを説明する文が選択 StringBuffer is a variable size contiguous indexable array of characters. A class for reading arbitrary numbers of bits from a byte array. Tree:説明と無関係な文 This will invoke either updateTree with the root element, or handleChange. Create a JPanel containing a tree of JInput sources. 目的の単語ではなく,特定のクラスを説明する文が選択 一文そのまま抜き出すので,説明と関係のない部分も多く含まれる 実験結果の一部を示す,ここで示す結果はそれなりに良い説明文が作成されたものと,そうでないものである. Bufferからは赤い部分のようにデータを保持するものであるといったことが記述されており,bufferの持つ意味と近い文が得られた しかし一方treeの説明文としてはある特定のクラスに関する説明だけが記述されており,Treeへの説明となりそうな文は得られなかった. 2019/9/16

説明文作成方法の試案 収集したコメント群に複数回出現するフレーズを説明文として活用 コメント文を構文解析しグラフ化 単語を頂点,修飾被修飾関係を有向辺 グラフ群に頻出する部分構造を抽出 グラフマイニング simple string the This class handles case 2019/9/16

まとめと今後 ソースコード中のコメントを利用して,識別子に用いられる名詞単語の辞書作成の試案 頻出フレーズからどのように説明文を作成するのか 複数フレーズを組み合わせ説明文作成 説明として適当なフレーズを得るために 同義語や類義語を同一の単語として扱う 文章の構造は異なるが,意味が似ている文の存在 なるべく同一のグラフ構造に変換 2019/9/16