要求分析

プログラムを開発する前に、ちょっと立ち止まってみて下さい。あなたは自分が何をしようとしているのかをきちんと把握していますか?

要求分析の注意点

要求分析とはいっても、ただソフトに対する要求を書き連ねただけでは漠然と した文章になってしまいます。ここでは文章の書き方の注意点を挙げます。

箇条書で書く

この部分のように箇条書で記述します。要件をだらだらと長い文章で書くよ りずっとわかりやすいですし、要件が全部満たされているかどうかをチェック することも容易になります。

数量を具体的に

文章には具体的に数量を記述するとより現実味が増しますし、設計の指標にも なります。もちろん桁が合っているという程度でかまいません。例えば楽曲リ ストを見せる場合、楽曲数が数十なのか数十万なのかで実現方法が全然違っ てきます。これを明記しておかないと後でトラブルになりかねません。

実現方法は記さない

要求仕様書には、それが本当に求められているのでない限り実現手段を記して はいけません。要求分析の段階では何をやりたいかだけを考え、どうやるかは 考えなくていいのです。この段階で実現方法まで書いてしまうと、「もっとい い実現方法があるのになぁ」と思いながら、わざわざ悪い実現方法のものを作 らなくてはいけなくなってしまいます。なぜなら、要求は絶対満たさねばなら ないものですから。

機能だけでなく制約条件も記述する

例えば「お客さんが簡単に操作できるようにする」とか、「10秒以内に処理で きるように」といった条件のことです。「○○ができるように」という機能は 簡単に列挙できますが、制約の方は思いつかないとなかなか列挙できないもの です。 実際には制約条件の代わりに実現方法を書いてしまいがちです。例えば「Web 上で見られるように」と実現方法を書いてしまうのは、「不特定多数の人が閲 覧できるように」という条件からすぐ実現方法を思いついてしまっているから です。しかしこれでは他のもっとよい解決手段を思いつくことができなくなっ てしまいます。「Web上で公開」と書きたくなったら、なぜ「Web上で公開」と 書きたいのかを自問し、その理由だけを書くべきです。

いらない制約条件は記述しない

「できるだけ速く」とか「できるだけ簡単に」といったいい加減な制約条件は 記述してはいけません。具体的に書けないということはすなわち不必要だとい うことなのです。制約条件がつくと必ずどこかにしわ寄せがきます。システム が複雑になり、開発期間が延びたり信頼性が落ちたりします。だから、不必要 な条件は書いてはいけません。本当に理由があって速くしなければならないの なら「○○の問題が起ないよう、○秒以内に処理できること」と具体的な数字 が書けるはずです。

もちろん数字が正確である必要はありません。「できるだけ」というあいまい な表現ではなく具体的な数字が示されること、そしてそれに理由をつけること が必要なのです。「できるだけ速く」と書いたところで、速い方がいいのは当 たり前のことですから。

漏れなく記載する

必要な機能や条件は漏れなく記載されなくてはなりません。「出来上がっても いないのに必要な機能を全部挙げるなんて無茶だ」と言う人もいるかもしれま せんが、出来上がってしまってから「あ、こういう機能も必要だ」なんて言い 出すのも同じく無茶な話です。難しいのは承知の上です。だから今まで皆が避 けて通ってきたのですから。本当にこれができないのなら、前述のスパイラル 開発を適用するという手もあります。

「管理する」「行う」は控える

この二つの言葉を使うと意味がひどくあいまいになってしまいます。「管理す る」とはいったい何をすることを指すのかを具体的に書かなくてはなりません。 そもそも大抵のソフトは「管理する」あるいは「行う」の一言で終わってしま うものですから。

長々と書かない

要求仕様書にはあまり書くことはないはずです。もちろんソフトウェアの規模 にもよりますが、何十ページにもなる「要求仕様書」ができあがったとしたら それはどこか間違っています。要求だけでなく実現手段まで書いてしまってい ませんか?

もしあなたが顧客の要求をヒアリングしている立場だったら、要求仕様書には 顧客の知らない情報は何一つ書かれないはずです。そしてあなたの創意工夫を 発揮する場所もないはずです。要求仕様書には顧客が要求している事だけが書 かれるはずですから。