「仕様に潜むバグ」を見つける、たった1つの心掛け:組み込みエンジニアの現場力養成ドリル(2)(1/2 ページ)
組み込み開発の「現場力」を上げるには、問題に取り組み解決することが一番です。今回は「仕様のバグ」に挑みます。実は、仕様に潜むバグを見つけるには、たった1つの心掛けさえあれば良いのです。
はじめに
今回も問題を解きながら、組み込み系ソフトウェア開発の「現場力」を鍛えましょう。前回「若き組み込みエンジニア、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君による『どんな三角形かな』の仕様です。この中のバグを見つけてください。バグの指摘は難しくありませんが、どのように解決するかは、意外に大変です。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ソフトウェア品質は規則やテストではなく「ヒト」が作る
品質はヒトが制御する。機械でも人工知能でも神様でもなく、ヒトが品質を制御し、品質を作る。今回は視点を変えて、ヒトを中心に品質を見ていくことにする。どんなに立派な品質活動でもヒトが継続的に実施しなければ、いずれ絶えてなくなるからである。 - 若き組み込みエンジニア、B君の憂鬱
このコラムでは、組み込みエンジニアが日々の開発で実際に遭遇する「小さなトラブルを」取り上げ、演習形式で解説します。今回は機器制御系の組み込み開発に従事する若きエンジニア君の遅れを、プロマネの立場で助けてあげてください。 - 計測で組み込みソフトウェアの「品質」を丸裸にする
ソフトウェア品質を高めるためには、計測が第一のステップとなる。しかし、無形のモノを「はかる」ことには細心の注意を要する。ここではソフトウェア品質を「はかる」ことでの向上を目指す際の心得を紹介したい。 - 組み込みソフトウェア品質の「特異性」と付き合い方
ソフトウェアが無形のモノである以上、その「品質」も推して知るべし。把握も容易ではない。まずは「ソフトウェアとは何者か」を考察した上で、組み込みソフトウェア品質についての歩みを進めたい。 - 組み込みソフトウェアの「品質」とは何か――品質の始まりからその実態まで
組み込みソフトウェアにおける「品質」とは、一体、何者であろうか。多用されている言葉であるがその実態はようとしてしれない。この連載では「IoT時代の組み込み系ソフトウェアの品質」をテーマに開発現場の目線で見ていく。まずはこの品質の正体を見破ることから始めたい。