公開されている
An Empirical Study of Bad Smell in Conde on Maintenance Effort
のキモの部分を読んで勉強してみたいと思います。
概要
code smellの発見およびリファクタリングを自動化するツールを、
提案する。発見したcode smellに対して、リスクファクターを計算し、
リファクタリングのテクニックを利用して、リスクファクターを
軽減する。
リファクタリングは、ソフトウェアの振る舞いを変更せずに、
内部構造を改良するもの。
新しいcode smellである、Lazy Catchも発見できる。
オブジェクト指向ソフトウェア用のメトリクスを利用した。
イントロ
リファクタリングのプロセスは、多くのアクティビティを含む。
1.ソフトウェアのどこをリファクタリングするかを認識する。
2.1の中で、どこお実際にリファクタリングするかを判断する。
3.リファクタリングが、振る舞いを保存することを確認し、
リファクタリングを行う。
4.リファクタリングの結果を、ソフトウェアの保守性などから、
評価する。
5.リファクタリングしたソフトウェアと、他の資材
(ドキュメント、テストなど)との整合性を取る。
ソフトウェア保守
ソフトウェアの保守は、リリース後、ミスを訂正する、
パフォーマンスなどを改善するもの。
複雑な作業で、システムの理解も難しい。
保守のプロセスは、プログラマの経験やドキュメント、
システムそれ自体の特徴に影響を受ける。
Code smell
Code smellは、ソフトウェアの改良や保守を困難にする
設計やコードである。
Code smellを削除することで、保守性はあがり、
ソフトウェアの品質は向上する。
Code smellの発見には、標準的なメトリクス、
オブジェクト指向のメトリクス、ad hocに定義された
smell発見用のメトリクスが使われる。
次のようなメトリクスを利用した。
Number of Method (メソッドの数)・・対象は、クラス
Number of Parameters(パラメータの数)・・対象は、メソッド
Lack of Cohesion of Methods(凝集度の不足)・・対象は、クラス
Method Lines of Code(メソッドのコードのライン数)・・対象は、メソッド
Weighted Methods per Class(クラスの複雑度)・・対象は、クラス
0 件のコメント:
コメントを投稿