概況
- 独立調査委員会は正確な技術的因果関係を確立した。水平バイアスに関連する64ビット浮動小数点値が、アリアン4から継承されたアライメント関数内で16ビット符号付き整数の範囲を超えた。保護されていない変換によりオペランドエラーが発生した。指定された応答により各慣性基準プロセッサが停止し、2つの同一ユニットが約1データサイクル差で故障した。
- 変換は引き金となった事象であり、十分な組織的根本原因ではない。アリアン5は離昇後にアライメント関数を必要としなかった。アリアン4のタイミング要件は共通性のために残された。アリアン5の軌道データは慣性システムの仕様から除外されていた。代表的なクローズドループテストでは、実際のユニットや詳細モデルの代わりにシミュレートされた慣性出力が使用された。
- 管理は分散していたが特定可能であった。ESA はプログラムを所有し、アリアン5開発管理を CNES に委任した。CNES、産業アーキテクト、慣性システム供給者、およびその他の契約パートナーは、異なる仕様、設計決定、レビュー、テストを管理した。委員会は、一部の変換を保護しない決定が複数の契約レベルで共同で行われたため、記録は責任を名前のないプログラマーに帰することはできないと述べた。
- 冗長性は独立性を提供しなかった。2つの慣性システムは同一のハードウェアとソフトウェアを持ち、同じ決定論的条件に遭遇した。したがって、バックアップはアクティブユニットの故障を吸収するのではなく再現した。後続のコマンド障害も、故障したユニットの診断ワードが飛行データとして解釈されることを可能にするインターフェースに依存していた。
- 直接的な影響は確認されている。メインエンジン点火シーケンス開始から約40秒後にロケットと4基の Cluster 宇宙機が破壊された。ESA は後にアリアン5認定完了までの財務影響を2億8800万 ECU と推定し、別途 Cluster II 復旧ミッションは2億1400万 ECU の枠内で承認された。これらのプログラム数値は単一の損害総額と互換性はない。
- 修復の証拠は十分だが限界がある。ESA と CNES は14の勧告すべてを受け入れ、40以上の詳細なアクションを作成し、SRI 例外動作を変更し、実機と軌道注入を用いたシステムレベルテストを拡大し、組み込みソフトウェアを個別に構成管理し、ソフトウェアアーキテクトの役割を確立し、外部レビューを利用した。フライト503は1998年に認定を成功裏に完了し、正式認定は1999年に行われた。公開記録は、すべてのテスト結果、供給者決定ファイル、または改革がどの程度一貫して定着したかを証明するための長期監査を公開していない。
オーバーフローは引き金であり、完全な説明ではない
Flight 501は、その即時的な欠陥が簡単に説明できるため、ソフトウェア工学で最も繰り返される戒めの話の1つとなった。プログラムが宛先型には大きすぎる値を変換しようとし、例外が発生し、ロケットが失われた。この説明はその範囲では正確である。しかし、1つの変換がロケットを破壊する能力を持つに至った多くの決定を取り除いてしまう。
独立委員会の公式報告書(1996年7月19日付)は、この事象を謎のソフトウェアクラッシュとしては扱わなかった。空力崩壊からノズルコマンド、無効な慣性データ、プロセッサ停止、保護されていない変換、継承されたアライメント関数、アリアン5の軌道、そしてこれらの要素を結びつけることに失敗したテストと仕様に至る因果連鎖を辿った。委員会はその作業の限界も述べている。別の技術報告書は配布が制限されていた。公開委員会はすべてのテレメトリの完全な評価やすべてのロケットシステムの完全なレビューを実施していなかった。その結論はその範囲内で権威を持つが、すべての工学的および契約的事実の公開アーカイブではない。
その境界は説明責任にとって重要である。公開証拠は技術的シーケンスといくつかの組織的制御の失敗を確立するには十分である。しかし、私的な動機を帰属させたり、契約上の損害を決定したり、すべての内部承認を再構築したり、個人を唯一の原因として指名したりするには十分ではない。委員会自身の言葉は、その単純化から注意をそらす。関連する設計選択はプロジェクトパートナー間および契約レベルで共有されており、レビューと認定にはプログラムの主要参加者が関与していた。
したがって、有用な疑問は、変換命令を入力したのが誰かではない。それは、その関数がまだ存在すべきかどうか、どの数値ドメインを許容しなければならなかったか、例外が何をすべきか、両方の冗長チャネルが同一に失敗する可能性があるか、失敗したチャネルがバスにどのデータを配置できるか、実際の機器がエンドツーエンドテストに入ったか、そして認定委員会が飛行前にどの証拠を要求したかを誰が制御していたかである。各質問には異なる所有者がいる。それらが一緒になって、局所的に理解可能な命令がなぜミッションレベルの失敗になったかを説明する。
公開調査が実際に確認したこと
時系列は正常に始まった。ESA の最初の公式情報リリースは、1996年6月4日、クールー現地時間09:33:59(UTC 12:33:59)にメインエンジン点火が記録されたとしている。固体ブースターは7.5秒後に点火され、ロケットは離昇した。誘導と軌道は H0+37 秒まで正常であった。テレメトリはその後、両方の固体ブースターノズルが限界まで動いていることを示し、機体は急激に傾き、空力荷重の下で分解し、構造的完全性が失われた後に機上の無力化システムによって破壊された。
初期の推進性能は正常であった。この初期の事実は、調査が目に見える崩壊や爆発を原因と断定するのを防いだ。調査の方向は電気システムとソフトウェアシステムに向かった。その後 ESA と CNES は独立委員会に原因を特定し、認定および受入試験が適切であったかどうかを調査し、是正措置を推奨する権限を与えた。6月10日の付託事項は産業チーム、文書、ハードウェアへのアクセスも約束した。この権限は範囲の重要な証拠であり、試験の適切性は後日のコメンテーターによる追加ではなく、調査に割り当てられた明示的な質問であった。
物理的回収は証拠のギャップを埋めるのに役立った。機体機器ベイの大部分が回収され、ESA の6月14日のアップデートは、アリアン5動作モードにおける慣性プラットフォームに関する誤動作を報告した。両方の慣性基準システム(SRI)は最終的に回収された。最後に故障したユニットのメモリは、テレメトリでは完全には利用できない情報を提供した。なぜなら、詳細な故障送信は最初に故障したユニットに割り当てられていたからである。調査員はこれらのメモリ内容をソースコード、テレメトリ、レーダー、光学観測、および飛行後シミュレーションと比較した。
委員会は、バックアップ SRI が約 H0+36.7 秒で動作不能になったことを発見した。約0.05秒後、アクティブ SRI も同じ理由で故障した。より詳細なシーケンスでは、ユニットは1つの72ミリ秒データサイクルで分離されていた。アクティブユニットは診断ビットパターンを送信した。機上コンピュータはそのパターンを飛行データとして解釈し、発生していなかった姿勢偏差に対して大きなノズルコマンドを生成した。H0+39 秒頃、20度以上の迎え角により、ブースターがメインステージから分離され、無力化が作動した。
報告書はこの連鎖を異常なほどよく裏付けた。調査員はシミュレーションで内部 SRI イベントを再現し、回収されたメモリから故障コンテキストを読み取り、コードがシナリオと一致することを発見した。実際の Flight 501軌道を用いた飛行後シミュレーションはシーケンスを再現した。ESA の公開された委員会報告書の発表は、結論を慣性基準ソフトウェアの仕様および設計エラーと、SRI および完全な飛行制御システムの不十分な分析とテストの組み合わせと要約した。
いくつかの観測された異常は除外された。天候は許容範囲内であった。推進力は仕様内であった。メインエンジンノズルアクチュエータの圧力変動は調査するのに十分重要であったが、故障とは無関係と判断された。破壊システムはロケットがすでに分解した後に作動し、損失の原因ではなかった。これらの否定的な発見は、規律ある再構築の一部である。それらは、すべての異常を誤った多原因の物語に蓄積するのを防ぐ。
40秒間にいくつかの異なる故障が含まれていた
最初に関連するソフトウェア関数はアライメントであった。SRI はレーザージャイロと加速度計を使用し、自身のコンピュータで角度と速度を計算した。そのアライメントソフトウェアは、機体が既知の固定位置にある打ち上げ前に意味があった。継承されたアリアン4の要件により、SRI 飛行モード開始後50秒間アライメント処理を継続することが許されていたため、遅いカウントダウンホールドでも長いアライメントを繰り返さずに回復できた。アリアン5は H0 の3秒前に SRI 飛行モードに入った。したがって、アリアン5には運用上の必要性がなかったにもかかわらず、関数は離昇後約40秒間継続した。
2番目の故障はドメインの仮定であった。アライメントプロセス内で、BH(水平バイアス)と呼ばれる内部値は水平速度に関連し、アライメント精度を示した。アリアン5は該当期間中、アリアン4よりもはるかに速く水平速度を構築した。委員会はその構築を5倍速いと説明した。継承されたアリアン4のマージン内に留まった値は、古いアライメントコードがまだ実行されている間に、新しい機体の想定範囲を超えた。
3番目の故障は保護されていない変換であった。ソフトウェアは64ビット浮動小数点の BH 値を16ビット符号付き整数に変換した。同様の変換はオペランドエラーの潜在的な原因として特定されていた。7つの変数がリスクがあると見なされ、4つは保護され、3つは保護されなかった。報告書は、3つを保護しないままにしたソースコードの正当性を見つけられなかったが、その根拠はより大きなドキュメントセットに存在していた。それらの値は物理的に制限されているか、大きな安全マージンがあるという信念があった。その推論はアリアン5の軌道における BH にとって誤りであった。
プロセッサのワークロードは保護の決定に影響を与えた。委員会は、SRI コンピュータに最大80%のワークロード目標があったため、すべての変換が保護されたわけではないと聞かされた。その事実は、リソース制限が失敗を不可避にしたことを立証するものではない。それは、計算、例外保護、想定物理的限界の間でトレードオフが行われたことを示している。説明責任はそのトレードオフに使用された証拠に付随する。変換がある限界を決して超えないと信じて露出されたままの場合、その限界とそれを支えるミッション条件は明示的で、レビュー可能で、テストされていなければならない。
4番目の故障は例外ポリシーであった。オペランドエラーはそれ自体でミッションを破壊する必要はなかった。SRI 仕様は、検出された例外をデータバスで通知し、コンテキストをメモリに保存し、プロセッサを停止することを要求した。姿勢を容易に再構築できなかったため、再起動は非現実的であった。委員会はこのポリシーを、ランダムハードウェア障害に焦点を当てたアーキテクチャに帰した。1つの物理ユニットが故障すると、複製が引き継ぐことができる。決定論的ソフトウェア設計エラーは、複製が同じ条件に遭遇する可能性があるため、その仮定に違反する。
5番目の故障はコモンモード冗長性であった。2つの SRI は同一のハードウェアとソフトウェアで並行して動作した。1つはアクティブで、もう1つはホットスタンバイであった。この構成はいくつかの独立したハードウェア障害から保護したが、設計の多様性を生み出さなかった。両方のユニットは同じ飛行ドメインから同じ機能を計算し、同じソフトウェア条件から停止した。バックアップが最初に故障し、残りの回復経路を不可視に削除した直後にアクティブチャネルが故障した。
6番目の故障はインターフェースセマンティクスであった。故障したアクティブ SRI は、機上コンピュータが姿勢データとして扱う形式で診断情報をバスに送信した。強力な障害境界は、有効なナビゲーション値、古いベストエフォート値、明示的な無効性、診断ペイロードを区別し、1つが別のものとして受け入れられないようにする。Flight 501は代わりに、プロセッサの故障を誤ったコマンドに変えた。したがって、崩壊にはオーバーフロー以上のものが必要であった。両方のチャネルの停止と、制御経路での非飛行データの受け入れが必要であった。
これらの区別は運用上重要である。引き金は範囲外の変換であった。即時の故障モードはプロセッサ停止であった。冗長性の故障は両方の SRI による同一の応答であった。伝播メカニズムは診断データが誘導として解釈されたことである。物理的損失は極端なノズル偏向と空力荷重に続いた。組織的根本原因は、再利用された要件、開示されていない限界、ソフトウェアの可視性、非代表的な認定の上流にあった。これらすべてをオーバーフローと呼ぶことは、連鎖を中断できた制御を隠蔽する。
継承された運用実績が新しいドメインの証拠と誤認された
ソフトウェアの再利用は本質的に無謀ではなかった。アリアン4の SRI ソフトウェアには運用実績があり、安定したコードを変更すると新しい欠陥が導入される可能性がある。委員会は共通性の根拠を、アリアン4でうまく機能したソフトウェアは必要がない限り変更すべきではないという推定として記録した。それは合理的な出発点であるが、異なるロケットの認定証拠ではない。
再利用の関連単位は単なるソースコードではなかった。タイミング要件、数値範囲、プロセッサ負荷の仮定、例外ポリシー、バス動作、冗長性ロジック、テスト代替、正当化文書が含まれていた。アリアン5は、異なる準備シーケンスと初期軌道を持つ機体からの設計決定のパッケージを継承した。アライメント関数の継続的な実行はアリアン4には有用であり、アリアン5には不要であった。その数値的安全性の議論は、もはや適用されない軌道ドメイン内でのみ有効であった。
そのため、成功した履歴が誤解を招くことがある。コンポーネントはその仮定を保存する正確な条件下では欠陥がない可能性がある。再利用は周囲のシステムを変更する。入力、レート、タイミング、インターフェース、リソース、故障結果、回復オプション。アリアン4が BH の変換範囲を超えたことがないという事実は、アリアン4との互換性を示したが、ソフトウェアの普遍的な特性ではない。
委員会は、アリアン5の軌道データが SRI の要件と仕様から共同で除外されたことを発見した。また、実装制限がシステム仕様で宣言されていなかったことも発見した。これらは関連した失敗である。新しい入力ドメインを記述する要件がなければ、供給者はそれに対してユニットを認定するよう義務付けられなかった。古いドメインを記述する宣言された制限がなければ、システムレビュー担当者は挑戦すべき可視的な非互換性を持たなかった。したがって、契約は満たされているように見える一方で、ミッション適合性は証明されないままであった。
後の European 標準化記録は、後の文書が1996年を支配したと装うことなく、この点を明確にしている。ECSS の既存ソフトウェア再利用のハンドブックは現在、選択、認定完了、ツール認定、再利用リスク管理を、打ち上げ、宇宙、地上システムの専用活動として扱っている。現在のソフトウェア製品保証標準は、ロケット、宇宙機、ペイロード、および関連施設にわたる開発と保守に保証要件を適用している。これらの出版物は後のベンチマークであり、Flight 501が直接すべての条項を生み出した証拠ではない。それらは、成熟した制御フレームワークが明示しなければならないことを示している。再利用は、特定のアプリケーションによって境界付けられた新しい保証主張である。
NASA も同様の教訓を自らの機関資料に取り入れた。数値変換に関する NASA Lessons Learned エントリ(Lesson 10701)は、Flight 501を使用して、オーバーフローがデュアルストリングシステムの両方のストリングを無効にする可能性があることを警告している。別の再利用ナビゲーションファームウェアに関する教訓(Lesson 1370)は、あるアプリケーションで許容できるモジュールが別のアプリケーションでは許容できない可能性があることを強調している。これらは調査から構築された二次的な機関の教訓であり、アリアンの決定を行った人物に関する新しい証拠ではない。それらの価値は、事故を民話として保存するのではなく、再利用可能な制御に変換することである。
テストは広範囲だったが、決定的なテスト境界は間違っていた
アリアン5プログラムはテストを省略しなかった。委員会は機器認定、機上コンピュータソフトウェア認定、ステージ統合、システム検証について説明した。また、強力な工学的文書化と広範なレビューにも言及した。ロケットが単にテストされていなかったという主張は不正確で役に立たない。失敗は、テストアーキテクチャが各レベルですでに証明されていると仮定したことから来た。
機器レベルでは、SRI は環境条件に対して厳密にテストされ、いくつかの点でアリアン5の期待を超えていた。アリアン5のカウントダウン、飛行タイミング、軌道に対してテストされていなかった。委員会は、地上試験が、ターンテーブルが角運動を表す間に、予測された飛行パラメータから導出された加速度計信号を注入することができたと述べた。その機器または受入試験が実施されていれば、故障メカニズムが露呈していただろう。
システムレベルでは、Functional Simulation Facility が多くのクローズドループシミュレーションを実行した。地上セグメント、テレメトリ、ロケット動力学、公称および劣化軌道、機器故障、隔離、回復をモデル化した。多くの実機が存在した。2つの SRI は存在しなかった。ソフトウェアモジュールがその出力をシミュレートした。実際の SRI を使用したテストは、電気的統合と低レベルバス準拠をチェックしたが、新しい軌道下での完全な動作はチェックしなかった。
その代替は循環保証問題を生み出した。シミュレータは機能する SRI から期待される出力を表したため、故障する可能性のある継承された内部アライメントコードを実行しなかった。機器テストがユニットをカバーしたと仮定され、一方システムテストはユニットが認定されていると仮定されたためユニットを代替した。どちらのレベルも、実際の SRI 実装と実際のアリアン5飛行ドメインの間の相互作用を行使しなかった。委員会は、ほぼ全体の SRI をシステムシミュレーションに含めることが技術的に可能であり、故障を検出しただろうと述べた。
これは、すべての物理コンポーネントをすべてのテストに入れる要求ではなかった。委員会は実用的な限界を認識していた。制御は重複である。コンポーネントがあるレベルでシミュレートされる場合、レビュー担当者は、以前のレベルが省略された動作をカバーしていること、およびシミュレータが上位レベルのテストに関連するすべての特性を保存していることを検証しなければならない。シミュレーションは、もっともらしい公称データを生成するから代表的なのではない。その省略が調査中の故障モードを隠せない場合にのみ代表的である。
NASA の後の誘導、航法、制御のベストプラクティス作業は、教訓を関連するホストプラットフォーム上の公称、故障、劣化コンポーネントを用いたミッションプロファイルの全範囲にわたるテストとして述べている。別の NASA Engineering and Safety Center の実際の事故の評価は、Flight 501を継承分析、コモンモード冗長性、エンドツーエンドテスト、軌道データベース、故障封じ込めにマッピングしている。繰り返すが、これらの情報源は信頼できる後のベンチマークを提供するが、アリアンの機密ファイルへの独立したアクセスではない。
検出にはタイミングの側面もあった。飛行後シミュレーションは実際の軌道入力で故障を再現した。したがって、メカニズムはモデル化能力を超えていなかった。決定的なデータと実装は飛行前に組み合わされていなかった。有用な説明責任記録は、各当事者がいつ軌道、SRI コードまたはモデル、タイミング要件、範囲仮定、および統合実行を要求する権限を所有していたかを尋ねるだろう。公開報告書は機会が存在したことを立証する。完全な文書ルーティングの時系列を公開して、統合義務が最初にどこで執行されるべきだったかを正確に示してはいない。
実質的な管理権限を持っていた者
ESA はプログラムの所有者であった。その同時期のリリースは、アリアン5開発の管理を CNES に委任したと述べている。ESA はまた、加盟国構造を通じてより広範なプログラムを選択し資金提供し、CNES と共に調査委員会を任命し、回復計画を受け入れ、認定飛行に対する責任を保持した。これにより ESA は、プログラム要件、ガバナンス、リソース、認定期待、および委任された機関によって提示された証拠が飛行に十分かどうかに対して管理権限を持っていた。
CNES は委任された開発管理と中心的な技術的役割を保持した。仕様と認定に参加し、トゥールーズでテレメトリを受信処理し、ESA と共に調査に参加し、後に産業アーキテクトと共にソフトウェア定義と認定計画を承認した。委任は ESA を無関係にせず、ESA の所有権は CNES を単なる観察者にしなかった。説明責任は実際のプログラムおよび工学的権限の分割に従った。
産業アーキテクトは、複数の企業から供給された機器にわたるシステムの一貫性を管理した。Flight 501以前、組み込みソフトウェアはハードウェア機器の一部として扱われ、個別に可視の構成アイテムとしては扱われなかった。事故後の記録は、その詳細設計とロケット内の他のソフトウェアへの影響がプログラムレベルで十分に知られていなかったと述べている。その可視性のギャップは、アーキテクトの能力、またはそれに要求される証拠を制約し、継承された機器関数をシステムハザードとして挑戦することを難しくした。
SRI 供給者は、変換処理やプロセッサ動作を含む、その仕様内の詳細実装を管理した。しかし、委員会は明示的に、供給者は検出された例外がプロセッサを停止するという要件に従ったと述べた。また、保護決定はプロジェクトパートナー間で複数の契約レベルで共同で行われ、軌道データは SRI 要件から共同で除外されたとも述べた。したがって、証拠は完全な故障をコンポーネント供給者または個人のソフトウェア開発者に転嫁することを支持しない。
認定およびレビュー機関は受入を管理した。それらの目的は設計決定を検証し、飛行認定を取得することであった。制限、範囲証拠、テストカバレッジ、統合デモンストレーションを要求できた。委員会は、レビューがアライメントソフトウェアの制限や飛行中継続動作の影響を完全に分析しなかったことを発見した。レビュープロセスは、分析が存在することを検証してもその内部の仮定に挑戦しなければ、手続き的に完全でありながら実質的に弱い可能性がある。
Arianespace の役割は異なっていた。アリアン打ち上げシステムの運用に責任を持ち、回復プレゼンテーションに参加したが、Flight 501は開発プログラムの下での ESA 認定飛行であった。ここで使用される公開証拠は、Arianespace が SRI 要件または実際の SRI 動作をシミュレーションから除外する決定を管理したことを示していない。後にロケットを運用したという理由だけで設計責任を割り当てることは、記録を超えるだろう。
Cluster 科学コミュニティと一般市民は、ロケットソフトウェアを管理することなく結果を被った。ESA 自身のCluster が Flight 501に割り当てられた理由のレビューは、スケジュールと財政的に魅力的な打ち上げ機会が選択を促進したと述べている。諮問機関と主任研究者は異議を唱えず、決定は当時合理的と考えられた。その記録は、ペイロードコミュニティが開示されていないソフトウェアリスクを受け入れたことを証明しない。それは、初飛行リスクが一般的なレベルで意識的に可視であった一方で、特定の認定欠陥は可視でなかったことを示している。
したがって、管理は分散していたが、溶解してはいなかった。ESA はプログラム保証と認定を定義できた。CNES は開発を管理し技術的証拠を要求できた。産業アーキテクトは制限と機器間動作を統合できた。供給者は実装限界を公開しユニットをテストできた。レビュー委員会は認定を保留できた。各層は防止または検出の機会を持っていた。単一の管理者の不在は、説明責任のある管理の不在ではない。
影響はプログラムの損失、科学の遅延、新しい資金決定であった
ロケットと4基の Cluster 宇宙機すべてが破壊された。ミッションは、4基の宇宙機からの同時測定を使用して太陽風と地球磁気圏の相互作用を研究するように設計されていた。1機の生存衛星は意図された3次元編隊科学を提供できなかった。ESA の現在のCluster ミッション履歴は、1機の代替機が予備部品から組み立てられ、さらに3機の宇宙機とその機器が製造され、2000年に2機のソユーズロケットと新しいフレガート上段がペアを運んだと記録している。
この損失は、国際的な産業および科学ネットワークによる何年もの作業を表していた。元の宇宙機と代替機には、35の主要請負業者を率いるプライム請負業者が関与し、各宇宙機に11の機器、ESA 加盟国や他の国々にわたる科学コミュニティが含まれていた。結果は破壊されたハードウェアの市場価値だけではなかった。チームは専門知識を維持し、利用できないコンポーネントを再現し、運用を変更し、代替ユニットを再認定し、意図された観測能力のために4年待たなければならなかった。
ESA のCluster の復活に関する説明は、故障後に検討された選択肢を記録している。予備部品からの1機の Phoenix 宇宙機、新しい本格的な宇宙機、より小さな国の宇宙機、代替打ち上げ手配。科学プログラム委員会は、2億1400万 ECU の枠内で4機の Cluster II オプションを承認した。これは確認されたプログラム決定であり、元の衛星の評価や民事損害賠償ではない。
アリアン5の復旧には独自の財務尺度があった。ESA と CNES は1996年9月に、認定終了までの影響を2億8800万 ECU と推定した。認定回復計画は、アリアンプログラム資金の再配分、開発資金の追加、産業貢献の取得、Flight 503商用ペイロードからの収入の使用を提案した。この数字は、2億1400万 ECU の Cluster II 枠に機械的に追加され、完全な損失として説明されるべきではない。範囲が異なり、公開記録はすべての予算項目が増分であったか、移転されたか、または推定通りに最終的に支出されたかを立証していない。
回復自体にも制約があった。ESA のCluster II 運用コンセプトに関する工学資料は、新しいミッションが当初のコストの半分未満に抑えられたと述べている。ハードウェアの陳腐化が変更を強制し、地上インフラが進化し、経験豊富なスタッフが移動し、各飛行モデルでのテスト時間が短縮された。ミッションは科学的リターンを維持したが、別の管理された再利用と再認定の問題を通じてそうした。この記録は、技術的失敗のより広範な経済的結果を示している。修復プログラムは、修正しようとしている事象からスケジュールと予算の圧力を継承する。
ここで使用される公開記録は、Flight 501による死傷者を特定しておらず、崩壊は管理された打ち上げエリア内で発生した。ESA の飛行後工学説明は、環境モニタリングと破片回収を記述しており、パッド近くの測定されたフォールアウトゾーンと、打ち上げエリア外での検出された地上レベルのガス状汚染がないことを含む。これらの事実は損失を軽微にするものではない。それらは人的および環境的主張を正しく制限しながら、確認された財務的、科学的、プログラム的結果を可視に保つ。
是正計画はコードと権限の両方を変更した
委員会は14の勧告を行った。最初の層は直接的な連鎖に対処した。離昇直後にアライメントを停止する。不要なソフトウェアを飛行中に実行させない。センサーがすべての有用な出力を停止するのを防ぐ。例外を可能な限り封じ込める。重要なコンポーネントを定義する際にソフトウェア起源のコモンモード故障を再考する。これらの変更は、単に整数を広げるのではなく、関数の寿命、例外封じ込め、劣化動作を対象としていた。
2番目の層は証拠に対処した。委員会は、技術的に可能な限り多くの実機と、現実的な入力と各ミッション前の完全なクローズドループテストを備えた施設を求めた。仕様およびテスト要件への軌道データの組み込み、既存機器カバレッジのレビュー、明示的な運用制限、内部および通信値の範囲検証、コードと正当化文書への同等の注意を要求した。これにより、仮定が背景知識から認定成果物に変換された。
3番目の層はガバナンスに対処した。重要なソフトウェアは個別に構成管理されるアイテムとなる。ソフトウェアを含む機器は、産業アーキテクトが参加し完全なシステムテストを報告する特定の認定レビューを受ける。外部参加者が仕様、コード、正当化をレビューし、組織はより明確な権限、責任、インターフェースを持つ。
ESA の詳細なFlight 501から502への工学説明は、すべての勧告が40以上のアクションの計画になったと報告している。SRI の変更には、飛行中アライメントの抑制、プロセッサ停止の回避、プロセッサが停止した場合の最後の有効状態での値の固定、例外処理の改善、飛行中に使用されない機能の削除が含まれる。Functional Simulation Facility は、実際の SRI プロセッサ、ターンテーブル上のジャイロメトリックプラットフォーム、上段および姿勢制御モックアップ、メインステージ電気アクチュエータのインターフェースを獲得した。
ガバナンスも並行して変更された。産業アーキテクトが正式にソフトウェアアーキテクトの役割を引き受けた。組み込みプログラムは管理された構成アイテムとなった。アーキテクトと CNES は仕様と認定計画を承認し、外部ソフトウェア専門家が主要レビューに参加し、電気およびソフトウェアシステムは統合認定計画、要件検証計画、システムテスト、正当化文書を受けた。これらは説明責任の修復である。なぜなら、システム横断的なソフトウェア動作を誰が見て承認し証明しなければならないかを指定するからである。
公開発表は、スケジュールが固定されるのではなく証拠に応答したことを示している。1997年3月のFlight 502キャンペーンアップデートは、キャンペーンを追加された電気、ソフトウェア、劣化モード作業に結びつけた。その後、最終的な Flight 502準備は、飛行プログラム認定を完了し、シミュレーションで特定された制御ループ振動を解決するために部分的に遅延された。遅延だけが品質の証明ではないが、未解決の分析が打ち上げ日を動かすことができるという観察可能な証拠である。
1997年10月30日の Flight 502は、単純なきれいな終点を提供しなかった。Flight 501のソフトウェア故障は回避したが、過剰なロールトルクと早期のメインステージ停止により、ペイロードは計画よりも低い軌道に置かれた。ESA の詳細な502データ分析は後に、全体的な性能は良好であり、主要な異常はエンジンテストを通じて説明されたと述べた。これは是正評価にとって重要である。SRI 故障の再発なしの1回の飛行は特定の修正を支持したが、別の異常はプログラム認定が単一の修正された経路に依存できない理由を示した。
1998年10月21日の Flight 503は、3回目の認定飛行を成功裏に完了した。ESA の同時期の結果は、代表的なペイロードの成功した投入を報告し、開発フェーズは終了したと述べた。ESA の1999年宇宙輸送年次報告書は、詳細な Flight 503分析の後、Launcher Qualification Board が1999年6月22日に正式に汎用アリアン5を認定し、続いて12月に最初の運用飛行が行われたと記録している。
そのシーケンスは、成功した打ち上げ直後に発行されたプレスリリースよりも強力である。文書化された設計変更、改訂された権限、拡張された施設、遅延したレビュー、その後の2回の認定飛行、後の正式な委員会決定を組み合わせている。それでも、すべてのテストベクトル、例外注入結果、独立したレビュー所見、構成監査を開示してはいない。防御可能な結論は、特定された故障メカニズムと保証プロセスが実質的に修復され、成功した認定を受けたことであり、すべてのソフトウェアリスクが恒久的に排除されたわけではない。
後の成功が証明することと、証明できないこと
その後のアリアン5の運用実績は、機体が Flight 501を乗り越えた証拠であるが、全体としての成功は各個別の是正制御を検証できない。後のミッションは進化するロケット構成、供給者、ソフトウェア、運用プロセスを使用した。同じ BH オーバーフローなしの長い記録は、直接的な欠陥が再発しなかったという結論を強く支持する。すべてのミッションドメインの仮定が常に文書化されたか、すべてのシミュレータが代表的であり続けたかは明らかにしない。
NASA のシステム工学リスク資料は、Flight 501を、アリアン4の機能と文書化されていない運用制限がアリアン5と調整されず、クローズドループシステムテストが実際の慣性ユニットを除外した SRI 再利用問題として独立に要約している。それは有用な裏付けと組織的記憶である。ESA の継続的なコンプライアンスの監査ではなく、構成固有の認定証拠の代わりでもない。
同様に、後の標準は、1996年に自動的に適用された法的義務として逆行して読まれるべきではない。ECSS 要件は数十年にわたって進化し、ESA には以前のソフトウェア工学標準があった。事故は現在の期待と比較できるが、公平な説明責任分析はまず当時利用可能な制御と知識を適用する。委員会の勧告は、現実的な注入、範囲分析、明示的な制限、独立レビュー、明確な権限が1996年に実行可能であったことを示している。批判は、最新のツールチェーンを過去にインポートする後知恵に依存していない。
修復証拠には出版の非対称性もある。機関は通常、計画、主要マイルストーン、成功した飛行を開示する。詳細な不利なテスト結果、権利放棄、供給者の不適合、内部監査所見はあまり可視ではない。Flight 501の公開調査は1つの故障について異常に正確であったが、より詳細な技術報告書は制限されたままであると述べた。その記録と後の認定資料がなければ、部外者はすべての保証主張を独立に再現できない。
したがって、最も信頼できる証拠階層は層状である。回収されたメモリ、コード検査、テレメトリ、再現シミュレーションが故障連鎖を確立する。委員会勧告とプログラム文書が意図された改革を確立する。施設変更と認定レビューが実施活動を確立する。Flight 502と503が2つの構成にわたる運用結果を確立する。正式認定が機関の受入を確立する。どれも単独で耐久性のあるガバナンスを証明しない。一緒になって、実質的だが不完全な記録を提供する。
反事実は最も早い制御可能な決定から始めなければならない
最も狭い反事実は、BH 変換を保護することである。範囲チェックまたは例外ハンドラがオペランドエラーによるプロセッサ停止を防ぐことができた。それは技術的に可能であり、委員会によって直接支持されている。また、それは弱い組織的教訓である。なぜなら、時代遅れの飛行中アライメント、開示されていない範囲仮定、同一の故障ロジック、曖昧な診断インターフェースをそのまま残すからである。
より強い反事実は、離昇後にアライメント関数を削除することである。委員会の最初の勧告はまさにそれをした。関数がアリアン5の飛行目的を果たさなかったため、それを無効にすることでトリガー計算が排除され、必要な誘導を変更せずに攻撃面が減少する。これは最も明確な防止管理である。なぜ関数が設計レビューを生き残ったかを理解する必要性を免除するものではない。
より早い反事実は、アリアン5の軌道データを SRI 仕様に入れ、供給者に実装制限を宣言させることである。BH の範囲とアリアン5の初期水平速度の間の非互換性は、機器-システムインターフェースで可視になる。委員会は、そのような宣言はミッションクリティカル機器に必須であるべきだと述べた。これにより、コード実行前にレビューが可能になり、たまたま限界を超えるテストを期待することに依存しない。
最も証拠に基づく検出反事実は、代表的なテストである。委員会は、予測された加速度計信号と角運動を SRI に注入することがメカニズムを露呈しただろうと述べた。また、ほぼ全体の SRI をシステムシミュレーション全体に含めることが実行可能であり、故障を検出しただろうとも述べた。これらは未知の工学に関する推測的な主張ではない。それらは、実際の軌道で事象を再現した後の調査による所見である。
故障封じ込めは別の反事実を提供する。例外が非必須のアライメントタスクに封じ込められ、航法が継続された場合、または SRI が明示的な健全状態を持つベストエフォートの有効姿勢を送信した場合、ミッションは制御可能なままだったかもしれない。委員会はタスクレベルの封じ込めと継続的なベストエフォートセンサー出力の両方を勧告した。公開証拠は、そのような設計がすべて Flight 501を救ったことを証明する完全な動力学分析を含んでいないため、結論は条件付きのままにすべきである。
設計多様性の冗長性もコモンモード停止を防いだかもしれないが、コストと複雑さを伴う。独立したコードまたは異なる境界を持つアルゴリズムは異なる方法で失敗し、新しい統合リスクを導入する可能性がある。支持される結論はより狭い。同一の冗長性は、発生した決定論的条件に対して保護せず、認定はソフトウェア起源のコモンモードを単一点リスクとして扱わなければならなかった。完全な設計多様性が釣り合いが取れていたかどうかは、公開報告書によって解決されていない。
最後の反事実はペイロード割り当てに関する。Cluster は別のロケットまたは後のアリアン5テストで飛行できたが、ESA の回顧的検討は、当時利用可能な情報の下で Flight 501の割り当ては合理的で財政的に魅力的だったと述べている。後の飛行は自動的に隠れた SRI 欠陥を露呈したわけではない。同じ未テストの関数が、ペイロードを搭載した最初のアリアン5で失敗した可能性がある。ペイロードの選択は誰が損失を負ったかを変えたが、根底にある認定の弱点は変わらなかった。
確認された事実、支持される推論、残る未知の事項
確認された事実には、打ち上げ日時とシーケンス、正常な初期飛行、ほぼ同時の SRI 故障、保護されていない64ビットから16ビットへの変換、継続されたアライメント関数、アリアン5の異なる初期軌道、プロセッサ停止、飛行データとして扱われた診断ワード、極端なノズルコマンド、崩壊と破壊が含まれる。委員会は、軌道固有の機器テストとシステムシミュレーションへの SRI の組み込みがメカニズムを検出できたことを確認した。2つのユニットが同一のハードウェアとソフトウェアを使用し、保護と要件の決定が契約レベルを横断したことを確認した。
確認された組織的事実には、ESA のプログラム所有権と CNES への委任、独立委員会の権限、すべての勧告の受入、ソフトウェアアーキテクトの役割、組み込みソフトウェアの個別構成管理、拡張施設、外部レビュー、後の認定シーケンスが含まれる。確認された影響事実には、4基の Cluster 宇宙機の破壊、アリアン認定結果の2億8800万 ECU 推定、2億1400万 ECU の Cluster II 枠、2000年の代替打ち上げの成功が含まれる。
支持される推論は、記録が制御を結びつけるが各私的決定を文書化しないところから始まる。共通性、スケジュール、ワークロード、アリアン4の実績への信頼は、おそらく再利用を再設計よりも低リスクに見せた。機器とシステムソフトウェアの可視性の断片化は、おそらく時代遅れのアライメント関数とその範囲限界を挑戦しにくくした。これらの推論は委員会の所見と後のガバナンス変更に適合するが、公開報告書は各インセンティブの相対的な重みを証明する議事録を提供していない。
また、より良いインターフェースタイピングまたは健全状態処理が診断情報を制御コマンドに変えるのを防ぐことができたという推論も支持される。故障連鎖は危険性を示し、勧告はより良い例外封じ込めとバス情報カタログ化を求めている。公開記録は、保証された代替実装を指定するのに十分なプロトコル詳細を公開していない。
未知の事項は依然として重要である。制限された技術報告書はここで使用される公開証拠の一部ではない。完全なソースコード、バージョン履歴、供給者契約、内部ハザード分析、レビュー議事録、テスト権利放棄、軌道データルーティング、個別承認記録は、完全な責任マトリックスを可能にする形で公開されていない。公開記録は、個人が BH について具体的に警告したかどうか、統合 SRI テストがコストまたはスケジュールの理由で拒否されたかどうか、または管理者が打ち上げ前の残存ソフトウェアリスクをどのように定量化したかを立証していない。
法的責任もこの記録からは不明である。調査委員会は技術的調査であり、裁判所ではない。ここでレビューされた情報源は、ESA、CNES、Arianespace、産業アーキテクト、供給者、ペイロード参加者の間の契約上または不法行為上の責任を配分する判決を含んでいない。技術的制御と制度的説明責任は、引用された記録で審理されたことのない法的結果を主張せずに分析できる。
完全な経済的損失は入手不可能である。プログラム枠は回復と認定資金を記述し、純社会的コストではない。一部のハードウェア、知識、予備部品は再利用された。科学的機会は永久的に消去されるのではなく遅延された。なぜなら Cluster II は最終的に長年にわたって成功裏に運用されたからである。1996年から2000年の間に失われた観測の反事実的価値は公開文書から価格設定できない。
最後に、長期の是正耐久性は部分的にしか観察可能ではない。後の飛行成功は強力な結果証拠であり、現在の標準は再利用保証を制度化している。公開情報源は、後のアリアンの変更がすべて同一のミッションドメイン分析を受けたかどうか、独立したソフトウェアレビューがどの程度の頻度で重大な欠陥を見つけたか、構成と供給者の移行がどのように監査されたかを開示していない。Flight 501メカニズムの再発がないことは、すべてのプロセスの完全な証明ではない。
継承されたミッションソフトウェアのための耐久性のある説明責任テスト
最初のテストはドメイン定義である。再利用が承認される前に、プログラムは新旧の運用ドメインを測定可能な用語で説明できるか。値範囲、レート、タイミング、飛行フェーズ、環境条件、プロセッサマージン、インターフェース、劣化状態。継承品や飛行実績などのラベルはドメイン比較ではない。
2番目のテストは仮定の所有権である。すべての安全関連の仮定は、所有者、正当化、有効期限、検証方法に結び付けられているか。コード、仕様、設計記録に埋め込まれた仮定は調整されているか。供給者の推論にのみ存在する限界は、システムインテグレータを保護できない。
3番目のテストは機能の必要性である。クリティカルフェーズ中に実行されるすべてのタスクは、現在のミッション要件に役立つか。使用されない継承関数は削除または無効化でき、削除自体は認定されているか。Flight 501は、休眠目的が休眠実行を意味しないことを示している。
4番目のテストは範囲と例外の整合性である。すべての変換、算術限界、通信値は、公称およびオフノミナルドメイン全体でテストされているか。例外は最も価値の高い安全なサービスを保存し、障害タスクを隔離し、曖昧でない健全状態を生成するか。必須でない計算が失敗したために健全なセンサーを停止することはフェイルセーフ動作ではない。
5番目のテストは冗長性の独立性である。どのハザードがチャネル間で真に独立しており、同一のコード、要件、データ、タイミング、ツールを通じて共通しているか。コモンモード条件が実行されるまで、バックアップカウントは信頼性の議論として扱われるべきではない。
6番目のテストはインターフェースの妥当性である。診断データ、古いデータ、無効データ、運用データは、単なる慣習ではなく構造的に区別できるか。消費者は不可能な状態遷移やドメイン外のコマンドを拒否するか。障害情報は、機体を制御するために使用される情報になりすますことができてはならない。
7番目のテストは代表的な重複である。実機がシステムテストから省略された場合、省略された動作をカバーする下位レベルの証拠は何か、シミュレータの忠実度を誰が承認するか。予測されたミッション軌道は実際のプロセッサまたは詳細な実行可能モデルに注入されるか。テストレベルはリスクの周りで重複しなければならず、コンポーネントとシステムの所有権の間にギャップを残してはならない。
8番目のテストは独立した挑戦である。レビュー担当者は範囲の議論、例外ポリシー、再利用の正当性の実質を検査するか、それとも文書の完了だけを検証するか。ソフトウェア保証または認定委員会は、ミッションドメインの証拠が不完全な場合に飛行を停止できるか。決定権限のない独立性は、制御することなくリスクを特定できる。
9番目のテストは構成のトレーサビリティである。組み込みソフトウェアは個別に管理され、ソース、コンパイラ、データ、仮定、テスト結果、正当化が飛行ビルドに結び付けられているか。調査員は各冗長ユニットが正確に何を実行したか、シミュレータが何を表したかを再構築できるか。ハードウェアのシリアル番号管理だけでは、ソフトウェアが障害動作を決定する場合に不十分である。
10番目のテストは修復の証明である。是正には、元の故障の再現テスト、隣接する例外および範囲条件のテスト、クローズドループ統合、劣化モード演習、独立レビューが含まれるか。その後の飛行は関連ドメインをテストし、非反復異常は無関係な成功ノイズとして却下されるのではなく調査されるか。
Flight 501が持続するのは、故障が説明するのに十分単純であり、単純な救済に抵抗するほどシステム的だったからである。ロケットは、値が大きすぎたためだけでも、ソフトウェアが再利用されたためだけでも、1つのユニットが停止したためだけでも失われなかった。継承された仮定が明示的なシステム義務にされることなくミッション境界を越えたため、同一の冗長性が同じ決定論的弱点を共有したため、認定は重要だった実装をシミュレートしてしまったため、そして組み込みソフトウェアの一貫性のための権限が分散しすぎていたために失われた。
修復は対応的により広範であり、パッチされた変換以上のものであった。関数の寿命、例外処理、試験装置、軌道注入、ソフトウェア構成管理、レビュー、アーキテクチャ、権限を変更した。これらの変更に続く再認定は、組織的学習の意味のある証拠である。残る説明責任の義務は、その証拠を各再利用決定時に保存することである。飛行履歴は信頼を支援できるが、古いソフトウェアの仮定が実際に飛行するシステムでまだ有効であることを示すことができるのは、ミッション固有の検証だけである。

