メソッド名に用いられる 動詞-目的語関係の辞書作成に むけて 大阪大学基礎工学部情報科学科 鹿島 悠 大阪大学情報科学研究科 早瀬 康裕, 井上 克郎 1 研究背景 オブジェクト指向プログラム メソッドへの不適切な命名 → 誤解・混乱の原因 Ex. メソッド名の特徴 findDeadlocks List.add(elem) 引数・クラス名・戻り値の型名 動詞が先頭 目的語が動詞の後に続く しばしば目的語が出現 動詞-目的語の関係 オブジェクト指向プログラムでは多々出現 自然言語では現われないソフトウェア特有の関係 → 普通の辞書だけでは対応が困難 2 方針 プログラムで使われる動詞-目的語関係の辞書作成 メソッドの命名支援 プログラムの読解支援 動詞と目的語の抽出場所 ← メソッド名中の動詞 動詞 目的語 ← メソッド名中の名詞・引数・クラス名・戻り値の型名 解析対象: Javaで記述されたソースコード 動詞 直接目的語 間接目的語 Add Product Stock Get Element Index ‥ ‥ ‥ 3 提案手法 ソースコード 抽出ルール メソッド情報 (void) add Product(Product) in class Stock 動詞 名詞1 名詞1 名詞2 適用 (void) 動詞 名詞1 (名詞1) in class 名詞2 動詞 : 動詞 直接目的語 : 名詞1 間接目的語 : 名詞2 事前に人手で定義 動詞-直接目的語-間接目的語 辞書 動詞 動詞 直接目的語 直接目的語 間接目的語 出現したソフトウェアの数 出現したソフトウェアの数 Add Add Product Product Stock 33 Build Build Data Data BooleanMatrex BooleanMatrex 11 Set Set Password Password User 44 Describe Describe Alias Alias Xml 11 4 予備実験 目的 内容 動詞-目的語の取得が上手く働くかどうかの確認 手法の調整 提案手法による動詞-目的語の取得 対象 様々なドメインの11個のソフトウェア agilewiki, atunes, client-java, erlide, jabref, jmri, iquibase, matrex, nekohtml, Sqlexplorer, zkforge 5 実験結果と考察 得られた動詞-目的語の例 Set – Password – User Get – Stream – Resource 知見 同一の動詞-直接目的語-間接目的語が異なるソフトウェアに出 現することは稀 単一のソフトウェア内で似通った命名が出現 総数 : 14501 複数で出現 : 68 Ex. 動詞 : Add 直接目的語 : 形容詞+Consist 考察 解析対象のソフトウェアのドメインを絞れば,ドメイン特有の命名 が得られるのではないか 解析するアプリケーションを増やすことで,Javaプログラムにおけ る一般的な命名を得ることができるのではないか 6
© Copyright 2024 ExpyDoc