📖 テーマ設定
🔊 音声設定
1.2
1.0
1.0
▶️ 再生コントロール
🎵 BGM設定
0.3
🔔 効果音設定
0.3

非機能要件の定義

概要

  • 日程: Day 2 / セッション 07
  • 時間: 13:30-14:10
  • 形式: 実習
  • ゴール: 自チームの開発テーマに対する非機能要件を、性能・可用性・運用性・保守性などのカテゴリに分けて10項目以上書き出し、各項目に具体的な数値や条件を明記できる
  • 学習形式: AI協働型(カテゴリごとの典型例と数値の妥当性検証をAIに依頼する)

導入(5分)

前のセッションで「非機能要件は後で気付くと致命的」と学びました。「動くものはできたが10秒待たないと表示されない」アプリは誰も使いません。

このセッションでは、自チームの開発テーマに対する非機能要件を10項目以上書き出します。10は意外と多く感じるかもしれませんが、AIをフル活用して「カテゴリごとに典型的なもの」を出させれば、楽に到達できます。

ここで重要なのは**「定性的な記述」で終わらせない**こと。「速い」ではなく「3秒以内に応答」、「安定」ではなく「年間稼働率99.9%」、と数値や具体条件で書きます。

本編(5分の解説 + 30分の実習)

1. 非機能要件のカテゴリと典型項目

IPAの非機能要求グレードを簡略化した6カテゴリで考えます。

flowchart TB NFR["非機能要件"] --> P["性能・拡張性"] NFR --> A["可用性"] NFR --> O["運用・保守性"] NFR --> M["移行性"] NFR --> S["セキュリティ"] NFR --> E["環境・エコロジー"]
カテゴリ 典型項目 数値例
性能・拡張性 応答時間、同時接続数、データ件数上限 平均応答3秒以内、同時100ユーザー
可用性 稼働率、計画停止時間、復旧時間 99.9%稼働、復旧1時間以内
運用・保守性 監視、ログ、デプロイ頻度、保守期間 1日1回デプロイ可、5年保守
移行性 データ移行、互換性、移行リハーサル CSV経由でインポート可
セキュリティ 認証、暗号化、ログ、脆弱性対応 全通信HTTPS、パスワードはハッシュ保存
環境・エコロジー 設置場所、消費電力、温度 クラウド前提、オンプレ非対応

ここがポイント

「数値・条件・期日」のいずれかを必ず付けること。「速い」「使いやすい」のような形容詞だけでは、後でテストできず合格判定もできません。

コラム:非機能要件で炎上したシステム

2007年、東京証券取引所の新システム稼働初日に大規模障害が発生し、市場が大混乱に陥りました。原因の1つが「想定取引件数の見積もり甘さ」、すなわち性能要件の不備でした。機能は完璧でも、非機能(性能)を満たさないと社会的事件になります。逆に、非機能をしっかり定義してテストすれば「品質の高いシステム」と評価されます。

実習・演習(30分)

課題

自チームの開発テーマで非機能要件を10項目以上書き出す。各項目は次の3要素を必ず含める:

  1. カテゴリ
  2. 要件内容
  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%可用性」のような過剰要件 コストとのバランスを考える。ペルソナにとって本当に必要な水準を見極める
読み上げを開始します...

AIに質問する