要求仕様を记述する手法「鲍厂顿惭」って何?
皆さん、こんにちは。技术开発グループの苍-辞锄补飞补苍です。
来週はハロウィンですね。ハロウィンと言えばカボチャのイメージが强いですが、元々の起源はカブだとか。カブの代用品としてカボチャが用いられ、気が付けばカボチャが定着したみたいですね。
本题です。
システムを开発していると、この仕様って何のためにあるの?とか、ユーザーはこの仕様で何を求めてるの?など、仕様の出所が分からないことがあります。この场合は有识者に质问することで解决するのですが、有识者へ质问する前に、要求と仕様の関係が整理された资料があると便利です。今回は、要求仕様を记述する手法として「鲍厂顿惭」を绍介します。
目次
USDM
USDMは「Universal Specification Describing Manner」の略称で、要求仕様を正確に記述するための手法です。清水吉男氏が提唱し、SQuBOKなどの知識体系ガイドでも取り上げられています。
鲍厂顿惭は大きく「要求」と「仕様」で构成され、「要求」には「理由」と「説明」を记述します。以下は鲍厂顿惭で记述された一例です。

要求はステークホルダがシステムに求めている事柄を、目的语と动词を明确にして记载します。また、要求には、その要求が必要な理由や背景などがあります。各関係者との认识を共有し、认识のズレを防ぐために「理由」栏にそれらを记述します。もし补足事项や例示などがあれば「説明」栏に记述します。
仕様とは、そのシステムのあるべき姿であり、そのシステムが実现する事柄です。仕様の根拠は必ず要求にあります。ユーザーが求めていないことを胜手に仕様にすることはありません。上の画像でいうと、叠列が「□」となっている行が仕様になります。
鲍厂顿惭の利点は要求と仕様の関係性が明らかになることにあります。ステークホルダからの要求がどのように仕様となるのか、また、その仕様の策定の根拠となる要求は何か、その理由は何か、などが一覧で追えるようになります。要求と仕様の関係性が明らかになることから、仕様漏れや、余计な仕様などの早期発见にも期待できます。
要求の范囲
要求は目的语と动词で记述します。また、要求にはステークホルダが望む动作と、その条件が含まれています。鲍厂顿惭では、要求の文中にある条件や动词の「范囲」を重要视し、要求の表现を工夫するように记述します。例えば以下の要求があるとします。
印刷が出来ない状况が発生したときは担当者に知らせる。
上记の要求では、以下2点の范囲が曖昧です。
- 「印刷が出来ない状况」とは何か?
- 「知らせる」手段はなにか?
要求の范囲が広いと仕様漏れになりやすくなります。なので要求の范囲を狭め、より具体的に記述します。
印刷途中で用纸やトナーが不足すると分かった时点で、登録されている担当者へメールを送信する。
「印刷が出来ない状况」は「印刷途中で用纸やトナーが不足すると分かった时点」となり、「知らせる」は「メールを送信する」となりました。これにより要求はより具体性を持つことになります。
要求と仕様の阶层构造
先ほども述べた通り、鲍厂顿惭の最大の利点は、要求と仕様の関係性が明らかになることです。鲍厂顿惭では要求と仕様を阶层构造で记述します。また、要求は「上位要求」と「下位要求」に分けられます。

要求は复数の要求に分割することが出来ます。例えば先ほどの要求を例にします。
印刷途中で用纸やトナーが不足すると分かった时点で、登録されている担当者へメールを送信する。
要求を分割するコツは「隠れた动词を见つけること」です。一つの文章でも、复数の动词が隠れています。例えば上记の要求であれば、用纸やトナーの不足を确认することと、メールを送信する、の2つになります。よって、上记の要求は以下の要求に分割することが可能です。
印刷途中で用纸やトナーが不足しているか确认する。
登録されている担当者へメールを送信する。
鲍厂顿惭では、分割前の要求を「上位要求」、分割后の要求を「下位要求」として、阶层构造で表现します。
仕様の抽出
要求を整理したら、要求から仕様を抽出します。鲍厂顿惭では、仕様は要求に含まれる「动词」もしくは「目的语」にある、としています。先ほどの要求を例にして説明します。
登録されている担当者へメールを送信する。
上记の要求であれば、动词は「送信する」で、目的语は「メール」になります。メールを送信するにはメールアドレスが必要になります。メールアドレスは担当者の情报から取得すればよいでしょう。なので以下の仕様が抽出できます。
1.担当者マスタから担当者情报を取得する。
2.担当者情报からメールアドレスを取得する。
3.取得したメールアドレスへメールを送信する。
ざっと3つほど仕様が抽出されました。しかし、これだけでは不足していそうです。担当者マスタから担当者情报を取得する际、取得する条件は何でしょうか?全社员でしょうか?また、メールを送信する际、多数へ送信する场合は叠颁颁で送信した方が良さそうです。
更に仕様を抽出するには、再度、要求とその要求の理由や背景を勘案して抽出していきます。分からなければステークホルダと検讨の场を用意するのもいいでしょう。必要あれば要求そのものを见直すこともあり得ます。
おわりに
USDMについてざっくりと紹介しました。要求定义での記述手法としては非常に有効な方法かと思いますが、実際にやってみると意外と難しいです。私は仕様をプログラムでコーディングしてきた人間なので、要求や仕様を日本語化するのに慣れていないだけかもしれません。
鲍厂顿惭を提唱された清水吉男氏はいくつか书籍を贩売しておりますので、兴味ある方は是非読んでみてください。
ではまた。
