基本情報技術者試験

【基本情報技術者試験】機能要件と非機能要件の違いは?わかりやすく説明!

機能要件と非機能要件の違い
この投稿で分かること

機能要件と非機能要件の違いが分かる!

・そもそも機能とは
・機能要件とは
・非機能要件とは
・非機能要件の内容

 基本情報技術者試験の勉強をしていると、システム開発は以下の手順で行われることを勉強します。

企画 ➡ 要件定義 ➡ 開発 ➡ 運用 ➡ 保守

 このうち、要件定義工程で機能要件と非機能要件を定義します。しかし、ここでつまずくのが、

アイコン名を入力

なにが機能で、なにが非機能??????

というところだと思います。

 そこで、今回の投稿では機能要件と非機能要件の違いについて分かりやすく説明します。
 ぜひご覧ください!それではよろしくお願いします。

そもそも「機能」とは?

 機能要件と非機能要件の違いを説明する前に、そもそも「機能」とは何かを押さえておきましょう。
 ITシステムにおける「機能」とは、そのシステムが「どのような動きをするか」という動作を示します。ということは、機能要件はシステムがどのような動きをするかの要件であり、非機能要件はそれ以外の要件であるということです。

 では、それぞれ詳しく見ていきましょう。

機能要件とは何か?

 機能要件とは、先ほどもあったように「システムがどんな機能を持つか=どんな動作をするか」を表す要件です。

 例えば、ATMでお金を引き出すシステムを考えます。ATMのシステムで考えられる機能要件の例は、

・キャッシュカードを読み取る
・暗証番号の入力画面を表示
・金額の入力画面の表示
・入力された金額をATMから取り出す    etc...

このようなものがあります。全てこのシステムがどんな動きをするかを表していますよね。

非機能要件とは何か?

 非機能要件は、機能要件以外の要件であり、システムの性能などを表します。先ほどのATMの例でいうと、非機能要件は以下のようなものがあります。

・画面が使いやすい
・セキュリティが強固(暗証番号を間違えるとダメ)
・24時間365日使える           etc...

 これらは、システムが何か動作しているとは言えませんが、良いATMシステムを作るためには必要な「性能」ですよね。

10種類の非機能要件一覧

 日本情報システムユーザー協会では、非機能要件の内容を10種類定義しています。その内容を、非機能要件要求仕様定義ガイドラインでまとめています。

 それでは、一つ一つ簡単に見ていきましょう。

機能性

 非機能要件における機能性とは、機能要件プラスαの性能ということです。

 例えば、ATMの引き出しシステムであれば、単に「お金を引き出せる」だけでなく、「安全に引き出せる」などの付加的な性能のことをいいます。

信頼性

 非機能要件における信頼性とはどんなテストを乗り越えてきたかや、障害に対してどの程度耐性があるか、などを表します。

使用性

 非機能要件における使用性とはそのITシステムの使いやすさを表します。

効率性

 非機能要件における効率性とはどの程度効率的にシステムを稼働させることができるかを表します。

保守性

 非機能要件における保守性とはそのITシステムの維持・メンテナンスのしやすさを表します。

移行性

 非機能要件における移行性とは、異なる環境でも作動させることができるかどうかを表します。

障害抑制性

 非機能要件における障害抑制性とは、その名の通りどの程度障害を抑制することができるかを表します。

運用性

 非機能要件における運用性とは、組織においてそのシステムの運用のしやすさを表します。

技術要件

 非機能要件における技術要件とは、そのシステムを作る上で「どんな技術を使ってほしいか」を表します。例えば、プログラミング言語の指定を受けるなどです。

まとめ

 いかがでしたでしょうか。この回で少しでも、機能要件と非機能要件の違いが分かるようになったら嬉しいです!

 今回ATMの引き出しのシステムを例に出したように、何か具体例を考えると抽象的な言葉も理解しやすくなると思います!

 ではでは、最後までご覧いただきありがとうございました!

RyoのおすすめFE教材