2.DO-178Cの概要
DO-178Cは、1992年に発行されたDO-178Bの改訂版として、2011年に発行された。DO-178B/Cは、ソフトウェア開発ライフサイクルを定義したガイドラインであるが、その特徴は、「目的指向のアプローチ」である。方法、手法、使用ツール等をガイドラインで規定すると、従来の開発プロセスと整合しない、装備品メーカーの組織規模や企業文化に合致しないなど、製品へ不具合を作りこむ要因になり、信頼性や安全性に影響を及ぼす。そのため、DO-178B/Cは、各プロセスで達成すべき目的とライフサイクルプロセスデータ(成果物)が、ソフトウェアレベルに応じて、定義されている。目的を達成する手段、手法、方法は、自由に定義することができる。それらの目的が、どのような根拠で達成できるかを認証機関によるSOI(Stage of Involvement)レビュー時に、説明する必要がある。一般的には、4段階でレビューが実施される。
下図は、DO-178Cで定義されている最上層に位置する3つのプロセスグループの相関を示している。
計画プロセス(Planning process)
プロジェクトにおけるソフトウェアライフサイクル活動を定義し、下記5種類のソフトウェア計画書と3種類のソフトウェア開発スタンダードを作成する。
[ソフトウェア計画書]
・PSAC(Plan for Software Aspects of Certification:認証機関に提出するプロジェクト計画書)
・SDP(Software Development Plan:ソフトウェア開発計画書)
・SVP(Software Verification Plan:ソフトウェア検証計画書)
・SCMP(Software Configuration Management Plan:ソフトウェア構成管理計画書)
・SQAP(Software Quality Assurance Plan:ソフトウェア品質保証計画)
[ソフトウェア開発スタンダード]
・SRStd(Software Requirements Standards:ソフトウェア要件ガイドライン)
・SDStd(Software Design Standards:ソフトウェア設計ガイドライン)
・SCStd(Software Code Standards:ソフトウェアコーディングスタンダード)
開発プロセス(Development process)
搭載するソフトウェアを開発するプロセスで、下記4つのプロセスを含む。
[Software Requirements process]
システム設計プロセスから入力されたソフトウェアに割当てられたシステム要件を分析し、ソフトウェア要件HLRs(High-Level Requirements)を定義する。
[Software Design process]
ソフトウェア要件HLRsに基づいて、ソフトウェアアーキテクチャ設計、詳細設計を行う、コーディング実装が可能な下位のソフトウェア要件LLRs(Low-Level Requirements)を定義する。
[Software Coding process]
下位のソフトウェア要件LLRsから、実装コードを作成する。
[Integration process]
ターゲット環境で実行可能なコード(Executable Object Codes)をビルドし、実行できる状態にする。
インテグラルプロセス(Integral process)
ソフトウェア開発ライフサイクル全体に渡って、ソフトウェア開発ライフサイクルプロセスやその成果物の正しさ、コントール、信頼度を確保するプロセスで、下記4つのプロセスを含む。
[Software Verification process]
ソフトウェア開発プロセス実施中に、作りこまれるエラーを検出して、報告することが目的のプロセスである。テスト、レビュー、解析(確認)を組み合わせて、成果物の検証を実施する。
[Software Configuration Management process]
プロジェクト全体で構成管理をSCMPに基づいて実施する。
[Software Coding process]
下位のソフトウェア要件LLRsから、実装コードを作成する。
[Software Quality Assurance process]
プロジェクトが、計画とガイドラインに基づいて実行されていることを保証する。
[Certification Liaison process]
搭載ソフトウェア認証の申請者側と認証機関との窓口や調整を行う。