« 組み合わせテストの歴史(1) | Main | ソフトウェア品質モデルの歴史(2)-Wulfの品質の定義 »

31 May 2012

ソフトウェア品質モデルの歴史(1)-最初の論文

「品質」と一口に言っても様々な側面があります。ソフトウェア品質モデルは、品質を構成する要素(特性)を分類するとともに構造化してソフトウェア品質をとらえようとするもので、JIS X0133(ISO/IEC 14598)では「品質要求及び品質評価の基礎を与えるような特性の集合及び特性間の関係」と定義されています。

品質特性やメトリクスに関する初期の論文に次の1968年のRubeyの論文があります。

Rubey, R. J. and R. D. Hartwick, "Quantitative Measurement of Program Quality," Proceedings," ACM National Conference,1968, pp. 671-677.

この論文には参考文献が書かれていないので、これよりさかのぼることはできないのですが、Boehmは彼の品質特性に関する論文の中で次のようにRubeyらが初めて系統だった方法でソフトウェア品質の評価方法の開発に取り組んだと書いています。

"Development of methods for evaluating software quality appears to have first been attempted in an organized way by Rubey and Hartwick."

また、McCallらが1977年にまとめたレポート"Factors in Software Quality"でも、収集調査された先行研究論文の中で最も古いものがRubeyの論文なので、恐らくこれがソフトウェアの品質特性やメトリクスに関する最初のものだと思われます。

この論文でRubeyは品質のAttributes(属性)とMetrics(メトリクス)を定義しています。最上位の属性として次の7つをあげています。

A1 - Mathematical calculations are corrected performed. (数学演算が正確に実行される)
A2 - The program is logically correct. (プログラムは論理的に正しい)
A3 - There is no interference between program entities. (プログラムの実体間で相互干渉がない)
A4 - Computation time and memory usage are optimized. (計算時間やメモリ使用量が最適である)
A5 - The program is intelligible. (プログラムは理解しやすい)
A6 - The program is easy to modify. (プログラムは修正しやすい)
A7 - The program is easy to learn and use. (プログラムは学びやすく使いやすい)

更に各属性を下位の属性に展開して定義しています。例えばA5は次のように詳細化されています。

A5 - The program is intelligible. (プログラムは理解しやすい)
A5.1 - Consistent coding techniques are set up and followed. (一貫したコーディング技法が適用されている)
A5.2 - Frequent comments are inserted to clarify the code. (コードを明確化するための注釈が頻繁に入れられている)
A5.3 - Instructions are not modified during program execution. If they are modified, however, such modifications are clearly identified. (プログラムの実行中に命令が修正されない。修正がある場合は明確に識別できる)
A5.4 - Indirect methods of referencing quantities are clearly identified. (数量を参照する間接的な方法が明確に識別できる)
A5.5 - The real-time constraints of a program are clearly identified. (プログラムの実時間制約が明確に識別できる)
A5.6 - The program flow is easy to follow. (プログラムの流れが追いやすい)
A5.7 - Symbolic names and labels are clear and meaningful. (シンボル名やラベルは明確で意味をもっている)

そして下位の属性に対してメトリクスの例を示しています。例えば、A5.3のメトリクスM5.3として次の式が示されています。

M5.3 = max [0,100(I-2N+C)/I]
 ここで
  I = プログラム中の命令数
  N = プログラム実行中に修正される命令数
  C = 修正されたことを示すコメントをもつ修正命令の数

Rubeyの評価方法は、対象は「プログラム」ですが、評価のアプローチそのものは現在の品質モデルやメトリクスの原型になっていると思います。

|

« 組み合わせテストの歴史(1) | Main | ソフトウェア品質モデルの歴史(2)-Wulfの品質の定義 »