第６分科会 D グループ

USDM 導入支援のためのガイドラインの提案
Proposal of Guideline to Support to Introduce USDM
主査：清水
副主査 ：飯泉足立リーダー ：高野研究員 ：佐藤田中
春田
福味

吉男（株式会社システムクリエイツ）
紀子（株式会社日立ハイテクノロジーズ）
久美（株式会社デンソー）
愛美（株式会社日立製作所）
秀樹（株式会社インテック）
一生（株式会社リンクレア）
優子（TIS 株式会社）
弘崇（アズビル株式会社）

研究概要
派生開発の現場では，要求から仕様を充分に抽出できていないことに起因する仕様モレによるトラブルが後を絶たない．そのようなトラブルの原因である仕様モレに対して，USDM（Universal Specification Describing Manner）が効果的であると先行研究で経験的に報告されている．しかし，これまで箇条書きやベタ書きで仕様を記述してきた技術者にとって，新たに USDM の構成や表現方法で仕様を表現することは難しいことがわかった．そこで，
本研究では，USDM での仕様記述の導入を支援するために，USDM での仕様記述ノウハウをまとめたガイドライン「USDM Quick Start Guide」（以降，UQSG）を提案することとした．
そのために，まず初心者が USDM で仕様を記述する際に発生する課題を整理した．次に，いくつかの先行研究から USDM での仕様記述ノウハウを調査した．この結果から，「UQSG」に取り込む内容の要件を整理し，「UQSG」を作成した．これにより，初心者が陥りがちな疑問点を補完し，初心者でも USDM で仕様を記述することを可能とした．
Abstract
In derivative development, there are many problems caused by lack of specification that can not becompletely extracted from needs. Previous studies say the USDM is effective to prevent it empirically.
But we found it is difficult to write specification documents with USDM for engin eers who write themin bullet points or without spaces. So, we propose "the USDM Quick Start Guide", that is a guide line
unifies know-how to write them with the USDM, to support introduction of writing specification withit. First, we clarified the issues when beginners write the specification documents with the USDM.
Secondly, we investigated some previous studies for know-how to write them with the USDM. Finally,
we clarified contents that should be incorporated in the guide line, and we created it. Therefore, the"USDM Quick Start Guide" makes the beginners possible to write the specification documents with theUSDM by complementing issues, that are easily for the beginners to fall into.

1.

はじめに
近年のソフトウェア開発現場では，新規開発よりも派生開発によるプロジェクトが大半であり，それらの開発は短納期・低コストが求められる．一方で，派生開発現場では，要求から仕様を充分に抽出できていないことに起因する仕様モレによるトラブルが後を絶たない．この仕様モレは，要求から仕様を抽出する際に発生するため，テスト工程以降に仕様モレが発見された場合，作業の手戻りが大きくなり，プロジェクトの納期やコストに大1

きな影響を与える．よって，短納期・低コスト開発が前提となる派生開発では，開発プロジェクトの早い段階で仕様モレを防止しなければならない．
早期に仕様モレを防止するための方法は，次の二つに大きく分類できる．一つ目はレビュー方法であり，作成した仕様書に対するレビューを効果的に実施し，仕様モレを検出する方法である．二つ目は仕様の記述方法であり，仕様モレを発生させにくい構造で仕様を記述し，要求から仕様を抽出する段階で仕様モレを発生させない方法である．前者は，これまでにリーディング技法等の効果的な方法が検討されている．後者は，USDM（UniversalSpecification Describing Manner）等の構造的に仕様を記述する方法が検討されている．
本研究では，レビューで仕様モレを検出するよりは，仕様を記述する時点で仕様モレを発生させない方が，作業効率が良いとの考えに至り，後者の仕様の記述方法を取り上げ，構造的な仕様記述形式である USDM に焦点を当て研究を進めることにした．USDM は，要求と理由をセットで記述し，かつ，要求と仕様を階層で表現することにより，仕様モレの発生防止に効果があると先行研究で経験的に報告されている．しかし，これまで箇条書きやベタ書きで仕様を記述してきた技術者にとって，新たに USDM の構成や表現方法で仕様を記述することは難しいという課題がある．一方，USDM での仕様記述導入における課題に対して，著書 [1] および USDM に関する先行研究 [2][3][4][5][6][7] で USDM での仕様記述ルールやテクニックが報告されているが，これらの内容を網羅した USDM のノウハウ集は存在しない．
そのため，USDM での仕様記述初心者（以降，初心者）は，各文献を横断的に参照しながら仕様を記述する必要があり，派生開発という限られた工期の中で，初心者が USDM での仕様記述を進めることは難しい．
よって，本研究では，初心者が USDM で仕様が記述できることを目的としたガイドライン「USDM Quick Start Guide」（以降，UQSG）を作成することにした．具体的には，USDMの特徴を整理し，初心者が抱える問題点を分析する．そして，これを解決するための USDMノウハウを収集することにより，初心者が一般的に使用することができるガイドラインを提案する．以降，第 2 章では，USDM の特徴と USDM 導入時の問題点を整理する．第 3 章では，USDM の仕様記述導入の課題を分析する．第 4 章では，初心者が USDM で仕様を記述できることを目的とした「UQSG」を提案する．第 5 章では，提案の評価を行う．
2.

