情報処理学会論文誌

Vol.56 No.9 1900–1904 (Sep. 2015)

テクニカルノートJava メソッドの動作を表現する動詞の自動推薦手法の評価
柏原 由紀1,a)

石尾 隆1,b)

井上 克郎1,c)

受付日 2015年3月23日, 採録日 2015年5月9日

概要：Java のメソッドの命名を支援するために，メソッドの動作を適切に表現するような動詞の候補を自動的に推薦する手法が提案されている．しかし，既存研究の評価は推薦結果の正確さだけを基準に行われており，実際に開発者が推薦結果を見て適切な動詞を選択できるかどうかは評価されていなかった．本研究では，メソッドの内容と動詞のリストを被験者に提示し，メソッドの動作を表現する動詞を解答してもらう実験を行った．その結果，開発者が提示された動詞の候補から適切な動詞を選択できることを確認した．
キーワード：識別子，メソッドの命名，Java

Evaluation of Recommendation of Action Verbs for Java Method
Yuki Kashiwabara1,a)Takashi Ishio1,b)Katsuro Inoue1,c)Received: March 23, 2015, Accepted: May 9, 2015

Abstract: To support method naming for Java, there exists recommendation systems that automaticallyextract candidates of verbs representing method actions. Those systems are evaluated by the correctnessof recommended verbs; there still be a question whether developers can recognize an appropriate verb in arecommendation list or not. In this research, we provided a method content and a list of verbs to humansubjects, and asked them to describe the behavior of the method by a single verb. The result shows thatdevelopers can recognize appropriate verbs in a recommendation list.
Keywords: identifiers, method naming, Java

1. はじめにあり [4]，既存の使用方法と大きく異なるような動詞の使用は命名誤り（Naming Bug）であると主張されている [5]．

ソースコードにおける識別子は，開発者にとって重要な開発者が適切な動詞を選択してメソッドの命名を行える情報源である．保守作業において作業対象を特定する手がようにするために，我々の研究グループでは，メソッド名かりの 1 つであるといわれている [1] ほか，識別子がそのに用いる動詞の候補リストを提示する手法を提案した [6]．

役割を適切に表現していないようなソースコードの理解にこの手法は，相関ルールマイニング [7] を用いて既存のソーは時間がかかることが知られている [2]．

スコードからメソッド本体の内容とメソッド名に含まれるオブジェクト指向プログラミング，たとえば Java にお動詞の関係を抽出しておき，開発者から与えられたメソッ

いては，メソッド名は一般に，その動作と対象を表すようドの内容に対して使用される可能性が高い動詞をランキンに動詞や名詞などを組み合わせて命名される [3]．フィー

グ形式で推薦する．同種の研究としては，Yu ら [8] による

ルドに対する読み書きであれば get や set を使用するといサポートベクターマシン（SVM）を使用した動詞の推薦手うように，メソッドが行う処理と動詞との間には関連性が法が存在している．

1

ことから，既存のソースコードに付与されたメソッド名や，動詞を推薦する手法の評価は，命名誤りの数が少ない [5]a)
b)
c)

大阪大学
Osaka University, Suita, Osaka 565–0871, Japank-yuki@ist.osaka-u.ac.jp
ishio@ist.osaka-u.ac.jp
inoue@ist.osaka-u.ac.jp

c 2015 Information Processing Society of Japan

ソースコードの改版履歴から抽出した名前の変更を正解と見なした推薦の正確さによって行われている [6]．その一1900情報処理学会論文誌

Vol.56 No.9 1900–1904 (Sep. 2015)

方で，開発者が正解を提示されたとしても，それを実際に個のオープンソースソフトウェアのバイナリファイル集合活用できるかどうかは確認されていなかった．

から相関ルールを抽出して使用した．課題の作成元とする

本研究では，メソッドの内容と動詞の候補リストを与え

ソフトウェアは，学習セットに含まれていないソフトウェられたときに，被験者がそのメソッドに適切な動詞を選択

