Software-quality-management-internal-product-attributes
内部製品の属性
内部製品属性は、製品自体にのみ依存する方法でソフトウェア製品を記述します。 内部製品属性を測定する主な理由は、開発中に製品を監視および制御するのに役立つからです。
内部製品属性の測定
主な内部製品属性には、*サイズ*および*構造*が含まれます。 サイズは、実行することなく静的に測定できます。 製品のサイズは、それを作成するために必要な労力について教えてくれます。 同様に、製品の構造は、製品のメンテナンスを設計する上で重要な役割を果たします。
サイズを測定する
ソフトウェアのサイズは、3つの属性で説明することができます-
- 長さ-製品の物理的なサイズです。
- 機能-製品によってユーザーに提供される機能を説明します。
- 複雑さ-複雑さは次のような異なるタイプのものです。
- 問題の複雑さ-根本的な問題の複雑さを測定します。
- アルゴリズムの複雑さ-問題を解決するために実装されたアルゴリズムの複雑さを測定します
- 構造の複雑さ-アルゴリズムを実装するために使用されるソフトウェアの構造を測定します。
- 認知の複雑さ-ソフトウェアを理解するために必要な労力を測定します。
これらの3つの属性の測定は、次のように説明することができます-
長さ
サイズ測定が予測に必要な労力の予測に役立つ3つの開発製品があります。 それらは仕様、設計、コードです。
仕様と設計
これらのドキュメントは通常、テキスト、グラフ、および特別な数学的図と記号を組み合わせています。 仕様測定は、設計の長さを予測するために使用できます。これは、コード長の予測子です。
ドキュメント内の図には、ラベル付きダイグラフ、データフロー図、Zスキーマなどの統一された構文があります。 仕様および設計ドキュメントはテキストと図で構成されているため、その長さは、テキストの長さと図の長さを表す数値のペアで測定できます。
これらの測定では、さまざまなタイプのダイアグラムおよびシンボルに対してアトミックオブジェクトを定義します。
データフロー図のアトミックオブジェクトは、プロセス、外部エンティティ、データストア、およびデータフローです。 代数的仕様のアトミックエンティティは、ソート、関数、操作、および公理です。 Zスキーマのアトミックエンティティは、仕様に表示されるさまざまな行です。
Code
コードは、手続き型言語、オブジェクト指向、ビジュアルプログラミングなど、さまざまな方法で生成できます。 ソースコードプログラムの長さの最も一般的に使用される従来の測定は、コード行(LOC)です。
全長、
*LOC = NCLOC + CLOC*
すなわち
*LOC =コメントなしのLOC +コメント付きのLOC*
コードの行とは別に、Maurice Halstedによって提案されたサイズや複雑さなどの他の代替手段も長さの測定に使用できます。
Halsteadのソフトウェアサイエンスは、プログラムのさまざまな属性をキャプチャしようとしました。 彼は、長さ、語彙、ボリュームなど、サイズのさまざまな見方を反映する3つの内部プログラム属性を提案しました。
彼は、プログラム P を、演算子またはオペランドで分類されたトークンのコレクションとして定義することから始めました。 これらのトークンの基本的な指標は、
- μ〜1〜 =一意の演算子の数
- μ〜2〜 =一意のオペランドの数
- * N〜1〜* =オペレーターの合計オカレンス
- * N〜2〜* =一意の演算子の数
長さ P は次のように定義できます。
N = N _ \ {1} + N _ \ {2}
*P* の語彙は
\ mu = \ mu _ \ {1} + \ mu _ \ {2}
プログラムのボリューム=いいえ。 長さ N のプログラムを書くために必要な精神的比較の
V = N \ times \ {log _ \ {2}} \ mu
ボリューム V のプログラム P のプログラムレベルは、
L = \ frac \ {V ^ \ ast} \ {V}
ここで、$ V ^ \ ast $は潜在的なボリューム、つまり P の最小サイズ実装のボリュームです。
レベルの逆は難易度です-
D = 1 \ diagup L
Halstead理論によれば、推定値 L は次のように計算できます。
$$ \ {L} '= 1 \ diagup D = \ frac \ {2} \ {\ mu _ \ {1}} \ times \ frac \ {\ mu _ \ {2}} \ {N _ \ {2}} $ $
同様に、推定プログラム長は、$ \ mu _ \ {1} \ times log _ \ {2} \ mu _ \ {1} + \ mu _ \ {2} \ times log _ \ {2} \ mu _ \ {2} $です。
Pを生成するのに必要な努力は、
E = V \ diagup L = \ frac \ {\ mu _ \ {1} N _ \ {2} Nlog _ \ {2} \ mu} \ {2 \ mu _ \ {2}}
測定単位 E は、 P を理解するために必要な基本的な精神的差別です。
長さを測定するための他の選択肢は-
- プログラムテキストに必要なコンピューターストレージのバイト数に関して
- プログラムテキストの文字数に関して
オブジェクト指向開発では、長さを測定する新しい方法が提案されています。 プリーガー等。 オブジェクトとメソッドの数がコード行を使用するものよりも正確な生産性の見積もりにつながることがわかりました。
機能性
製品に固有の機能の量により、製品のサイズが測定されます。 ソフトウェア製品の機能を測定するには、非常に多くの異なる方法があります。 次の章では、そのような方法の1つであるアルブレヒトの関数点法について説明します。