<目次>
(1) 非機能要件とは?を極力分かりやすくご紹介
(1-1) 機能要件とは?(Functional Requirement)
(1-2) 非機能要件とは?(Non-Functional Requirement)
(1) 非機能要件とは?を極力分かりやすくご紹介
「非機能要件」という言葉は、新人や若手にとっては分かりにくい単語の一つでるかなと思います。なので、今回は非機能要件について、なるべくイメージが湧きやすいようにご紹介できればと思います。
(1-1) 機能要件とは?(Functional Requirement)
システム要件のうち、システム本体の処理や機能を「機能要件」と呼んでいます。
例えば「商品の注文」や「商品の検索」といった機能は、お客様の業務と直接関連するため「業務要件」に該当します。
(例)ショッピングサイトの機能要件
・ログイン/ログアウト
・会員登録
・商品の検索
・カートに追加
・商品の注文
・購入履歴の照会
・おすすめ商品の表示
・お問い合わせ機能
(1-2) 非機能要件とは?(Non-Functional Requirement)
システム要件のうち、システム運用を支える部分の機能に関する要件を「非機能要件」と呼んでいます。
例えば「応答時間」や「セキュリティ」は業務フローとは直接関係はしないものの、満たされていないと運用が回らない(使い物にならない)ですよね。このような、お客様の業務と直接には結びつかない「セキュリティ」や「性能」や「障害復旧」といったシステムの「運用」をサポートする部分の要件が「非機能要件」に該当します。
非機能要件の具体的な例をいくつかのカテゴリ別にご紹介します。
(図121)システム開発における非機能要件の例
●【セキュリティ(Security)】情報をセキュアに管理する
(例)
・ネットワーク上のデータを暗号化する
・顧客データはアクセス出来る人を必要最低限に限定する
●【可用性(Availability)】災害時のスムーズな復旧など
(例)
・サーバを冗長化し、1台が故障時にも業務継続できる
・サーバダウン時も1時間以内に復旧できるようにする
→ディスク故障の対策としてRAIDによるデータ保護を導入
→CPUやメモリ等のOS障害に備えて、ハードは全て二重化する
・エラーログを検知して、システム部に警告連絡を送る機能
→障害発生時にいち早く検知(例:最低30分)するための仕組みづくり
●【拡張性(Scalability)】将来的に顧客増加に対応できる設計にする
(例)
・会員数の増加に伴い、サーバのメモリ、CPU、ハードディスクを増強できる(スケールアップ)
・会員数の増加に伴い、サーバの台数を増やす事が出来る(スケールアウト)
●【運用(Operation)】システムを継続的に使う際の負担が減るように設計
(例)
・不要となったデータは夜間バッチで自動的に削除する
・データベースの再編成をバッチ処理で自動化する
・システムの状況(CPU負荷、メモリ負荷、ディスク使用率、ログ監視)をモニタリングできる機能
●【性能(Performance)】処理時間や応答時間(要求~応答までの時間)の要件
(例)
・商品の注文処理の応答時間は「完了」ボタン押下から4秒以内
・購入履歴の表示処理の応答時間は「表示」ボタン押下から2秒以内