USDM 導入時の問題点
先行研究を調査した結果，USDM が仕様モレの発生防止に効果があると著書 [1] や先行研究[2] で報告されている．ここで，USDM とは，要求と仕様を階層的に表現し，要求の理由を記述することで，仕様モレが発生しにくいように考案された表記方法である．USDM は以下の特徴を持つ [4] ．
特徴 1：要求と仕様を「階層」で表現
特徴 2：機能要求は「振る舞い」とその「範囲」を表現
特徴 3：要求はそれが必要とする「理由」と一緒に表現
特徴 4：仕様は振る舞いに含まれる「動詞」をプログラムコードに変換するもの
特徴 5：「動詞」を＜仕様グループ＞として，それに対して「仕様」を抽出
上記の特徴を有するように仕様を記述することで，仕様モレ発生防止効果が期待できる．
しかし，USDM に関する先行研究 [3][8] で，USDM での仕様記述の導入初期に以下の問題が発生したことが報告されている．
問題 1：仕様や理由に要求事項が混在する [3]
問題 2：なかなか理由が書けない [8]問題 3：要求から仕様が導き出せない [3]よって，これまで箇条書きやベタ書きで仕様を記述してきた技術者にとって，USDM という新しい方法で仕様を記述することは難しいという懸念がある．図 1 に箇条書きやベタ書きで仕様を記述した例を，図 2 に同じ仕様を USDM で仕様を記述した例を示す．
2

■設定画面
設定画面のイメージ

項番

項目内容

1

文字列 A 入力領域

文字列 A を設定する．

2

保存ボタン

設定内容を保存する．

・文字列 A 入力領域には 0 文字から YY 文字の範囲で 文字列を入力することができる。入力された文字列は無加工で保存する。
・保存ボタンをタップすると設定画面で設定した内容が保存される。

図 1

要求

箇条書きやベタ書きで仕様を記述した例

SMPL03

設定 画 面で、文字 列 A に XX 文 字～YY 文字の範 囲で任 意の文 字列 を設 定 できる

理由

ユーザ毎に異なる任 意の文字 列 を設 定したい

説明
<文字 列 A 設 定の保 存>□□□

SMPL03-01□□□

SMPL03-01

保存ボタンをタップしたとき、文 字 列 A と文 字 列 A 自 動挿 入 設定 を設定情 報 格納 領 域に保 存 する
文字 列 A 入 力領 域に入力 されている文 字 列が YY 文字 を超 えている場 合 はエラーとし、「YY 文 字 以 内 で入 力 してください」というアラートを表示 する。

図 2

USDM で仕様を記述した例

