ソフトウェア品質管理とそのポイントについて説明します。
ソフトウェア品質管理
ソフトウェア品質管理とは、何でしょうか。
ソフトウェア品質管理(Quality Management)とは
ソフトウェア品質管理(Quality Management)とは 「要求を満たすソフトウェア製品・サービスを提供するために、組織を指揮し、管理すること」
※これは、ISO9000の定義に基づきます。正確にはISO9000:の定義は以下です。
品質管理(Quality Management)とは「品質※1に関するマネジメント※2」
※1品質とは「対象に本来備わっている特性の集まりが,要求事項を満たす程度」。なお、要求事項には、「明示されている、通常、暗黙のうちに了解されている若しくは義務として要求されている、ニーズまたは期待」が含まれる
※2マネジメントとは「組織を指揮し,管理するための調整された活動」
(ISO9000:2015)
ソフトウェア品質管理の必要性
なぜ、ソフトウェア品質管理が必要なのでしょうか?
企業が存続するには、顧客に支持されるソフトウェア製品・サービスを提供し続ける必要があります。提供したソフトウェア製品・サービスに満足するから、顧客はその対価を払い、企業は次のソフトウェア製品・サービスを創出することができます。この満足していただけるような品質の良いソフトウェア製品・サービスを提供するためのマネジメントが、品質管理なのです。ある意味では、品質管理は、企業存続の要といえるでしょう。
ソフトウェア品質管理のポイント
では、ソフトウェア品質管理のポイントは何でしょうか。
プロセス品質とプロダクト品質
ソフトウェア品質を的確に把握するには、プロセス品質とプロダクト品質の両面から分析することが不可欠といわれています[1]。下記の図は、ウォーターフォールモデル開発でのプロセス品質とプロダクト品質の評価について解説したものです。ウォーターフォールモデル開発では、設計→コーディング→テストと順を追って工程を進めていきます。その各工程で、プロセス品質は、プロセス実施状況の十分性により評価します。プロダクト品質は、各工程の成果物の出来ばえにより評価します。重要なのは、プロセス品質とプロダクト品質の両面から評価するということです。

要因系と結果系
プロセス品質とプロダクト品質は、要因系と結果系という表現で説明することもあります。結果系のほうが説明しやすいので、結果系から説明しますね。
結果系
結果系とは、結果として出来上がった成果物を検査して、基準を満足しないものは次の工程に進ませないという意味です。これが出荷審査であれば、変なものは外には出さないということになります。結果系の方法で、確実に基準を満足したものだけを、顧客へ提供できるようになります。これがプロダクト品質です。
要因系
一方、要因系とは、始めから良いものを作り出すプロセスを構築して、そのプロセスを適用することにより、良い製品やサービスを効率よく作る方法です。だから、プロセスをきちんと実行しているかどうかを見ることが重要になるのです。これがプロセス品質です。
結果系と要因件の両面から評価
繰り返しますが、重要なのは、結果系と要因系のどちらか一方ではなく、両面から取り組むことによって、品質の良いソフトウェア製品・サービスを生み出すことができるという点です。悪いものを外に出さない結果系だけでは、不良品が積みあがる恐れがあります。プロセス適用だけでは、低い確率であっても作ってしまった不良品を見逃して、外に出してしまう恐れがあるわけです。
最後に
いかがでしょうか。ソフトウェア品質管理、プロセス品質とプロダクト品質、要因系と結果系についてご理解いただけましたか。
参考文献[1] SQuBOK策定部会、ソフトウェア品質知識体系ガイド第2版 –SQuBOK V2-、2014年、オーム社