要求工学を学び始めたので雑記
なぜ要件定義書と仕様が乖離してしまうのか?
→正しいかどうか分からない要件定義書を生み出してしまうのか?
解答
明快に要求と仕様とが説明できる状態でないのに、要件定義書の作成を初めてしまうから。
だそうです。
そもそも「要求」と「仕様」ってなんなのでしょうか?
要求:利用環境から見たソフトウェアが実現すべき目標である。
仕様:ソフトウェアが利用環境に対して必要とされる機能を提供するための境界条件である。
要件(要求)に視点を当てて、要件定義書の難しさを紐解いてみます。
要件定義を行う上で、関門は以下2つです。
・要件が曖昧で全てを確定できないため、進められない。進めても曖昧な定義書になってしまう。
・要件を早期に確定してしまい、要望の変化に応える事ができない。定義書の作成を優先するあまり、実装が制限されてしまう。
上記を解決するためには、
「要求とその優先順位を明確に定めること」
を念頭に置かなければいけません。
理由は下記です。
・優先順位の低いタスクの実装により、優先順位の高いタスクに制約が加わる恐れがある。
・最低限達成しなければならない目標があった方が、筋の通った設計となる。
→1番やりたい事が複数あってはならない。1番やりたい事が複数ある場合、仕様を複雑化させ矛盾を発生させる恐れがある。
プロトタイプを作成する手法が効率的ではないか?と考える方は下記を読んでください。
確かに、相手の要望を引き出したり、イメージを確定させるためにはプロトタイプを作成する事は有用です。
しかし、下記のような欠点があります。
・複雑なシステムである場合プロトタイプ作成そのものに時間がかかる。
・曖昧な要求では曖昧なプロトタイプしか作成出来ないため、多くの場合作成の努力が徒労に終わる。
しっかりとしたプロトタイプが作れるくらい要求が明確であれば、仕様の具体化を優先すべきだそうです。