2023.12.04
機能要件とは?非機能要件との違いや要件定義書の書き方を解説
エンジニアで活躍する方の中には、下流工程で経験を積み、新たに上流工程を担当する方もいると思います。そんなときに「機能要件と非機能要件の違いを再確認したい」と考えている方もいるのではないでしょうか。
そこでこの記事では、機能要件や非機能要件の特徴、具体的な違いだけでなく、要件定義書作成における手順や注意すべきポイントについて解説していきます。
機能要件に関する知識や理解を深め、要件定義書作成に役立てたい方は、ぜひ参考にして下さい。
この記事でわかること
- 機能要件、非機能要件の特徴や違い
- 要件定義書作成の手順
- 機能要件を定める際の注意点
目次
機能要件と非機能要件
ソフトウェアやシステム開発は、要件を整える工程があり、この工程を要件定義と呼びます。要件定義の工程は、クライアントが求める機能を搭載したソフトウェアやシステム開発には、欠かせない重要な工程のひとつです。
要件定義の工程では、機能要件と非機能要件を明確にし、顧客の求めるソフトウェアやシステム開発に役立てます。
合わせて読みたい
要件定義とは?流れや求められるスキルと作成時のポイント
要件定義とは 要件定義とは、システム開発の前段階にあたるもので、システム開発の目的を明確化するための作業です。
機能要件
必ず搭載すべき機能を機能要件といいます。顧客によって搭載して欲しい機能は異なりますが、求めている機能が明確になっていることも多く、直接のヒアリングで十分に抽出できます。
顧客にとって、機能要件は絶対に必要な機能になります。そのため、機能要件が満たされたシステム開発は最低限求めていることであり、満足度向上にはつながりません。
機能要件の具体例
下記が機能要件の具体的な例となります。
- アクセス制御
- システムの種類や構造
- システム処理の内容
- 特定業務の自動化
さらに細かく、勤怠管理で例えると下記のような機能になります。
- 打刻機能
- 承認機能
- 集計機能
このように、システムの機能そのもので、顧客がどうしても搭載して欲しい機能を指します。
非機能要件
顧客が求める機能以外の部分を非機能要件といいます。機能要件のように、顧客から明確に要求される部分ではなく、システムを開発する企業が考える部分になります。
また非機能要件は、システムの性能やセキュリティなど質に関わる部分であるため、顧客の満足度向上につながります。
非機能要件は、要件が抽象的で、定義すべき項目の選定が難しいです。そのため、非機能要求グレードと呼ばれる、それぞれの要求レベルを段階的に示したものがあります。内容は下記の6つです。
- 可用性(稼働時間、復旧能力などの要件)
- 性能・拡張性(システムの性能や将来的な拡張性)
- 運用・保守性(システム保守や運用に関わる要件)
- 移行性(システム移行に関する要件)
- セキュリティ(安全性確保に関する要件)
- 環境・テクノロジー(システム設置環境やエコロジーに関する要件)
これらの項目を参考にすることで、顧客の満足度を高める非機能要件の定義づけが可能になります。
非機能要件の具体例
非機能要件の例としては、下記のものが挙げられます。
- データの処理速度
- データ保守セキュリティ
- システム運用の負荷
さらに細かく例えると、下記のような機能になります。
- 画面表示に要する時間は3秒以内にする
- アクセス制限や不正利用者監視
- 多くのユーザーが訪れてもサーバーダウンしないようにする
このように、システムの性能いわゆる質に関わる部分であり、顧客が求める機能以外の部分を指します。
機能要件と非機能要件の違い
機能要件と非機能要件の具体的な違いについて、項目別に分けたのが下記の表になります。
機能要件 | 非機能要件 | |
---|---|---|
概要 | 顧客から求められる機能そのもの | 顧客から求められる機能以外 システムの質に関わる部分 |
必要性 | 実装が最低条件 | 実装されない場合もある |
特徴 | 要件は具体的 ヒアリングで抽出しやすい 顧客側の要望 満足度向上には繋がらない |
要件は抽象的 より細かなヒアリングや相手の立場に立った定義づけが必要 開発者側が考える部分 満足度向上につながる |
具体例 | アクセス制御 システムの種類や構造 特定業務の自動化 |
データ処理速度 データ保守セキュリティ データ運用の負荷 |
このように、機能要件は機能そのものを指し、非機能要件は処理速度など機能以外の質に関わる部分を指します。
機能要件の定義と書き方
要件定義とは、顧客へのヒアリングをもとに、システムの概要や方向性、手順についてまとめることです。また、まとめた書類を要件定義書と呼びます。
要件定義がしっかりとされていない場合、品質不備などのトラブルを招く可能性があります。そのため、システム開発プロジェクトを失敗させないために重要なポイントのひとつです。次は、そんな機能要件の定義や書き方について解説します。
具体的には下記の4つです。
- 顧客がなぜそのシステムが必要か明確にする
- 必要な機能の洗い出し
- 機能要件の絞り込み選定
- 顧客から合意を得る
それぞれ詳しく解説します。
顧客がなぜそのシステムを求めているか明らかにする
まずは、なぜそのシステムを求めているのか明らかにする必要があります。なぜなら、システムの目的や背景が決まっていないと、要件を絞り込む際の材料が不足し、求めている機能を搭載したシステム開発が難しくなるからです。
また、目的が定まっていないことでイメージのズレが生じ、トラブルに発展する可能性もあります。その他にも機能要件は、非機能要件の定義づけにも関わってくるため満足度を著しく下げてしまう可能性もあります。
必要な機能を洗い出す
次に、目的や背景が定まったら、必要な機能を洗い出します。具体的な方法としては、文書や図、表を用いてイメージを具体化させます。
この工程で出された機能が実際にシステムへ搭載される機能になるため、1つずつ丁寧なヒアリングが大切になります。
機能要件を絞り込み選定する
必要な機能を洗い出したら、その中から絞り込み選定します。
顧客からすると、時間をかけて洗い出した機能なので、全て搭載したシステムを開発したいところですが、予算や納期、技術的な問題から全てを満たすシステム開発は簡単ではありません。そのため、優先度順に必要な機能を選定していきます。
開発者側としては、顧客が納得できるような代替案を用意しておくことが大切です。そうすることで絞り出した機能を切り捨てる際に、顧客から了承を得やすくなります。
顧客から合意を得る
機能要件の絞り込みや選定後は、必ず顧客からの合意を得ましょう。顧客が納得しないシステムを開発しても高い満足度は得られません。また、顧客からの合意なくシステム開発を進めてしまうと後々大きなトラブルに発展する可能性もあります。
そもそも、顧客からの要望でシステム開発に取り組む場合、顧客が納得できる使いやすいシステムで無ければ意味がありません。そのため、必ず顧客の合意を得るようにしましょう。
テクノデジタルでは、最新技術や蓄積されたシステム資産を武器に、開発から運用まで幅広くサポートしてくれます。気になる方は一度問い合わせてみてください。
機能要件のポイント
機能要件を定める際、下記の2つに注意する必要があります。
- 実現可能か
- 誰が見ても分かりやすい表現か
これらのポイントを踏まえなければ、結果的にシステム開発の意味がなくなってしまう可能性があります。それぞれ詳しく解説します。
実現可能な内容であるか注意する
機能要件を定める際、実現可能な内容であるか注意する必要があります。
ヒアリングを進めていく中で、顧客側の予算や納期によって対応が難しい場合があります。また、実際に開発に取り組むシステム開発会社の技術次第で対応できない内容もあるでしょう。そもそも、技術的に対応が難しい要件は、実現できません。
そのため、要件定義の工程では、まず技術的に実現可能な要件を洗い出し、予算や納期の都合上すべての実装が難しい場合は優先度順に選定することが大切です。また、判断が難しい機能はシミュレーションで検証するのもひとつの方法です。
上記でも解説しましたが、機能要件の選定においては、必要に応じて絞り出した機能を切り捨てる場合があります。そんな時は、必ず顧客に確認してから作業を進めましょう。
開発会社の判断で作業を進めてしまうとトラブルに発展する可能性があります。確認する際は、代替案を用意しておけば了承を得やすくなります。
誰が見てもわかりやすい表現を用いる
要件定義書においては、誰が見ても分かりやすい表現を用いて作成しましょう。
要件定義書は、システム開発に携わるメンバーすなわち顧客も目を通す書類になります。
そのため、専門用語や分かりにくい表現が使われていると、そもそも内容が理解できないだけでなく、人によって解釈の違いが生まれてしまいます。
解釈の違いは、イメージと異なるシステムが完成してしまうなどのトラブルを招く可能性があるため注意が必要です。
具体的な対策の方法としては下記の5つが挙げられます。
- 専門用語は使わない
- 抽象的な表現は避ける
- データ量などは数字を用いる
- 箇条書きの活用
- 図や表を用いる
専門用語や抽象的な表現を避けつつ、図や表を活用することで、詳しい知識が無くても具体的なイメージが湧き、解釈の違いなどを防げます。また、箇条書きを活用すれば内容を簡潔にまとめられるため、見やすい書面作成に役立ちます。
このように要件定義書は、誰が見てもわかりやすい表現を用いて作成する必要があり、専門用語や抽象的な表現を避け、具体的な数字や箇条書き、図や表を活用することでトラブルを回避できます。
こちらの記事では、上流工程の概要や必要なスキルを解説しています。ぜひあわせて参考にしてください。
合わせて読みたい
システム開発における上流工程とは?下流工程に与える影響や求められるスキル
上流工程とはシステムの企画から詳細設計までを行う、システム開発の要になる工程です。業界に関する専門的な知識からコミュニケーションなど、幅広いスキルが求められます。
まとめ
機能要件とは、顧客が求める必ず搭載してほしい機能のことを指します。一方で、機能以外でシステムの質に関わる部分を非機能要件といいます。
機能要件は、システムの種類や構造など機能そのものの事で、顧客が必ず搭載してほしい機能であることから、満足度向上には繋がりません。しかし非機能要件は、データ処理速度やセキュリティなどシステムの質に関わる部分であるため満足度向上に繋がります。
要件などをまとめた要件定義書では、求めるシステムの目的を明確にすることや必要な機能の洗い出し、選定、顧客からの合意を得ることが重要です。また、機能要件を定める際は、そもそも実現可能な内容であるかに注意し、誰が見ても分かりやすい表現を用いることが大切です。
テクノデジタルでは、豊富な経験や技術、最新のテクノロジー最新のテクノロジーを活用し、システム開発を手助けしてくれます。気になる方は一度問い合わせてみてください。
合わせて読みたい
システム開発に失敗しないためのポイント|事例から学ぶ対策と成功への道筋
システム開発における失敗の多くは、認識のズレの放置が原因で起こります。システム開発が失敗してしまう原因や具体的な事例、成功へ導くための効果的な対策について紹介します。
【東京都】システム開発会社のおすすめは?6社の特徴まとめ
東京都には、システム開発におすすめの会社が数々あります。本記事では、おすすめのシステム開発会社6選や会社を選ぶときのポイントを紹介するので、システム開発を検討している方はぜひ参考にしてください。
投稿者
-
システム開発、Webサイト制作、ECサイトの構築・運用、デジタルトランスフォーメーション(DX)など、デジタルビジネスに関わる多岐の領域において、最新のトレンド情報や実践的なノウハウを発信してまいります。
新着情報
同じカテゴリの記事
新着記事
人気の記事