ページトップへ戻る

ソフトウェア開発の支援に関する研究

情報システム学科 
講師 本田 澄

本田 澄
2022.09.01
  • 1. 予期せぬ状況の把握

    1. 予期せぬ状況の把握

  • 2. 過去プロジェクトを利用した予測モデル

    2. 過去プロジェクトを利用した予測モデル

ソフトウェアやシステムの開発では様々な要因のため、思い通りに進まないことが多いです。このようなソフトウェア開発について、開発の進み具合をモニタリングする方法や、開発中に発生する問題を予測することを支援する方法等を研究しています。そのために様々な企業やオープンソースソフトウェアの開発に関するデータを収集し分析しています。この研究を行うことで現在困難とされている開発スケジュールの決定に役立つと考えられます。

ここではソフトウェア開発の支援に関する研究成果の一部を紹介します。


1. 予期せぬ状況の把握

発見された欠陥やバグをテスト工程ごとに分類し、それぞれの工程でどれだけ欠陥やバグが発生するかを予測し、開発の異変を検知します。ソフトウェア開発では、発生する欠陥やバグの情報を収集し、なぜ欠陥やバグが増えたのか、個々の欠陥やバグに関係性があるのかなど、開発の現場ではさまざまな分析を実施しています。しかし、欠陥が急激に増えることを予見することは簡単ではありません。そこで、ソフトウェア信頼度成長モデルという予測モデルを利用することで急激な変化を予見する方法を考え、実証実験を行いました。

[1]K. Honda et al., "Detection of unexpected situations by applying software reliability growth models to test phases," 2015 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), 2015, pp. 2-5.


2. 過去プロジェクトを利用した予測モデル

過去に開発したプロジェクトの開発データを分析し、新たなプロジェクトの開発の進み具合を予測するモデルを開発しました。開発の進み具合を正確に判断することは難しいです。そこで、過去に開発した実績を利用して、今の進み具合がどうか、判断できる基準となるモデルの構築をしました。基準となるモデルと比較して開発することで、プロジェクトの進み具合や問題が分かるようになります。基準を上回っていると「欠陥が多く出すぎているから今後ももっと出るのでは?」といった気づきや、基準を下回っていると「テストの内容が良くないかもしれない。テスト内容をチェックしなおそう」といった改善につなげることができます。

[2]K. Honda et al., "Case Study: Project Management Using Cross Project Software Reliability Growth Model Considering System Scale," 2016 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), 2016, pp. 41-44.


3. コードスメルの検出と修正

過去のプロジェクトに存在したコードスメル(問題が起きるかもしれないソースコード)がどのようにして修正されているかについて調査しました。そもそも多くの方が利用されているソフトウェアに、どの程度コードスメルが存在するのか?という疑問から研究を始めました。そこでオープンソースソフトウェアを対象に、Apacheという組織が開発している5つのプロジェクトに対してコードスメルをSonarQubeというツールを利用して分析しました。分析結果として一つのプロジェクトを例に出すとおよそ6000個のコードスメルが見つかりました。このように普段利用しているソフトウェアにもコードスメルが存在し、問題につながる可能性が十分に存在しています。そこで、このコードスメルを検出し修正する方法を検討するために、どういったコードスメルが修正されているかを調査し、修正しやすいコードスメルを見つけることで自動でコードスメルを修正できるかどうか検討しています。

[3]本田澄, 西尾達哉, 鷲崎弘宜, 深澤良彰. "オープンソースソフトウェアにおける Code Smell と対応するリファクタリングの特徴に関する調査," ソフトウェアエンジニアリングシンポジウム 2021 論文集, 2021, 226-234.