要件定義とは、ソフトウェア開発において、実装すべき機能や満たすべき性能など、何をどうシステム化、ソフトウェアにするのか。明確にしていく作業のことです。
5W1Hで考えると考えやすいかもしれません。
「When:いつ」「Where:どこで」「Who:だれが」「What:何を」「Why:なぜ」「How:どのように」
実際の開発・実装作業を始める前に行う作業の一つで、要件定義書としてドキュメント化するのが一般的です。
ちなみに、要求定義と要件定義は異なるもので、具体的な違いは以下にまとめてみました。
要求定義 | 要件定義 | |
誰が作成するか? | 発注する側 (非技術者) | 開発する側 (技術者) |
何を作成の基にするか? | 発注者が解決したい課題 | 要求定義書 無い場合は発注者からのヒヤリング |
何を定義するか? | システムに求める仕様の定義 | システムを構築するために定義する仕様 |
いきなり要件定義書を書き始めるのではなく、顧客の要求を分析することが不可欠です。
1. 業務要件の検討
などを、クライアントにヒヤリングしたり、要求定義書を基に検討します。
2 要件定義書の作成
検討した内容を基に、ドキュメント化していく作業です。
必ずコレ!と決まったフォーマットはありませんが、一般的には以下のような内容を記載します。
・システム概要
どんな目的・背景でこのシステムが作られて、何を解決するのか???や、どのようなシステムを開発するかわかるシステム構成図など
・業務要件
現状の業務の流れを明確にし、課題を抽出する。
業務フロー一覧、要求一覧などなどを使い明確にします。
・システム要件
業務要件をどのようにシステムに落とし込んでいくかを明確にします。
ただし、全ての業務要件がシステムに落とし込んでいくとは限りません。システム化の対象から外れるものもあるこにご注意。
・機能要件
最低限必要な機能を定義します。画面一覧、画面遷移図、外部インターフェイス一覧などなど、を使用して明確にします。
・非機能要件
機能面以外の必要な要件を定義します。例えば、可溶性、運用・保守性、拡張性、セキュリティなどなど、、の観点で考え明確にします。
以上のような項目をそのプロジェクトに沿って適切に増やしたり、省略したりしながら作成すると良いかと思います。
またTest Hackの記事で「デザイン思考」も要件定義の作成に活かせる考え方になります。こちらも参考にしてみてはいかがでしょうか???
以上、要件定義の作り方を3分で理解する説明でしたー