メソッドに用いられる 動詞-目的語関係を収録した 辞書構築手法の提案 鹿島 悠† ,早瀬 康裕‡ , 真鍋 雄貴† ,松下 誠† , 井上 克郎† † 大阪大学, ‡ 東洋大学 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 1 概要 • 研究目的 – 識別子の命名支援 • 提案手法 – 動詞-目的語関係の辞書構築 • メソッドから動詞-目的語関係を抽出 • 特定のアプリケーションドメインを対象とした辞書の構築 • 評価実験 – 構築した辞書にドメイン固有の動詞-目的語関係が多 数収録されていることを確認 • 同じプログラミング言語を使用したプログラムに一般的に出 現する関係も多く収録されていた Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 2 プログラム理解 • ソフトウェア保守の際大きな時間を消費する[1] • 識別子の名前が重要な役割を果たす[2][3] – 作業者はプログラム要素の役割を名前から推測 し,アプリケーションドメインの知識と対応づける • 識別子に不適切な命名がなされた場合,プロ グラム理解に多大な時間を要する [1] : R. K. Fieldstad and W. T. Hamlen. Application Program Maintenance Study: Report to Our Respondents [2]: A. Von Mayrhauser and A. M. Vans. Identication of Dynamic Comprehension Processes During Large Scale Maintenance [3]: Nancy Pennington. Comprehension strategies in programming Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 3 識別子への適切な命名 • 適切な命名のためには,名前に使用される 単語や命名規則を知る必要がある – 単語や命名規則は以下の状況で変化 • プログラミング言語 • 開発組織 • アプリケーションドメイン • 単語や命名規則が文書化されていない場合, 多数のソースコードを読解し,学習する必要 がある Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 4 名詞の辞書 • ソースコード中の名詞の辞書[4] – 収録される関係 • 名詞の上位下位関係 • 名詞と修飾語の修飾関係 – クラス名や変数名の命名支援に役立つと考えら れる • メソッドでは動詞と名詞の関係が重要となる – 名詞の辞書だけでは不十分 [4]:早瀬 康裕, 市井 誠, 井上 克郎. ソフトウェア理解支援を目的とした辞書の作成法 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 5 メソッド中の識別子 • メソッドの各要素の識別子 – メソッド名 • 複合語となっていることが多い – 動詞,目的語,前置詞などから構成 – メソッド定義時 • 所属するクラス・仮引数が目的語になる Ex. Jmenu クラスの void addMenuListener(MenuListener) MenuListener を JMenu に 追加(add)する 直接目的語 間接目的語 動詞 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 6 提案手法 • 動詞-目的語関係の辞書の作成 – メソッドから動詞-目的語の関係を抽出 – 特定のドメインを対象とした辞書の作成 • 辞書の活用 – 識別子の命名支援 • 収録された動詞-目的語関係を開発者に例示 • 特定のドメインで使用される単語や命名規則の学習を 支援 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 7 提案手法の概要 特定のドメインに所属する ソフトウェアのソースコード 戻り値 void メソッド情報 戻り値 void メソッド名 addProduct 引数 Product 事前に人手で定義 抽出パターン クラス名 Stock メソッド名 引数 クラス名 動詞1 名詞2 名詞2 名詞3 動詞 直接目的語 間接目的語 動詞1 名詞2 名詞3 add Product 動詞 名詞 void 名詞 パターンマッチ 名詞 動詞-直接目的語-間接目的語 辞書 動詞 直接目的語 間接目的語 出現したソフトウェアの数 Add Product Stock 3 Build Data BooleanMatrex 1 Set Password User 4 Describe Alias Xml 1 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 8 メソッド情報 戻り値,メソッド名,引数,クラス名に出現する単語に, 品詞情報を付けた単語列の4つ組 戻り値 名詞一つ void メソッド名 複合語を分解し 単語の列にして 品詞解析を行う (OpenNLPを利用) 引数 名詞の列 クラス名 名詞一つ メソッド情報の例 void createTicketForUser User Server 名詞 名詞 create Ticket For User void 動詞 名詞 前置詞 名詞 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 9 抽出パターン 抽出を行う条件の4つ組と 動詞,直接目的語,間接目的語として抽出する単語の指定 戻り値 メソッド名 引数 void 名詞一つ ワイルドカード 品詞の列 名詞の列 ワイルドカード クラス名 名詞一つ ワイルドカード 各品詞に番号を付与 動詞,直接目的語,間接目的語として抽出する単語の指定 抽出パターンの例 戻り値 void メソッド名 動詞1 名詞2 前置詞3 名詞4 動詞 直接目的語 動詞1 名詞2 引数 ワイルドカード クラス名 ワイルドカード 間接目的語 名詞4 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 10 パターンマッチ 1. 抽出パターンで指定した条件の4つ組を,メソッド情報が 全て満たしているか検査 2. 条件が満たされた場合,抽出パターンに従い動詞,直接 目的語,間接目的語を抽出 メソッド情報 void createTicketForUser User Server 動詞 直接目的語 間接目的語 create Ticket User create Ticket For User void 動詞 名詞 前置詞 名詞 名詞 名詞 抽出パターン 戻り値 void メソッド名 動詞1 名詞2 前置詞3 名詞4 動詞 直接目的語 動詞1 名詞2 引数 クラス名 ワイルドカード ワイルドカード 間接目的語 名詞4 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 11 評価実験 • 評価基準 – メソッドの動詞-目的語関係を抽出した辞書が作 成できたかどうか – 特定のドメインを対象とした命名支援用の辞書と して有効かどうか • 事前準備 – 抽出パターンを31個定義 • 著者が経験的に判断し,抽出パターンを定義 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 12 抽出パターンの作成方法 メソッド情報 void addElement Element List 名詞 名詞 add Element void 動詞 名詞 抽出パターン 戻り値 メソッド名 引数 void 動詞1 名詞2 名詞2 動詞 直接目的語 動詞1 名詞2 クラス名 名詞3 間接目的語 名詞3 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 13 実験対象 • 4つのドメインの辞書を作成 – – – – Web Application (WEB) XML Database (DB) GUI • 辞書には2つ以上のソフトウェアで出現した動詞-直接 目的語-間接目的語の三つ組を収録 ドメイン 入力した ソフトウェア数 メソッド数 収録した 三つ組の数 WEB 10 74707 282 XML 11 55812 547 DB 9 74127 672 GUI 7 298696 407 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 14 実験方法 1. 各辞書からランダムに90個の組を抽出 2. 抽出した三つ組に対するアンケート調査 – 各三つ組は以下のドメインで見られる組かどうか • 辞書が対象とするドメイン • Javaプログラム一般 – 動詞,直接目的語,間接目的語の判断が正しいか どうか – 各三つ組を以下のドメインの命名支援用の辞書に 収録してもよいかどうか • 辞書が対象とするドメイン • Javaプログラム一般 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 15 被験者 著者の所属する研究室の学生6人 – 全員Javaを用いた開発経験あり – 被験者が開発経験のあるドメインを対象とした辞 書に対して回答 – 1人あたり2つの辞書に対して回答 – 1つの辞書につき3人の被験者に30組づつ評価 してもらう Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 16 実験結果の概要 • メソッドに出現する動詞-目的語関係の辞書の 作成に成功 – 命名支援用の辞書に収録してもよいと判定された組 を多数収録していた • ドメイン専用の辞書としては改善の余地あり – Javaに出現する関係も多く収録されていた • その他改善の余地がある点 – 動詞,直接目的語,間接目的語の判定に間違いが ある組が収録されていた – 命名支援には有用でない関係が収録されていた Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 17 実験結果(1/3) 各三つ組が見られるドメイン 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% WEB XML 辞書のドメイン DB GUI Java • 辞書のドメインで見られる組の割合 • 62% ~ 75% • Javaプログラム一般で見られる組の割合 • 38% ~ 76% Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 18 実験結果(2/3) 動詞,直接目的語,間接目的語の判定が間違っていると評価された 三つ組の割合 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% WEB XML DB GUI • 動詞,直接目的語,間接目的語の判定が間違っていると評価 された三つ組の割合 • 6% ~ 13% Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 19 実験結果(3/3) 命名支援用の辞書に収録しても良いと評価された三つ組の割合 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% WEB XML 辞書のドメイン DB GUI Java • 辞書のドメインの辞書に収録しても良いと評価された三つ組の割合 • 53% ~ 71% • Javaプログラム一般の辞書に収録しても良いと評価された三つ組の割合 • 30% ~ 61% Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 20 被験者が収録しても良いと判断した組 ドメイン 動詞 直接目的語 間接目的語 WEB Destroy Session HttpSessionEvent XML Declare Prefix NamespaceSupport DB Add Constraint Table GUI Click Mouse MouseEvent Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 21 被験者が収録すべきでないと判断した組 • 判断の理由 – 対象ドメインとは異なるドメインに所属している – 動詞,直接目的語,間接目的語の判定が間違っている – 直接目的語や間接目的語に何らかの語の省略語と思わ れる語が出現していた – あまりにも一般的すぎる関係だった – 特定のライブラリに依存して出現する関係であり,ドメイン の辞書に入れるには不適当と判断した • 例 ドメイン 動詞 直接目的語 間接目的語 DB Release Mouse MouseEvent GUI Gain Focus Fe Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 22 実験結果に対する考察 • 異なるドメインに所属する関係が収録されて しまった理由について – 辞書作成のために入力したソフトウェアの数が7 ~11と少なかったため,辞書のドメイン以外に所 属する関係を取り除けなかった • 入力するソフトウェアの数を増やして対応したい – 入力したソフトウェアが複数のドメインを扱ってい た • プログラムで一般的に見られる関係や他のドメインで 見られる関係を取り除くことで解決を狙う Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 23 まとめと今後の課題 • まとめ – 特定のドメインを対象とした,メソッドに出現する 動詞-目的語関係を収録した辞書の構築手法を 提案 • 今後の課題 – 他のドメインに所属する関係や,命名支援に有用 でない関係を辞書から取り除く方法の開発 – 辞書を利用した命名支援環境の構築 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 24
© Copyright 2024 ExpyDoc