データ定義を表5に示す。
No. | 名称 | データ型 | 変数名 | 入力(input.csv)/出力(output.csv)/定数値 | 備考 |
---|---|---|---|---|---|
1 | 運転ON/OFFボタンステータス | int | opeBtnStatus | 入力/出力 | 押下する際は1、それ以外は0として入力する |
2 | モード変更ボタンステータス | int | modeBtnStatus | 入力/出力 | 押下する際は1、それ以外は0として入力する |
3 | 首振り変更ボタンステータス | int | swingBtnStatus | 入力/出力 | 押下する際は1、それ以外は0として入力する |
4 | 動作管理ステータス | int | stsManager | 出力 | 扇風機シミュレーターの動作モードを管理する変数 0:アイドルモード 1:運転モード 2:減速モード |
5 | 運転管理ステータス | int | opeStsManger | 出力 | 運転ON/OFFを管理するステータス OFF:0 ON:1 |
6 | 運転モード管理ステータス | int | modeStsManger | 出力 | 運転モード(弱・中・強)を管理する変数 弱:0 中:1 強:2 |
7 | モーター回転数 | int | currentSpeed | 出力 | 現在のモーターの回転数 |
8 | 弱速目標回転数 | int | LOW_TGT_SPEED | 定数値(300) | 弱速モード時の目標回転数 |
9 | 中速目標回転数 | int | MID_TGT_SPEED | 定数値(500) | 中速モード時の目標回転数 |
10 | 強速目標回転数 | int | HIGH_TGT_SPEED | 定数値(800) | 強速モード時の目標回転数 |
11 | 加減速設定値 | int | accValue | 定数値(50) | 1ループあたりの回転数の増加値/減少値 |
12 | 首振り管理ステータス | int | swingStsManager | 出力 | 首振りON/OFFを管理するステータス 首振りOFF:0 首振りON:1 |
表5 データ定義 |
下記に、大まかな処理フローを示す(図5)。
運転ON/OFFボタンステータス(0:それ以外、1:押下) | モード変更ボタンステータス(0:それ以外、1:押下) | 首振り変更ボタンステータス(0:それ以外、1:押下) | 備考 (実際にはこの行は作らない) |
|
---|---|---|---|---|
0 | 0 | 0 | 運転OFF | |
1 | 0 | 0 | 運転ONボタンを押下し、運転モードへ遷移 | |
0 | 1 | 0 | 運転ON状態で、モード変更ボタンを押下し、中速回転モードに遷移する。また、モーター回転数=50となる | |
0 | 0 | 0 | 運転ON状態で、また、モーター回転数=100となる | |
0 | 1 | 0 | 運転ON状態で、モード変更ボタン押下し、高速回転モードへ遷移し、モーター回転数=150となる | |
表6 出力データ一覧 |
今回は、扇風機シミュレーターの機能追加版(保守版)問題を出題しました。いかがでしたでしょうか。長々と書いていますが、やってみれば、簡単にバグは見つかると思います。次回の解答編までにじっくりと取り組んでいただければと思います。
前シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.