ライター/woinary
某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。要件定義や仕様作成の経験も多い。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。
鏡の裏と表?プログラム開発に関係深い要件と仕様の違いとは
image by iStockphoto
ゲームやWebなどのサービスなどのプログラムはどうやって作るのでしょう。もしかして、プログラマがいきなりキーボードを叩いてプログラムを書き出したり、フローチャートといったものを書くと思っていませんか。小さなプログラムではそういうこともあります。しかし、多くの人が使うようなプログラムではまずは設計という作業から。そこに欠かせないのが要件と仕様です。
どちらもそのプログラムがどんなものかを決めるもの。しかし、同じものではありません。ざっくり言うと家の間取り図が要件、実際の設計図面が仕様です。ここではこの違いについて説明していきます。
要件:お客さんの思い浮かべた作りたいもの
要件とは要望や要求と呼ぶこともあります。英語では「Requirement」です。直訳すると必要な条件。つまり、お客さんがこんなプログラムが作りたいという必要な条件を記したものです。
例えば家を建てたり、アパートやマンションを探したりする際に、さまざまな条件がありますよね。どの線の沿線で、駅から歩いて何分、近くにコンビニがある、などなど。こういう必要な条件を書き出していったものが要件です。間取りもその一つですね。どういう部屋があり、どう配置されているのかも重要。間取り図が重要であることは理解できると思います。
仕様:要件に現実を反映した設計図
さて、要件の一つとして間取り図がありますが、これで家を建てることはできません。実際に家を建てるにはもっと壁の厚さや柱の位置を、強度などを基準にきちんと計算して設計図を作りますよね。間取り図を作る時点でもある程度そういうことを考えます。しかし、まずはどんな部屋を用意してどう配置するかが重要になるので、間取り図を先に考えるわけです。
プログラムを作る時も同じ。まずはお客さんがどんなプログラムが欲しいかの条件を書き出したもの=要件を元に、実際にどういうものを作るかを決めます。これが仕様。家に例えるならば設計図が仕様になります。
何が違う?要件と仕様の目的
image by iStockphoto
要件と仕様はざっくりと言えば間取り図と設計図。でも、なぜ両方必要なのでしょうか。どちらか片方で兼用すればよいのでは。そう考えるかもしれませんね。それではなぜ両方必要なのかを説明していきます。
\次のページで「目指す夢を示すのが要件」を解説!/