アから，BlueJ，OrderPortal，Saxon-HE，NeoDatis の 4できるのかを評価する実験を行い，候補リストの情報と被つを選択した．これらは，Hayase ら [9] によるとそれぞれ験者の正答数との関係を調査した．

デスクトップアプリケーション，Web アプリケーション，

以降，2 章では評価実験について説明する．3 章で妥当性の脅威について議論した後，4 章でまとめと今後の課題について述べる．

2. 評価実験

XML 処理，データベースという異なるドメインに所属している．
各ソフトウェアから 3 つずつメソッドを選択し，12 の課題とした．我々の既存手法はランキング形式で動詞を列挙することから，上位 5 件だけを開発者に提示するという使本研究では，動詞の候補が推薦されたとき開発者が適切用法を仮定し，既存手法を実際に適用したときに正解の動な動詞を選択できるかを評価する．実験の設計方針は，以詞が 1 位に出ていたメソッド，3 位に出ていたメソッド，5下の 2 点である．

位に出ていたメソッド，5 位以内に含まれなかったメソッ• 動詞の推薦あり，推薦なしの 2 つの状態での差を調査する．命名誤りと検出されるメソッドの数は少ない [5]ことから，開発者は既存手法による支援がなくても，多くの場合は適切な動詞を選択できると考えられるためである．

ドをそれぞれ 3 つずつとなるように選んだ．選定には，以下の基準を用いた．

• 動詞の選択が目的語に影響されないように，メソッド名が動詞 1 単語からなるもの．

• 被験者の負担が大きくなりすぎないように，メソッド• 正解が含まれないリストが与えられた場合の影響を調内部の命令が 5 行以上かつ 15 行以下であるもの．

査する．これは，既存手法 [6], [8] がつねに正解を提供• 継承関係による影響のない（オーバライドではない）できるわけではないためである．
この方針に従って，以下の 3 つのリサーチクエスチョン

もの．
各プロジェクトから 1 課題ずつ，正解の動詞が提示されを設定した．

る位置がそれぞれ異なるように選び出したものを 1 セット

RQ1：正解を含む動詞の候補リストだけが与えられるととし，4 課題ずつの 3 セットに分割した．正解が出現した

き，開発者は適切なメソッド名の動詞を選択できるか．

順位によってメソッドを選択しているが，動詞のリストはRQ2：正解を含まない動詞の候補リストが与えられる場

いずれも既存手法で実際に提示されるものをそのまま使用

合があるとき，開発者は適切なメソッド名の動詞を選択できるか．

RQ3：候補リストがあるとき，開発者が動詞を選ぶのにかかる時間は変化するか．

している．
課題 1 つにつき被験者に与えられるメソッドに関する情報は，メソッド名を空欄としたメソッド本体に加えて，メソッドが定義されているクラス名，その親クラス名およびインタフェース名，メソッド本体でアクセスしている

2.1 実験方法

フィールドの定義である．パッケージのインポート文や，本実験では，被験者に，名前が付けられていない状態のメソッド本体でアクセスされていないフィールドの定義，メソッドのソースコードを与え，その中身を読解し，動作課題となるメソッド以外のメソッド，課題となるメソッドを適切に表現すると思われる動詞を解答するという課題

内外に記述されているコメントは削除した．これは，課題を実施してもらった．実験対象として選択したメソッドのとなるメソッド本体の動作を表す動詞を推測することを目「適切な動詞」は，文献 [6], [8] と同様に，そのメソッドに的としており，使用法からの判断を避けるためである．ま現在使われている動詞であるとした．つまり，メソッドのた，メソッド内のコメントを削除するのは，課題ごとのコ名前が隠された状態から，その名前を解答できれば正解とメントの有無が結果に影響を与える可能性を排除するためした．

である．作成した課題の 1 つを図 1 に示す．

2.1.1 課題内容

2.1.2 実施手順

