USDMとは
USDM(Universal Specification Describing Manner)とは「要求(システムに何をしてほしいか)」と「仕様(システムをどう動かすか)」を紐づけて、万人に通じる仕様書を記述するための手法です。
不具合の半数は上流工程(要求の勘違いや記述漏れ)で仕込まれるといわれています。上流工程での不具合はプログラムのバグとは違い「人間のコミュニケーションの曖昧さ」にあります。「言った/言わない」、「わかったつもり」や「隠れた前提」などです。
USDMはこの「上流工程の不具合を上流工程でつぶす」ための手法です。
USDMの特徴は、まず要求を記述し、その直下に仕様を記述することにあります。これにより仕様の検討中、すぐに要求を確認することができます。またなぜその要求が必要なのかという理由を書かせることで、要求の真意をくみ取りやすくなり、勘違いを防げます。また根拠のない要求は不要であると判断でき、早期に仕様から省くことも可能となります。
本ページではユースケース記述のExcelテンプレートと記入例を紹介します。
入力フォーマットと入力例

| ECサイトのログイン機能 | |||
|---|---|---|---|
| 要求 | LOGIN | 登録済みのユーザーがシステムにログインできる。 | |
| 理由 | 個人に最適化されたサービス(購入履歴やお気に入りなど)を提供するため。 | ||
| 説明 | |||
| 要求 | LOGIN-01 | メールアドレスとパスワードによる認証が行えること。 | |
| 理由 | 一般的な認証方法であるため。 | ||
| 説明 | |||
| <入力検証> | |||
| □□□ | LOGIN-01-01 | メールアドレスとパスワードが両方入力されていない場合、認証処理を開始しない。 | |
| □□□ | LOGIN-01-02 | 登録されていないメールアドレスが入力された場合、エラーメッセージを表示する。 | |
| □□□ | LOGIN-01-03 | パスワードが一致しない場合、エラーメッセージを表示する。 | |
| □□□ | LOGIN-01-04 | メールアドレスとパスワードが一致した場合、ログイン状態となりトップページへ遷移する。 | |
ユースケース記述との使い分け
ユースケース記述はシステムの内部をブラックボックスとし、システムの振る舞いを外側からみて表したものです。それに対してUSDMは、システムの内部の振る舞いを表したものになります。
ユースケースとUSDMは下記のように対応付けます。
- ユースケース名を、USDMの上位要求に対応付けます。
- ユースケースの各ステップを、USDMの下位要求に対応付けます。
- USDMの下位要求の実現方法を仕様として展開していきます。

要求を書く際の注意点
USDMのポイントは、いかにして望んだ要求を書くか、または望みを要求として書かせるかに掛かっています。より良い要求は、より良い仕様を生みます。要求は次のようなことに気を付けて書いてください。
- 「動詞」に着目する。
要求は「~を~する」という「目的語+動詞」で簡潔に書きます。
「〇〇を表示」ではなく「〇〇を表示する」とすることで、「誰が・何を・どうする」という振る舞いを確定させます。 - 「やること」ではなく「やりたいこと」を書きます。
「やること」を書いてしまうと、手段に縛られて本当の目的が見えなくなります。
またあとで見返したときに、「なぜそれをやるのか」という当初の目的や理由がわからなくなってしまいます。 - 「状態」と「動作」を明確にします。
「〇〇画面を表示する」なのか「〇〇画面が表示される」なのかを区別して書きます。 - 実装方法を書いてはいけません。
具体的な実装方法、実現方法は仕様に書くべきものです。 - テストできる状態にします。(検証可能性)
「安全であること」や「処理が速いこと」といった形容詞的な表現は避けます。
客観的にテストできるよう、「通信を暗号化する」や「〇秒以内に処理が終わること」など具体的な要求を書きます。 - 要求は「範囲」を明確にします。
時間・期間的な範囲:「いつでも」なのか、「時間帯の制約」があるのか。「過去すべて」なのか、「直近〇か月」なのか。
対象データの範囲:「すべてのデータ」なのか、「未処理のデータ」なのか。
ユーザーの範囲:「誰でも」なのか、「管理者」や「ログイン済みのユーザー」なのか。
USDMの使い方
- 「□□□」は仕様がどのフェーズであるかを表します。
□□□:まだ誰も手を付けていない、未着手の状態です。
■□□:仕様のレビューが完了しました。
■■□:実装まで完了しました。
■■■:テストまで完了しました。
本VBAの特徴
- Excel 様式の手間なところを自動化します。
(1) 罫線や背景色を自動で設定します。
(2) 仕様のID番号を自動で設定します。
(3) グループ化して折りたためるようにします。
(4) 入力した文字列量に合わせて、セルの高さを調整します。 - 「要求」「理由」「説明」「□□□」など定型文字を自動で設定します。
- デフォルト設定では1万行までを整形の対象にしています。
対象行を増減させる場合は、コード内の「USDM_END_ROW」を変更します。
本VBAの使い方
A列はステータスであり、その行が何のデータであるかを示します。
このステータスに合わせて、色、罫線、定型文字などのスタイルを適用します。
| 1 | 要求のタイトルをC列に記入します。 |
| 11 | 上位の「要求」をE列に記入します。 またD列に記入したラベルをIDに使用します。 |
| 12 | 上位要求の「理由」をE列に記入します。 |
| 13 | 上位要求の「説明」をE列に記入します。 |
| 21 | 下位の「要求」をF列に記入します。 |
| 22 | 下位要求の「理由」をF列に記入します。 |
| 23 | 下位要求の「説明」をF列に記入します。 |
| 31 | グループ名をE列に記入します。 |
| 32 | 仕様をE列に記入します。 |
| 33 | 仕様を複数行に分けて記入したい場合に使用します。 本行はセルの高さを自動調整しません。 |
| 99 | USDMの最終行です。 3万行に達するか、本ステータスにあたるまでフォーマット整形を行います。 |
[レイアウト調整]ボタンをクリックし、セルの書式設定を行います。
このあと、要求や仕様を記入しながら、適宜レイアウト調整を行ってください。
Excelファイルダウンロード
USDMテンプレートのExcelファイルデータです。
ZIP形式で圧縮してあり、解凍するとxlsm形式のExcelファイルが現れます。
個人・商用利用を問いませんので、ダウンロードしてご自由に使用してください。
ファイル名:KN0023-00.zip
ファイル容量:137KB


コメント