非機能要件の学習メモ|IPAの6分類と要件の書き方

「注文履歴を検索できる」は機能要件です。そこに「どのくらいの負荷で、何秒以内に検索結果が返るか」「障害で使えなくなったら何分で復旧するか」を加えると、設計やテストに必要な条件が見えてきます。こうした品質の目標や、運用・移行に関する制約が非機能要件です。

私はまだ要件定義を担当したことがありません。非機能要件を学ぶ手がかりとして、IPAの「非機能要求グレード2018」をもとに、どんな項目を確認するのか、どう書けば達成できたかを判定できるのかを整理しました。実際のプロジェクトで目標値をどう決めるかは、これから調べたいこととして最後に残しています。

IPAの非機能要求グレードの6分類

IPAの非機能要求グレードは、発注者と開発側が、求める水準をすり合わせるための資料です。大項目から確認し、設計や費用に影響する項目を具体化していきます。

大項目確認することの例
可用性いつ使える必要があるか。どの障害まで想定し、どれだけの時間で復旧するか。
性能・拡張性どの負荷で、どれだけ速く処理するか。利用者数やデータ量の増加をどこまで見込むか。
運用・保守性何を監視し、誰が対応するか。更新やバックアップ、復元をどう運用するか。
移行性何を移行するか。切替時にどれだけ停止でき、失敗したらどう切り戻すか。
セキュリティ誰にどの操作を許可するか。どのデータを保護し、どの操作の履歴を残すか。
システム環境・エコロジー設置場所、電力、機器など、稼働環境にどんな制約があるか。
IPA「非機能要求グレード2018」の大項目をもとに整理

ISO/IEC 25010:2023は、ICT製品やソフトウェア製品を対象とする製品品質モデルで、9つの品質特性を定義しています。ここでは、運用や移行まで含めて要件を洗い出せるよう、IPAの6分類を使います。

達成を判定できる要件の書き方

「検索を高速にする」だけでは、対象の操作や測定時の負荷、合格ラインが決まりません。たとえば注文管理システムの性能要件なら、次のように書けます。

注文データ100万件、検索APIへの負荷が毎秒50リクエストの条件で、30分間の負荷試験を行う。成功した検索リクエストのp95応答時間を500ミリ秒以下、全検索リクエストのエラー率を0.1%以下とする。

この例では、p95は成功したリクエストの95%が収まる応答時間です。エラー率も併記することで、成功した処理の速さと、リクエストが成功した割合をそれぞれ確認できます。ここで使った数値は、測定条件と合格ラインの書き方を確認するための例です。

復旧についても、対象の障害を明示して、復旧までの目標時間(RTO)と、どの時点までデータを戻せればよいかの目標(RPO)を決めます。たとえばデータベース障害に対してRTOを1時間、RPOを15分とするなら、復旧訓練で所要時間と復元できたデータの時点を確認します。

これから調べたいこと

検索APIの例では、負荷と合格ラインを仮に置きました。実際のプロジェクトで同じように書くには、数値を決める根拠と、決めた目標を誰がどう使うかも知っておきたいです。

  • 利用実績がない段階では、何を根拠にピーク負荷や応答時間の目標を仮置きするのか。設計や試験が進んだら、どの情報を使って見直すのか。
  • 受託案件で検索性能を検収条件に含める場合と、自社サービスで運用中の品質目標にする場合では、誰が目標値を合意し、どの段階で達成を確認し、誰が見直すのか。

参考資料

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です