データマイニングと機械学習を用いたソフトウェア開発の効率化手法の研究(水野修 教授、崔恩瀞 准教授)

2021年11月

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

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

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

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

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

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

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

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

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

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

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

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

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

研究者プロフィール

水野修 教授

みずの おさむ

崔恩瀞 准教授

CHOI EUNJONG

主な発表論文・関連特許

深層学習によるソースコードコミットからの不具合混入予測

著者名 : 近藤 将成、森 啓太, 水野 修, 崔 銀惠
掲載誌名 : 情報処理学会論文誌
出版年月 : 2018年04月
巻・号・頁 : 59(4), pp. 1250-1261

Code Cloning in Smart Contracts: a Case Study on Verified Contracts from the Ethereum Blockchain Platform

著者名 : Masanari Kondo, Gustavo A. Oliva, Zhen M. Jiang, Ahmed E. Hassan, and Osamu Mizuno
掲載誌名 : Empirical Software Engineering
出版年月 : 2020年
巻・号・頁 : 25(6), 4617–4675

Log-Based Anomaly Detection of CPS Using a Statistical Method

著者名 : Yoshiyuki Harada, Yoriyuki Yamagata, Osamu Mizuno, and Eun-Hye Choi
掲載誌名 : In Proc. of the 8th IEEE International Workshop on Empirical Software Engineering in Practice (IWESEP2017)
出版年月 : 2017年03月
巻・号・頁 : pp. 1-6

Javaテストコードの再利用による自動生成に向けた移植可能なテストメソッドの調査

著者名 : 西浦 生成, 水野 修, 崔 恩瀞
掲載誌名 : 情報処理学会論文誌
出版年月 : 2021年04月
巻・号・頁 : 62(4), pp. 1019-1028

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

著者名 : 藤原 裕士, 崔 恩瀞, 吉田 則裕, 井上 克郎
掲載誌名 : 電子情報通信学会論文誌D
出版年月 : 2021年08月
巻・号・頁 : J104-D(08), pp.622-635