こんにちは。hikaru です。
先々週に開催された、「ソフトウェア品質シンポジウム 2012」
でのオムロンの公演のまとめ記事がすごかったので、
今日はこれについて取り上げてみます。
記事はこちら (外部リンク)
オムロンの作っている自動改札機についてのお話で、
切符でも IC カードでも、一瞬のうちに正しく運賃を計算してくれます。
ただ、乗り換えが複数通りあったり、定期の区間があったりと、
想像しただけでも膨大な組み合わせがあります。
この運賃計算は、どのようにデバッグ (欠陥の修正) されているのでしょう。
運賃のパターンは、関東だけでも 10 の 40 乗通り (10 を 40 回掛ける)
もあるそうです。
まずはパターンの絞り込み。
現実的にありえないパターンを除いたり、
組み合わせがかぶるパターン (笹塚→新宿 と 笹塚→新宿→大手町) を除いたり、
許容範囲内での絞り込み (自線内の乗り換えは1回まで) を行ったりして、
1000 万件程度まで絞り込みます。
そして、このパターンが正しいかどうかは、
運賃計算ソフトウェアを、実機用・検証用と 2 つ作って検証します。
2 つのソフトウェアは、同じ環境で作ると同じミスが起こり得るので、
別のチーム・別のアルゴリズム・別のプログラミング言語
で作るのだそうです。
また更に、もととなる運賃データが間違っていないかチェックするために、
検証用は手入力でデータをチェックするんだとか。
更に更に、実機では、CPU やメモリの容量が限られているので、
そういった環境でも安定したものを作るのがたいへんなんだとか。
私達が何気なく使っている自動改札機ですが、
裏ではこんな苦労があったのですね。。。