ソフトウェアの非機能要件まとめ

2021年8月8日日曜日

Engineer

一般的に知られるソフトウェアの非機能要件をまとめて紹介します。

一般に非機能要件は定性的なものが多く、数値で達成率を表現するものが難しいです。
しかし、本稿では、定量的な非機能要件を定義しているガイドラインも紹介します。

また、ソフトウェア開発時の目標として、購入するソフトウェアを比較検討する際の基準として活用できるものを選定しています。


FURPS+

ソフトウェア品質指標となります。
FURPS(フープス)として示されたのちに、いくつかの観点が追加され
FURPS+となっています。

ソフトウェアの品質の向上のために測定すべき観点を表しており、
FURPSはソフトウェア品質に影響を与える属性の頭文字を繋げています。

下記の+が後に追加された観点です。

F: 機能性(functionality)

特徴セット、能力、一般性、セキュリティ

U: 使いやすさ(usability)

人的要因、美的感覚、一貫性、ドキュメンテーション

R: 信頼性(reliability)

故障と周期の重要性、復旧のしやすさ、予測性、正確性、故障の平均時間

P: 性能(performance)

スピード、効率、リソースの消費、スループット、応答時間

S: 保守性(supportability)

テストのしやすさ、拡張性、適用性、保守性、構成のしやすさ、サービスしやすさ、導入のしやすさ、ローカライズしやすさ

+: プロジェクト上の制約(plus constraints)

実装要求、インターフェイス要求、物理要求

ISO/IEC 9126

ISO/IEC 9126 は、ソフトウェア品質の評価に関する国際規格です。

機能性(functionality)

機能とその特性に影響する特性群。機能には、必要性を明確に述べているものと、暗に示しているものがある。

信頼性(reliability)

ある状況がある時間続いたときにソフトウェアがどの程度機能するかに影響する特性群

使用性(usability)

利用するのにかかる手間、個人の努力などに影響する特性群

効率性(efficiency)

ソフトウェアの性能やそれに要するリソース量に影響する特性群

保守性(maintainability)

何らかの変更を加えるのにかかる手間に影響する特性群

移植性(portability)

別の環境にソフトウェアを移行させる可能性に影響する特性群

非機能要求仕様定義ガイドライン - JUAS

非機能要求仕様定義ガイドラインでは,すべての項目について,測定可能な指標を定義しています。非機能要求と共に「測定可能な指標」が定義されている点が特徴です。
こちらがJUASによってまとめられた非機能要件指標となります

下表は非機能要件指標の一例となります


機能性

ソフトウエアが,指定された条件の下で使用されるときに,明示的および暗示的必要性に合致する機能を提供するソフトウエア製品の能力

信頼性

指定された条件の下で使用するとき,指定された達成水準を維持するソフトウエア製品の能力

使用性

指定された条件の下で使用するとき,理解,習得,利用でき,利用者にとって魅力的であるソフトウエア製品の能力

効率性

明示的な条件の下で,使用する資源の量に対比して適切な性能を提供するソフトウエア製品の能力

保守性

修正のしやすさに関するソフトウエア製品の能力

移植性

ある環境から他の環境に移すためのソフトウエア製品の能力

障害抑制性

高信頼性ソフトウエアを開発し,運用するために必要な事項を網羅したもの

効果性

費用とシステム投資効果の予測

運用性

利用者の要求に応じてサービスを提供し,かつ,与えられた条件下で特定の許容範囲のサービスを,要求される期間提供し続ける能力

技術要件

事前に決められた枠組みや仕組み,あるいは非機能要件を基にプロジェクト内部で検討・決定されるもの

非機能要求グレード2018 - IPA

IPAによって公開された非機能要求の一覧です。
2010年に一度公開されていましたが、セキュリティ脅威の増大などを踏まえ2018年に改訂されています。
非機能要件を以下の6種類238項目に分類しています。

可用性

継続性(11項目)、耐障害性(15項目)、災害対策(4項目)、回復性(3項目)

性能・拡張性

業務処理量(14項目)、性能目標値(15項目)、リソース拡張性(9項目)、性能品質保証(5項目)

運用・保守性

通常運用(19項目)、保守運用(13項目)、障害時運用(8項目)、運用環境(8項目)、サポート体制(16項目)、その他の運用管理方針(7項目)

移行性

移行時期(3項目)、移行方式(2項目)、移行対象機器(1項目)、移行対象データ(6項目)、移行計画(6項目)

セキュリティ

前提条件・制約条件(1項目)、セキュリティリスク分析(1項目)、セキュリティ診断(3項目)、セキュリティリスク管理(7項目)、アクセス・利用制限(5項目)、データの秘匿(3項目)、不正追跡・監視(8項目)、ネットワーク対策(3項目)、マルウェア対策(項目3)、Web対策(2項目)、セキュリティインシデント対応/復旧(項目1)

システム環境・エコロジー

システム制約/前提条件(2項目)、システム特性(7項目)、適合規格(3項目)、機材設置環境条件(18項目)、環境マネージメント(6項目)

まとめ

非機能要件として下記4種類を紹介させて頂きました。

FURPS+
ISO/IEC 9126
非機能要求仕様定義ガイドライン(JUAS)
非機能要求グレード2018(IPA)

数値で具体的に非機能要件を示していくことが求められているのであれば、
非機能要求仕様定義ガイドライン(JUAS)を活用することをお勧めします。
このガイドラインはそれぞれの非機能要件の測定尺度が定義されているため数値化に役立つはずです。

また、セキュリティに関する非機能要件に注力したい場合は
非機能要求グレード2018(IPA)を活用することをお勧めします。
こちらは、2018年にセキュリティ要件追加のため改定が行われているためです。

日頃の開発のお役に立てれば幸いです。

AIで副業ならココから!

まずは無料会員登録

プロフィール

メーカーで研究開発を行う現役エンジニア
組み込み機器開発や機会学習モデル開発に従事しています

本ブログでは最新AI技術を中心にソースコード付きでご紹介します


Twitter

カテゴリ

このブログを検索

ブログ アーカイブ

TeDokology