ソフトウェア品質と国際規格ISO/IEC 9126
ソフトウェアの品質を評価するための国際規格として、かつてISO/IEC 9126が広く利用されていました。この規格は、
ソフトウェア品質を体系的に定義し、評価するための枠組みを提供するものでした。しかし、ソフトウェア工学の進歩に伴い、新たな規格策定事業SQuaRE(Software Quality Requirements and Evaluation)により、ISO/IEC 25000:2005へと移行しました。ISO/IEC 9126は「品質モデル」「外部測定法」「内部測定法」「利用時品質測定法」の4つの部分から構成され、
ソフトウェア品質を多角的に評価する仕組みを提案していました。
日本のJIS規格においても、ソフトウェア製品の品質に関する規格群(JIS X 0129群)と評価に関する規格群(JIS X 0133群)が存在します。JIS X 0133-1は、ISO/IEC 14598-1を翻訳した規格であり、ISO/IEC 9126よりも広い範囲をカバーし、評価支援、評価プロセス、内部測定法、外部測定法、そして利用時の品質を扱っています。
ISO/IEC 9126では、
ソフトウェア品質を以下の6つの主要特性に分類し、それぞれの特性をさらに下位特性に分解することで、詳細な評価を可能としていました。
1. 機能性 (Functionality): ソフトウェアが意図した機能を正しく実行する能力。具体的には、合目的性、正確性、
相互運用性、機密性、標準適合性などが含まれます。暗黙的なニーズも考慮される点が重要です。
2. 信頼性 (Reliability): ソフトウェアが特定の期間、特定の条件下で正常に動作し続ける能力。成熟性、障害許容性、回復性、標準適合性が含まれます。
3. 使用性 (Usability): ソフトウェアがユーザーにとって使いやすいかどうか。理解性、習得性、運用性、注目性(魅力)、標準適合性が含まれます。ユーザーフレンドリーな設計が重要となります。
4. 効率性 (Efficiency): ソフトウェアがリソースを効率的に使用できるかどうか。時間効率性、資源効率性、標準適合性が含まれます。パフォーマンスとリソース消費のバランスが求められます。
5. 保守性 (Maintainability): ソフトウェアの修正や改善が容易に行えるかどうか。解析性、変更性、安定性、試験性、標準適合性が含まれます。保守性の高い設計は長期的な運用に不可欠です。
6. 移植性 (Portability): ソフトウェアを異なる環境に移行できるかどうか。環境適応性、設置性、共存性、置換性、標準適合性が含まれます。
利用時の品質
ISO/IEC 9126-4では、利用時の品質(Quality in Use)について定義しています。これは、ユーザーが実際にソフトウェアを使用する状況における品質を評価するものです。有効性、生産性、安全性、満足性の4つの特性から構成され、ユーザーの視点からの評価が重要となります。ユーザーのニーズを満たすことが、利用時の品質を決定する重要な要素となります。
測定法
ISO/IEC 9126では、
ソフトウェア品質を測定するための3種類の方法を提案しています。
内部測定法: ソフトウェアの実行に依存しない、静的な尺度を用いた測定方法。ソースコードの複雑さやモジュールの結合度などが測定対象となります。
外部測定法: ソフトウェア実行時における動的な尺度を用いた測定方法。実行速度、メモリ使用量、エラー発生率などが測定対象となります。
*
利用時品質測定法: 実際の使用状況におけるユーザーの評価に基づく測定方法。アンケート調査や観察などが用いられます。
これらの測定法を組み合わせることで、ソフトウェアの品質を多角的に評価することができます。内部品質が外部品質を決定し、外部品質が利用時の品質を決定するという考え方も存在します。
ISO/IEC SQuaREシリーズ
ISO/IEC 9126の後継規格であるISO/IEC 25000は、ISO/IEC SQuaREシリーズの一部です。SQuaREシリーズは、システムとソフトウェアの品質に関する要求事項と評価に関する国際規格群であり、
ソフトウェア品質に関する包括的な枠組みを提供しています。
まとめ
ISO/IEC 9126は、
ソフトウェア品質を体系的に評価するための重要な枠組みを提供しました。その考え方は、後継規格であるISO/IEC 25000や関連するJIS規格にも引き継がれ、現在もソフトウェア開発において重要な役割を果たしています。
ソフトウェア品質の向上を目指す上では、これらの規格を理解し、適切に適用することが不可欠です。それぞれの特性を理解し、適切な測定法を選択することで、より高品質なソフトウェア開発が可能となります。