📝

software quality model

📁 概念 👁 -- 閲覧

ソフトウェア品質モデル

定義

ソフトウェアの「品質」を多面的に捉えるための体系的な枠組み。ISO/IEC 25010 では品質を2つの視点で定義する。

製品品質(Product Quality)— ソフトウェア自体が持つ特性:

  • 機能適合性、性能効率性、互換性、使用性、信頼性、セキュリティ、保守性、移植性

利用時品質(Quality in Use)— 実際の使用状況での成果:

  • 有効性、効率性、満足性、リスク回避性、利用状況網羅性

なぜ重要か

品質が「バグがない」という一次元的な理解に留まると、重要な品質特性(保守性・セキュリティ・使いやすさ)が設計フェーズで考慮されない。製品品質と利用時品質を区別することで、「技術的に正しく動くが使えないシステム」や「機能は揃っているが保守不能なコード」を予防できる。

品質は後付けできない。設計・実装の段階でどの品質特性を重視するかを意識しないと、後工程での修正コストが指数的に増大する(→シフトレフト)。

適用場面

  • 品質目標の設定時:「品質を上げる」という曖昧な目標でなく、「保守性のうち変更容易性を向上させる」と特性レベルで定義する
  • 要件定義時:機能要件だけでなく品質特性(非機能要件)を明示的に洗い出す
  • 設計レビュー時:設計判断が品質特性のトレードオフ(性能 vs 保守性 等)に与える影響を評価する
  • テスト計画時:どの品質特性を検証するかをテストタイプ(性能テスト・セキュリティテスト等)と対応付ける

製品品質と利用時品質の関係

製品品質(設計・実装で制御可能)
  ↓ 実際の使用環境・ユーザーとの相互作用
利用時品質(エンドユーザーが体験する成果)

製品品質が高くても利用時品質が低いケースが存在する(高性能だが操作が複雑なシステム等)。顧客価値は最終的に利用時品質で測られる。

出典

ソフトウェア品質保証の極意 — 第1章「ソフトウェア品質の基本概念」(SQuBOK Guide 準拠)