ナレッジNEW
ソフトウェア品質特性とは?ISO規格や活用例、副特性も解説

目次
本記事では、国際規格であるISO/IEC 9126、ISO/IEC 25010などで規定されている「システム及びソフトウェア品質特性(以降、ソフトウェア品質特性)」について解説します。また、ソフトウェア品質特性の開発現場における活用例についても紹介しています。
ソフトウェア品質特性とは
私たちが生活する現代社会において触れない日はないほど、「ソフトウェア」は生活に密着した存在となっています。全ての世代にとって無くてはならないデバイスとなったスマートフォンも、毎日のように利用するEコマースや動画サイトもソフトウェアによって構成されています。
鉄道や航空、自動車などの交通インフラ、病院や役所、金融機関などの公共インフラの世界でもソフトウェアを活用したIT化が急速に進み、それと同時にソフトウェア不具合が原因でシステムが停止するような出来事も度々発生し、ソフトウェアの品質が大きな社会問題に発展する事も多くなってきました。
「ソフトウェア品質」とは?
ソフトウェア品質とは【JIS X 25000:2017】によれば、『明示された条件下で使用するとき,明示的ニーズ又は暗黙のニーズを満たすためのソフトウェア製品の能力。』と定義されています。
ソフトウェアという利用者には直接「目に見えないもの」の品質を客観的に把握する難しさに加え、近年のソフトウェアの発達・複雑化により品質への新たなニーズも増加しており、ソフトウェア品質を正確に把握・管理する仕組みが必要になっています。
ソフトウェア品質を構成する要素(製品品質)
前段にてソフトウェア品質は『明示された条件下で使用するとき,明示的ニーズ又は暗黙のニーズを満たすためのソフトウェア製品の能力。』と記載しましたが、多岐にわたるソフトウェア製品品質を分類・評価するために国際的に体系化・規格化された特性群を「ソフトウェア品質特性」と呼びます。
ソフトウェア品質標準規格化の歴史(ISO/IEC 9126、ISO/IEC 25010)
ソフトウェア品質特性の策定の歴史は古く、最初の品質モデルは1991年にISO/IEC 9126: Information technology- Software product evaluation- Quality characteristics and guideline for their use(以降ISO/IEC9126)としてリリースされ、2001年に、ISO/IEC 9126-1-Softtware engineering, Product quality- Part 1: Quality modelとして改訂されました。これらの品質モデルは製品品質として6つの品質特性と27の副特性、利用時の品質として4つの品質特性により構成されています(図表1)。
その後、急速に普及したWebサービスやクラウドシステムといったシステムの多様化、複雑化に対する適応させるため、2011年ISO/IEC 25010:2011- Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models(以降ISO/IEC 25010:2011)としてリリースされました。ISO/IEC 25010:2011では製品品質として8つの品質特性と31の副特性、利用時の品質として5つの品質特性と11の副特性に拡張されています(図表2)。


