基本情報技術者試験の勉強をしていると、システム開発は以下の手順で行われることを勉強します。
企画 → 要件定義 → 開発 → 運用 → 保守
このうち、要件定義工程で機能要件と非機能要件を定義します。しかし、ここでつまずくのが、
なにが機能要件で、なにが非機能要件??????
というところだと思います。
そこで、今回の記事では機能要件と非機能要件の違いについて分かりやすく説明します。
また、非機能要件にはどのようなものがあるのかも説明していきます。
●機能要件と非機能要件の違い
●非機能要件の種類
※基本情報技術者試験の概要と、私のおすすめの勉強法はこちらから。
そもそも「機能」とは?
機能要件と非機能要件の違いを説明する前に、そもそも「機能」とは何かを押さえておきましょう。
ITシステムにおける「機能」とは、そのシステムが「どのような動きをするか」という動作を示します。ということは、機能要件はシステムがどのような動きをするかの要件であり、非機能要件はそれ以外の要件であるということです。
例として、クレジットカード決済システムの機能を考えます。
先ほど、ITシステムにおける「機能」とは「動作」を示していると言いました。
では、クレジットカード決済システムにはどのような動作があるでしょうか。
- 端末がカードを読み取る
- 利用限度額を超えてないかチェックする
- 決済情報をカード会社に連携する
- etc…
などなど、数えきれないくらいありますね。
では、もう一つ身近な例として、電車の改札のシステムの機能を考えます。
- 切符が有効かチェックする
- 有効なら扉を開け、無効なら開けない
- Suicaの残高をチェックする
- 残高あれば扉を開け、残高不足なら開けない
- etc…
このように、生活の中にはあらゆるITシステムが存在しますが、そのシステム全てが何かしら動作や処理が行われて成立しています。
その、システムの「動作」や「処理」のことを「機能」と呼びます。
システムにおける機能とは、そのシステムの「動作」や「処理」のことである
機能要件とは何か?
機能要件とは、先ほどもあったように「システムがどんな機能を持つか=どんな動作をするか」を定義した要件です。
例えば、ATMでお金を引き出すシステムを考えます。ATMのシステムで考えられる機能要件の例は、
- ATMの画面は「入金」「振込」「残高照会」などの項目が欲しい
- キャッシュカードを読み取ったら、暗証番号の入力画面を表示してほしい
- 金額を入力する画面を表示してほしい
- 入力された金額をATMから入出金できるようにしてほしい
- etc…
このようなものがあります。全てこのシステムがどんな動きをするかを表していますよね。
さらに言い換えるなら、機能要件とはユーザーに触れる部分の要件とも言えます。上記の例を見ても、ユーザーがATMを使っているときにどんな動きをしているかを定義しています。
機能要件とは、システムの動作を定義したものであり、ユーザーに触れる部分の要件である
機能要件についてもう少し詳しく知りたいという方は、IPA(情報処理推進機構)が公表している
機能要件の合意形成ガイドをご参照ください。
機能要件にどんなものがあるか、どのように合意形成していくか把握することができます。
非機能要件とは何か?
機能要件はイメージが付きやすかったと思います。では、非機能要件とは何でしょう。
非機能要件は、その名の通り機能要件以外の要件です。
どういうことかというと、機能要件はユーザーが触れる部分に関することが多かったのに対して、非機能要件はユーザーが意識することがなかったり、当たり前と思ったりしている要件です。
先ほどのATMの例でいうと、非機能要件は以下のようなものがあります。
- 24時間365日故障せず使える
- キャッシュカード情報が搾取されるなどセキュリティの問題がない
- システム管理者がメンテナンスしやすい
- etc…
機能要件はユーザーに触れる部分であることが多いので、私たちユーザーも
「もっと使いやすい画面だったらいいのにな」
など思うことがあるかと思います。
一方、非機能要件は私たちユーザーが当たり前と思っている要件が多いです。
「出金中にATMが壊れたらどうしよう」や「キャッシュカードの情報がハッキングで搾取されてないだろうか」
など思う人は少ないのではないでしょうか。
このように、非機能要件とはユーザーがあまり意識することがない、当たり前とも思えるシステムの要件のことをいいます。
非機能要件とは、ユーザーがあまり意識しない、当たり前とも思える要件
ここまでの説明でも、あまり非機能要件のイメージがわかない方もいるかもしれません。
そこで、具体的にどのような非機能要件の種類があるのか説明していきます。
6種類の非機能要件一覧
IPA(情報処理推進機構)では、「非機能要求グレードの紹介」を公表しています。
そこでは、非機能要件を6種類に分類しています。それでは、それぞれについて簡単に説明していきます。
可用性
可用性要件とは、システムを継続的に利用可能にするための要件です。
要件例と、その要件を満たす対策例としては以下のようなものがあります。
- 運用スケジュール(稼働時間、計画停止の予定など)
- 障害、災害時のRTO(目標復旧時間)やRPO(目標復旧地点)
- 機器の冗長化やバックアップセンターの設置
- 障害時の復旧・回復方法及び体制の確立
性能・拡張性
性能・拡張性要件とは、システムの性能および将来のシステム拡張に関する要件です。
要件例と、その要件を満たす対策例としては以下のようなものがあります。
- 業務量及び今後の増加見積もり
- システム化対象業務の処理傾向(ピーク時、通常時、縮退時など)
- 性能目標値を意識したサイジング
- キャパシティプランニング(将来へ向けた機器・ネットワークなどのサイズと配置)
運用・保守性
運用・保守性要件とは、システムの運用と保守サービスに関する要件です。
要件例と、その要件を満たす対策例としては以下のようなものがあります。
- 運用中に求められるシステム稼働レベル
- 問題発生時の対応レベル
- 監視手段及びバックアップ方式の確立
- 問題発生時の役割分担、体制、訓練、マニュアル整備など
移行性
移行性要件とは、現行システム資産の移行に関する要件です。
要件例と、その要件を満たす対策例としては以下のようなものがあります。
- 新システムへの移行期間および移行方法
- 移行対象資産の種類及び移行量
- 移行スケジュール立案、移行ツール開発など
- 移行体制の確立、移行リハーサルの実施
セキュリティ
セキュリティ要件とは、情報システムの安全性の確保に関する要件です。
要件例と、その要件を満たす対策例としては以下のようなものがあります。
- 利用制限
- 不正アクセスの防止
- アクセス制限、データ秘匿
- 不正の追跡、監視、検知
- 運用員等への情報セキュリティ教育
システム環境・エコロジー
システム環境・エコロジー要件とは、システムの設置環境やエコロジーに関する要件です。
要件例と、その要件を満たす対策例としては以下のようなものがあります。
- 耐震/免震、重量/空間、温度/湿度、騒音など、システム環境に関する事項
- 二酸化炭素排出量や消費エネルギーに関する事項
- 規格や電気設備に合った機器の選別
- 環境負荷を低減させる構成
まとめ
いかがでしたでしょうか。今回の記事で少しでも、機能要件と非機能要件の違いが分かっていただけたら嬉しいです!
今回ATMの引き出しのシステムを例に出したように、何か具体例を考えると抽象的な言葉も理解しやすくなると思います!
では、最後までご覧いただきありがとうございました!