図 1 は決まった仕様のみ記述しており，要求や理由は記述しない．これに対し， 図 2は要求に対して理由と仕様を記述している．このように，箇条書きやベタ書きで仕様を記述してきた技術者は，USDM の特徴である，要求や理由を記述した経験がないのである．
そこで，USDM での仕様記述導入時に発生する具体的な問題を把握するため，USDM での仕様記述を試行した．
3. USDM での仕様記述導入の課題分析
3.1 USDM での仕様記述導入における問題点の明確化
USDM での仕様記述導入における問題点をより明確にするため，初心者 5 名を対象に USDMでの仕様記述を試行した．試行後，初心者 5 名にヒアリングし，初心者が USDM で仕様を記述した際の問題点を整理した．その結果を表 1 に示す．
表 1 初心者が USDM で仕様を記述する際の問題点
問題点
内容
人数
①②③④

要求を階層化すべきか判断できない
要求の振る舞いや範囲の表現が不十分
理由や仕様に要求が混在してしまう
USDM の記述の手続きが整理されていない

35554

問題点①は，2 章で述べた問題とは共通していないが，階層構造は仕様モレの発生を防ぎやすい構造とされており，問題点①の解決は重要である．問題点②は， 2 章で述べた問題 3 と共通している．一見共通していないように見えるが，2 章の問題 3「要求から仕様が導き出せない」は，要求が十分に表現できていないことが原因であるため，問題点②と 2章の問題 3 は共通した問題であると捉えられる．問題点③は，2 章の問題 1 と共通した問題である．以上，問題点①～③は初心者 5 名全員から挙がった問題点である．
上記の問題と 2 章で述べた USDM の特徴を照らし合わせると，問題点①は特徴 1 を，問題点②は特徴 2 を，そして，問題点③は特徴 1 と特徴 3 を満たしていない．よって，初心者が USDM の特徴を兼ね備えた要求や仕様を記述するためには，問題点①～③の問題を解決する必要がある．
加えて，問題点④は 2 章で述べた問題とは共通していないが，手続きが判らないと記述を進めることができないため，初心者にとって手続きが整理されていることは重要である．
この問題は，初心者 5 名中 4 名から挙がっており，問題点④の問題も解決する必要がある．
以上から，本研究では，問題点①～④を初心者が USDM で仕様を記述する際の問題点として取り上げることとした．
3.2 USDM での仕様記述ノウハウの調査
まず，先行研究では，どのように USDM で仕様を記述しているのか調査した．調査では，
3.1 節の表 1 の問題点①に対しては「要求の階層化」，問題点②に対しては「要求」，問題点③に対しては「理由」および「仕様」という分類を設定し，それぞれの文献についてノウハウを抽出した．ここでノウハウとは，USDM で仕様を記述するために必要な作業手順，用語の定義，着眼点，ポイントなどである．上記分類から抽出するノウハウは，問題点①～④の問題に限定せず，「要求の階層化」，「要求」，「理由」，「仕様」に対して広く捉えてノウハウを抽出する．なお，問題点④は，USDM 全体の手続きについての問題であるため，上述した手順で収集するノウハウを組み合わせることにより解決可能である．以上の条件にて，著書 [1] ，および USDM に関する先行研究 [2][3][4][5][6][7] から抽出したノウハウの概要
を表 2 に示す．
表 2
文献

分類

1

要求の階層化要求
理由
仕様
要求の階層化
仕様
要求の階層化要求の階層化要求
仕様
要求の階層化要求
理由
仕様
要求の階層化要求

23456

USDM に関する先行研究から抽出したノウハウの概要
ノウハウ
要求の階層化のポイントや要求を分割する際の基準 など要求の役割や表現の仕方など
理由を書くことの重要性や位置づけなど
仕様の定義や捉え方のポイントなど
要求を階層化するときの階層に上限を設定
要求から仕様を抽出するときの仕様数に上限を設定
要求の階層化の手順とポイント要求を階層化するときの基準や階層化時のルール
要求の定義，表現の仕方や引き出し方
仕様の定義，仕様の表現の仕方や仕様表現時のポイント
階層化の基準やポイント要求の定義や要求の表現のポイント
理由の定義や理由を表現することの重要性
仕様の定義，仕様表現のルールやポイント
要求を階層化するときのルール
要求の表現のポイント
47

要求の階層化
要求理由

