software quality
期待される目的や用途を果たすためにソフトウェアが、その固有の能力として備えている性質や特性の総体をいう。ソフトウェアの良し悪しを判断する材料となるもので、一般にその性質や特性が明示的あるいは暗黙的な期待水準に達していれば「品質がよい」、期待水準を超えれば「品質が高い」と評価される。
ソフトウェアの品質というと「バグ(注1)が少ないこと」が思い浮かぶが、それ以外にさまざまな側面がある。ISO/IEC 25010では、システム/ソフトウェア製品 品質モデルとして、利用時のソフトウェア品質、外部ソフトウェア品質、内部ソフトウェア品質の品質特性を規定している。利用時のソフトウェア品質は「有効性」「生産性」「安全性」「満足度」の4つからなる特性の群、外部品質と内部品質(同一モデル)は以下のような特性の群として定義されている。
品質特性 | 品質副特性 |
機能適合性 | 機能完全性、正確性、適切性 |
性能効率性 | 時間効率性、資源利用性、キャパシティ |
互換性 | 共存性、相互運用性 |
使用性 | 適切度認識性、習得性、運用性、ユーザエラー防止性、ユーザーインターフェイスの快美性、アクセシビリティ |
信頼性 | 成熟性、可用性、障害許容性、回復性 |
セキュリティ | 機密保持性、インテグリティ、否認防止性、責任追跡性、真正性 |
保守性 | モジュール性、再利用性、解析性、変更性、試験性 |
移植性 | 順応性、設置性、置換性 |
ソフトウェア開発で製品品質やプロセス品質の向上、品質保証を行うためには、何らかの品質尺度を使ってソフトウェア品質の測定を行う必要がある。ISO/IEC 25010の品質モデルは、品質測定に用いる品質尺度を網羅的に示したものである。
とはいえ、ソフトウェア品質の測定は本質的に困難である。潜在的なバグ数は数えられず、使用性や信頼性、保守性などの品質特性を直接に測定することはできない。そのため、実際に計測可能な定量尺度(ソフトウェアメトリクス)から間接的に計測したり、統計的に推測したりして定量値を導出する場合が多い。いずれにしても適切な品質尺度を選択・定義して、品質測定・評価することが求められる。
また品質とは“顧客の期待を満たす”ことである。従って、受託開発では顧客要求を正確にとらえること、パッケージソフトウェア製品では市場のニーズを的確に把握することも重要である。
(注1)バグ
▼『ソフトウェア品質保証入門――高品質を実現する考え方とマネジメントの要点』 保田勝通、奈良隆正=著/日科技連出版社/2008年4月
▼『ソフトウェア品質工学の尺度とモデル』 ステファン・H・カン=著/古山恒夫、富野壽=監訳/構造計画研究所/2004年11月(『Metrics and Models in Software Quality Engineering, 2nd Edition』の邦訳)
▼『ソフトウェア要求――顧客が望むシステムとは』 カール・E・ウィーガーズ=著/渡部洋子=監訳/佐藤幸雄=訳/日経BPソフトプレス/2003年7月(『Software Requirements, 2nd Ed.』の邦訳)
▼『ソフトウェア品質のガイドライン』 ケイパース・ジョーンズ=著/富野壽=監訳/構造計画研究所/1999年4月(『Software Quality: Analysis and Guidelines for Success』の邦訳)
▼『ソフトウェアプロセス成熟度の改善』 ワッツ・S・ハンフリー=著/藤野喜一=監訳/日本電気ソフトウェアプロセス研究会=訳/日科技連出版社/1991年9月(『Managing the Software Process』の邦訳)
▼『クオリティ・マネジメント――よい品質をタダで手に入れる法』 フィリップ・B・クロスビー=著/小林宏治=監訳/佐藤幸雄=訳/日本能率協会/1980年5月(『Quality is free』の邦訳)
Copyright © ITmedia, Inc. All Rights Reserved.