「宇宙から地上へのメッセージ」 −安全性・信頼性は宇宙で始まり、地上で活用されるー
長谷川 義幸:4月号
第 1 回
筆者は30年余り宇宙開発の人工衛星地上管制システムの開発や有人宇宙システム搭載ソフトウエアの開発を担当し数多くの不具合対策を行ってきました。その不具合原因は、開発技法の不備や技術的な未術さ等のほかに、計画段階での異常時対応を含めた要求仕様設定の甘さ、設計製造段階の設計書詳細化不足、仕様変更管理の仕組みの不出来、検証の網羅性不足等のプロジェクトマネージメントの拙さに問題がありました。開発を担当する会社は宇宙以外の分野も担当しており、宇宙のソフトウエア開発要求を正確に理解していないために生じた不具合でした。民生機器より高い信頼性が求められる宇宙のソフトプエア開発は、異常時をふくめた要求仕様の設定、設計文書の詳細記述等を設計審査によるチェック、変更管理等のコンフィギュレーション管理を組織の仕組みとして行うことにより品質をつくりこんでゆき、検査によって不良品を除くよりも、結果として効率良く開発できるシステムエンジニアリングの手法を用いています。宇宙での厳しい要求のなかで培われたマネージメントは、地上の様々な分野で活用できるものが多くあります。まず、ソフトウエア開発に焦点をあて、いかなる方法で高い信頼性を実現しているのかを説明してゆきます。
2. 宇宙開発のシステムエンジニアリング
米国は1950年代に国防省の弾道ミサイル開発計画などで大規模なコスト超過、スケジュール遅延や事故等が多発しました。この原因は、当時の開発がシステムのフィージビリティー・スタディーが終了しある程度の目処が得られると、ハードウエアを本格的に開発したためでした。 この改善策として、段階的プロジェクト計画(フェーズド・プロジェクト・プランニング)なる手法が取り入れられ、大型開発プロジェクトに適用されることになりました。この手法は、プロジェクトの各段階毎に種々の検討を終わらせ、結論を出した後は,次の段階に進み、前の段階までには後戻りしない業務遂行システムです。NASAのアポロ計画に取り入れられ世界的に有名になりましたが、現在でもスペースシャトルでも宇宙ステーションでもその改善させた手法を活用しています。。 プロジェクトのフェーズを大きく3つにくくると、構想計画、システム構築、システム運用となります。
「構想計画フェーズ」は、プロジェクトの目標設定から種々の概念を検討整理し明確なプロジェクト構想を確定します。つまり、要求仕様書、リソース計画、管理計画等を確立する計画設定フェーズのことです。
「システム構築フェーズ」は、製造,テスト、運用計画を含む詳細設計を行いプロジェクトの設計仕様を策定します。そして、プロトタイプ開発に引き続き製造,検査までを含む設計・開発フェーズのことです。
「システム運用フェーズ」は、運用とその評価を行いプロジェクトの完成までのフェーズです。
宇宙開発のソフトウエア開発手法も基本的に、この段階的プロジェクト計画の手法で、代表的なものは、図に示したウォータフォール開発モデルと呼ばれるものです。 7つのボックスがありますが、基本的なフェーズは3つで、システム企画とシステム分析の「構想計画フェーズ」、設計、プログラミング、テストと運用テストの「システム構築フェーズ」、運用と保守の「システム運用フェーズ」になります。
要求仕様が明確に定義されていることを前提として、各工程を順次厳密に遂行してゆきます。つまり、逆流のないように開発することを原則とします。しかし、変更が発生したら手戻りが大きいので上流工程でいかに品質をつくりこむかがポイントです。以下に設計開発で重要な「構想計画フェーズ」のポイントを説明します。
3. 構想計画フェーズ
「構想計画」の難しいところは、現在の状況を正確に認識して、製品が使われるシステム運用をよく想定し理解することにあります。システム運用には、安全上、問題となる異常事態が想定されることもあります。そのリスクを洗いだし、その対処策をシステム要求仕様に取りこむことです。将来の有るべき姿を洞察するには、システムが運用される状況が読めなくてはなりません。曖昧なシステム要求を可視化して、要求仕様を第3者がレビューできる文書に仕上げます。 この作業にはシステム全体を掌握して運用を想定する創造力が要ります。 宇宙開発では、「構想計画フェーズ」に運用を担当する部門、システムを利用する部門、安全・品質管理部門等に参加してもらいます。それは、製作段階に変更が要求が多くでると時間とコストが余計にかかるのを防ぐためです。そして、要求を正確に定義するようにシステム要求審査、システム設計審査、ソフトウエア仕様審査等をイベントとして定義します。その審査会を目標に、電子メイルによる各方面からの情報や意見、仕様の問題点や変更提案等を提示してもらい、関係者に集まってもらい議論し設計に反映してゆきます。これらを集約した設計審査資料を基に設計審査会を開きます。この目的は、運用を想定して異常時にも対応できるのか、設計仕様の抜けがないかを全体としてチェックするためのものです。そして、審査会が終了すると、詳細仕様の設計に移行してゆきます。宇宙は、地上と異なり、自動車も列車も異常時には機能を停止させて止まっていれば安全となりますが、宇宙は重力との戦いで過剰な安全装置を搭載したものを打ち上げることができません。また、打上げ後には、問題が起きても直すことができないので、リスクを徹底的に洗いだし、リスク発生時にも対処できるように、その運用要件を異常時対処策とともに要求仕様に盛り込むようにしています。 なお、宇宙開発のリスク洗いだしのやり方は次回以降で説明します。
宇宙ステーション一口メモ 地上では重力があるため、自然に吐く息は重いので下に行き、酸素を含んだ空気が口の周りにあります。ところが、宇宙船の中は無重力ですので、宇宙飛行士が吐く息は鼻や口の周りに留まります。息の中には炭酸ガスがあるので空気が口の周りにきません。そのままでは窒息してしまいます。 このため、宇宙船では、強制的に空気を常時循環させています。
|