要求を階層化するときのルール
要求の表現のポイント
理由の表現のポイント

例えば，文献 2 の「要求の階層化」は，「要求を階層化するときの階層数に上限 3 を設ける」というノウハウであった．また，文献 4 の「要求」は，「要求はユースケース，状態遷移，操作画面の要素などから引き出すことができる」というノウハウであった．
表 2 のノウハウを整理した結果，「作業手順」，「用語の定義」，「記述ルール」，「記述ポイント」の 4 点に分類することができた．表 3 に，ノウハウの分類結果を示す．
表 3 先行研究の USDM での仕様記述ノウハウの分類
要求の要求理由
仕様階層化
作業手順
用語の定義
記述ルール
記述ポイント[3][1][1][2][4][5][6][7][1][3][5][1][4][5][1][4][1][5][1][1][2][4][5][6][7][1][3][7][1][4][5][1][2][4][5][1][4][5]

表 2 から，文献ごとに 3.1 節の表 1 の問題点①～④に対して，解決策となりうるノウハウが示されており，初心者が USDM での仕様記述を導入する際に参考となる．しかし，表3 に示すとおり，各ノウハウは文献ごとに散在しており，現状これらを体系的にまとめた
USDM で仕様を記述するためのガイドラインやノウハウ集は存在しないため，それぞれの文献を横断的に参考にしながら記述を進めなければならない．なお，USDM での仕様記述の導入を進めている企業には，独自のルールやポイントを整理したガイドラインに相当するものは存在している可能性はあるが，公開されているものではないため，一般的に使用できるものではない．よって，初心者が USDM を導入するにあたり，USDM のノウハウを効率的に利用することができる手段やツールが必要である．
以上から，本研究では，3.1 節の表 1 の問題点①～④に示す，初心者が USDM での仕様記述を導入する際につまずきやすい問題を解決することを目的として，これらのノウハウをまとめたガイドラインを作成することとした．このガイドラインを，「USDM Quick StartGuide」（以降，UQSG）と呼ぶ．この「UQSG」では，表 2 に示すノウハウから問題点①～④を解決するために必要なノウハウを抽出することにより，今後 USDM を導入する際に一般的に使用することができるものとして作成する．
4. 「UQSG」の提案
4.1 「UQSG」で取り上げるべき項目の整理
初心者が USDM で仕様を記述するために必要な項目を盛り込んだ「UQSG」を作成するため，「UQSG」の要件を整理する．3.1 節で述べた，USDM での仕様記述導入における問題点より，「UQSG」の要件は以下となる．
要件 1：要求を「階層」で適切に表現できるようにすること
要件 2：要求の「振る舞い」と「範囲」を十分に表現できるようにすること
要件 3：要求・理由・仕様を適切に表現できるようにすること
要件 4：USDM での仕様記述の手続きが整理できること
よって，要件 1 の要求を「階層」で適切に表現できるようにするために，要求を階層化するためのポイントとしてまとめる．要件 2 の要求の「振る舞い」と「範囲」を十分に表5現できるようにするために，要求を表現する際の記述ルールやポイントとしてまとめる．
要件 3 の要求・理由・仕様を適切に表現できるようにするために，それぞれの用語の定義の明確化にする．要件 4 の USDM での仕様記述の手続きが整理できるために，USDM での仕様記述の手続きの全体像を示す．
以上から，「UQSD」で取り上げるべき項目は以下の 4 点とする．
項目 1：要求の階層化のポイント
項目 2：要求の表現の記述ルールとポイント
項目 3：USDM における要求，理由，仕様の定義
項目 4：USDM での仕様記述手続きの全体像
すなわち，「UQSG」には上記項目 1～4 を内容に含める必要がある．次節では以上を踏まえ「UQSG」の概要を述べる．
4.2 「UQSG」の概要「UQSG」は図 3 の構成とした．

