このユニットの結論
機能要件は「システムが何をするか」、非機能要件は「どのくらいの速さ・量・安全さ・止まりにくさで動くか」です。
機能要件だけで作ると、「動くが使えない」システムになります。非機能要件は、機能と同じ重さで決める必要があります。
1. 何の話か
要件には、大きく2つの種類があります。
- 機能要件:請求データを作る、承認する、検索する、といった「できること」
- 非機能要件:何秒で画面が出るか、何人が同時に使えるか、どこまで止まってよいか、誰が何を見てよいか、といった「どのように動くか」
2. なぜ必要か
業務部門は、機能要件については具体的に話せます。「この画面でこれを入力したい」と言えるからです。
一方、非機能要件は、聞かれないと出てきません。「速さ」や「止まりにくさ」は、当たり前に満たされると思われがちだからです。
その結果、
- 画面は正しく動くが、表示に時間がかかって業務が回らない
- 普段は問題ないが、利用が集中すると止まる
- 障害が起きたときに、どこまで戻せばよいか決まっていない
ということが、テストや本番の直前に分かります。
3. このユニットで分かること
- 機能要件と非機能要件の違い
- 非機能要件の代表的な種類
- 非機能要件を決めるとき、AIに任せてはいけないこと
4. 非機能要件の代表的な種類
| 種類 | 何を決めるか(一般的な例) |
|---|---|
| 性能 | 画面の応答時間、処理にかかる時間、同時に使える人数 |
| 可用性 | どのくらい止まらずに動くか、止まったら何時間で戻すか |
| データ保全 | 障害時に、どこまでのデータを失ってよいか |
| セキュリティ | 誰が何を見て、何を変えてよいか、操作の記録を残すか |
| 運用・保守 | 監視の方法、バックアップ、問い合わせ対応 |
| 移行 | 古いデータをどこまで、どの品質で移すか |
具体的な数値は、業務の重要さと費用のバランスで決めます。数値を決めないまま「速く」「止まらない」と書いても、要件にはなりません。
CASE FACTFROZEN正本に記載されたアステリア案件の事実
アステリア案件に関係する記載
- 約120人規模のプロジェクト
- 約36本のシステム連携
- 10年分のデータ移行
- 成果物に REQ-003 非機能要件一覧 がある
- Unit「06 壊れることを前提に設計する」に、利用人数・停止時間・データ損失・「絶対に止まらない」を扱うUnitがある
アステリア案件の非機能要件の具体的な数値(応答時間、停止時間、データ損失の許容範囲など)は、正本に記載がありません。未確定
5. THINK — 機能テストは全部合格
ある画面の機能テストが、すべて合格しました。
問題
この画面は、本番で使えると言えるでしょうか。
判断例を開く
判断
まだ言えません。
確認すること:
- 本番と同じくらいのデータ量で試したか
- 利用が集中する時期の利用人数で試したか
- 応答時間の目標が決まっていて、それを満たしたか
- 権限のない人が使えないことを確かめたか
機能が正しいことと、業務で使えることは別です。
6. よくある失敗
- 非機能要件を「一般的な水準」とだけ書く
- 数値の目標はあるが、どの条件(データ量、利用人数、時期)で満たすかがない
- 非機能要件の確認を、テストの最後に回す
- 非機能要件を満たすための費用を見込んでいない
7. 成果物との接続
- REQ-002 要件一覧:機能要件を管理する
- REQ-003 非機能要件一覧:非機能要件と、その目標・条件を管理する
危機演習 CR06 性能目標2秒に対して32秒 では、性能の問題が見つかった場面を体験します(学習上の接続です。正式な対応関係ではありません)。
8. AI WORKFLOW — 抜けている非機能要件を探させる
指示例:
「次の要件一覧を、性能・可用性・データ保全・セキュリティ・運用・移行の観点で確認し、決まっていない項目を質問の形で挙げてください。数値の目標は提案せず、確認すべき点だけを示してください。」
9. REVIEW — AIの指摘を確認する
- 指摘された抜けが、別の文書で決まっていないか
- AIが一般的な数値を、このプロジェクトの目標のように書いていないか
- 業務の重要さの違い(止まってよい業務・止まってはいけない業務)を無視していないか
ADVANCED深掘り — 実務者向けに一段深く
深掘り — 品質の分類と、特性どうしの引き合い
分類を借りる
非機能要件は、聞かれないと出てこないため、抜けを防ぐには「何を聞くか」の一覧が要ります。世界で共有されているソフトウェア品質の国際規格(ISO/IEC 25010)は、品質を、機能の適合性、性能効率、互換性、使用性、信頼性、セキュリティ、保守性、移植性の 8 つに分けています。この一覧を、要件の聞き取りの目次として借りると、「性能と可用性だけ聞いた」という抜けが減ります。すべてに数値を置く必要はなく、「この業務では問わない」と決めた記録も残します。
特性は引き合う
品質の特性は、独立ではありません。セキュリティを上げると使用性が下がる(認証の手順が増える)、性能を上げると保守性が下がる(特別な作りになる)、というように、片方を上げると片方が下がる組み合わせがあります。非機能要件を決めるときは、特性どうしの引き合いを一覧にし、どちらを優先するかを業務の重要さで決めます。全部を最高にする要件は、費用が見積もれず、作れません。
業務ごとに水準を変える
同じシステムの中でも、止まると会社の業務が止まる機能と、翌日に回せる機能があります。非機能の水準は、システム全体に 1 つではなく、業務の重要さで段階を分けて置きます。段階を分ければ、重要な機能に費用を集め、そうでない機能の費用を抑えられます。
測り方の例
- 8 つの分類のうち、要件として決めた(または「問わない」と決めた)分類の数
- 引き合う特性の組み合わせで、優先を決めて記録した数
- 業務の重要さの段階の数と、段階ごとの機能の数
現場で確かめる問い
- 非機能要件の聞き取りに、分類の一覧を使っているか。抜けている分類はどれか
- 引き合う特性(セキュリティと使用性、性能と保守性など)で、どちらを優先するか決めたか
- 非機能の水準は、システム全体に 1 つか、業務の重要さで段階を分けているか
- 「この業務では問わない」と決めた分類について、記録が残っているか
アステリア案件の非機能要件の分類、特性の優先、業務の重要さの段階は、正本に記録がありません。記録なし
10. 人間が判断すること
- 非機能要件の目標値と、それを満たす条件
- 目標を上げたときの費用を、受け入れるか
- 目標を満たせない場合に、業務側でどこまで許容するか
11. 判断演習
「検索画面は速く表示されること」という要件があります。
この要件を確かめられる形にするために、決める必要があることを挙げてください。
- 何秒以内か
- どのくらいのデータ量のときか
- 何人が同時に使うときか
- どの時期(普段・繁忙期)か
あなたの記録あなたの考え。事実ではありません
判断ノート
このユニットで覚えてほしいこと
機能要件は「何をするか」、非機能要件は「どのように動くか」です。
非機能要件は、数値と条件をそろえて決めて、初めて確かめられる要件になります。