内部製品属性

内部製品属性は、製品自体にのみ依存する方法でソフトウェア製品を記述します。製品の内部属性を測定する主な理由は、開発中に製品を監視および制御するのに役立つためです。

内部製品属性の測定

主な内部製品属性は次のとおりです。 size そして structure。サイズは、実行せずに静的に測定できます。製品のサイズは、それを作成するために必要な労力を教えてくれます。同様に、製品の構造は、製品のメンテナンスを設計する上で重要な役割を果たします。

サイズの測定

ソフトウェアのサイズは、3つの属性で説明できます-

  • Length −商品の物理的なサイズです。

  • Functionality −製品がユーザーに提供する機能について説明します。

  • Complexity −複雑さには、などのさまざまなタイプがあります。

    • Problem complexity −根本的な問題の複雑さを測定します。

    • Algorithmic complexity −問題を解決するために実装されたアルゴリズムの複雑さを測定します

    • Structural complexity −アルゴリズムの実装に使用されるソフトウェアの構造を測定します。

    • Cognitive complexity −ソフトウェアを理解するために必要な労力を測定します。

これらの3つの属性の測定は、次のように説明できます。

長さ

サイズ測定が予測に必要な労力を予測するのに役立つ3つの開発製品があります。それらは、仕様、設計、およびコードです。

仕様と設計

これらのドキュメントは通常、テキスト、グラフ、および特別な数学の図と記号を組み合わせたものです。仕様測定を使用して、設計の長さを予測できます。これは、コードの長さの予測子です。

ドキュメント内の図は、ラベル付き有向グラフ、データフロー図、Zスキーマなどの統一された構文を持っています。仕様書と設計図書はテキストと図で構成されているため、その長さは、テキストの長さと図の長さを表す1対の数値で測定できます。

これらの測定では、さまざまなタイプの図や記号に対して原子オブジェクトを定義する必要があります。

データフロー図のアトミックオブジェクトは、プロセス、外部エンティティ、データストア、およびデータフローです。代数的仕様のアトミックエンティティは、並べ替え、関数、演算、および公理です。Zスキーマのアトミックエンティティは、仕様に表示されるさまざまな行です。

コード

コードは、手続き型言語、オブジェクト指向、ビジュアルプログラミングなどのさまざまな方法で生成できます。ソースコードプログラムの長さの最も一般的に使用される従来の尺度は、コード行(LOC)です。

全長、

LOC = NCLOC + CLOC

すなわち、

LOC = Non-commented LOC + Commented LOC

コード行とは別に、MauriceHalstedによって提案されたサイズや複雑さなどの他の代替手段も長さの測定に使用できます。

ハルステッドのソフトウェア科学は、プログラムのさまざまな属性をキャプチャしようとしました。彼は、サイズのさまざまな見方を反映する、長さ、語彙、音量などの3つの内部プログラム属性を提案しました。

彼はプログラムを定義することから始めました P演算子またはオペランドによって分類されたトークンのコレクションとして。これらのトークンの基本的な指標は、

  • μ1 =一意の演算子の数

  • μ2 =一意のオペランドの数

  • N1 =演算子の総発生数

  • N2 =一意の演算子の数

長さ P 次のように定義できます

$$ N = N_ {1} + N_ {2} $$

の語彙 P です

$$ \ mu = \ mu _ {1} + \ mu _ {2} $$

プログラムの量=長さのプログラムを書くために必要な精神的比較の数 N、です

$$ V = N \ times {log_ {2}} \ mu $$

プログラムのプログラムレベル P ボリュームの V は、

$$ L = \ frac {V ^ \ ast} {V} $$

ここで、$ V ^ \ ast $は潜在的なボリューム、つまり、の最小サイズの実装のボリュームです。 P

レベルの逆は難易度です-

$$ D = 1 \ diagup L $$

ハルステッド理論によれば、推定値を計算できます 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

長さを測定するための他の選択肢は次のとおりです。

  • プログラムテキストに必要なコンピュータストレージのバイト数に関して

  • プログラムテキストの文字数に関して

オブジェクト指向開発は、長さを測定する新しい方法を提案します。Pfleeger etal。オブジェクトとメソッドの数が、コード行を使用するものよりも正確な生産性の見積もりにつながることがわかりました。

機能性

製品に固有の機能の量は、製品サイズの尺度を提供します。ソフトウェア製品の機能を測定する方法はたくさんあります。次の章では、そのような方法の1つであるアルブレヒトのファンクションポイント法について説明します。