2014年10月30日吉田 則裕 准教授(附属組込みシステム研究センター)2014/4/1着任

2014年4月に着任しました吉田 則裕です。私は大学院生時代からソフトウェア工学を専門としていまして、主にソースコード解析技術を応用したソフトウェア開発支援手法の研究に取り組んでいます。

長期にわたって運用される大規模ソフトウェアが増加したことから、保守作業の効率化が重要な課題として取り上げられるようになってきています。大規模なソースコードの保守にかかる労力を軽減するために、私はソースコード解析を応用した様々な手法を提案してきました。以下に、最近行なっている研究を2つ挙げます。

1. コードクローンの管理支援手法とその実プロジェクトへの適用

ソースコード中のコードクローン(重複コード)は、保守作業を困難にする要因の1つとされ、数多くのコードクローン検出手法が提案されてきました。しかし、産業界で開発されている大規模ソフトウェアには、膨大なコードクローンが含まれており、全コードクローンを閲覧することは現実的ではありません。

そこで、新しく作られたコードクローンや変更が加えられたコードクローンを定期的に報告するシステムを開発しました(図1)。本システムを企業の開発プロジェクトにて運用したところ、実際に提示したコードクローンが1つに集約されるなど、保守作業の支援を行うことができました。

  • 図1 コードクローン変更管理システム
    図1 コードクローン変更管理システム

2. リファクタリング支援ツールの開発

リファクタリングとは、ソフトウェアの動作を変えることなく、保守性の改善を目的としてソースコードを書き換えるプロセスのことを指します。Eclipse等の統合開発環境はリファクタリング支援機能として、ソースコードの自動変換機能を提供するが、統合開発環境の内部で定義されているパターンに従った自動変換しかできないため、ユーザの要求にあったソースコードに変換することが困難です。

そこで、ユーザが大まかに変換方法を指定すると、要求にあった変換方法を提示する研究を行なっています。図2は、私が中心となって開発したリファクタリング支援ツールの概要です。このツールは、Java言語で記述された類似メソッドの対を1つにまとめるコード変換の支援を目的としています。このツールは、類似メソッドの対が与えられると、その2つの類似メソッド間の差分を基に可能なコード変換の候補を差出し、凝集度が向上する順にコード変換の順位付けを行います。

  • 図2 類似メソッドを対象としたリファクタリング支援ツール
    図2 類似メソッドを対象としたリファクタリング支援ツール

▲このページのトップへ