Document

メソッド名に用いられる
動詞-目的語関係の辞書作成に
むけて
大阪大学基礎工学部情報科学科
鹿島 悠
大阪大学情報科学研究科
早瀬 康裕, 井上 克郎
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