SEA関西プロセス分科会「JAXAにおけるソフトウェアの品質向上と安全保障」に参加した

先日(2014/06/06)は、SEA関西プロセス分科会に参加してきた。今回は、JAXA(宇宙航空研究開発機構) 情報・計算工学センター宮本祐子氏による講演だった。

このような状況の中、ソフトウェアの品質を確保するために、私たちは、米国航空宇宙局(NASA)や欧州宇宙機関ESA)と共に、ソフトウエア独立検証及び有効性確認(IV&V)によるソフトウエア製品の品質保証、安全性確保を実施しています。またプロセス面ではISOの準拠したプロセスアセスメントを導入するなど、プロセス保証活動にも力を入れています。
 講演では、私たちが取り組んでいるIV&Vやプロセスアセスメントなど、ソフトウェア品質向上のための活動やそこでの課題、宇宙システムにおける安全を確保するための設計、安全性保証活動のアプローチの紹介します。

6月6日 第58回 SEA関西プロセス分科会

そもそも人工衛星のシステムはどのような構成になっているのかという点から話は始まり(衛星本体だけではなく、もちろん地上の管制側も必要なのだ)、品質確保のための取り組み事例が紹介された。以下、講演メモより抜粋。

  • ロケット(輸送機)の稼働時間はわずかに1時間程度。アセンブラC言語で開発している。
  • 宇宙ステーションが出来て既に10年。開発には5年かかるので、現在稼働しているのは15年前に作ったシステム。
  • 電力供給が少ないため消費電力の大きい高性能CPUは搭載できず、結果的にソフトは小さく作らなければならない。
  • 品質保証のために、モデル検査やSpecTRM等の技術を導入している。
  • 宇宙開発は新規参入が少ないためルールが形骸化しがち。だからこそプロセス改善のアセスメントが必要になる。
  • 技術的成果はIV&Vガイドブックとしてまとめ、世の中に還元している。また技術セミナも行っている。
  • イプシロンロケット打ち上げの不具合は、現場で初めて全システムが稼働して分かった(ので仕方ない面は有る)。

量産が効かず一発もののシステムながら、テストは完全に行えず、しかし要求される信頼性は非常に厳しいという、かなり特殊な開発事情なので、興味津々で話を聞くことが出来た。作る側はきっと大変だろうと思うけど、銀の弾丸無き現場では開発者の地道な努力が日々続けられているわけで、開発者の苦労が忍ばれるような話が続いた。

システムの安全性という言葉を気軽に使いがちだけど、宇宙空間では電圧が安定しない状態や宇宙線によるビット反転が起こることもあり、そのようなリスクまで考慮したシステム構成になっているという点に及んでは素人の想像力を超える世界だと思う。一つ一つのハザードを識別して、制御、除去していくプロセスはきっと気の遠くなるような作業の連続なのだろう。品質保証は「技術的独立、管理的独立、経済的独立」を兼ね備えた組織が行うそうで、生半可な気持ちでは出来ない類の業務だと感じた。

「バグが有れば直ぐに修正して、1日に何回でもデプロイしてしまう」というアジャイル至上主義者が聞いたら卒倒しそうな超保守的なシステム開発とは言え、品質保証やプロセス保証の考え方は、普通の開発組織でも充分に参考になりそうだ。結局のところ最終的に良い品質のものが出来れば良いのだけど、残念なことに、いい加減なプロセスを持つ組織から、高品質の成果物が生み出されることはあり得ない。優れた品質のシステムは、優れた開発プロセスを持つ組織からしか生み出すことが出来ないのだと思う。開発プロセスのあり方や、そのアセスメント方法について考えさせられるセミナだった。