メインコンテンツまでスキップ

機能要件・非機能要件

**機能要件(Functional Requirements, FR)非機能要件(Non-Functional Requirements, NFR)**との違いは、システムが「何をするか」と「どのようにあるべきか」の違いとして整理できます。


機能要件(Functional Requirements)

「システムが何をするのか?」

  • システムが提供する機能や動作を定義する要件。
  • 入力出力処理の流れが明確になる。

  • ユーザーがログインできる
  • 商品を検索できる
  • 決済処理を行う
  • データを保存・更新・削除できる

非機能要件(Non-Functional Requirements)

「システムがどのようにあるべきか?」

  • システムの品質や制約に関する要件。
  • ユーザーにとっての使いやすさや、システムの安全性、速度などに影響。

代表的な非機能要件

分類
性能(Performance)1秒以内に検索結果を表示
信頼性(Reliability)システムの稼働率99.99%を保証
可用性(Availability)24時間365日稼働
拡張性(Scalability)1万人以上の同時接続に対応
セキュリティ(Security)ユーザー情報は暗号化して保存
保守性(Maintainability)コードの変更が容易であること
互換性(Compatibility)主要なブラウザで正常動作する

まとめ

機能要件非機能要件
何を決める?システムの「動作・機能システムの「品質・特性
ユーザーがログインできる応答時間1秒以内
評価方法機能が実装されているかパフォーマンステスト、負荷試験

関係性

非機能要件は、機能要件をどのように実装するかを制約する形で影響します。たとえば、

  • 機能要件:「ユーザーがログインできる」
  • 非機能要件:「パスワードは暗号化し、2要素認証を導入する」

という形で、システムの設計に制約を加えることになります。

開発の現場では、非機能要件の見落としがトラブルの原因になりやすいので、要件定義の段階でしっかり整理することが重要です。