Murayama blog.

プログラミングと、その次の話

要求と仕様

僕なりの要求、仕様、設計、実装の流れの解釈をまとめます。


いきなり例題です。
顧客の要望として「取引先情報の一覧を出力したいんだ」が出たとします。


これを要求として定義します。

  • 要求
    • 取引先情報の一覧を出力したい*1


次に、要求から仕様を抽出します(逆にいうと、要求を満たすための仕様を定義します)。
このときのポイントは仕様は検証可能であること。

  • 仕様
    • 取引先名による絞り込みが行えること(指定なしの場合は全件出力すること)
    • 取引先情報には取引先名、所在地、電話番号、住所を表示すること
    • 一覧の出力順序は、取引先名、あるいは取引の多い順にソートできること
    • 帳票(PDF)形式で出力すること


次に、仕様を満たすべく設計作業を行います。

  • 設計
    • 最適な画面イメージ、帳票イメージをデザインする
    • 画面と機能の連携(イベント)を定義する
    • 帳票に出力するデータの取得方法を検討する


最後に、設計作業に従い実装します。

目的と手段の関係

要求と仕様は、目的と手段の関係にある。
仕様と設計は、目的と手段の関係にある。
設計と実装は、目的と手段の関係にある。

要件定義の仕事

要件定義の仕事は、要求だけを定義するんじゃなくて、仕様まで定義する。*2

*1:このとき本当は、要求の派生元となった理由とかいろいろ定義する

*2:要求仕様書だもの。