ソフトウェア開発において、「品質が良い」という定義は非常に曖昧になりがちです。プロジェクトの途中で優先順位が変わったり、成功の基準が明確でなかったりすることで、開発者とユーザーの間で認識の乖離が生じることがあります。こうした人間的なバイアスを排除し、抽象的な品質目標を測定可能な数値へと変換するために策定されたのがISO/IEC 9126という国際規格です。
本記事では、かつての標準であったISO/IEC 9126の構造から、その後継であるISO/IEC 25010への進化について詳しく解説します。
Key Facts
- ISO/IEC 9126はソフトウェア品質評価の国際規格であり、現在はISO/IEC 25010に置き換えられている。
- 品質を「機能性」「信頼性」「使用性」「効率性」「保守性」「移植性」の6つの特性で定義していた。
- 内部メトリクス(静的)、外部メトリクス(実行時)、使用時の品質メトリクスの3段階で評価を行う。
- 後継のISO/IEC 25010では、特性が8つに増え、「セキュリティ」や「互換性」が独立した項目として追加された。
ISO/IEC 9126の基本構造と目的
ISO/IEC 9126の最大の目的は、プロジェクトの目標に対する共通認識を構築することです。具体的には、コンプライアンスのような抽象的な優先事項を、「スキーマXに対して介入なしで出力データを検証できる」といった、検証可能な具体的数値(メトリクス)に落とし込むフレームワークを提供します。
この規格では、ソフトウェア製品を単なる実行ファイルだけでなく、ソースコードや設計書まで含む広い概念として捉えています。そのため、ユーザーの定義にはエンドユーザーだけでなく、ライブラリを利用するプログラマーや運用担当者も含まれます。
規格は以下の4つのパートで構成されていました。
- 品質モデル:品質を定義する特性の体系。
- 外部メトリクス:動作中のソフトウェアに適用する測定指標。
- 内部メトリクス:コードなどの静的な状態から測定する指標。
- 使用時の品質メトリクス:実際の利用環境で得られる指標。

品質モデルの詳細:6つの特性
ISO/IEC 9126-1では、ソフトウェアの品質を以下の6つの主要特性と、それに紐づく詳細なサブ特性に分類しています。
1. 機能性 (Functionality)
明示的または暗示的なニーズを満たす機能が備わっているか。適切性、正確性、相互運用性、セキュリティ、機能適合性が含まれます。
2. 信頼性 (Reliability)
特定の条件下で、一定期間にわたって性能レベルを維持できる能力。成熟度、障害許容性、回復性、信頼性適合性が評価対象です。
3. 使用性 (Usability)
ユーザーが利用する際に必要な努力量や、利用後の評価。理解しやすさ、習得しやすさ、操作しやすさ、魅力度が指標となります。
4. 効率性 (Efficiency)
使用されるリソース量と性能レベルの関係。時間挙動(レスポンスタイムなど)とリソース利用効率、効率性適合性が含まれます。
5. 保守性 (Maintainability)
仕様変更や修正を行うために必要な努力量。解析しやすさ、変更しやすさ、安定性、テストしやすさが重要視されます。
6. 移植性 (Portability)
ある環境から別の環境へソフトウェアを移設できる能力。適応性、インストールしやすさ、共存性、置換しやすさが評価されます。
品質測定のアプローチと評価指標
品質の評価は、段階的なアプローチで行われます。理想的な流れとしては、「内部品質」が「外部品質」を決定し、それが最終的に「使用時の品質」へとつながると考えられています。
| メトリクス種別 | 測定タイミング・手法 | 特徴 |
|---|---|---|
| 内部メトリクス | 開発段階(静的解析) | ソフトウェアを実行せずに測定する。 |
| 外部メトリクス | テスト・運用段階(動的解析) | 動作中のソフトウェアに対して測定する。 |
| 使用時の品質メトリクス | 実環境での利用時 | 実際のユーザーが利用した結果から測定する。 |
また、本規格では「欠陥(Defect)」と「不適合(Nonconformity)」を明確に区別しています。前者は「意図した利用要件を満たしていないこと」を指し、後者は「規定された要件を満たしていないこと」を指します。これはテスト工程における検証(Verification)と妥当性確認(Validation)の区別と同様の考え方です。
次世代規格 ISO/IEC 25010への進化
1991年に発行され、2001年に改訂されたISO/IEC 9126は、2011年にISO/IEC 25010(SQuaREシリーズの一部)へと統合・発展しました。現代の複雑なシステムに対応するため、より詳細なモデルへと拡張されています。
主な変更点と拡張内容
- 特性数の増加:6つの特性から8つの特性へ拡大し、サブ特性も31項目に増加しました。
- 新特性の追加:独立した特性として「セキュリティ」と「互換性」が新設されました。
- 名称の変更:「機能性」は「機能適合性」へ、「効率性」は「性能効率性」へと、より具体的な名称に変更されました。
- 詳細化:使用性において「アクセシビリティ」や「ユーザーエラー防止」が追加され、保守性では「モジュール性」や「再利用性」が定義されました。
Frequently Asked Questions
ISO/IEC 9126とISO/IEC 25010の最大の違いは何ですか?
最大の違いは、品質特性の範囲と詳細度です。25010では、現代のソフトウェアに不可欠な「セキュリティ」や「互換性」が独立した主要特性として定義され、より包括的な評価が可能になっています。
内部メトリクスと外部メトリクスの使い分けはどうすればよいですか?
内部メトリクスはコードレビューや静的解析ツールを用いて開発中に測定し、設計の健全性を確認します。一方、外部メトリクスは実際にシステムを動作させ、応答速度やエラー率などの挙動を確認するために使用します。
「欠陥」と「不適合」の違いを簡単に教えてください。
「不適合」は、あらかじめ決めた仕様書(要件定義書)通りになっていないことを指します。「欠陥」は、仕様書に書いていなくても、ユーザーが実際に使った時に「使いにくい」「目的を達成できない」と感じる不備を指します。
この規格を導入することでどのようなメリットがありますか?
「品質」という曖昧な言葉を共通の尺度で定義できるため、顧客との合意形成がスムーズになります。また、測定可能な指標を設けることで、客観的な根拠に基づいた品質改善やリリース判定が可能になります。
References
- Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality model
- Software engineering — Product quality — Part 1: Quality model
- ISO/IEC 25010:2011 : Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models