新人技術者のためのロジカル・シンキング入門(1)

――いかにしてバグの原因を突き止めるか

冴木元

ここでは,大規模な組み込みシステム開発におけるデバッグの考えかたを解説する.自分が開発に携わっている組み込みシステムでバグが発生したときに重要なのは,「問題の切り分け」である.この切り分けをスムーズに行う方法はある程度パターン化できる.そのパターンを押さえていれば,いろいろなシステムのデバッグに適用できる.

(編集部)

 Aさんは,とあるメーカの研究所で生体認証にかかわる認識アルゴリズムの研究開発に携わっています.

● ある日突然システムがハングアップ! さてどうする?

 Aさんらは虹彩(瞳孔の周りの輪状の膜)を使った生体認証アルゴリズムを開発しました.この方法は,従来のものと比べて認識の誤差が格段に小さいという特徴を持っているため,商品化には社内でも大きな期待がかけられていました.

 このアルゴリズムは,人の出入りをチェックする認証装置に採用されることになっています.施設を利用する人はあらかじめ虹彩のパターンを登録しておきます.施設に入るときには虹彩を小さなカメラに映し,登録済みのパターンと一致していれば入場できる,というものです.

 開発も終盤にさしかかったとき,異変が起きました.テスト中の認証装置がときどきハングアップしてしまい,電源をいったん落とさないと元に戻らないというのです.認識モジュールの実装にもかかわってきたAさんにも,当然火の粉が降りかかってきました.Aさんはどのようにして問題の切り分けを進めるべきでしょうか?

【1】現象を再現させる

【2】全体で100%になるイメージを描く

【3】YESかNOかで答えが出る設問を積み重ねる

【4】自分のブロックが原因かどうかを判定

【5】あらかじめ切り分けの手段を整理する

【コラム】ロジカル・シンキングとは何か

Copyright 2007 CQ Publishing Co.,Ltd.


Webmaster@kumikomi.net