システム開発の工程では、最初に要件定義を行うことが一般的です。
クライアントが要求する仕様について整理し、実装すべき機能を明確にすることが要件定義の目的です。要件定義では、機能要件と非機能要件の2つに分けてそれぞれ定義していきます。
今回は、機能要件について、要件定義のまとめ方を解説します。非機能要件との違いも紹介するので、しっかりと理解しましょう。
機能要件とは?
機能要件とは、「実装する機能」に関する要件のことを指します。
システム開発の工程は「要件定義→基本設計→詳細設計→コーディング→テスト」の順で進んでいくことが一般的です。
最初の工程である要件定義では、開発するシステムについてクライアントと打ち合わせて 「システム開発の目的」や「誰がシステムを利用するのか」といった情報から、システムに取り入れるべき機能を検討します。
機能要件では、実際にクライアントが必要としている、業務に直結する機能についての定義を行います。
例えば、「部品の在庫情報画面で条件を指定して検索ボタンを押すと、画面に検索結果が表示される機能」、「システムにログインすると、ユーザー単位でその日の作業スケジュールを画面上で確認できる機能」などは、クライアントが業務上必要となる「実装する機能」として、機能要件に分類されます。
機能要件で定義する機能は全て業務に直結するため、要件定義の段階で正確に定義しておくことが大切です。
要件定義や、以降のシステム開発工程については、こちらの記事でも詳しく紹介しているのでぜひご確認ください。
機能要件と非機能要件の違いとは?
機能要件が「実装する機能」であるのに対して、非機能要件は「実装する機能以外の要件」を指します。
先述の機能要件の例で挙げた「部品の在庫情報画面で条件を指定して検索ボタンを押すと、画面に検索結果が表示される機能」についてはクライアントが実際に利用する機能ですが、この検索する機能の中には、開発側が考慮しなければならない点が多数あります。
例えば「検索結果は3秒以内に表示されるようにする」、「一度に画面内に表示される検索結果は20件にする」、「システムが数分間無操作状態であれば、自動でログアウトする」など、ユーザビリティやセキュリティ面を考慮した設計が必要となります。
このような、システムを開発する上で定義しなければならない、実装する機能以外の副次的な内容が非機能要件にあたります。
非機能要件は、システムの品質を高めるためにも大切な要素です。
非機能要件として何を定義すればよいか、そのための手がかりとして、情報処理推進機構(IPA)が非機能要件を大きく6つの要素に分けたものを非機能要求グレードと言います。
非機能要求グレードについては、こちらの記事でも詳しく紹介しているのでぜひご確認ください。
機能要件の選定と書き方の手順
どのようなシステムを開発してほしいか、クライアント側にイメージがあれば機能要件は容易に進められるかもしれませんが、初期段階では漠然としていることが多いです。基本的には開発側と意見をすり合わせていくことで、具体的な方針が固まっていきます。
ここでは機能要件の選定と、書き方の手順についてご紹介します。
1. 背景と目的を明確にする
クライアントが持つ漠然としたイメージをより具体的にするために、システムが何の為に必要なのか、現在の業務がどんな状態でどういう不満点があるのか等、まずは背景と目的を明確にします。
背景と目的が明確にならなければ、要件定義で定義する機能要件・非機能要件の判断材料がそれぞれ不足してしまい、正確に定義することができません。それによって、下流工程に進んでから作業の手戻りが発生してしまうなど、スケジュールに大きな影響が出る可能性もあります。
2. 必要な機能を選定する
背景と目的が明らかになったら、実際にクライアントが求める機能について打ち合わせでヒアリングを行い、1つずつ選定していきます。
ヒアリングした内容は文書や図表としてまとめたり、画面のイメージ等も作成してクライアントに見てもらうことで、イメージをより具体化させていきます。
3. 機能要件の選定をする
必要な機能の選定が済んだら、機能単位で重要度を決めていきます。
選定した機能を全て盛り込むことが出来れば理想ですが、予算や納期の兼ね合いで実装が難しくなる機能もあります。
機能ごとに掛かる工数や費用について提示し、「実装する機能」「実装しない機能」「アップデート対応で後日実装する機能」などを検討していきます。
特に、システムを利用するにあたって最低限必ず入れて欲しい機能については、打ち合わせの段階で正確に把握しておきましょう。
4.機能要件を詳しく書き出す
機能要件が定まったら、さらに詳しく掘り下げて書き出していきましょう。
この段階で機能要件について、システムの全体像から細分化されたところまでを詳しく記載しておくことで、以降の設計工程は作業が幾分スムーズになります。
+α 迷ったら機能要件のガイドを活用してみよう
開発するシステムの規模によっては機能要件が膨大なものとなるため、経験が浅い場合はゼロからまとめるのが難しい場合もあります。
情報処理推進機構(IPA)が、機能要件定義一覧表のサンプルを公開しているので、機能要件の定義を進める上で書き方やまとめ方に困った場合はこちらを参考に作成してみるとよいでしょう。
情報処理推進機構 機能要件定義一覧表
機能要件と同じように非機能要件も大切
機能要件はシステムに実装するべき機能を決める大切な工程ですが、同じようにに非機能要件も大切な工程です。
利用したい機能が全て実装されているシステムであっても、検索結果表示までに何十秒もかってしまうシステムや、複数人でアクセスするとエラーとなり利用出来なくなるようなシステムは、使い勝手がよいシステムとは言えません。
非機能要件が疎かになり、ユーザビリティに欠けてしまっているシステムは、リリース当初は使ってもらえても徐々に利用されなくなっていきます。また、業務上必ず利用しなければならないシステムである場合は、利用を続けることでストレスとなり、クレームの原因にもなってしまいます。
システムを安心・安全に利用してもらうためにも、そして、システムの品質向上のためにも、開発側ではこれらを想定してシステム開発を行う必要があり、そのために非機能要件の定義は大切な要素となってきます。
機能要件と併せて、非機能要件の定義も正確に行いましょう。
機能要件の書き方をしっかり理解しよう
機能要件と非機能要件は時間を掛けてでも、クライアントと打ち合わせて正確に行う必要があります。
どちらも漏れがあった場合には、業務トラブル等になりかねません。
特に機能要件では業務に直結する機能を決めるため、機能要件の定義の不備が実装漏れへと繋がり、工程の手戻りや大幅なリスケ等、大きな問題へと発展してしまう可能性もあります。
システムの品質や評価を大きく左右する要素になるため、機能要件の定義方法、そして書き方・まとめ方はマスターしておきましょう。