肥後研究室志望の方へ

ソフトウェアメトリクスを用いた品質の測定

概要

ソフトウェアメトリクスとは,ソースコードの規模,複雑さ,保守性など,特定の側面を定量的に示す指標です. ソースコードの開発履歴やコードクローン情報から得られたメトリクス値を使って,開発者が行った作業内容の分析や,ソフトウェア部品に欠陥が存在する可能性の調査を行う手法を研究しています.

保守労力の推定

ソフトウェアの保守 (リリース後に行う変更) にかかるコストは,ライフサイクルコストの大半を占めることが知られています. しかし,保守作業の見積りは熟練者が経験に基づいて行っていたため,人によって見積り結果が異なり,客観性に欠けるという問題がありました.

この研究では,影響波及解析と呼ばれる手法を用いて,保守作業の労力を高い精度で見積ることができるメトリクスを考案しました. さまざまな評価の結果,このメトリクスは労力だけではなく,障害発生率を見積るのにも有効であることが分かっています.

メトリクス値の変化

ソフトウェアの性質を知るためには,その最新の状態だけではなく,ソフトウェアがどのように開発されてきたかという情報を知ることが有効です.

この研究では,ソフトウェアの変化を様々なメトリクス値の変遷を新しいメトリクスとして定義し,ソフトウェアがどのように変更されてきたかを定量的に読み取ることを可能にしました. 提案するメトリクスを用いることで,将来問題の発生しやすいモジュールを特定したり,過去の開発過程の中で特に注目すべき重要な変更を取り出すことが出来ます.

コードクローンの性質

コードクローン検出で見付けたクローンを適切に管理することで,効率的なソフトウェア開発が可能となります. そこで,メトリクスを用いて,特に注意すべきクローンを特定する研究を行なっています.

コードクローンによって作られた欠陥の特定

コードクローンは多くの場合,再利用のためのコピー・アンド・ペーストによって作られます. しかし,コピーしたコード片がそのまま使えないことがしばしば起こります.

そのようなときには,コピーしたコード片を変更しますが,変更の際の不注意で,欠陥を作り込んでしまうことがあります. 欠陥を見付けるためにはコードクローンを調べればよいのですが,コードクローンは大量に存在するため全てを調べるのには大変な労力が必要になります.

そこで,この研究では,変数名の修正ミスに着目し,どのクローンに修正ミスが存在する可能性が高いのかを表すメトリクスを提案しました. これにより,効率的に欠陥を見付けることが出来るようになりました.

コードクローンを編集する開発者の傾向

コードクローンを取り除くべきかどうか判断するためには,クローンの現在の状態だけではなく,クローンが将来どのような状態になりそうかを予測する必要があります.

この研究では,クローンがどのように編集されるかを予測するために,個々の開発者がどのようにクローンを変更しているかを,メトリクスを用いて定量的に表す手法を提案しました. 実際のソフトウェアに対して提案手法を適用した結果,クローンを複雑にする開発者や,簡単にする開発者などといった傾向が存在することが分かりました.

代表的な論文


研究紹介に戻る

肥後研究室

大阪大学 大学院情報科学研究科

コンピュータサイエンス専攻

ソフトウェア工学講座