石橋を叩きすぎて壊れちゃった。

現在、社会人1年目のブログです

JALのシステムトラブルについて

こんにちは

どうも、tatsu.です。


  4月1日に日本航空(JAL)で機体の重量バランスを処理するシステムがトラブルを起こしダイヤが大きく乱れました。その原因が3月23日に更新したプログラムだったとの事です。そのプログラムに設計ミスがあった為データの複数処理が行われた際にデータ処理が停止(デッドロック)してしまったようです。プログラムを制作した会社はプログラムの修正を行うとの事です。

  デッドロックとは複数のプログラムがデータの取り合いをして止まってしまう事です。
  例えば、AプログラムBプログラムXYというデータがあるとします。
作業開始でAプログラムBプログラムが動きだします。AプログラムXデータを取り出しBプログラムYデータを取り出し処理を行います。
   最初の処理を終え、次のステップでAプログラムYデータが欲しいのですが、BプログラムYデータを持っているのでBプログラムの処理が終わるまで待たなくてはいけません。一方、Bプログラムでも次のステップでXデータが欲しいのですがXデータAプログラムが持っているので次の処理をできません。
  こうなるとABお互いのプログラムがお互いの処理待ちとなってしまいシステムが止まってしまいます。これが、「デッドロック」という現象です。これであってる筈ですが…


  ソフト会社は大変ですね。
いくらの損害賠償を請求されるのでしょうか…(ーー;)

  私も今年ソフトウェア開発会社に就職し社会人デビューしましたがこんな事があると怖いですね。自分が設計したプログラムがまっちゃった!何て事があったら考えただけでも恐ろしすぎます…。
  システム開発はテストを行ってから納品するかと思うのですがどうだったのでしょうか?テストをしっかりしなかったのか、それとも何万回に一回起こるみたいな発見がとても難しいものだったのか?
  
  いずれにせよ、バグが発見できなかったのはソフトウェア会社の責任になってしまうのではないでしょうか?

  私もそんなことにならないように気をつけて頑張っていきたいと思います。


  おまけですが、よくパソコンやゲームがおかしくなった時に、「バグった!」と言いますよね。なんでプログラムのエラーの事をという意味のバグって呼ぶかご存知ですか?
  最初の頃のコンピュータはリレー真空管といったものを配線し組み合わせ動くものでした。そのリレーの間に本当が挟まって不具合が起こりその虫を取り除く事をデバグ(de-bug)と、ある人が作業日誌に書き不具合の修正の事をデバッグと呼び不具合の事をバグと呼ぶようになったと聞いた事があります。諸説あるでしょうが…