関連資料

リファクタリング技術による多様なソフトウェア開発成果物の完全化保守支援
情報理工学院・情報工学系・助教 林 晋平

長期にわたる継続的なソフトウェア開発においては、ソフトウェアの品質は次第に低下していくことが知られており、品質低下はソフトウェアの改修の困難さにつながります。これを防ぐため、ソフトウェア保守性を高い状態に維持し続けるための完全化保守が必要となり、その技術にリファクタリングがあります。リファクタリングとは、ソフトウェアの動作を変更せずに、プログラムの理解容易性や拡張容易性を向上させるプログラム変換技術のひとつであり、ソースコードの「安全な浄化」を支援します。リファクタリング技術はその重要性が認識され、すでに産業界に浸透している一方、十分に利活用されているとは言えません。適用対象が主にソースコードに限られている点や、品質低下要因のうち重要なものに絞り込む技術が欠けている点など、様々な問題が残っています。

今回東工大挑戦的研究賞の受賞対象となった提案は、これらの問題点を解決し、リファクタリング技術により開発者が真にソフトウェア品質を向上できるような計算機支援手法の開発を目指すものです。

まず、多様なソフトウェア開発成果物に対応するため、これまで主にソースコードに対して定義されていたリファクタリングの枠組みを、他のソフトウェア開発成果物をも対象に定義します(図1)。枠組みには、リファクタリングを適用すべき成果物の品質低下要因の特徴定義とその自動検出、実際のリファクタリング操作の定義とその自動適用があります。これらを各成果物の特徴を考慮して注意深く構成し、開発者が自由にリファクタリング技術を適用できるようにします。これまでに、ゴールモデルなどの要求分析工程の成果物、責務割り当てなどの設計工程の成果物、またコード編集履歴などのプロセスデータも一種の成果物と考え、これらに対する適用を試みています。

また、開発者が今後の開発計画を議論している課題管理システム上の議論内容を分析して開発者の現在の関心事を推測し、情報検索技術を用いて品質低下要因と対応付けることにより、推測結果に従った品質低下要因の絞り込みを行っています(図2)。これにより、単に成果物中のすべての品質低下要因を虱潰しに解消していくのではなく、「この先、そのように開発されるのであれば、ここを直してはいかがでしょうか?」という、開発者の関心事に従ったリファクタリングのガイドの実現を試みています。



図

(図1)



図

(図2)