非機能要件

2023年11月18日

要件定義プロセスとは、文字通りコンピューターシステムに対する要件(要求)を定義するプロセスである。
共有フレーム2013(SLCP-JCF2013)では、以下のように少々堅苦しくて分かり難い表現で定義されている。
「要件定義プロセスは、定義された環境において、利用者及び他の利害関係者が必要とするサービスを提供できるシステムに対する要件を定義することを目的とする。
このプロセスでは、システムのライフサイクルを通じて、システムに関わり合いを持つ利害関係者または利害関係者の種類を識別し、そのニーズ及び要望を識別する。
このプロセスは、これらを分析し、次のような要件定義の共通集合へ変換する。・・・・・」
簡単に言うと、利害関係者の要求を分析・整理して、コンピューターシステムに求められる要件を定義することである。
一般にシステムに対する要件は、機能要件と非機能要件とに大別される。
エンドユーザーにとって重要なのは、ビジネスルールや業務フロー、業務フローと組織の役割分担、などである。エンドユーザーから見ると、コンピューターシステムはビジネスを支援する単なるツールの1つであるからビジネスルールや業務に関する「機能要件」が重視されるのは至極当然である。
しかしながら、端末のレスポンス性能や、昨今問題がクローズアップされている情報漏洩問題などから、 非機能要件のうち性能要件とセキュリティ要件についてはユーザーの関心も高いと言える。
非機能要件をどのように分類するか、分類方法にはいくつかの考え方があるだろう。
共通フレーム2013では、非機能要件として以下のものが例示されている。

  • 品質要件(機能性、信頼性、使用性、効率性、保守性、移植性)
  • 技術要件
  • 運用、操作要件
  • 移行要件
  • その他、エンドユーザ教育や電力量、フロア面積など

この例では、性能要件やセキュリティ要件は、運用要件に包含されていると思われるが、先に指摘したように、性能やセキュリティはユーザーの関心が高いことから、直接的・明示的に表現されている方が良いと感じる。
非機能要件の定義に必要な項目を、網羅的に定義したものに「非機能要求グレード」というのがある。
非機能要求グレードは、独立行政法人情報処理推進機構(IPA)のWebサイトから入手できる。 著作権もIPAが有している。
IPAのWebサイトによると、「非機能要求グレード」は、重要な項目から段階的に詳細化しながら非機能要求の確認を行うツール群」 であり、以下の3つのツールから構成されている。

  1. システム基盤の非機能要求に関するグレード表(以下、グレード表)
  2. システム基盤の非機能要求に関する項目一覧(以下、項目一覧)
  3. システム基盤の非機能要求に関する樹系図(以下、樹系図)

非機能要求グレードを使用して、トップダウンに段階的に非機能要求を定義する手順として、以下のような3段階の流れ(作業フロー)が想定されている。
①【モデルシステムの選定:開発するシステムに最も近いモデルシステムを1つ選択する】
先ず要件定義の対象となるシステム(これから構築しようとしているシステム)がどの「モデルシステム」に近いかを選択する。
「モデルシステム」として、3つのモデルが定義されている。
「社会的影響が極めて大きいシステム」、「社会的影響が限定されるシステム」、「社会的影響がほとんどないシステム」の3つである。
3つのモデルのグレードの概要はモデルシステムシート(グレード表)に表形式で定義されている。
例えば、「社会的影響がほとんどないシステム」の場合、稼働率は「1年間で数日程度の停止まで許容できる(稼働率99%)」、 目標復旧水準のデータのリカバリを伴う復旧では、「週次のバックアップからの復旧が目標水準となる」といった具合である。
対象システムのグレードが、モデルシートのグレードとぴったり一致するとは限らない。 このステップでは、対象システムの大まかなグレードを定義し、グレードシートの定義との差異を明らかにすることが目的である。
②【重要項目のレベルの決定:樹系図で全体を俯瞰し、グレード表でレベル値を決定する】
このステップでは、重要項目について、求められているレベル(レベル値)を定義していく。
例えば、グレード表には「通常時の業務量」という非機能要求の小項目があり、その中の「ユーザ数」というメトリクス(指標)が重要項目になっている。
「ユーザ数は」、「レベル0:特定ユーザのみ」、「レベル1:上限が決まっている」、「レベル2:不特定多数のユーザが利用」のようにレベルが定義されている。 レベルの数値が高いほど求められるレベルが高いという意味である。
「社会的影響が限定されるシステム」の場合、「レベル0:特定ユーザのみ」(特定ユーザーのみが対象システムを使用する)が基準(標準)であるが、 対象システムの要件に照らし合わせてレベルを調整する。
先に記載したとおり、対象システムがモデルシートのグレードとぴったり一致するとは限らないから、この段階で重要項目の レベルを調整するわけである。
③【重要項目以外のレベルの決定:項目一覧で非機能要求項目の要求レベルを決定する】
項目一覧を使用して、重要項目以外の非機能要求項目について、求められるレベルを決定する。
非機能要求グレードには「利用ガイド(利用編)」と「利用ガイド(解説編)」が付属しているので、使用方法の詳細はそちらを参照されたい。
なお、「非機能要求グレード」における非機能要求項目の体系(中項目まで)は以下のようになっている。

非機能要求項目
非機能要求項目
非機能要求グレードは、非機能要求項目をモレなくダブリなく定義する手法として、あるいは要件定義時のチェックリストとしても利用できる。要件定義作業のツールとして一考に値する。

プロジェクト管理あれこれ
「プロジェクト管理あれこれ」のINDEX