Skip to main content
QUICK REVIEW

[論文レビュー] DeepSoft: A vision for a deep model of software

Hoa Khanh Dam, Truyen Tran|arXiv (Cornell University)|Jul 30, 2016
Software Engineering Research参考文献 15被引用数 4
ひとこと要約

DeepSoftは、手動による特徴工学を必要とせず、ソフトウェアの進化をモデル化するエンド・ツー・エンドのディープラーニングフレームワークを提案する。LSTMネットワークを用いて、イシューの解決、コード変更、開発者活動における長期的な時系列的依存関係を捉え、リスク予測、コードパッチの推奨、リリース計画支援を可能にし、ソフトウェアアナリティクスにおける汎用的でスケーラブルなアプローチを提供する。

ABSTRACT

Although software analytics has experienced rapid growth as a research area, it has not yet reached its full potential for wide industrial adoption. Most of the existing work in software analytics still relies heavily on costly manual feature engineering processes, and they mainly address the traditional classification problems, as opposed to predicting future events. We present a vision for \emph{DeepSoft}, an \emph{end-to-end} generic framework for modeling software and its development process to predict future risks and recommend interventions. DeepSoft, partly inspired by human memory, is built upon the powerful deep learning-based Long Short Term Memory architecture that is capable of learning long-term temporal dependencies that occur in software evolution. Such deep learned patterns of software can be used to address a range of challenging problems such as code and task recommendation and prediction. DeepSoft provides a new approach for research into modeling of source code, risk prediction and mitigation, developer modeling, and automatically generating code patches from bug reports.

研究の動機と目的

  • ソフトウェアアナリティクスにおける手動による特徴工学の限界を解決すること。これは時間のかかる作業であり、プロジェクトに依存する上、一般化が難しい。
  • イシューの説明、コードパッチ、開発者履歴といった生のソフトウェア工学データから、手作業で作成された指標に依存せずにエンド・ツー・エンドの学習を可能にすること。
  • ソフトウェア進化における長期的な時系列的依存関係をモデル化し、遅延リリースやバグの導入といった将来のリスクや出来事の予測を支援すること。
  • 欠陥予測、コード推薦、リリース計画といった多様なソフトウェア工学タスクを統合するフレームワークを提供すること。
  • 高度な推論を可能にするソフトウェアアーティファクトおよび開発者行動のディープ表現を導入すること。これには類似検索や類推学習が含まれる。

提案手法

  • イシュー、コード変更、リリースの各段階におけるソフトウェア開発イベントの系列をモデル化するため、長期的依存関係を捉える長短期記憶(LSTM)ネットワークを活用する。
  • 自然言語処理(NLP)技術、例えばword2vec、paragraph2vec、またはCNNを用いてイシューの説明を表現し、自然言語から密なベクトル表現(埋め込み)を生成する。
  • コードパッチを系列的または構造的表現としてモデル化する。コードを文字列、トークン、または抽象構文木(AST)として扱い、LSTMまたはグラフベースのCNNを用いて埋め込みを生成する。
  • 時間間隔が不規則な開発者活動の系列をモデル化するため、不規則時刻LSTMを用いる。これにより、開発者の関与度や生産性をモデル化できる。
  • 学習済みの埋め込みを用いて、イシュー、リリース、プロジェクトの各レベルで階層的表現を構築し、多スケール予測を可能にする。
  • 神経機械翻訳のインスピレーションを受けて、文脈ベクトル(イシュー説明から得る)を入力としてコードパッチを生成する、シーケンス・ツー・シーケンスモデルを訓練することでコード生成を可能にする。

実験結果

リサーチクエスチョン

  • RQ1ディープラーニングモデルは、手動による特徴工学を経ずに、生のデータからソフトウェアアーティファクト(例:イシューの説明、コードパッチ)の意味的な表現を学習できるか?
  • RQ2LSTMベースのモデルは、遅延リリースやバグの導入といった将来のリスクを予測するために、ソフトウェア進化における長期的依存関係をどの程度効果的に捉えられるか?
  • RQ3学習済みの埋め込みは、コードパッチの推奨、重複バグ検出、API推奨といった高度なタスクをサポートできるか?
  • RQ4モデルは、イシュー、リリース、プロジェクトの各レベルにおいて、ソフトウェア品質の進化と作業量推定をどの程度効果的に予測できるか?
  • RQ5開発者行動は、不規則な時系列として効果的にモデル化可能か?これにより、チームの能力推定やトリージング推奨が可能になるか?

主な発見

  • DeepSoftは、高コストでプロジェクトに依存する手動による特徴工学を排除し、生のソフトウェア工学データからのエンド・ツー・エンド学習を可能にする。
  • LSTMベースのアーキテクチャは、ソフトウェア進化における長期的時系列的依存関係を効果的にモデル化でき、遅延リリースや欠陥の導入といった将来のリスク予測を支援する。
  • イシューおよびコードパッチのベクトル表現は、類似検索、類推推論、コードトークン予測といった高度な推論タスクを可能にする。
  • 神経機械翻訳のインスピレーションを受けて、イシュー説明を入力としてコードシーケンスを生成するシーケンス・ツー・シーケンスモデルを用いることで、自動的なコードパッチ生成が可能になる。
  • 不規則時刻LSTMを用いた開発者モデリングにより、生産性、チームの能力、および履歴的なイシュー関与に基づくインテリジェントなトリージング推奨の予測が可能になる。
  • DeepSoftは、ソフトウェアシステムの深い文脈的表現を学習することで、欠陥予測から次回リリース計画まで、幅広いソフトウェア工学タスクのための汎用的で拡張可能な基盤を提供する。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。