組み込み開発の「現場力」を上げるには、問題に取り組み解決することが一番です。今回は「仕様のバグ」に挑みます。実は、仕様に潜むバグを見つけるには、たった1つの心掛けさえあれば良いのです。
今回も問題を解きながら、組み込み系ソフトウェア開発の「現場力」を鍛えましょう。前回「若き組み込みエンジニア、B君の憂鬱」は、デバッグフェーズの進捗状況から問題点を洗い出しました。
さて今回のテーマは「仕様のバグ」です。まず、「仕様書を見たらバグと思え」「仕様書の全ての行にバグがある」という性悪説に基づいて、意地悪な視点で仕様書を読んでください。バグは簡単に見つかるでしょう。それをどう修正するかが今回の課題です。
若き組み込みエンジニア、A君のプロジェクトは、小学校高学年向けのアプリケーション・プログラムを開発しています。ある日、プロジェクトマネジャーから、「小学5、6年生向けの算数のアプリケーション・プログラム、『算数で遊ぼう』を開発することになった。A君には、その中の1つである三角形判定プログラム、『どんな三角かな』を作ってほしい」と依頼されました。
『算数で遊ぼう』の中にある『どんな三角かな』のアイコンをクリックすると、三角形判定用の画面が表示されます。その画面で三角形の辺の長さを入れると、三角形の種類を判定されます。そして、「第一歩として『どんな三角かな』の仕様書を書いてほしい」と言われました。
A君が作った仕様書は以下の通りです。この仕様書のバグを見つけ、修正案を提示してください(このソフトウェアは、PC上で動作するとします。また、動作環境や応答性能は省略しています)。
本ソフトウェアは、画面上で三角形の3辺の長さを入力し、どんな三角形になるか判定するプログラムである。対象ユーザーは小学校の高学年で、身近にある三角形の辺の長さを測って入力し、どんな三角形かを見つけ、幾何学に興味を持たせることを目的とする。
(略)
(略)
『算数で遊ぼう』の中にある『どんな三角形かな』のアイコンをクリックすると、以下の初期画面が全画面表示される。
(1)A1、B1、C1 三角形の辺の「cm」を表す。3桁までの整数(1バイト文字)を入力する。入力された整数の前にゼロがある場合は無視する。
(2)A2、B2、C2 三角形の辺の「mm」を表す。1桁の整数(1バイト文字)を入力する。ゼロの場合は無視する。入力がない場合は、0と見なす。
(3)判定ボタン このボタンをクリックすると、以下の三角形の種別を判定し、「三角形の種別を表示するエリア」に表示する。
(4)エラーメッセージを表示するエリア 以下の場合はエラーとみなし、「入力した値が間違っています。もう一度入力してください」と表示し、A1〜C2までの入力エリアをクリアする。
以上がA君による『どんな三角形かな』の仕様です。この中のバグを見つけてください。バグの指摘は難しくありませんが、どのように解決するかは、意外に大変です。
Copyright © ITmedia, Inc. All Rights Reserved.
豊富なホワイトペーパーの中から、製品・サービス導入の検討に役立つ技術情報や導入事例などを簡単に入手できます。