バグでロケットが飛ばなくなる話

se_34

気がついたらニコニコ静画でやってる『SE』のリバイバル連載もすでに33話まできています。SEは全37話なので、あと4回で終わりですね・・・。(→ニコニコの『SE』リバイバル連載は全話完走しました!ありがとうございます!)既に完結している作品ですが、こうやって再び読んでいただき感謝です。ってことでちょっとだけ振り返り!

■NASAのロケットが飛ばなかった話

『SE』1巻に収録されている第4話にはこんなシーンがあります。

fortran

 

プログラムの『.(ピリオド)』と『,(カンマ)』がたった一か所違っただけで
NASAのロケットが飛ばなかったという話があるくらいなんですよ

これって情報系の学部だと授業で習ったりする有名エピソードだったりします。プログラムやってると「それってコンパイルエラーになるでしょ」と思うところなのですが、「1, 10」と書いても「1.10」としても、どちらも文法として正しく通るケースなんて当時のロケットに使われていたFORTRANだけでなく今でも色々ありそうですね。

で、この話はNASAのマーキュリー計画での出来事とされているのですが、真偽は結構不明だったり。実際の打ち上げ環境で発生したバグではなく、その以前にシミュレーション環境で見つかったバグで、ロケット発射には問題はなかった説が有力のようです。(が、その説もソースが不明だったりして都市伝説化しはじめてる気も…)

■日本だってバグでロケットの打ち上げが中止されている

日本では実際にプログラムミスでロケット発射が中止されたことがあります。しかもつい最近。

2013年8月27日、JAXAの新型ロケット「イプシロン」の打ち上げが発射19秒前というギリギリになって異常を検知し自動停止した件をニュースで見られた方もいると思います。これも原因は単純なプログラムミスです。(どうも聞いた話では同期処理が抜けていたとかなんとかで、通知を正しく受け取れなかった?)

センサーが破損しているとかの物理的不具合ではなく、プログラムのバグが原因の異常であっても発射前に確実に止まれたのは良かったと思います。実はこの「異常を検知した時に正しく止まる」というのは、かなり重要。パソコンなんかはちょっとぐらいおかしくなっても問題ないならとりあえず使いたいって感じも多いので、まずは動いてよ!ってケースも多いですが、製品に組み込まれる組込み系のプログラムはそうもいってられない場合があります。

ソフトウェアが家電に組み込まれた「スマート家電」的な製品が今後も家庭内にどんどん増えてくると思いますが、大前提としてバグが”絶対”に無いシステムなんて存在しません。自宅に不在の時にバグで勝手に家電が動作したら怖いですよね?なにより危険です。(そんな製品は試験に通らないとは思います、というか通って欲しくないですが)なので開発者は、命に関わるものを作る時ほど、より想定外の異常に備える意識が重要となってくると。。。正しく動くことより、正しく止まる。これ重要!もちろんスマートホールでもこれは重要!

■単行本は全4巻で出ています

ちょっと(?)変わったIT業界漫画『SE』は全4巻が発売中です。冒頭に紹介したNASAのエピソードは1巻に収録されていますよ!!

SE 1 (ジェッツコミックス)

此ノ木 よしる
白泉社 (2013-11-29)

気になる方は第1話の試し読みもありますので、そちらもどうぞ!

変女bot担当スタッフ

最近Twitterカードの設定を変えたので、ツイート時に画像が大きく表示されるようになりました!よかったらツイートボタンを使ったツイートしてみてください!