構造の測定
ソフトウェアの構造特性の測定は、開発努力の見積もりと製品のメンテナンスにとって重要です。要件、設計、およびコードの構造は、ある製品を別の製品に変換する際、製品をテストする際、または初期の内部製品測定から外部ソフトウェア属性を予測する際に生じる困難を理解するのに役立ちます。
構造的対策の種類
ソフトウェアの構造は3つの部分に分かれています。彼らは-
Control-flow structure −プログラム内で命令が実行される順序です。
Data-flow structure −プログラムと相互作用するときのデータの動作です。
Data structure −これは、リスト、キュー、スタック、またはその他の明確に定義された構造の形式でのデータ要素の編成と、それらを作成、変更、または削除するためのアルゴリズムです。
制御フロー構造の測定
制御フローの測定値は通常、有向グラフでモデル化されます。各ノードまたはポイントはプログラムステートメントに対応し、各アークまたは有向エッジは、あるステートメントから別のステートメントへの制御フローを示します。これらのグラフは、制御フローグラフまたは有向グラフと呼ばれます。
場合 ‘m’ は、フローグラフモデルの観点から定義された構造的尺度であり、プログラムの場合 A プログラムよりも構造的に複雑です B、次にメジャー m(A) より大きい必要があります m(B)。
データフロー構造の測定
データフローまたは情報フローは、モジュール間(モジュール内の情報のフロー)またはモジュール内(個々のモジュールとシステムの残りの部分との間の情報のフロー)にすることができます。
データがシステム内を移動する方法に応じて、次のように分類できます。
Local direct flow −モジュールが2番目のモジュールを呼び出して情報を渡すか、呼び出されたモジュールが結果を呼び出し元に返す場合。
Local indirect flow −呼び出されたモジュールが情報を返し、その後2番目に呼び出されたモジュールに渡される場合。
Global flow −情報がグローバルデータ構造を介して1つのモジュールから別のモジュールに流れる場合。
情報フローの複雑さは、ヘンリーとカフラによれば、次のように表現できます。
Information flow complexity (M) = length (M) × fan-in (M) × (fan-out (M))2
どこ、
Fan-in (M) −Mで終了するローカルフローの数+ Mによって情報が取得されるデータ構造の数。
Fan–out (M) −Mから発生するローカルフローの数+ Mによって更新されるデータ構造の数。
データ構造の測定
データ構造は両方にすることができます local そして global。
Locally、各データ項目の構造の量が測定されます。グラフ理論的アプローチを使用して、個々のデータ構造のプロパティを分析および測定できます。その中で、整数、文字、ブール値などの単純なデータ型は素数と見なされ、より複雑なデータ構造を構築できるようにするさまざまな操作が考慮されます。次に、データ構造メジャーは、素数の値とさまざまな操作に関連付けられた値の観点から階層的に定義できます。
Globally、ユーザー定義変数の総数のカウントが測定されます。