新人技術者のためのロジカル・シンキング入門(1) ―― いかにしてバグの原因を突き止めるか
ここでは,大規模な組み込みシステム開発におけるデバッグの考えかたを解説する.自分が開発に携わっている組み込みシステムでバグが発生したときに重要なのは,「問題の切り分け」である.この切り分けをスムーズに行う方法はある程度パターン化できる.そのパターンを押さえていれば,いろいろなシステムのデバッグに適用できる. (編集部)
技術解説・連載「新人技術者のためのロジカル・シンキング入門」 記事一覧
第1回 いかにしてバグの原因を突き止めるか
第2回 プログラミングにおける良いデータ構造
第3回 「必要とされる設計書」の作り方
第4回 直したバグがゾンビのごとく復活する
第5回 ソース・コード規約の作り方
第6回 ハードウェア基礎の基礎
第7回 「ひたすら流すだけのテスト」にさよなら
第8回 CPUの演算量をひたすら削る
第9回 メモリ転送速度の最適化設計
第10回 「工学の知」を実務に生かす
●お知らせ
本連載記事を元に加筆・再編集した書籍『組み込みエンジニアのためのロジカル・シンキング入門』が好評発売中!
Aさんは,とあるメーカの研究所で生体認証にかかわる認識アルゴリズムの研究開発に携わっています.
● ある日突然システムがハングアップ! さてどうする?
Aさんらは虹彩(瞳孔の周りの輪状の膜)を使った生体認証アルゴリズムを開発しました.この方法は,従来のものと比べて認識の誤差が格段に小さいという特徴を持っているため,商品化には社内でも大きな期待がかけられていました.
このアルゴリズムは,人の出入りをチェックする認証装置に採用されることになっています.施設を利用する人はあらかじめ虹彩のパターンを登録しておきます.施設に入るときには虹彩を小さなカメラに映し,登録済みのパターンと一致していれば入場できる,というものです.
開発も終盤にさしかかったとき,異変が起きました.テスト中の認証装置がときどきハングアップしてしまい,電源をいったん落とさないと元に戻らないというのです.認識モジュールの実装にもかかわってきたAさんにも,当然火の粉が降りかかってきました.Aさんはどのようにして問題の切り分けを進めるべきでしょうか?