ソフトウェアの計量化

プログラミング評価

プログラムがある言語においてコーディングされた場合に,個々のモジュール内の複雑さを評価する尺度がある. すなわち,各モジュール内のプログラムが簡潔かつ適切に設計されていなければプログラムは複雑化し信頼性や保守性の向上にはつながらない.

このプログラムの簡潔さや適切さを表す尺度として複雑性尺度がある. プログラムの複雑さは,プログラムの作成,検査および保守の工数などに直接関係するため,適切に複雑さを見積もることや評価することは重要である.

プログラムの複雑さは次の3つの異なった観点から評価できる.

語彙的複雑性尺度

語彙的複雑さは,プログラムを構成する語彙の種類や数などに着目した尺度である.

構造的複雑性尺度

構造的複雑性尺度は,プログラムの制御構造に着目した複雑性の尺度である.

代表的な尺度には次のものがある.

複雑性尺度の特性

Weyukerはその論文において,プログラム P に対して |P| をプログラムの複雑さを表す尺度とするとき,この尺度が持つべき性質として以下の9つの特性を挙げている[Wey88].

代表的な尺度について,Weyukerの特性との関係を示すと次の表のようになる.

評価尺度の特性
性質 LOC CN E DF
P1 Yes Yes Yes Yes
P2 Yes No Yes No
P3 Yes Yes Yes Yes
P4 Yes Yes Yes Yes
P5 Yes Yes No No
P6 No No Yes Yes
P7 No No No Yes
P8 Yes Yes Yes Yes
P9 No No Yes Yes

LOC : Statement Count / CN : Cyclomatic Number / E : Effort Measure / DF : Data Flow Complexity


Weyukerの複雑さ尺度が持つべき特性は,必要条件であり十分条件ではない[Che91].
また,これらの特性の中には同時には満足できない性質がある.例えば,性質P5はratio scaleを必要とする尺度を前提としているのに対し,性質P6はratio scaleを排除した尺度である. さらに,これらの特性の多くは従来の手続き的なプログラムに対して適用できるものであり,オブジェクト指向プログラムや人工知能プログラムなどの評価には別の特性を考慮する必要がある.

inserted by FC2 system