コンピュータの発達、普及にともない、これを利用するためのソフトウェアも、より複雑で大規模なものとなり、技術者が不足するようになってきた。このため、図1に示すように、ハードウェアは、大量生産と技術開発によりコストが下がった反面、ソフトウェアの開発コストは年々増大し、1960年代の後半には、ハードウェア開発にかかるコストと、ソフトウェア開発にかかるコストが反転したと言われている。さらにこのころには、生産されたソフトウェアの品質に対する発注者からのクレームと、発注者による要求のあいまい性に対する生産者の主張との衝突が表面化することとなる。これをソフトウェア危機(software crisis)と呼ぶ。
ソフトウェア品質特性について 標準規格における品質の定義 ISO/IEC 9126-1 Software engineering - Product quality - Part1: Quality model JIS X 0129-1 ソフトウェア製品の品質−第1部:品質モデル 国内ではJIS規格として、JIS X 0129-1 : 2003 が制定され、これは ISO/IEC 9126-1 : 2001を翻訳したものとなっている。 品質特性の構成 二つのモデルで品質を表現する。 (a) 内部品質及び外部品質 (b) 利用時の品質 モデル(a)については、6つの特性を規定し、それぞれの特性がさらに幾つかの副特性に細分化される。 モデル(b)については、4つの利用時品質特性を規定する。副特性は規定していない。 +------------+ +------------+ |利用者の品質 |<--------->|利用時の品質 | |への必要性 | 利用及び +------------+ +------------+ 反映 ↑ ↓ | +------------+ +------------+ |外部品質要求 |<--------->| 外部品質 | +------------+ 妥当性確認 +------------+ ↓ ↑ +------------+ +------------+ |内部品質要求 |<--------->| 内部品質 | +------------+ 検証 +------------+
ソフトウエア生産性の問題を扱うのに技術面と管理面の二つの接近法がある。ソフトウエア開発工程のほぼ40〜50%がデバッキングに費されるといわれている現状にあっては、技術面の充実が急務と考えられ、新しい技法やツールの研究開発が重視されているのは当然である。しかしながら管理面の重要性も今更いうまでもない。技術的に良いとわかっていても予算、制度、組織の問題のために実現がおくれるということは時として耳にすることである。また、人の配置や外注管理の問題が生産性に重大な影響を与えることもある。教育訓練の問題は技術的にも管理的にも基本問題の一つとなっている。更に、プロジェクトの開発計画とその管理に欠陥があれば、単なる技術水準の差では考えられないほどの大きな損失を招きかねないことは、ソフトウェア開発の事例に明らかである。 技術面からソフトウェア生産性の問題に接近することはソフトウエア工学に関する多くの研究の主眼である。もちろん、管理面についても多くの研究報告があり成書もあるが、多少とも新しい見方を交えながら考えてみる余地は技術面よりは多いのではないか。