2017 Fiscal Year Annual Research Report
ソフトウェア開発プロセスの効率化を目的とした自動コードレビューモデルの提案
Project/Area Number |
17J09333
|
Research Institution | Nara Institute of Science and Technology |
Principal Investigator |
平尾 俊貴 奈良先端科学技術大学院大学, 情報科学研究科, 特別研究員(DC1)
|
Project Period (FY) |
2017-04-26 – 2020-03-31
|
Keywords | コードレビュー / 評価プロセス / ソフトウェア開発 / ソースコード |
Outline of Annual Research Achievements |
当該研究員は,平成29年度の研究計画を遂行するために必要となる,ソフトウェア開発プロジェクトの開発履歴が記録されたデータの収集および整形に取り組んだ.当実験用データは本年度で既に収集が完了しており,当実験データを基に2つの研究テーマに着手した.1つ目は,コードレビューの効率化に向けた,開発者がソースコードを精読してソフトウェアの品質を評価するプロセス(評価プロセス)に要する時間的コスト予測モデルの設計および構築である.評価プロセスは,膨大な時間的コストを要することが先行研究で確認されており,膨大な時間的コストを要するレビューを未然に防ぐことが喫緊の課題である.本年度内に収集した実験データを用いて,当該予測モデルの性能を評価した.その実験内容及び実験結果の一部を論文にまとめ,国内ワークショップと海外論文誌にそれぞれ投稿した.2つ目は,コードレビューの評価プロセスにおいて,開発者間で議論される評価内容の実証的分析であり,2017年11月からMcGill大学(カナダ)で,当該大学に所属する共同研究者と研究を進めている.本研究テーマは,当該研究員の研究計画の一部である,開発者が議論する可能性のある評価内容を予測するモデル(レビュー評価予測モデル)の構築に向けた基礎研究である.本年度で得られた実験結果を基に,レビュー評価予測モデルの学習データを作成できるところに,本研究テーマの意義がある.本分析結果の一部は,海外論文誌にまとめて投稿した.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
本年度の一つ目の研究テーマである,評価プロセスの時間的コスト予測モデルでは,過去のコードレビューを定量的に評価できる指標を機械学習を用いて学習し,膨大な時間的コストを要する可能性があるコードレビューの予測に取り組んだ.実験対象データは,本年度に収集したソフトウェア開発プロジェクトの開発履歴データ(約179,000件のコードレビュー事例)であり,大規模な実証的検証を実施した.当該予測モデルの性能を評価した結果,適合率(Precision),再現率(Recall), 及びF値(F-measure)の観点で,提案手法が比較手法よりも予測精度が高いことを確認した.また,本実験結果から,開発者が精読するコード行数,および,開発者のレビュー経験が時間的コストに影響を与えることを統計的に確認した.本年度は,当該予測モデルの実験内容と実験結果の一部を論文にまとめ,国内ワークショプと海外論文誌に投稿した. 評価プロセスでは,開発者間で意見が衝突して議論が複雑化することがあり,時間的コストの肥大化を招く恐れがある.本年度の二つ目の研究テーマでは,開発者間で意見が衝突する要因を分析し,意見の衝突を解決する方法を明らかにする.コードレビュー事例約50,000件を基に分析した結果,開発者間で意見が衝突したレビューは,レビュー全体の15-37%を占めることを確認した.その意見が衝突した事例の中で,外的要因(他プロジェクト間との相互関係)が頻繁に意見の衝突を招くことを確認した.外的要因の例として,他のプロジェクトに属するレビューとの依存関係について,意見が衝突したケースを確認した.外的要因で発生した意見の衝突は,ソースコードを修正せずに,開発者間の議論で合意を形成する傾向にあることを確認した.本年度は,当該実験の結果の一部を海外論文誌にまとめて投稿した.
|
Strategy for Future Research Activity |
一つ目の研究テーマは,評価プロセスの時間的コストが肥大化する可能性の有無を予測するモデルを構築した.次年度では,様々なソフトウェア開発プロジェクトの特徴を考慮した予測モデルの構築に取り組み,より汎用性の高い予測モデルを提案する方針である.また,より詳細な時間的コストの予測内容へと発展させるため,時間的コストの自動見積もりに取り組む方針である.当自動見積もりモデルの性能評価を来年度に実施する予定である.本研究テーマで得られる成果の一部を論文にまとめ,国際会議もしくは海外論文誌へ投稿する予定である. 二つ目の研究テーマでは,開発者間で意見が衝突する要因と意見の衝突を解決した事例の分析結果を基に,他のソフトウェア開発プロジェクトでも同様の検証を実施して,本実験結果の一般性を高める方針である.また,意見の衝突が解決されるまでに要する時間的コストを各要因ごとに分析する.そして,これらの分析内容を基に,意見衝突の要因の特徴を機械的に学習できる方法を考案して意見衝突が発生する可能性のあるレビューの予測,および意見の衝突を自動的に解決する方法の考案を目標とする.意見衝突が発生する可能性のあるレビューの予測についても,様々なソフトウェア開発プロジェクトのコードレビュー履歴を用いて,その性能評価に取り組む予定である.本研究テーマで得られる成果の一部を論文にまとめ,国際会議もしくは海外論文誌へ投稿する予定である.
|