連載
» 2018年03月07日 09時00分 公開

組み込みエンジニアの現場力養成ドリル(2):「仕様に潜むバグ」を見つける、たった1つの心掛け (1/2)

組み込み開発の「現場力」を上げるには、問題に取り組み解決することが一番です。今回は「仕様のバグ」に挑みます。実は、仕様に潜むバグを見つけるには、たった1つの心掛けさえあれば良いのです。

[山浦恒央 東海大学 大学院 組込み技術研究科 非常勤講師(工学博士),TechFactory]

はじめに

 今回も問題を解きながら、組み込み系ソフトウェア開発の「現場力」を鍛えましょう。前回「若き組み込みエンジニア、B君の憂鬱」は、デバッグフェーズの進捗状況から問題点を洗い出しました。

 さて今回のテーマは「仕様のバグ」です。まず、「仕様書を見たらバグと思え」「仕様書の全ての行にバグがある」という性悪説に基づいて、意地悪な視点で仕様書を読んでください。バグは簡単に見つかるでしょう。それをどう修正するかが今回の課題です。

問題編(制限時間30分)

小学生用の算数アプリケーション・プログラムのバグ

小学生向けの算数アプリケーション・プログラムを開発します 小学生向けの算数アプリケーション・プログラムを開発します

 若き組み込みエンジニア、A君のプロジェクトは、小学校高学年向けのアプリケーション・プログラムを開発しています。ある日、プロジェクトマネジャーから、「小学5、6年生向けの算数のアプリケーション・プログラム、『算数で遊ぼう』を開発することになった。A君には、その中の1つである三角形判定プログラム、『どんな三角かな』を作ってほしい」と依頼されました。

 『算数で遊ぼう』の中にある『どんな三角かな』のアイコンをクリックすると、三角形判定用の画面が表示されます。その画面で三角形の辺の長さを入れると、三角形の種類を判定されます。そして、「第一歩として『どんな三角かな』の仕様書を書いてほしい」と言われました。

 A君が作った仕様書は以下の通りです。この仕様書のバグを見つけ、修正案を提示してください(このソフトウェアは、PC上で動作するとします。また、動作環境や応答性能は省略しています)。

三角形判定プログラム、『どんな三角形かな』仕様書

  • 1. 機能概要

 本ソフトウェアは、画面上で三角形の3辺の長さを入力し、どんな三角形になるか判定するプログラムである。対象ユーザーは小学校の高学年で、身近にある三角形の辺の長さを測って入力し、どんな三角形かを見つけ、幾何学に興味を持たせることを目的とする。

  • 2. 前提条件
  • 2.1 『どんな三角形かな』を動作させる上で必要なハードウェア

 (略)

  • 2.2 『どんな三角形かな』を動作させる上で必要なソフトウェア

 (略)

  • 3. 機能の詳細
  • 3.1 初期画面表示

 『算数で遊ぼう』の中にある『どんな三角形かな』のアイコンをクリックすると、以下の初期画面が全画面表示される。

『どんな三角形かな』の初期画面 『どんな三角形かな』の初期画面
  • 3.2 各フィールドの説明

(1)A1、B1、C1 三角形の辺の「cm」を表す。3桁までの整数(1バイト文字)を入力する。入力された整数の前にゼロがある場合は無視する。

(2)A2、B2、C2 三角形の辺の「mm」を表す。1桁の整数(1バイト文字)を入力する。ゼロの場合は無視する。入力がない場合は、0と見なす。

(3)判定ボタン このボタンをクリックすると、以下の三角形の種別を判定し、「三角形の種別を表示するエリア」に表示する。

  • 不等辺三角形
  • 正三角形
  • 二等辺三角形
  • 直角三角形
  • 直角二等辺三角形
  • 三角形はできません

(4)エラーメッセージを表示するエリア 以下の場合はエラーとみなし、「入力した値が間違っています。もう一度入力してください」と表示し、A1〜C2までの入力エリアをクリアする。

  • A1〜C2のいずれかに、1バイトの数字以外が入力された。
  • A1〜C2の全てに入力されていない(ただし、「cm」に入力がある場合は、「mm」に入力がなくてもよい)。入力されていても、0cm0mmの辺がある。

 以上がA君による『どんな三角形かな』の仕様です。この中のバグを見つけてください。バグの指摘は難しくありませんが、どのように解決するかは、意外に大変です。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

Loading