UQSG の構成1.はじめに
2.USDM 記述の流れ
3.USDM 記述ノウハウ
3-1.USDM における要求，理由，仕様の定義
3-2.要求の階層化のポイント
3-3.要求の表現の記述ルールとポイント
4.USDM サンプル
5.参考文献図 3「UQSG」の構成「2.」では，PFD（Process Flow Diagram）で USDM 仕様記述手続きの全体像を示し，完成までのプロセスと，各プロセス前後での USDM の変化が判るようにした．
「3.」では，4.1
節で述べた，USDM 入門ガイドで取り上げるべき項目ごとに，USDM 記述ノウハウとして纏めた．「4.」では，実際の仕様モレの例を元に，USDM サンプルを示した．また，記述が不十分な例とその改善例を示した．これにより，初心者であっても，USDM 記述の具体的なイメージがつきやすくなる．「UQSG」の詳細は付録 A に添付する．
5. 「UQSG」の評価と考察
5.1「UQSG」の評価
3.1 節で USDM での仕様記述を試行した対象者 5 名に対して，作成した「UQSG」を参考にしながら，再度同じ事例を USDM で記述してもらった．その後，3.1 節の表 1 で挙がった問題点に対して改善効果があったか，アンケートをとり，「UQSG」の効果を確認した．また，今後の改善点を収集するために，「UQSG」に関する意見も収集した．アンケートの内容は付録 B に添付する。表 4 に「UQSG」の効果に関するアンケートの結果を示す．

6

表 4

「UQSG」に対するアンケート結果
記述しやすくな 少し記述しやすった
くなった

問題点

内容

①

要求を階層化すべきか判断できない
要求の振る舞いや範囲の表現が不十分
理由や仕様に要求が混在してしまう
USDM の記述の手続きが整理されていない

②
③④

変わらない

050041320230
単位：回答人数表 4 に示すとおり，3.1 節で挙げた 4 つの問題点全てについて，「UQSG」利用前と比較して，改善が見られた．4 つの問題点の中でも，問題点③「理由や仕様に要求が混在してしまう」という問題点に対しては，「記述しやすくなった」と回答した回答者が半数以上を占めた．
次に，アンケートで収集した「UQSG」に関する代表的な意見を表 5 に示す．
表 5

「UQSG」に関する代表的な意見

No.

意見

123456

画面レイアウトに関する記述例が知りたい
要求の分割の基準に具体例があると良い理由の説明にも具体例が欲しい
品質要求の記述例を記載してほしい
どういう要求のときに階層化が必要か，より具体的なガイドがほしい
USDM 記述手順は PFD よりフローチャートの方が良い

表 5 に示すとおり，主に具体例／サンプルの充実を求める意見が多かった．
以上の結果から，「UQSG」は，3.1 節で挙げた初心者が USDM による記述を行う際に発生する問題の解決に有効であることが確認できた．特に， 3.1 節の表 1 の問題点③「理由や仕様に要求が混在してしまう」という問題点に対して，「記述しやすくなった」と回答した
対象者が半数を超えており，改善効果が高かった．この問題点③について，「UQSG」では，「3-1.USDM における要求，理由，仕様の定義」に各用語の定義と合わせて，記述例を多く盛り込んだ．これは，用語の定義を記載するだけでは，わかりにくいと考えたためである．
この工夫により，利用者の理解を促進することができたため，改善効果が高かったものと考える．よって，「UQSG」により，初心者が効率的に USDM を記述することが可能となる．
5.2 考察本節では，「UQSG」の汎用性と，「UQSG」試行者の代表的な意見について考察する．
本研究で提案した「UQSG」は，初心者 5 名による USDM での仕様記述試行の結果から得た特定の問題点に着目して，それらを解決するためのガイドラインを提案したが，「 UQSG」のもとになったノウハウなどは，USDM に関する一般的な知見を業界・システム問わず，横断的に収集したものである．よって，「UQSG」は特定の製品ドメインに関わらず汎用的に使用できるものであると考える．
なお，「UQSG」に関する意見として，より詳細な記述例や FAQ のような具体的なガイドを求める意見が多く挙がった．担当者が自分たちの業界やシステムに USDM を適用するため
7

