logo

機能要件と非機能要件

要件分析は、システムまたはソフトウェア プロジェクトの成功を評価できるようにする非常に重要なプロセスです。要件は通常、機能要件と非機能要件の 2 つのタイプに分類されます。

機能的か非機能的か



これらのタイプの要件を理解し、区別することは、プロジェクトを成功させるために不可欠です。私たちの総合的な システムデザインコース これらの概念を詳細に説明し、要件を効果的に収集、文書化、分析するための知識とスキルを提供します。

機能要件と非機能要件に関する重要なトピック

機能要件

これらは、システムが提供すべき基本機能としてエンドユーザーが特に要求する要件です。これらすべての機能は、契約の一部としてシステムに必ず組み込む必要があります。



これらは、システムに与えられる入力、実行される操作、および期待される出力の形式で表現または記述されます。これらは、非機能要件とは異なり、最終製品で直接確認できるユーザーによって示された要件です。

例:

クイックソートJava
  • このシステム用に設計する必要がある機能は何ですか?
  • 設計において考慮する必要があるエッジケースがある場合、それは何ですか?

非機能要件

これらは、プロジェクト契約に従ってシステムが満たさなければならない品質制約です。これらの要素が実装される優先順位または範囲はプロジェクトごとに異なります。非行動要件とも呼ばれます。彼らは次のような問題を扱います。



  • 携帯性
  • 安全
  • 保守性
  • 信頼性
  • スケーラビリティ
  • パフォーマンス
  • 再利用性
  • 柔軟性

例:

  • 各リクエストは最小限のレイテンシーで処理される必要がありますか?
  • システムは価値の高いものでなければなりません。

拡張要件

これらは基本的に、システムの範囲外である可能性のある要件があると便利です。

例:

e-rモデル図
  • 私たちのシステムはメトリクスと分析を記録する必要があります。
  • サービスの健全性とパフォーマンスの監視。

機能要件と非機能要件の違い:

機能要件

非機能要件

機能要件は、システムまたはそのコンポーネントを定義します。

非機能要件は、ソフトウェア システムの品質属性を定義します。

ソフトウェア システムが何をすべきかが指定されています。

それは、ソフトウェアシステムが機能要件をどのように満たすべきかという制約を課します。

機能要件はユーザーによって指定されます。

非機能要件は技術者によって指定されます。アーキテクト、技術リーダー、ソフトウェア開発者。

それが必須です。

必須ではありません。

SQL連結

ユースケースでキャプチャされます。

それは品質属性として捉えられます。

コンポーネントレベルで定義されます。

システム全体に適用されます。

ローカル日付Java

ソフトウェアの機能を検証するのに役立ちます。

ソフトウェアのパフォーマンスを検証するのに役立ちます。

システム、統合、エンドツーエンド、API テストなどの機能テストが行​​われます。

パフォーマンス、ストレス、ユーザビリティ、セキュリティテストなどの非機能テストが行​​われます。

通常、定義は簡単です。

通常、定義するのはさらに困難です。


1) ユーザーがシステムにログインするたびにユーザーを認証します。
2) サイバー攻撃を受けた場合のシステム停止。
3) ユーザーが何らかのソフトウェア システムに初めて登録するときは必ず、確認電子メールがユーザーに送信されます。


1) 電子メールは、そのようなアクティビティからの遅延が 12 時間以内で送信される必要があります。
2) 各リクエストの処理は 10 秒以内に完了する必要があります。
3) 同時ユーザー数が 10000 を超える場合、サイトは 3 秒でロードされます。