|
「技術の深層」 ソフトウェア品質保証技術 ![]()
<品質保証と品質管理>
|
|
<ソフトウェアの品質と品質向上技術> ソフトウェアの品質とは、ソフトウェアが指定された効用を発揮するために必要なすべての特性を意味し、「ソフトウェア製品の評価-品質特性及びその利用要領」(ISO/IEC 9126)では機能性、信頼性、使用性、効率性、保守性、移植性と定義している。ソフトウェア品質の構造を図1に示す。
従来、品質向上活動としては特に信頼性に着目し、ソフトウェア開発における欠陥の除去を目的として、設計結果のレビューやプログラムの試験による品質状況の把握と残存欠陥数の予測を行うことが一般的に行われてきた。しかし、ソフトウェアの普及とあいまってソフトウェアの保守性が問題視され、また、対話型のソフトウェアが主流になったことから、ソフトウェアの使用性が重視されるなど、品質に関する認識が高まり、現在では前述した特性により品質を管理することが一般的になりつつある。 一方、品質向上技術としては図2に示すものがあげられる。これらのうち品質管理手法として欠陥混入防止技術、欠陥検出技術を用いた手法が一般的に実施されている。品質の確保に必要なコストは、製品のライフサイクルにおいて下流にいけばいくほど高くなることがわかっている。このため、できるだけ上流で品質を確保することが得策であり、各工程の作業結果に対して十分なレビューを行うことが重要である。
|
|
<ソフトウェアの品質管理> これまで製品品質の高さから世界的な注目を集めた日本的品質管理(TQC)は、顧客満足度を志向した品質の重視、全員参加、自己啓発による自主的な活動、統計的手法の活用などを特徴とした総合的な経営管理手法である。ソフトウェア開発においては、QCサークルの導入や、品質機能展開、バグ分析などへの統計的手法の適用などが実施されている。前項で述べた品質管理手法もTQCの一環として組み入れられる。日本的品質管理は、ボトムアップ重視の活動であり、発展途上にあり、目標が明らかであった時代には大いにその効果を発揮したが、物質的な充足を迎えた今日では多様化する社会ニーズや情報化、国際化などの環境変化に対応できず、むしろ、欧米流トップダウン型品質管理(TQM)への変革を迫られている。
|
|
<ソフトウェアの品質保証> 組識における品質管理の活動を品質システムとして確立し、実証することにより購入者に対して信頼感を与えるための活動を品質保証という。この品質保証活動は、「品質システム-設計、開発、製造、据え付け及び付帯サービスにおける品質保証モデル」(ISO 9001)という規格により定義されている。これはソフトウェアの開発においてもそのまま適用されるものであり、その骨子は以下のとおりである。
1)品質システムの確立
2)品質システムの運用
|
|
<品質改善> 品質を向上するために品質管理をより高度なレベルに高めるための活動が品質改善である。TQCでは、PDCAによるボトムアップ活動が多く実践されているが、改善の方向性に対して体系的に整理されたものはこれまでなかった。これに対して、カーネギーメロン大学・ソフトウェア工学研究所(SEI)が開発した能力成熟度モデル(CMM: Capability Maturity Model)は、ソフトウェアプロセスの改善の方向を示すモデルとして、世界的に注目されている。CMMは、図3にあるように、レベル2がソフトウェア開発プロジェクトレベルでの基本的なプロセスを示しており、レベル3が組織レベルのプロセス、レベル4が組織におけるプロセスの定量的な分析、レベル5がプロセスと技術の継続的な革新を示している。各レベルは継続的なプロセスの改善にとって次のレベルの基礎をなすものであって、この道筋をもとに改善を進めることにより、品質やコスト、開発期間などの予測精度や、品質、生産性自体の効果的な向上が期待できるとしている。
|
|
<品質システムの今後> ISO9000シリーズやCMMはこれまで行ってきた品質管理の活動に対して体系的な枠組みを与えるものとしてとらえることができる。今後、ネットワークを通じたグローバルな電子商取引の時代が来る。このときは体系的に整理された品質保証の枠組みと実践は、それが単に遵守すべき国際標準であるか否かにかかわらず必要な活動としてますます重要な要素になると考えられる。しかし、一方、オブジェクト指向技術やネットワーク化技術の革新により、ソフトウェア開発作業やその組織化の方法は大きく変わることが想定される。また、品質そのものに対する価値観も多様化し、変化してくるであろう。今後はそのような時代にふさわしい一歩進んだ品質管理と品質システムの構築が求められる。 |
|
NTTソフトウェア ニュービジネス事業本部担当部長 堀田勝美 |