名倉研究室
南山大学 理工学部 ソフトウェア工学科
研究内容
ソフトウェアの開発と運用保守の支援に関する研究を行っています.
ソフトウェア開発の支援に関する研究
ソフトウェアを開発する際には,いろいろと面倒な作業が発生します.
その一つとして,いつも必ず記述しなければならない定型のプログラムコードが存在することが挙げられます.たとえば Android アプリケーションのようなイベント駆動のソフトウェアでは,GUI 部品に対して取り得る操作(フリックや,タップなど)によって生じるイベントへ対応する処理を,必要に応じて記述しなければなりません.しかし,開発者があまり注目する処理でなければ,実装を忘れたり,実装を忘れなかったとしても面倒くさかったりすることもあるでしょう.
そのような場合の開発支援として,実装漏れを検出したり,定型的な実装を自動化したりできれば,開発者の開発の手間を減らせます.具体的には次のような方法を提案しました.
- 名倉正剛,他: Android アプリケーションを対象とした実装漏れメソッドの検出手法, コンピュータソフトウェア, Vol.38, No.2, pp.71-89 (2021年5月).
ソフトウェア保守の支援に関する研究
開発したソフトウェアに変更を加えたい場合,普通は開発者がソースコードを読んで理解する必要があり,ソースコードの理解が容易であるかどうかは,コードの「キレイさ」に影響を受けます.したがって一般的にソースコードが汚いと,開発者から保守を敬遠されることが多くなり,悪くすると「動いているからそのまま手を付けないで放っておいていいや」というようなソフトウェアになります.そしてそのようなソフトウェアが,いわゆる「バグ」に繋がる,ということは想像に難くないと思います.
では逆に,ソフトウェアが汚くなっていくことを検出することで,バグの発生を予測することができないものでしょうか?ソフトウェアが「キレイ」であることの基準として,コーディング規約というものがいくつか世の中に提案されています.そしてそれらに準拠しているかどうかの度合いによって,いわゆる「バグ」が発生するかどうかを予測する手法を提案しました.
- 名倉正剛,他: コーディング規約違反メトリクスに基づきソフトウェア変更に対して不具合混入を予測する手法, 情報処理学会論文誌61巻4号, pp.895-907 (2020年4月). [Note: NPO法人 ソフトウェアテスト技術振興協会から善吾賞を受賞]
また,実世界での生活のマナーのように,みんなに守られるコーディング規約や,逆にほとんどの人が守らないコーディング規約といったものはないのでしょうか?そのようなことを明らかにできれば,みんながマナーとして普通に守っているようなコーディング規約に対して,開発経験の浅い開発者が無視するようなことによってソフトウェアの品質が下がる,といったことを防止できるようになります.そこで実際にコーディング規約によって守られたり守られなかったりする傾向があることを,多くのオープンソースプロジェクトを分析して明らかにしました.
- 名倉正剛,他: OSS プロジェクトを対象にしたコーディング規約違反発生状況の分析, コンピュータソフトウェア, Vol.40, No.1, pp.57-82 (2023年1月).
ソフトウェア運用の支援に関する研究
開発したソフトウェアにより構築されたシステムを運用する際に障害が発生したときは,運用担当者と開発者が協力して障害を復旧する必要がありますが,障害の発生中はシステムが停止することになるので,停止時間(ダウンタイム)を小さくするためにはなるべく短い時間で復旧する必要があります.
障害復旧のシステム運用に要する時間の多くは,障害原因の特定に費やされると言われています.具体的な作業のひとつとして,日々の膨大なログデータから原因箇所を特定する必要があり,これには多くの作業コストが生じます.そこで,ソフトウェアにより構築されたシステムを運用する際に,障害発生時にその原因を示すログの箇所を特定するための手法を,ソフトウェア(プログラム)での不具合箇所を特定するための手法である「Spectrum-Based Fault Localization」を応用することで実現しました.
- Y. Sha, et al.: Fault Localization in Server-Side Applications Using Spectrum-Based Fault Localization, Proc of 2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) [5th Workshop on Validation, Analysis and Evolution of Software Tests (VST 2022)], pp.1128-1135 (2022年3月).
本研究室は学生募集を始めてから年数が経っておらず,上記の研究は名倉が共同研究先の企業や大学の研究協力者と実施した研究のうち,最近のものを列挙しています.他のものは,こちら(論文と国際会議,口頭発表,その他,特許)をご参照ください.
今後,指導学生との研究内容に応じて,随時更新していく予定です.