※2023年にISO/IEC 25010:2011が改訂され、ISO/IEC 25002:2024(品質モデルの概念と利用方法)、ISO/IEC 25010:2023(製品品質モデル)、ISO/IEC 25019:2023(利用時の品質モデル)に再構成されましたが、2025年3月時点ではJISでの規格化も含め国内での導入は途上の状況のため、この記事では「ISO/IEC 25010:2011」で定義されている品質特性を基に解説します。
ソフトウェア品質特性(製品品質)の分類詳細
ISO/IEC 25010:2011で規定されているソフトウェア品質特性では以下のような分類となっています。なお、『』で示した箇所は、JIS X 25010:1013からの引用です。
機能適合性
機能適合性とは、「機能完全性」「機能正確性」「機能適切性」の副特性で構成されており、『明示された状況下で使用するとき,明示的ニーズ及び暗黙のニーズを満足させる機能を,製品又はシステムが提供する度合い』のことを指します。製品やシステムに実装された機能の集まりが明示的または暗黙的なニーズを満たすことができる度合い (機能完全性)、明示的または暗黙的なニーズに対して正しい結果を提供する機能がどれくらいあるか(機能正確性)、機能が定められた目的や作業の達成をどのくらい達成させやすくしているか(機能適切性)といった観点で製品を捉えます。
性能効率性
性能効率性とは、「時間効率性」「資源効率性」「容量満足性」の副特性で構成されており、製品がその機能をどれだけ効率的に提供できるかを示す特性です。
処理速度や応答時間(時間効率性)、CPU利用率やメモリ占有率、ネットワーク帯域使用率などのリソースの効率的な利用状況(資源効率性)、システムの負荷量や同時処理データ量に対する許容の度合い(容量満足度)といった観点で捉えます。
互換性
互換性とは、「同じハードウェア環境又はソフトウェア環境を共有する間、製品、システム又は構成要素が他の製品、システム又は構成要素の情報を交換することができる度合い、及び/又はその要求された機能を実行することができる度合い」と定義されており、「共存性」「相互運用性」の副特性で構成されています。他の製品と同じ環境や資源で正常に動作しているか(共存性)、異なるシステム、製品、サービスなどが、互いに情報をやりとりしたり、連携したりできるか(相互運用性)といった観点で捉えます。
使用性
使用性とは、製品がユーザーにとってどれだけ使いやすいかを評価する特性です。特にエンドユーザーの視点から製品を評価するために重要で、理解のしやすさ(適切度認識性)、習得のしやすさ(習得性)、操作のしやすさ(運用操作性)、操作ミスの少なさ(ユーザーエラー防止性)、ユーザーインターフェースの使う際の心地よさや美しさ(ユーザーインターフェース快美性)、障害者を含む全ての人々にとって利用のしやすさ(アクセシビリティ)といった副特性を用いて捉えます。
信頼性
信頼性とは、『明示された時間帯で,明示された条件下に,システム,製品又は構成要素が明示された機能を実行する度合い』と定義されている特性です。エラーなく安定して稼働し続けるか (成熟性)、システム・製品が、要求されたときに利用できるかどうか (可用性)、万が一エラーが発生しても影響を最小限に抑えて稼働し続けるか(障害許容性)、エラー発生後に正常な状態に戻すまでの早さ(回復性)といった副特性によって捉えます。
セキュリティ
セキュリティとは、製品が情報の保護をどの程度保証できるかを捉える特性です。「機密性」「インテグリティ」「否認防止性」「責任追跡性」「真正性」といった副特性が規定されています。ユーザー以外が情報にアクセスできないようになっている度合い(機密性)、不正なアクセスや改変からデータや処理を守り、想定外の振る舞いや改ざんを防ぐことができる度合い(インテグリティ)、システムの利用事実の証明ができる度合い(否認防止性)、情報や利用者、システム等が「本物」であることを保証し、なりすましや偽造、偽装など不正な主体によるアクセスや情報発信を防ぐ性質や確からしさの度合い(真正性)といった観点を用いて製品・サービスを捉えます。
保守性
保守性とは、『意図した保守者によって,製品又はシステムが修正することができる有効性及び効率性の度合い』と定義されています。保守性が高いシステムは、問題が発生した場合や新たな要求が生じた場合に迅速に対応でき、長期的な運用コストを抑えられます。保守性には『変更が他の構成要素に与える影響を最小になるように,システム又はコンピュータプログラムが別々の構成要素から構成されている度合い』(モジュール性)、コンポーネントが他のシステムでも再利用可能な状態になっている度合い(再利用性)、ソフトウェアに不具合や障害が発生した際、その内容・原因・障害範囲などをスムーズかつ的確に把握・分析できる度合い、またはそのしやすさの度合い(解析性)、『欠陥の取込みも既存の製品品質の低下もなく,有効的に,かつ,効率的に製品又はシステムを修正することができる度合い』 (修正性)、効率的にテストが行える状態になっているか(試験性)といった副特性を用いて捉えます。
移植性
移植性とは、製品が異なる環境やプラットフォームでどれだけ簡単に適応できるかを示す特性です。異なる環境基盤に容易に適用できるか(適応性)、導入時の手順やインストールや削除の容易さ(設置性)、新しいコンポーネントの導入やバージョンアップ、別システムへの置き換えのしやすさ(置換性)といった特性を用いて捉えます。
ソフトウェア品質特性(利用時の品質)の分類
ISO/IEC 25010:2011で規定されている利用時の品質の品質特性では以下のような分類となっています。
有効性
有効性とは、『明示された目標を利用者が達成する上での正確さ及び完全さの度合い』を指します。ユーザーが実現したいこと(目的)を、そのソフトウェアが正確かつ完全に実現できているかについてを捉えます。
効率性
効率性とは、製品が、限られたリソースを有効活用しながら、ユーザーの期待する速度やパフォーマンスを無駄なく実現できる度合いとなります。「ユーザーの使いやすさ・操作の手軽さ・作業時間の短さ」といった望む成果をどれだけ「効率よく」達成できるかといった観点を用いて捉えます。
満足性
満足性とは、ユーザーが製品を利用した際に期待がどれだけ満たされるかを捉える特性です。満足性には「実用性」「信用性」「快感性」「快適性」の副特性が規定されており、ユーザーがソフトウェアを実際に使って目的や目標を効果的かつ効率的に達成でき、全体として“役に立った”と感じられる度合い(実用性)、ユーザーが結果を安心して信用できるかどうか(信用性)、利用者がシステムやソフトウェアを使ったとき、「楽しい」「美しい」「心地よい」などの情緒的な満足や快適感、美的な喜びをどれだけ感じられるか (快感性)、身体的・心理的な負担や不快感が少なく、ストレスを感じずに作業できるか(快適性)といった観点を用いて捉えます。
リスク回避性
リスク回避性とは、製品を利用することで利用者や関係者が被る可能性のある危害や損害、法的・社会的・環境的リスクなどを最小限に抑え、安全で安心して利用できる度合いを捉える特性です。
金銭的・経済的損失、不正・誤課金、業務機会損失、コンプライアンス違反による罰則などの経済的なリスクを最小限に抑えることができているか(経済リスク回避性) 、製品の利用によって生じ得る身体的な危害・健康被害・安全上の事故を未然に防いでいるか(健康・安全リスク回避性) 、製品を利用・運用することで、環境に悪影響や損失が生じるリスクを最小限に抑えることができているか(環境リスク回避性)といった副特性を使って捉えます。
利用状況網羅性
利用状況網羅性とは、想定される、あるいは当初の想定を超えた多様な利用環境や状況下においても、有効な品質特性(有効性・効率性・満足性・リスク回避性など)を損なわずに発揮できるかを捉える特性です。「利用状況完全性」「柔軟性」の副特性が規定されており、想定したシステム環境で有効性,効率性,リスク回避性および満足性を伴って利用できるか(利用状況完全性)、多様な利用者や利用状況、環境の変化・拡張にも対応し、当初の想定を逸脱した状況でも有効性,効率性,リスク回避性および満足性を伴って自在に使い方を調整できるかどうか(柔軟性)といった観点で捉えます。
開発現場におけるソフトウェア品質特性の活用例
製品の開発現場では、ソフトウェア品質特性を利用した開発活動が日常的に行われています。ここでは代表的な活用事例について紹介します。
要件定義フェーズにおける活用例
要件定義フェーズでは定義した要件仕様をレビューする際に「ソフトウェア品質特性」の品質特性・副特性を用いて必要な要件定義が行われていることや、どの特性に重点が置かれているかを確認します。要件の定義内容はユーザーやマーケットの要求から導出された要件の比重が大きくなり、保守性や移植性といった特性に基づいたの要求策定がおろそかになり、リリース後に課題が顕在化する傾向があります。プロジェクト序盤に開発対象となる製品に対し、ソフトウェア品質特性の各特性に基づいた要求事項や目標値・測定方法かを判断・定義することで、「上流工程で品質を作り込む」ことができます。
テストフェーズにおける活用例
テストフェーズ、特に「システムテスト」「受け入れテスト」フェーズにおいて、仕様書・設計書に規定されていない「暗黙知の可視化」にソフトウェア品質特性を活用するケースがあります。システムテストでは非機能要件を入力にしたテストタイプの設計・実施が必要になりますが、往々にしてこれらの情報がドキュメントに記載されないケースです。ソフトウェア品質特性の各特性と照らし合わせながら仕様情報をチェックし、関連性の強い品質特性を基にテスト観点を導出します。
派生開発プロジェクトにおける活用例
派生開発プロジェクトでは仕様検討を含めた開発期間が短いことが多く、特に既存機能と変更箇所の競合部分や非機能要件部分において影響度分析が不十分であることに起因する要件や仕様の定義漏れが起こりがちです。
ソフトウェア品質特性は非機能要件の導出に有効な特性群も多く、影響度分析時にソフトウェア品質特性を「チェックリスト」的に活用、突き合わせすることで仕様変更時の考慮ポイントを均一化でき、効率的な要件定義・テスト設計ができます。
ソフトウェア品質特性の適用の考え方
ソフトウェア品質特性は定義されている全ての品質特性に対して、全てに高い度合いを求められるわけではありません。製品の性質やニーズによって品質特性の重点を検討しながらテスト観点を導出することが一般的です。そのため、対象となる製品を正確に把握し、品質の優先度を判断して定義する活動が必要になります。
ソフトウェア品質特性が体系化されたISO/IEC 25010:2011を活用し、品質の向上を
この記事では次の3点について解説しました。
- ソフトウェアの「品質」の考え方(ソフトウェア品質特性)
- ソフトウェア品質特性の国際規格(ISO/IEC 25010:2011)と特性群
- 開発現場におけるソフトウェア品質特性の活用例
ソフトウェアの品質特性が網羅的に体系化されたISO/IEC 25010:2011を上手に活用して、開発現場での品質向上を目指しましょう。
■参考文献■
- JIS X 0129-1:2003(ISO/IEC 9126-1:2001)
ソフトウェア工学-製品品質-第1部:品質モデル
Software engineering -- Product quality -- Part 1: Quality model - JIS X 25010:2013(ISO/IEC 25010:2011)
システム及びソフトウェア製品の品質要求及び評価(SQuaRE)―システム及びソフトウェア品質モデル
Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models - 「ISO/IEC 25010の品質モデルを使って市場不具合を減らすテスト戦略~品質を「見える化」する~」
- システム・ソフトウェア品質標準 SQuaRE シリーズの歴史と概要|東 基衞
この記事は面白かったですか?
今後の改善の参考にさせていただきます!