課題の作成にあたっては，我々の既存手法 [6] を拡張し被験者は，大阪大学基礎工学部情報科学科の学部 4 年生たものを使用した．既存手法ではソースコードからの学3 人と，大阪大学大学院情報科学研究科コンピュータサイ習を行っていたが，バイトコードからの学習を可能とし，エンス専攻博士前期課程の大学院生 9 人の計 12 人である．

Qualitas Corpas *1 バージョン 20130901 に収録された 112

いずれもソフトウェア工学講座に所属しており，Java プロ
グラミングについて最短 1 年，最長 5 年の経験がある．

*1

http://qualitascorpus.com/

c 2015 Information Processing Society of Japan

1 人の被験者には 2 セットの課題を均等になるように割1901

情報処理学会論文誌

Vol.56 No.9 1900–1904 (Sep. 2015)

表 1 正解の動詞が提示されている順位と被験者が選択した動詞の順位の関係

Table 1 Relationship between ranks of correct verbs and selected verbs.
リスト内での候補リストありでの解答のリスト内での順位

正解の順位

1位

2位

3位

4位

5位

リスト外

リストあり

正答数
リストなし

1位

110

100011 / 1210 / 12

3位

0280

1

18 / 124 / 12

5位

0

140

707 / 124 / 12

リスト外

20

10

182 / 127 / 12

表 2

候補リスト内に正解が含まれている場合の解答の正確さ

Table 2 Correctness of answers for recommendation lists
including correct verbs.
正解

不正解

合計

候補リストあり

261036

候補リストなし

181836

合計

442872

動詞が提示されている順位，列は被験者が選んだ動詞が提示されている順位を表しており．たとえば，1 位に正解が提示されているリストに対しては，1 位に提示されている
図 1write メソッドから作成された課題の例

Fig. 1 An exmaple task made of a write method.

動詞が解答されたのが 11 件，3 位に提示されている動詞が解答されたのが 1 件であった．また，表の右端の列に被験者の正答数を示しており，これらの動詞に対してはリスり当てる．被験者はそのうち 1 セットを動詞の候補リスト

トありでの 12 件の解答のうち 11 件，リストなしでの 12がある状態で，もう片方を動詞の候補リストがない状態で件の解答のうちの 10 件が正解であったことを示している．

解く．被験者 12 人のうち，6 人は先に動詞の候補リストが候補リストの 3 位，5 位に正解が提示されている場合は，ある 1 セットを，残り 6 人は先に動詞の候補リストがないリストを用いた場合の正答数がリストを用いない場合を上

1 セットを解いてもらった．1 セット内での課題の順番は，回った．これらのメソッドは，被験者にとって判断が難し同一順序で課題を割り当てられている被験者はいないようく，動詞の推薦が有効に働いたと考えられる．候補リストに割り当てた．1 人の被験者が受け取る 8 つの課題の状態に正解がなかった場合は，12 件中 8 件でリスト外の動詞がをまとめると，以下のとおりである．

解答されているが，正しい動詞が解答されたのは 2 件だけ• 動詞の候補リストが与えられた 4 課題．正解の動詞をである．リストに適切な動詞がないことを認識するのは容1 位，3 位，5 位に提示するリストと，正解を含まない易であるが，それが判断に何らかの影響を与えている可能リストを 1 つずつ用いる．

性がある．

• 動詞の候補リストが与えられない 4 課題．

2.2.1 RQ1：正解を含むリストだけが与えられる場合

実験は，被験者が 1 つの部屋に集合した状態で，紙を用

表 1 の結果から候補リストに正解の動詞が含まれているいて実施した．課題の説明文 1 ページと，8 つの課題各 1場合の正答数を集計した結果を表 2 に示す．この表に対ページ，Java の開発経験などを問うアンケート 1 ページかしてフィッシャーの正確確率検定を適用し，候補リストのらなる問題用紙を渡し，5 分間の説明ののち，各課題に順有無が正答数に有意な差をもたらしているかどうかを調べに解答してもらった．解答方法は動詞を解答欄に記述するた．その結果，p = 0.045 となり，有意水準 α = 0.05 で有形であり，課題に解答して次の課題に進んだ後の解答の修意な差があったといえる．このことから，動詞の推薦が正正は許さなかった．時間制限は特に定めなかったが，解答しく行われていれば，開発者が正しい判断を行える可能性の様子はビデオカメラで撮影し，問題用紙のページをめくが向上することが分かる．

