システム開発やプログラム開発をしていると必ず出てくるけど、
よく意味の分からない単語などをメモする備忘録です。
自分の場合は、システム開発の工程としてこんな感じでよく作業してます。
[要件定義] - [概要/概念/基本設計] - [詳細設計] - [開発](製造) - [試験](単体 - 結合 - システム - 受入) - [運用]
今回は要件定義の周りをメモします。(次回があるかは不明です)
◆要求と要件と仕様
それぞれの意味
要求
顧客がやりたいこと、必要なもの。
例のあれですね(笑)
※「顧客が本当に必要だったもの」でぐぐってね。
要件
顧客がやりたいことを実現するために必要なこと
仕様
要件を実現するためのもの
いや、どうなんだよ。 余計わからなくなったわ。
◆うるう年で考えてみる
要求
正確な1年は365日5時間48分45.168秒であり、400年間で97日のずれが生じることが分かった。
これを何とか是正したい。← 顧客のやりたいこと
要件
では、400年間で97日をどこに入れるか。
案.400年に一回だけ97日足す。← いや、400年とか忘れるわ。
案.4年ごとに1日足す。← 3日オーバーするわ
案.4年ごとに1日足す。但し、100で割り切れる年で400で割り切れない年が400年で3回あるので例外← それにしよう!
みたいな会議があったとか(笑)
※実際には、長い時間をかけて議論と調査、調整があったそうな。
仕様
400で割り切れる年はうるう年
100で割り切れる年はうるう年ではない
4で割り切れる年はうるう年
って見てみると、結構違いが分かるかな?
◆まとめ
実際の現場だと、顧客から出てくるのが要求と要件の真ん中みたいなのでよく惑わされたりしますが、
ただ顧客の言うことをするのではなく、本当にしたいことを一緒に考えると開発が楽になったりしたらいいなーと思います。