ジャンケンとは、「グー」「チョキ」「パー」という3つの手の形を使って勝敗を決定するシンプルな決定手段です。プレイヤーが、「ジャン、ケン、ポン」の掛け声をかけ、「ポン」と同時に手を出して勝敗を決定します。
このゲームは、「ルールがシンプル」「公平性がある」というメリットから、さまざまな場面で使用されています。
日本国民なら誰もが知っていて、ルールが非常にシンプルと思えるジャンケンですが、「生まれてから一度もジャンケンを見たことがない人が、『ジャンケンの要求仕様書』を読んだ瞬間、ジャンケンができるようになる」レベルの要求仕様書を書くのは簡単ではありません。ルールを漏れなく文書にすることは意外と大変です。例えば、最大/最小、異常ケースなどは、普段のジャンケンではほぼ起こりません。要求仕様書では、これらを漏れなく考える必要があるのです。
飛行機のキャビンアテンダントは、通常の飛行では、乗客にシートベルトの着用を促したり、飲み物や食事のサービスを提供したりというのが主な業務と思えますが、緊急時の乗客の安全確保や避難誘導は圧倒的に重要な任務です。
ソフトウェアの要求仕様書も同様で、筆者の体感では、正常ケースの記述が20%、異常時、限界時の記述が80%のように思います。
要求仕様書は、その製品を見聞きしてない人にも、仕様を伝達する手段として使用します。例えば、ジャンケンゲームの作成依頼があったとしましょう。しかし、開発担当は、どんなジャンケンゲームにするか知りません。例えば、「手の形を3Dモデルで表すジャンケンゲームとする」「テキストベースでジャンケンする」「オンライン上でジャンケンができる」など、ジャンケンと言っても、何を作りたいかを伝達する必要があります。
よって、仮にジャンケンゲームを見聞きしたことがない人に対しても何をしたいか分かる文書である必要があります。
上記から、理想的な要求仕様書は、正常時だけでなく、異常時、限界時も含めて、発注側の要求事項を漏れなく明確にまとめ、見聞きしたことがない人にも伝わる文書とすることです。
今回は、ジャンケンを題材として、「ツッコミどころ満載のジャンケン要求仕様書」を作成しました。筆者は、大学3年生を対象にした「ソフトウェア工学」の授業の最初で、「ジャンケンの要求仕様書を書いてください」という課題を出します。以下の仕様書は、学生が作成する典型的な仕様書です。この内容を見て、「ルールを漏れなく文書化できているか」「ジャンケンを知らない人に伝わる文書か」との観点から、問題点を考えてください。
複数人
いかがでしたでしょうか。次のページで問題点を振り返りましょう。
Copyright © ITmedia, Inc. All Rights Reserved.