る間隔を各課題に要した時間として計測した．

2.2.2 RQ2：正解を含まないリストが与えられる場合

2.2 実験結果の結果まで含めて集計したものを表 3 に示す．候補リス解答された動詞の正答数を，正解を含まない候補リスト
正解が提示されている順位が異なる候補リストが与えらトがある場合のほうが被験者が正解を選んでいる数が多い

れたとき，被験者がどの順位の，あるいはリスト外の動詞が，正答数に差がないという帰無仮説に対してカイ二乗検を解答したかを集計したものを表 1 に示す．行は正解の定を行うと p = 0.54 となり，有意な差ではなかった．メ

c 2015 Information Processing Society of Japan


1902

Vol.56 No.9 1900–1904 (Sep. 2015)

情報処理学会論文誌

表 3

すべての候補リストを含めた場合の解答の正確さ

Table 3 Correctness of answers for all the recommendation
lists.

究では評価していない．
本実験では被験者の所属がソフトウェア工学講座に限られている．また，RQ1 の検定では，カイ二乗検定に必要正解

不正解

合計候補リストあり

282048

候補リストなし

252348

合計

4848

96

な標本数（G*Power3 *2 で 2 × 2 の分割表において効果量0.3，有意水準 0.05，検定力 0.8 の場合を計算すると 88 標本）に満たなかったためフィッシャーの正確確率検定を用いた．被験者を増やして検定を行うと結果が変わるかもしれない．

表 4 課題にかかった時間の統計的な指標値

Table 4 Statistics of time spent for tasks.

4. まとめ

平均値

中央値

標準偏差

変動係数

候補リストあり

190 秒

187 秒

72 秒

0.38

本研究では，動詞の候補リストが推薦されたときに開発候補リストなし

214 秒

185 秒

112 秒

0.53

者が適切な動詞を選択できるかどうかについて調査した．
その結果，開発者は候補リストに正解が提示されているとソッドに対して適切な動詞を選択できるようにするには，き，候補リストがないときよりも正解の動詞を選択できる

75%のメソッドに対して正解の動詞を 5 位以内に出せるとが，候補リストに正解が含まれない場合まで考慮すると有いう正確さでは不十分であったと考えられる．

意差はなかった．このことから，動詞の候補を推薦する手法自体は有効に働くが，その正確さが非常に重要であると

2.3 RQ3：開発者が動詞を選ぶのにかかる時間いえる．

候補リストの提示がある場合とない場合で，解答にかか今後の課題として，正確に動詞の候補を推薦できる手法

る時間に差があるのかを調査した．候補リストがある場の構築と，より現実のソフトウェア開発に近い作業，特に合とない場合の解答時間の統計的な指標値を表 4 に示す．

メソッドの名前変更作業を課題とし，複数の正解がありう全体として，解答にそれほど多くの時間は費やされていなることを考慮しての被験者実験の実施があげられる．

かった．候補リストがあるほうが解答時間のばらつきが少ないことから，被験者が動詞の選択に悩んだときに，適切謝辞 本研究は，科研費（課題番号 2522003，26280021）の助成を得たものである．

な動詞の候補を検討する助けになったと考えられる．

3. 妥当性への脅威

参考文献
[1]

本研究では，実験の設計上，「適切な動詞」の正解をただ 1 つと仮定した．既存研究でも同様の仮定が用いられているが，類義語など，明確な誤りとはいえない動詞が複数[2]存在することから，既存手法の効果を実際よりも低く見積もっている可能性がある．

[3]

