非機能要件の定義
概要
- 日程: Day 2 / セッション 07
- 時間: 13:30-14:10
- 形式: 実習
- ゴール: 自チームの開発テーマに対する非機能要件を、性能・可用性・運用性・保守性などのカテゴリに分けて10項目以上書き出し、各項目に具体的な数値や条件を明記できる
- 学習形式: AI協働型(カテゴリごとの典型例と数値の妥当性検証をAIに依頼する)
導入(5分)
前のセッションで「非機能要件は後で気付くと致命的」と学びました。「動くものはできたが10秒待たないと表示されない」アプリは誰も使いません。
このセッションでは、自チームの開発テーマに対する非機能要件を10項目以上書き出します。10は意外と多く感じるかもしれませんが、AIをフル活用して「カテゴリごとに典型的なもの」を出させれば、楽に到達できます。
ここで重要なのは**「定性的な記述」で終わらせない**こと。「速い」ではなく「3秒以内に応答」、「安定」ではなく「年間稼働率99.9%」、と数値や具体条件で書きます。
本編(5分の解説 + 30分の実習)
1. 非機能要件のカテゴリと典型項目
IPAの非機能要求グレードを簡略化した6カテゴリで考えます。
| カテゴリ | 典型項目 | 数値例 |
|---|---|---|
| 性能・拡張性 | 応答時間、同時接続数、データ件数上限 | 平均応答3秒以内、同時100ユーザー |
| 可用性 | 稼働率、計画停止時間、復旧時間 | 99.9%稼働、復旧1時間以内 |
| 運用・保守性 | 監視、ログ、デプロイ頻度、保守期間 | 1日1回デプロイ可、5年保守 |
| 移行性 | データ移行、互換性、移行リハーサル | CSV経由でインポート可 |
| セキュリティ | 認証、暗号化、ログ、脆弱性対応 | 全通信HTTPS、パスワードはハッシュ保存 |
| 環境・エコロジー | 設置場所、消費電力、温度 | クラウド前提、オンプレ非対応 |
ここがポイント
「数値・条件・期日」のいずれかを必ず付けること。「速い」「使いやすい」のような形容詞だけでは、後でテストできず合格判定もできません。
コラム:非機能要件で炎上したシステム
2007年、東京証券取引所の新システム稼働初日に大規模障害が発生し、市場が大混乱に陥りました。原因の1つが「想定取引件数の見積もり甘さ」、すなわち性能要件の不備でした。機能は完璧でも、非機能(性能)を満たさないと社会的事件になります。逆に、非機能をしっかり定義してテストすれば「品質の高いシステム」と評価されます。
実習・演習(30分)
課題
自チームの開発テーマで非機能要件を10項目以上書き出す。各項目は次の3要素を必ず含める:
- カテゴリ
- 要件内容
- 具体的数値または条件
進め方タイムスケジュール
| 時間 | 作業 |
|---|---|
| 15分 | 6カテゴリ × 2項目目安で12項目をAIブレストで書き出す |
| 10分 | 各項目に数値・条件を付ける |
| 5分 | AIにレビュー依頼(妥当性チェック) |
成果物テンプレート
| # | カテゴリ | 要件 | 数値・条件 |
|---|---|---|---|
| 1 | 性能 | 応答時間 | 95%のリクエストが3秒以内 |
| 2 | 性能 | 同時利用者数 | 100人まで対応 |
| 3 | 可用性 | 稼働率 | 月次99.5%以上 |
| 4 | 可用性 | 計画停止 | 月1回・深夜2時間以内 |
| 5 | 運用性 | デプロイ | 週1回まで可能 |
| 6 | 保守性 | 保守期間 | リリース後5年間 |
| 7 | 移行性 | データ移行 | 既存CSV形式から自動インポート可 |
| 8 | セキュリティ | 認証 | メール+パスワード(将来OAuth対応) |
| 9 | セキュリティ | 通信 | 全通信HTTPS |
| 10 | セキュリティ | パスワード保存 | bcryptでハッシュ化 |
| 11 | 環境 | 動作環境 | Chrome/Safari最新2バージョン |
| 12 | 環境 | デバイス | PC・スマホ両対応 |
ヒント
AIプロンプト例(カテゴリ別ブレスト)
私たちのチームは「家計簿アプリ」を開発しています。
ペルソナは「家計を見える化したい30代会社員」、
想定ユーザー数は最初100人、将来1万人。
以下6カテゴリそれぞれで、非機能要件として
盛り込むべき項目を2つずつ提案してください:
- 性能
- 可用性
- 運用・保守性
- 移行性
- セキュリティ
- 環境
各項目に具体的な数値もたたき台で出してください。
AIプロンプト例(数値の妥当性検証)
私は「応答時間3秒以内」という性能要件を出しました。
家計簿アプリの場合、この数値は厳しすぎ/甘すぎ/妥当のどれですか?
業界の一般的なベンチマーク(金融系・SNS系・ECサイト等)と比べて根拠付きで教えてください。
AIプロンプト例(漏れチェック)
私たちの非機能要件は以下の12項目です。
[ここに表をコピペ]
「中小規模のWeb家計簿サービス」として、見落としがちで
追加すべき項目があれば、優先度付きで提案してください。
💬 AIに聞いてみよう
- 「『使いやすさ』はどう非機能要件として書けばいい?」
- 「保守期間1年・5年・10年で、設計に何が変わる?」
- 「データ量が将来100倍になることをどう要件化する?」
まとめ(5分)
非機能要件10項目以上が手に入りました。これは明日以降の設計・実装で「何を妥協してはいけないか」の指針になります。
たとえば「全通信HTTPS」を要件化したから、明日「HTTPだけでも動くからいいや」と妥協できなくなります。非機能要件はチームの規律装置でもあるのです。
次のセッション(Session08)では一気に話題を「ユーザインタフェース(UI)」に切り替えます。ユーザーが触れる「画面」をどう設計するかの基礎です。
🔄 振り返りチェック
- 非機能要件は10項目以上書けましたか?
- 各項目に数値・条件を付けましたか?
- 「これはテストで合格判定できる」と言えますか?
補足資料
- 参考リンク:IPA 非機能要求グレード(無料公開)、AWS Well-Architected Framework
- 発展課題:非機能要件のうち「これだけは絶対」TOP3を選んでチーム共有
学習ガイド
想定される質問と回答例
| 質問 | ヒント |
|---|---|
| 数値の根拠が分からない | 「同種サービスの一般値」をAIに聞く。SLA公開している大手企業の値も参考にする |
| カテゴリが重なる場合は? | 重複してもOK。後で整理する。出すことが優先 |
| ユーザビリティ(使いやすさ)は数値化できる? | 「タスク完了率」「平均操作時間」「3クリック以内」など指標化可能 |
つまずきやすいポイント
| つまずきポイント | ヒント |
|---|---|
| 形容詞で終わらせる(「速い」「安定」) | 必ず数値か明確な条件に置き換える |
| 機能要件を非機能要件カテゴリに入れる | 「何ができるか」は機能要件。非機能は「どんな品質か」 |
| 「全部99.99%可用性」のような過剰要件 | コストとのバランスを考える。ペルソナにとって本当に必要な水準を見極める |