注目研究の紹介 2021年11月

本学の注目研究を毎月1つずつ紹介します。

 【2021年11月】
  データマイニングと機械学習を用いたソフトウェア開発の効率化手法の研究
  (情報工学・人間科学系 水野 修 教授、崔 恩瀞 助教)

※最新の注目研究や他のバックナンバーはこちら

データマイニングと機械学習を用いた
ソフトウェア開発の効率化手法の研究

 私たちの研究グループ(ソフトフェア工学研究室)では、データマイニング技術と機械学習技術を用いてソフトウェアの様々な側面を分析し、ソフトウェア開発における品質・生産性の向上を目指しています。具体的には、ソフトウェア開発の履歴や不具合の修正記録を格納するソフトウェアリポジトリから、品質や生産性に関わる特徴量を抽出し、機械学習モデルによって不具合の予測などを行う手法の提案をしています。また、IoT技術やサイバーフィジカルシステムの分析にも力を入れています。

深層学習モデルを用いたソースコードテキストからの不具合推定技術の開発

図1

 本研究では、ソースコードをテキストベクトルとして扱い、不具合の混入していたコードと混入していないコードでの違いを畳み込みニューラルネットワーク(CNN)に学習させることで、不具合の予測が可能なモデルを作成しました。予測の単位はソフトウェアリポジトリの「コミット」としたため、リポジトリにコミットを登録する時点で自動的にこの手法を実行して不具合の予測精度を提示することが可能になります。従来の予測手法との比較実験の結果、優れた不具合混入コミットの特定が可能となることを示しました。

ブロックチェーンにおけるコードクローンの検出

図2

 近年、ブロックチェーンの1つであるEthereumに注目が集まっています。最大の特徴はスマートコントラクトという、ブロックチェーンを利用して実装されたプログラムです。このスマートコントラクトは便利な反面、品質の維持が必要であり、低品質なスマートコントラクトはセキュリティ上の問題を発生させる可能性があります。この研究では、ソフトウェア工学の観点から、スマートコントラクトのコードの品質を分析しています。

サイバーフィジカルシステムにおけるログ解析による異常状態の推定手法の開発

図4
サイバーフィジカル水槽管理システム「あくあたん」
サイバーフィジカル水槽管理システム「あくあたん」

 本研究では、ソフトウェア工学研究室において稼働しているサイバーフィジカル水槽管理システム「あくあたん」を例に、サイバーフィジカルシステムにおける異常状態の自動検出を試みました。サイバーフィジカルシステムが常時出力しているログを教師無しモデルにより解析し、外れ値を検出しました。外れ値を検出した時点の周辺での実際の異常状態と紐付けることにより、外れ値検出が異常状態に関連することを確認しました。

Javaテストコードの自動生成技術の開発

図4

 本研究では新たなJavaテストコード自動生成技術の開発に向け、その第一歩として、あるテストメソッドを実行可能性を保ちつつ自動的に移植する手法およびそれが可能となる条件を定義しました。また、オープンソースのJava プロジェクトを調査し、テストコードの再利用元として使用できるリポジトリが1,862 件存在することや、大半のテストメソッドはテスト対象コードに高々2つの依存を持つこと、そうした依存関係を保つ移植によって本来必要なテストメソッドの平均83%を生成できる可能性を実証的に示しました。

深層学習を用いたソースコード分類手法の比較調査

図5

 本研究では、どのニューラルネットワークやソースコード表現の組み合わせが高精度なソースコード分類の実現に有効かを調査しました。具体的には、3種類のニューラルネットワークと、トークン列、抽象構文木の2種類のソースコード表現を組み合わせ、6種類のソースコード分類手法を作成し、分類精度を比較しました。その結果、LSTM (Long short-term memory)とトークン列の組み合わせが、最も高い精度のソースコード分類を実現できることがわかりました。また、深層学習を用いないソースコード分類手法の中で代表的な手法よりLSTMにトークン列を学習させる手法の精度が高いことがわかりました。

【主な発表論文】

  • 近藤 将成、森 啓太, 水野 修, 崔 銀惠, “深層学習によるソースコードコミットからの不具合混入予測,” 情報処理学会論文誌, 59(4), pp. 1250-1261, 2018年4月.
  • Masanari Kondo, Gustavo A. Oliva, Zhen M. Jiang, Ahmed E. Hassan, and Osamu Mizuno, “Code Cloning in Smart Contracts: a Case Study on Verified Contracts from the Ethereum Blockchain Platform,” Empirical Software Engineering, 25(6), 4617–4675, 2020.
  • Yoshiyuki Harada, Yoriyuki Yamagata, Osamu Mizuno, and Eun-Hye Choi, “Log-Based Anomaly Detection of CPS Using a Statistical Method,” In Proc. of the 8th IEEE International Workshop on Empirical Software Engineering in Practice (IWESEP2017), pp. 1-6, March 2017.
  • 西浦 生成, 水野 修, 崔 恩瀞, “Javaテストコードの再利用による自動生成に向けた移植可能なテストメソッドの調査,” 情報処理学会論文誌, 62(4), pp. 1019-1028, 2021年4月.
  • 藤原 裕士, 崔 恩瀞, 吉田 則裕, 井上 克郎, “深層学習を用いたソースコード分類手法の比較調査”, 電子情報通信学会論文誌D, J104-D(08), pp.622-635, Aug. 2021.

※最新の注目研究や他のバックナンバーはこちら