現在の動詞が与えられておらず動詞を推測するという課
題は，メソッド抽出リファクタリングのようにメソッドに[4]含めたい処理内容が先に定まっている状態に相当する．メ
ソッドの名前変更リファクタリングでは，適切な候補がな[5]いときに現状を維持するという選択肢をとることも可能で[6]あることから，本実験における「不正解」がただちに命名誤りにつながるとは限らない．また，本研究における実験
では被験者が知らないメソッドを課題としたが，実際の開発環境では開発者は周辺のメソッドとの呼び出し関係やそ[7]のメソッドの役割について知っている可能性が高い．より現実のソフトウェア開発に近い形での実験は，今後の課題[8]である．
本研究では，候補リストとして上位 5 件という想定をおき，順位づけされたリストを用いた．上位 10 件，20 件というように，提示する個数や提示方法による影響は，本研*2[9]De Lucia, A., Di Penta, M., Oliveto, R., Panichella, A.
and Panichella, S.: Using IR Methods for Labeling Source
Code Artifacts: Is It Worthwhile?, Proc. ICPC, pp.193–
202 (2012).
Lawrie, D., Morrell, C., Feild, H. and Binkley, D.: What’sin a Name? A Study of Identifiers, Proc. ICPC, pp.3–12(2006).
McConnell, S.: Code Complete, Second Edition, Microsoft Press (2004).
Høst, E.W. and Østvold, B.M.: The Programmer’s Lexicon, Volume I: The Verbs, Proc. SCAM, pp.193–202(2007).
Høst, E.W. and Østvold, B.M.: Debugging MethodNames, Proc. ECOOP, pp.294–317 (2009).
Kashiwabara, Y., Ishio, T., Hata, H. and Inoue, K.:
Method Verb Recommendation Using Association Rule
Mining in a Set of Existing Projects, IEICE Trans. Information and Systems, Vol.E98-D, No.3, pp.627–636(2015).
Agrawal, R., Imielinski, T. and Swami, A.: Mining Association Rules between Sets of Items in Large Databases,Proc. SIGMOD, pp.207–216 (1993).
Yu, S., Zhang, R. and Guan, J.: Properly and Automatically Naming Java Methods: A Machine Learning BasedApproach, Advanced Data Mining and Applications, Lecture Notes in Artificial Intelligence, Vol.7713, pp.235–246,
Springer Berlin Heidelberg (2012).
Hayase, Y., Kashima, Y., Manabe, Y. and Inoue, K.:
Building Domain Specific Dictionaries of Verb-Object Re-

http://www.gpower.hhu.de/c 2015 Information Processing Society of Japan


1903

情報処理学会論文誌

Vol.56 No.9 1900–1904 (Sep. 2015)

lation from Source Code, Proc. CSMR, pp.93–100 (2011).

柏原 由紀
2012 年大阪大学基礎工学部情報科学科卒業．2014 年同大学大学院情報科学研究科博士前期課程修了．同年株式会社エヌ・ティ・ティ・データ入社．
在学中，ソフトウェアの可読性とリファクタリングに関する研究に従事．

石尾 隆 （正会員）
2003 年大阪大学大学院基礎工学研究科博士前期課程修了．2006 年同大学
院情報科学研究科博士後期課程修了．
同年日本学術振興会特別研究員（PD）．

2007 年大阪大学大学院情報科学研究科コンピュータサイエンス専攻助教．
博士（情報科学）．プログラム解析，プログラム理解に関する研究に従事．

井上 克郎 （フェロー）
1956 年生．1979 年大阪大学基礎工学部情報工学科卒業．1984 年同大学大学院博士課程修了．同年同大学基礎工学部助手．1984〜1986 年ハワイ大学
マノア校情報工学科助教授．1989 年
大阪大学基礎工学部講師．1991 年同助教授．1995 年同教授．2002 年大阪大学大学院情報科学研究科教授．2012 年同大学院情報科学研究科・研究科長．
工学博士．ソフトウェア工学，特に，ソフトウェア開発手法，プログラム解析，再利用技術の研究に従事．

c 2015 Information Processing Society of Japan1904