第7回 開発者を悩ませない要求仕様書USDMのマナーとは
第7回 USDMコラム
USDMとは、ソフトウエア開発の上流工程で必要となる、正確な要求記述、要求仕様を定義する技法で、製造業をはじめ多くの企業に導入されています。
今回は、仕様の特定(Specify)基本編についてご紹介します。
本コラムではUSDMとは?の基礎から応用までを、数回に分けてわかりやすく解説していきます。
目次
要求仕様とは
https://member.eureka-box.com/products/10/categories/4909959/posts/2149013502
仕様とは、要求に含まれる「具体的」な処理や振る舞いを表現したものです。
仕様は、開発者および関係者がSpecify、つまり「特定」できる状態まで正確に記述します。それがUSDMのマナーです。
仕様は、4つの条件を満たしている必要があります。
- 「要求から」導出されている
すべての仕様はいずれかの要求に属します。すなわち、要求が適切に表現されていないと仕様は引き出せません。 - 設計者の立場から実現可能性が見える
具体的なので、どう作ればよいか見当がつき、「仕様の矛盾」も見えます。 - 評価担当の立場から検証可能性が見える
どうすれば検証できるか見当がつき、関係者間での意味解釈のずれを防止できます。 - 品質要求も例外ではない
品質要求に対する仕様も、機能要求と考え方は同じで、実現可能性と検証可能性が求められます。
要求仕様をどこまで特定するか?
https://member.eureka-box.com/products/10/categories/4909959/posts/2149013502
しかし、「仕様をSpecify(特定)できる状態まで」とは、どこまでのことを指しているのでしょうか。「Specifyできている」とは、つまり、「実装できそうかどうか」ということです。
具体的にイメージしてみましょう。自分が開発者で、仕様を渡されて、さてプログラミングを始めようとしたところだとします。仕様書から読み取る必要があるのは2点、つまり
・何をプログラムで実現するのか
・どのように実現するのか
です。
これが書かれていなければ開発者は悩むことになってしまいます。USDMの仕様は、開発者を悩ませないレベルまで書く必要があります。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
要求仕様をどうやって書くのか?
https://member.eureka-box.com/products/10/categories/4909959/posts/2149013502
では、Specify(特定)できる仕様を、どのような手順でどう書けばよいのでしょうか。
USDMでは、要求は「目的語+動詞」で構成されていました。その目的語と動詞にそれぞれ着目して仕様を導出していきます。
たとえば目覚まし時計のスムーズ機能について「アラーム間隔を設定する」という要求の場合、
- 目的語の「アラーム間隔を」を具体化して、「3分」「5分」「10分」から選択できる、などと仕様化します。
- 動詞の「設定する」を具体化して、時計のどのボタンをどのように押せば設定できるかを記述します。
このとき、それぞれの仕様を必ずExcelの1つの行に記述するようにします。
要求仕様にはなにを書くのか?
https://member.eureka-box.com/products/10/categories/4909959/posts/2149013502
仕様には何を書けばよいのでしょうか。仕様に書く内容は、大きく4つに分類できます。「条件と動作」、「定義」、「出力」、「制約」です。
まず、どのような条件のときにどのような動作を行うか、を記述しなければなりません。開始条件とその時に行う動作、常時行う動作、モード切替条件とそのときの動作、終了条件とそのときの動作、リセット条件とそのときの動作、という5種類にわけて考えるとよいでしょう。
定義には、値の範囲や、規定値などが該当します。回数、選択肢などを具体的に定義したり、システムの初期値を定義したりします。
出力に関する仕様も記述する必要があります。?何をどう出力するかを具体的に記述します。
制約も忘れてはなりません。ハードウェア仕様など、前提となっている変更できない事柄を記述します。
これらの分類を押さえておくことで、モレなく仕様を記述することができます。
要求の書き方との共通点
https://member.eureka-box.com/products/10/categories/4909959/posts/2149013502
USDMで仕様を記述する際に、要求と同じ考え方を応用できるものもあります。
まず、理由と説明です。要求とは違って、Excelのフォーマットとして理由や説明の欄が用意されているわけではありません。しかしそれは、煩雑になるため欄を省略しただけであって、必要な場合には記述しなければなりません。隅付き括弧を使って【理由】または【説明】とし、仕様のセルの中に記述します。
また、仕様の数が多い場合には、要求と同じように分割基準を使ってグループ化します。「共通分割」が含まれていないことにお気づきになったでしょうか? 仕様が共通ということは、導出元の要求が共通であるため、要求を共通分割することで既に仕様も共通化されているはずです。そのため、仕様のレベルで共通分割を使用することはありません。
これからの要求仕様書「USDM」に求められる技術を知るには
要求仕様書(USDM)の技術を実際に学んでみたいという方、まずは無料でお試しいただけるオンライン学習を準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
エンジニアの独学・スキルアップに! 他では学べない技術が充実
上流工程ソフトウェア開発技術を学ぶ!
Eureka Box(ユーリカボックス)
要求仕様書(USDM])のテンプレートも確認出来る他、無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
まとめ
https://member.eureka-box.com/products/10/categories/4909959/posts/2149013502
仕様は、開発者および関係者が「Specify(特定)」できる状態まで正確に記述します。
具体的には、
・実装できるレベルまで
・「何を」「どうする」を具体的に考えて
・条件と動作/定義/出力/制約を記述します。
必要なら【理由】と【説明】も記載してください。
仕様の数が多い場合は、要求と同じ分割基準でグループ化します。
これらのポイントを押さえて、USDMのマナーにのっとった仕様を記述しましょう。
トップ企業をサポートしてきた技術と知見を1冊に「ソリューションガイドブック」
私達エクスモーションが行った、日本を代表する企業へのコンサルティングやトレーニングとは?
オンライン学習 Eureka Box誕生のベースとなった技術や知見が満載!
実際に支援を行ったお客様からのメッセージも掲載し、読み応えある1冊に仕上げています。