検索
連載

イチから全部作ってみよう(9)ジャンケンで理解する要求仕様書作成の難しさ山浦恒央の“くみこみ”な話(178)(2/3 ページ)

ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第9回は、「ヒアリング」した内容をまとめる「要求仕様書作成」について、情報工学専攻の大学3年生でも悩む「ジャンケンの要求仕様書」を例にその難しさを解説します。

Share
Tweet
LINE
Hatena

4.ジャンケンの要求仕様書

4.1 ジャンケンとは

 ジャンケンとは、「グー」「チョキ」「パー」という3つの手の形を使って勝敗を決定するシンプルな決定手段です。プレイヤーが、「ジャン、ケン、ポン」の掛け声をかけ、「ポン」と同時に手を出して勝敗を決定します。

 このゲームは、「ルールがシンプル」「公平性がある」というメリットから、さまざまな場面で使用されています。

4.2 ジャンケンだとしても大変

ジャンケン
※写真はイメージです

 日本国民なら誰もが知っていて、ルールが非常にシンプルと思えるジャンケンですが、「生まれてから一度もジャンケンを見たことがない人が、『ジャンケンの要求仕様書』を読んだ瞬間、ジャンケンができるようになる」レベルの要求仕様書を書くのは簡単ではありません。ルールを漏れなく文書にすることは意外と大変です。例えば、最大/最小、異常ケースなどは、普段のジャンケンではほぼ起こりません。要求仕様書では、これらを漏れなく考える必要があるのです。

 飛行機のキャビンアテンダントは、通常の飛行では、乗客にシートベルトの着用を促したり、飲み物や食事のサービスを提供したりというのが主な業務と思えますが、緊急時の乗客の安全確保や避難誘導は圧倒的に重要な任務です。

 ソフトウェアの要求仕様書も同様で、筆者の体感では、正常ケースの記述が20%、異常時、限界時の記述が80%のように思います。

4.3 知らない人にも伝えられるか

 要求仕様書は、その製品を見聞きしてない人にも、仕様を伝達する手段として使用します。例えば、ジャンケンゲームの作成依頼があったとしましょう。しかし、開発担当は、どんなジャンケンゲームにするか知りません。例えば、「手の形を3Dモデルで表すジャンケンゲームとする」「テキストベースでジャンケンする」「オンライン上でジャンケンができる」など、ジャンケンと言っても、何を作りたいかを伝達する必要があります。

 よって、仮にジャンケンゲームを見聞きしたことがない人に対しても何をしたいか分かる文書である必要があります。

 上記から、理想的な要求仕様書は、正常時だけでなく、異常時、限界時も含めて、発注側の要求事項を漏れなく明確にまとめ、見聞きしたことがない人にも伝わる文書とすることです。

5.ジャンケンの要求仕様書例

 今回は、ジャンケンを題材として、「ツッコミどころ満載のジャンケン要求仕様書」を作成しました。筆者は、大学3年生を対象にした「ソフトウェア工学」の授業の最初で、「ジャンケンの要求仕様書を書いてください」という課題を出します。以下の仕様書は、学生が作成する典型的な仕様書です。この内容を見て、「ルールを漏れなく文書化できているか」「ジャンケンを知らない人に伝わる文書か」との観点から、問題点を考えてください。

ツッコミどころ満載のジャンケン要求仕様書

(1)参加人数

複数人

(2)ゲームの流れ

  1. 参加者の一人が、「ジャン、ケン、ポン」と声で合図する
  2. 「ポン」のタイミングで、それぞれが「グー」「チョキ」「パー」のいずれかを出す
  3. あいこの場合は、1.へ戻る(再度、「ジャン、ケン、ポン」と声で合図する)。
  4. あいこでない場合は、勝敗を判定する
  5. 勝者が1人になるまで、1.〜4.を繰り返す

(3)手の強さ

  1. グーはチョキに勝つ
  2. チョキはパーに勝つ
  3. パーはグーに勝つ
  4. 同じ手を出す場合は、「あいこ」となる

(4)勝敗の判定

  1. 全員が同じ手を出すか3種類の手が出た場合は、あいことする
  2. 2種類の手が出た場合は、下記に従って勝敗を決定する
    • グーとチョキの場合は、グーが勝利する
    • チョキとパーの場合は、チョキが勝利する
    • パーとグーの場合は、パーが勝利する

 いかがでしたでしょうか。次のページで問題点を振り返りましょう。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る