テストでバグ発見!(9)状態遷移図への機能追加の勘所は「混ぜるな、危険!」山浦恒央の“くみこみ”な話(151)(4/4 ページ)

» 2022年03月17日 10時00分 公開
前のページへ 1|2|3|4       
※本記事はアフィリエイトプログラムによる収益を得ています

5.3 タクシーの状態遷移図での機能追加の例

 前回前々回で、状態遷移モデルの例として「タクシーの状態遷移」を取り上げました。前回、前々回のモデルは、タクシーの走行の状態を表したものですが、ここに、「通常料金・深夜料金」の状態遷移を追加したのが以下のモデルです。

 状態遷移図は、一種のすごろくであり、プログラムの制御部で、すごろくのコマの位置や外部から入力されるイベントを制御します。「タクシーの走行状態のモデル」と「通常料金・深夜料金のモデル」を独立させることにより、複雑さがそれほど増えていないことがお分かりいただけると思います。両方を混ぜてはいけません。混ぜると、急激に複雑化します。洗剤同様、プログラムの設計でも、「混ぜるな、危険!」です。

図7 図7 タクシーの状態遷移モデルに通常料金・深夜料金を追加したモデル[クリックで拡大]

6.終わりに

 今回は、扇風機シミュレーターの機能追加版の状態遷移図と状態遷移表を作成しました。状態遷移図の描き方はさまざまなので、自分なりの方法を考えてみてください。

 状態遷移モデルを活用することで、入出力の関係が分かりやすくなり、プログラミングやテスト設計の助けになります。もし活用していない人がいれば、さまざまある選択肢の一つとして使用してはいかがでしょうか。次回は、今回の仕様を応用した問題を出題します。

山浦先生の書籍が発売中です!

 前シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。

 前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。

 両書とも興味のある方は、Amazon.comや書店でチェックしてください!

【 筆者紹介 】
山浦 恒央(やまうら つねお)

東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)


1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科准教授、2016年より非常勤講師。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.