に，より詳細で，かつ，様々な業界やシステムの具体例を必要としていることのあらわれと考える．
「UQSG」作成にあたり，使い易さやコンパクトさを重視す る方針とし，具体例を含めた記載内容を必要最小限に絞ったという経緯があるため，具体例の充実を求める意見が多いことは想定通りの結果だが，「UQSG」の今後の改善課題として捉える必要がある．
6. 研究成果と今後の課題
6.1 研究成果
初心者が USDM での仕様記述を導入する際につまずきやすい問題点を抽出し，一般的に公開されているノウハウをまとめた「UQSG」を作成した．「UQSG」を利用して USDM を記述し，改善効果があるか検証することで，初心者が USDM による記述を行う際に発生する問題の解決に有効であることを示した．
「UQSG」を利用することにより，初心者が効率的に USDMを記述することが可能となる．
また，「UQSG」に定義したノウハウは，一般的な知見が中心であるため，汎用的に利用できる内容である．そのため，業界やシステムを問わず，USDM を導入する様々な場面で，利用されることにより，USDM の早期導入を可能とする．
6.2 今後の課題
今後の課題は，以下に述べる 2 点と考える．
1 点目は，5.2 節で述べた通り，「UQSG」に対する意見として，より詳細な記述例や具体的なガイドを求める意見が多かった点である．これらの意見から，「UQSG」の使い易さやコンパクトさを損なわない範囲で，それぞれの現場に合った具体例やサンプルを充実させることにより，「UQSG」の有用性を高める必要があると考える．具体的には，「UQSG」を利用する中で収集した事例をもとに，より使い易い内容となるように「UQSG」を改善するというサイクルがそれぞれの現場で定着することを最終的な目標とする．
2 点目は，「UQSG」の検証方法に関するものである．今回の効果検証では，同じ対象者 5名に対して，「UQSG」を利用しない場合，利用した場合，の 2 回 USDM を記述してもらい，改善有無を確認することで，「UQSG」の効果を検証した．この検証方法にて，改善有無を検証することは可能だが，サンプル数が少ない，2 回 USDM を記述するため慣れによる改善効
果 が で て い る 可 能 性 が あ る ， と い っ た 点 で 検 証 方 法 に 課 題 が あ る と 考 え る ． よ り 多 くの
USDM 初心者に初見の事例で「UQSG」を利用し，USDM を記述してもらい，効果検証をしていく必要がある．
参考文献[1]清水吉男，[入門＋実践]要求を仕様化する技術・表現する技術 -仕様が書けていますか？，技術評論社，2005[2]本多慶匡，XDDP と USDM で課題解決，派生開発カンファレンス 2010，2010[3]岩松洋史，混乱からの目覚め ～USDM との出会い～，派生開発カンファレンス 2013，2013[4]清水吉男，派生開発プロセス[XDDP]のポイント -XDDP の考え方を知る-，SQiP 第 6 分科会[派生開発]特別講演資料，2013[5]清水吉男，簡単だよ！要求仕様～USDM で仕様モレから決別しよう～，SQiP シンポジウ
ム 2013 併設チュートリアル講演資料，2013[6]矢野恵生，古畑慶次，USDM を活用した要件定義の改善～ユースケース記述から USDM へ～，SPI Japan 2010，2010[7]矢野恵生，USDM による要件抽出漏れゼロへの挑戦～USDM で乗り越えるユースケース記
述の限界～，アフォード・フォーラム 2011，2011[8] 酒井賢, 派生開発で USDM と DRBFM をミックスして一気通貫で品質確保する ～ おめさん，なじらね？ ～，JaSST'11 Niigata, 20118

付録 A. USDM Quick Start Guide9付録 A. USDM Quick Start Guide10

付録 A. USDM Quick Start Guide

11

付録 A. USDM Quick Start Guide

12

付録 A. USDM Quick Start Guide

13

付録 A. USDM Quick Start Guide

14

付録 A. USDM Quick Start Guide

15

付録 A. USDM Quick Start Guide

16

付録 A. USDM Quick Start Guide

17

付録 A. USDM Quick Start Guide

18

付録 A. USDM Quick Start Guide

19

付録 A. USDM Quick Start Guide

20

付録 B. 「USDM Quick Start Guide」評価アンケート

21