ソフトウェア品質とは~IT初心者向けに分かりやすく解説~

はじめに

現代社会では日常的にパソコンやスマートフォンを使うようになり、それらと連動したシステムやソフトウェアを使った様々なサービスをほぼ毎日と言っていいほど利用しています。
一見、ITとは関係がないと思われる業界やサービスでも、裏方ではソフトウェアが動いていることがほとんどなのではないでしょうか。このように現代社会とは切っても切り離せない関係になったシステムやソフトウェアが、狙い通りに動いてくれなかった場合、多くの人が不便さを感じることになります。
このように私たちの生活を支えるソフトウェアの品質がどのように評価され、担保されているのかご存知でしょうか。今回はソフトウェアの品質特性に焦点を当て、IT初心者の方にもわかりやすく解説いたします。

ソフトウェア品質とは

そもそもソフトウェア品質とはどのようなものなのでしょうか。ポイントとなる特徴をピックアップしてみましょう。

ソフトウェア品質は目に見えない

ソフトウェアは、自動車や電化製品などのハードウェアに対して、計算や画面表示などの指示を行うプログラムであり、形がないため目には見えない製品です。
そのため、開発工程でどのような作業が行われたのかも分かりづらく、ソフトウェアの品質を考える際には、品質モデルや品質特性などをよく理解し、整理して考えることが重要です。これらはのちほど詳しく解説いたします。

ソフトウェアは目に見えない

ソフトウェア品質は顧客の満足感が重要

以前は「設計書どおりに動くこと」が良い品質と考えられていましたが、近年では生活スタイルや価値観の多様化に伴い、製品やサービスへの期待も「動けばよい」から「使っていて楽しい」「操作性が高い」「画面が美しい」などと多様化しています。そのためソフトウェア品質に対する要求も「顧客の心理的満足感が重要」とする概念が浸透してきています。

ソフトウェア品質は顧客の満足感が重要

ソフトウェア品質への要求はステークホルダーごとに異なる

急速にデジタル化が進む現代社会において、ソフトウェアの機能は高度化、複雑化しています。そのため、ソフトウェアの発注者、使用するユーザー、運用管理者など、すべての関係者(ステークホルダー)を考慮した製品を開発することが求められています。製品に対する期待はそれぞれの立場によって異なり、例えば発注者の要求は低コスト、使用者の要求は使いやすさ、運用管理者はメンテナンスのしやすさ、といった具合です。
ソフトウェア品質の評価を高めるためには、ステークホルダーごとに異なる要求に応えていくことが重要です。

ソフトウェア品質への要求はステークホルダーごとに異なる

ソフトウェア品質の評価を高めるには

ソフトウェア品質の評価を高めるためには、顧客の満足感を高めることとステーホルダーの要求に応えることが重要ということがおわかりいただけたと思います。
それではどのようにすれば顧客の満足感を高めることができ、ステークホルダーの要求に応えることができるのか。ソフトウェア品質についてさらに詳しく理解するために、品質モデルや特性についてみていきましょう。

狩野モデル

東京理科大学名誉教授の狩野氏が提唱した「狩野モデル」は、顧客の求める価値に焦点を当てて品質をモデル化したものです。顧客の満足度に影響を与える品質要素を「魅力的品質」「一元的品質」「当たり前品質」に分類し、それらが充足されることによる顧客満足感との関係を表しています。下図で表したように、顧客の要求を先読みし、顧客の期待を超えた品質は「魅力的品質」となります。

品質要素

品質モデル 顧客の感じ方 ソフトウェアで例えると
当たり前品質 顧客にとってあって当たり前と受け取られる品質要素。よって、それがないと不満に感じる。 予約システムにおいて予約登録ができること。
一元的品質 あると嬉しく感じ、ないと不満に感じる品質要素。 画面遷移の速さや使いやすさ。
魅力的品質 なくても不満には感じないが、あれば嬉しく感じる品質要素。魅力的品質が高いとポジティブなブランドイメージを持たれる。 普段の食の好みを自動的に記憶しておいて最適なレストランを提案してくれる予約アプリ。

国際規格「ISO/IEC 25010:2011」

前述のとおり、ソフトウェアの品質は様々な観点から考える必要がありますが、これらすべての要求に応えることは簡単ではありません。品質に対する様々な要求を整理するには、国際規格「ISO/IEC 25010:2011」が役立ちます。「ISO/IEC 25010:2011」は、システムやソフトウェアの品質特性を8つに分類して定義しています。

ソフトウェア品質特性と具体例

品質特性 特性の概要と具体例
機能適合性 顧客のニーズを実現できている度合い
顧客のニーズは言葉で伝えられているものだけでなく、潜在的なニーズもあります。開発側は顧客のニーズを適切に汲み取り、提案していくことも重要です。
性能効率性 性能や資源効率の良さ
ソフトウェアの資源効率はメモリやCPU、ディスク容量の使用効率のことを指します。
互換性 別の環境における情報共有、変換のしやすさ
アプリに置き換えて考えるとわかりやすく、iPhoneでもAndroidでも使用可能、WindowsでもMacでも使用可能といった、動作環境が違う場合にも問題なく使うことができるかといった指標です。
使用性 使いやすさ
例えばECサイトなどで商品を選んで決済するまでの流れがわかりやすく、スムーズであると使用性が高いということになります。
信頼性 壊れにくさ、障害の起こりにくさ
銀行のシステム不具合はよくニュースで耳にしますが、頻繁に起こるとそのシステムを使いたいと思わなくなってしまいます。
セキュリティ 情報やデータが保護されている度合い
個人情報の漏洩についてもよくニュースで耳にしますが、一度でも起こるとそのシステムへの信頼性が失われ、企業イメージの棄損や損害賠償など大きな問題に発展します。
保守性 メンテナンスのしやすさ
問題が起きたときの修正のしやすさ、仕様変更や追加機能の容易さなどを指します。
移植性 別の実行環境への移しやすさ
プログラムやソフトウェアの多様な環境においての適応しやすさを指します。例えば、Mac OS用のアプリケーションを基にWindowsでも動作する同等のアプリケーションを開発することは移植性を高めることになります。

プロセス品質

もうひとつ、ソフトウェアの品質評価を高める上で重要なポイントである「プロセス品質」について触れさせていただきます。プロセス品質とは正しいプロセスで開発を行えば、正しいプロダクトができるという考えのもと、各工程で品質を作り込むことを指します。詳しくは下記ブログにて解説していますのでご覧ください。 

まとめ

IT初心者の方向けにソフトウェア品質の特性や国際規格について解説いたしました。ソフトウェアは目に見えるものではありませんが、多くの人が利用するため影響範囲が大きく、その品質特性をしっかりと理解しコントロールすることが非常に重要です。ソフトウェアを利用されている、もしくは開発されている企業様でソフトウェア品質に関してお困りのことがございましたら、弊社、IT品質専門コンサルタントのQualityCubeにご相談ください。様々な角度からシステム品質やソフトウェア品質の向上をサポートさせていただきます。

QualityCubeのソフトウェア品質向上サポートサービス

Twitterでフォローしよう

おすすめの記事