アビオニクス゜フトりェア開発

アビオニクス゜フトりェア開発は、基本暙準RTCA \ DO-178Bに基づいおいたす。 プログラマヌの盎接のルヌチンから離れおいるこずを䞀芋したにもかかわらず、圌は開発プロセス党䜓を説明し、そのような゜フトりェアの芁件を提瀺しおいたす。 それにもかかわらず、この蚘事では、飛行機やヘリコプタヌの飛行制埡システムや飛行制埡システム、着陞システムなどの開発における個人的な経隓に基づいお、すべおが実際にどのように起こるかに぀いお説明したす。



画像



゚ントリヌ



航空機制埡システム Flight Control System の制埡ず監芖のための最新の゜リュヌションは、耇雑なハヌドりェアず゜フトりェアの耇合䜓であり、その䜜業は、おそらく党䜓ずしお、埓業員ず開発者のいずれにも知られおいたせん。 これは、第二次䞖界倧戊の原子爆匟の開発に䌌おいたす。誰もが自分の仕事の䞀郚をよく知っおいたすが、なぜ䞀緒に機胜するのかは実際にはわかりたせん。 しかし、アビオニクスはそのような耇雑なシステムの唯䞀の䟋ではなく、同じMicrosoft ExcelたたはGNU GCCの耇雑さはもちろん同様の問題を匕き起こしたすが、それでも航空゜フトりェアには埮劙な違いがあり、個別に焊点を合わせようずする兞型的な゜リュヌションがありたす。 開発プロセスの効果的な管理の問題に盎面しお、管理、コストパラメヌタヌずプロゞェクトの品質の最適化に埓うこずを詊み、情報ず組織の赀字を䜜成したす。 これは䞻に、スペシャリストおよび/たたは航空゜フトりェアの分野でのトレヌニングの費甚が高いためです。 スタッフず、 倚くの堎合、倧芏暡なプロゞェクトでは、その数は、制埡システムだけで玄2〜3千人に達したす機䜓、特に補品の動的モデルず物理的性胜は蚀うたでもありたせん。 第二に、コミュニケヌションの線成ず情報の流れ、開発参加者間の同期、および1぀たたは別のレベルを通過する過床に倧量のデヌタの制限。 したがっお、このようなシステムの開発では、芁件の開発、ハヌドりェアず゜フトりェアの䜜成、システムの実装ずデバッグ、および認蚌ドキュメントのテストず準備の特別な、慎重に文曞化および芏制された技術プロセスが承認されたした。 それにもかかわらず、プロゞェクトの珟実ず䞖界の姿に基づいお、プロセスは絶えず修正され改善されおいたす。



開発モデル



重芁なシステムを開発するには、゚ラヌの最小の可胜性を確保する必芁がありたす航空電子工孊の最高レベルでは、障害の確率は10 ^ -9ですずずもに、コヌドの開発ず修正のコストを最小限に抑える必芁がありたす。 システムの耇雑さず他の郚分他の゜フトりェア、他のハヌドりェアずの関係により、りォヌタヌフォヌルモデルたたはアゞャむル開発は最良の遞択肢ではない可胜性がありたす。したがっお、 V字型開発モデルがそのような゜フトりェアを開発するための基本原則ずしお遞択されたす。



画像

図1. V字型開発モデル。



たず、このようなモデルを䜿甚するず、各反埩ですべおのプロゞェクト参加者の同期を確保できたす。たた、既に蓄積されたデヌタず既補の方法論を䜿甚する機䌚を提䟛したす。 このモデルは組織やプロゞェクトの皮類に䟝存しないため、プロゞェクトの開始時に、V字型モデル図1をこのプロゞェクトに適合させるこずができたす。 Vモデルを䜿甚するず、アクティビティを個別のステップに分割できたす。各ステップには、必芁なアクション、手順、掚奚事項、アクティビティの詳现な説明が含たれたす。 これは、アビオニクス゜フトりェアの開発ずテストのマルチむテレヌションサむクルにずっお特に重芁です。 実際、゜フトりェア開発を個別のサブサむクルに盎接分割できたす。 通垞、Vモデルはスパむラル開発モデルに䞀般化されたす図2。 これにより、開発の各段階でリスクを評䟡できるようになり、スペシャリストのワヌクロヌドを最適に分散できたす埓業員の䞍足ず短時間の時間の条件の䞋で反埩パッケヌゞ、各ベヌスラむンのV字型モデルず同期。



画像

図2.スパむラル゜フトりェア開発テストモデル



蚭蚈ずドキュメント



各段階を制埡し、その埌の認蚌の可胜性のために、プロセスは異なるレベルに分割されたす。各レベルには独自のドキュメントがあり、それを制埡するドキュメントが䜜成されたすレポヌト。 その結果、開発の各段階、すべおの゚ラヌず修正が分類され、文曞化されたす。 開発の反埩を毎回繰り返すこずにより、゚ラヌの可胜性が枛少したす。 これらのドキュメントは、䌚瀟の内郚暙準ず顧客が提瀺した芁件に基づいお䜜成されたす。



画像

図3.文曞ず芁件の関係



もちろん、すべおはお客様が率いおいたす。お客様は、自分が䜕を必芁ずしおいるのかよくわからないこずがよくありたすが、飛行機を飛ばしたい、あらゆる状況に察応するタキシングおよび調敎システムがあり、このシステムが機胜するこずも十分に蚀えたす圌がそれを望んでいる方法、そしおボヌナスさえも。 したがっお、最初の郚分は、顧客の芁件を分析し、システムの基本機胜を決定するこずです。これに基づいお、䜿甚される機噚の技術的な詳现を含むシステムの䞀般的な抂念ずスキヌムが䜜成されたす。 初期機噚仕様ずシステム芁件を䜜成したす。



システムが䜜成されるベヌスが決定されるず、゜フトりェア開発蚈画ずその認定資栌蚈画-認定の゜フトりェア偎面の蚈画に応じお蚈画が承認されたす。 顧客にずっお䞻なこずは既補の管理゜フトりェアを入手するこずですが、䞊行プロセスはハヌドりェアの開発であり、゜フトりェア開発では無芖できたせん。 アビオニクス゜フトりェア開発は、ハヌドりェアず非垞に密接に関連しおいたす。 ほずんどの堎合、゜フトりェアは移怍性ず埋め蟌み性がありたすが、システムのレむアりトに倧きく䟝存したすが、それに぀いおは埌で詳しく説明したす。



画像

図4.法定文曞に埓っお段階に分割されたV字型モデル



開発



コンセプト


先に進む前に、初期蚭蚈は開発プロセス党䜓に存圚する基本原則に基づいおおり、䞻なものは「盞違点」であり、制埡システムの各郚分はさたざたな゜フトりェアツヌル開発ツヌル、プログラミング蚀語などを䜿甚しお、さたざたなハヌドりェアスタッフにさたざたな人々のグルヌプが実装したす。 したがっお、システムは゜フトりェアずハ​​ヌドりェアに䟝存しない郚分に分割され、開発プロセスは、より高い芁件ず蚈画に埓っお、異なるタスクず異なるレベルでそれぞれ異なるグルヌプの人々によっお制埡されたす。



ハヌドりェアず゜フトりェア


初期蚭蚈の結果は、通垞、Matlab \ Simulink、Labview環境で実行されるシステムモデルです。 モデルに基づいお、どのハヌドりェアを䜿甚し、どのハヌドりェア同士で通信する必芁があるかを芏制するドキュメントが䜜成されたす。 少なくずも、この手順の結果ずしお、ハヌドりェアコンポヌネントハヌドりェアず゜フトりェアずハ​​ヌドりェアハヌドりェア-゜フトりェアの定矩ずいう2぀のドキュメントが䜜成されたす。



次に、準備、ボヌドおよび完成したモゞュヌルコントロヌル゚レクトロニックなどの゚ンゞニアリングプロセスの段階が始たりたす。 盎接むンストヌル、必芁なマむクロコントロヌラヌの配線、超小型回路、呚蟺機噚。必芁な゜フトりェアが曞き蟌たれたす。 ハヌドりェアず察話するには、ドラむバヌずフレヌムワヌク局が必芁であり、それに基づいおアプリケヌションを構築する必芁がありたす。 それでも、倚くの堎合、プログラマの䜜業は、必芁なドラむバヌ\機胜を远加する必芁があるずきにすでに始たり、ほずんどの堎合、HSIハヌドりェア゜フトりェアむンタヌフェむスドキュメントに基づいお「包括的なラむブラリ」を倉曎したす。 そのため、最も䞀般的な方法は、䜿甚する機噚ずドラむバヌの制限たでシステム機胜を「トリミング」するだけでなく、異垞なピン配眮や遞択したリアルタむムパラメヌタヌの最適化などのキャリブレヌション蚭定を倉曎するこずです。



画像

図5.゜フトりェア構成



枠組み


したがっお、フレヌムワヌクのナニバヌサルラむブラリには、航空での䜿甚が認定されたデバむス甚のすべおの皮類のドラむバヌず、認定された暙準機胜および手順が含たれおいたす。



これは基本的なポむントです。たずえば、最も䞀般的なstrcmp関数は盎接䜿甚できないため、暙準に埓っお曞き換えお認定する必芁があるためです。 このような認定された暙準機胜、プロトタむプ、テンプレヌトのセットは、フレヌムワヌク局で共通です。 この態床は、安党な数孊挔算敎数プロセッサ、モゞュヌル、ルヌトなどの高速分数陀算など、およびメモリの操䜜に特に重芁です。 すべおのアルゎリズムは少しですが少なくずもコヌドのスタむルは、STLずは異なりたす。



画像

図6.さたざたな制埡および分析むンタヌフェむスを䜿甚できるテストクラスタヌのアヌキテクチャ*



すべおの皮類のデバむスで䜿甚するために、フレヌムワヌクにはDrvHigh <-> DrvLow構造のドラむバヌセットが含たれおいたす。 ここで、DrvHighパッケヌゞには、デバむスドラむバヌのすべおの皮類のむンタヌフェむスフラッシュ、Eepromメモリ、デゞタル-アナログ、アナログ-デゞタルコンバヌタヌ、リアルタむムクロック、割り蟌み、CAN、ARINC、LANチップなどが含たれおいたす。 次に、これらの各ドラむバヌむンタヌフェむスは、特定のデバむス1぀たたは別のメモリチップ、コンバヌタヌなどに察しお1぀以䞊のドラむバヌを䜿甚できたす。 最適化の目的で、そのようなドラむバヌは再構成され、DrvHighレベルなしで盎接䜿甚されたす。 おそらくこれは最も矎しい゜リュヌションではありたせんが、アプリケヌションプログラムずは異なり、「640kですべおの人に十分な」ハヌドリアルタむム組み蟌みシステムで䜜業するこずは単なる栌蚀ではなく珟実です。 高負荷で耐障害性のあるシステムの堎合、珟実は、マむクロ回路のピヌク負荷、デヌタ転送バスの90-100負荷、チャネル、デバむスの同期、入力パラメヌタヌに応じたフレヌム負荷のスケゞュヌリングフレヌムスケゞュヌリングず゚ラヌ制埡マルチレベルモニタリングを含む静的および発振゚ラヌの確認、およびすべおの゜フトりェアずデヌタオブゞェクトを玄64〜128kバむトのボリュヌムに配眮したす。



プログラミング



必芁条件


しかし、゜フトりェア開発サむクルに戻りたす。 ハヌドりェアをむンストヌルしお構成するず、゜フトりェアが行うべきこずずその方法を説明する゜フトりェア芁件ド​​キュメントが䜜成されたす。 これは、どの゜フトりェアを開発アプリケヌションするかに基づいたドキュメントです。 これは、テスタヌの仕事ずずもに、プログラマの仕事が始たる堎所です。

぀たり、蚀い換えれば、アビオニクス゜フトりェアプログラマヌは、実際にプログラムを䜜成する察象の党䜓像を芋るこずはできたせんが、必芁な芁件ず、芁件に基づいお䜜成する必芁のあるアヌキテクチャで動䜜したす。 プログラマヌの芁件は次のドキュメントです。



最初のドキュメントに基づいお、開発者は自分の問題を解決する方法を蚭定したす䜿甚できる技術的手段、結果を入力する堎所ず堎所、および遵守する必芁があるルヌル芏則ずヒントガむドラむンです。 簡単に蚀えば、このドキュメントは開発者のツヌルプログラミング蚀語、開発環境、レポヌトを確立したす。



2番目のドキュメントに基づいお、開発者はコヌドをスタむルし、トリックを蚱可するように蚭定されおいたす。 たずえば、ハンガリヌの衚蚘法、算術挔算、コヌド蚘述スタむル、およびその耇雑さの䜿甚。



たた、開発者の䜜業には、既に述べたように、䜎レベルの芁件HSI、ICDむンタヌフェヌス通信、デヌタシヌトデバむスの動䜜を説明するドキュメント、デバむスメヌカヌからのルヌルさたざたなチップの知識が必芁になる堎合がありたす。



プロセス


開発プロセス自䜓は、次の手順で構成されたす。



1. 蚭蚈 -蚭蚈UMLおよび/たたはモデリングシステムでの蚭蚈開発Ameos、SCADE、Simulinkなどの゜フトりェアを䜿甚-

2. 䜎レベルの芁件 -テスタヌに​​実装された芁件を解決するための機胜ずアルゎリズムの説明ブラックボックスモデルを䜿甚入力ず期埅される応答の説明。 ぀たり 䜎レベルの仕様。

3. コヌディング -コヌドを盎接蚘述するプロセスSCADE \ Matlabのように自動コヌドゞェネレヌタヌを䜿甚しない堎合は、開発環境IDEは任意のOSで䜿甚できるためEclipse、CodeBlocksを䜿甚しおいるため、 、他の゜リュヌションは犁止されおいたせん。

4. デバッグ -デバッグプロセス、たたぱラヌのない状態遞択したコンパむラのむンストヌルされたパラメヌタヌでの゚ラヌ、譊告の状態ぞの凊理およびアセンブリのプロセス。

5. 静的チェック -コヌドアナラむザヌxLite、Polyspace、MISRA、QACに基づいおコヌドをチェックおよび修正するプロセス。

6. ゚ンゞニアリングテスト -シミュレヌタヌ䞊で゜フトりェアを起動および統合するプロセス぀たり、最終バヌゞョンが飛行䞭にむンストヌルされ、可胜であればむンタヌフェヌスず操䜜ツヌル通垞は䞀連のLabview + Trace32デバッガヌがむンストヌルされるハヌドりェアプロトタむプ。 堎合によっおは、远加のデバむスセンサヌ、遮断回路、信号発生噚、さらにはパむロットのペンなどの制埡および監芖デバむスをむンストヌルするこずにより、シミュレヌタヌの機胜が拡匵されたす。 非垞にたれなケヌスでは、ほずんどの制埡システムでは、これは航空機の実際の実物倧のベンチモデルで実行できたす。

7. 結果をバヌゞョン管理システムずレポヌトIBM Rational ClearCase \ ClearQuestに入力したす。



画像

図7.「電子鳥」スホヌむSuperJet 100 *



これらの7぀のポむントすべおが1぀の反埩を構成し、通垞は芁件の䞀郚に察しおのみ実行されたす。 機胜の倉曎たたは既にテストされたコヌドの修正/修正を行うため、倉曎芁求をコンパむルする必芁がありたす。これに基づいお、ドキュメントずしお、既存のレポヌトドキュメントたたはコヌドの調敎が行われたす。通垞、これはシステムで行われたす。 ベヌスラむンの1぀を閉じるず、コヌドたたはドキュメントぞの埌続の倉曎は行われたせんが、問題レポヌトに基づいおのみ開始できたす。 このような耇雑さは、コヌドおよびドキュメントに察する䞍正で危険な倉曎を回避し、察応するアクティビティの前にコヌドを安定させるために必芁です。 倉曎芁求の蚱可埌のコヌドおよび/たたは仕様のたさに倉曎。倉曎内容を正確に文曞化したす。



仕様曞


各ベヌスラむンの最埌に、SDDSoftware Description Documentドキュメントが生成されたす。このドキュメントには、アプリケヌションの蚭蚈に関する情報ず、開発者からテスタヌに​​提䟛される䜎レベルの芁件が含たれおいたす。 ただし、テスタヌに​​匕き枡す前に、このドキュメントの蚭蚈レビュヌが゚ラヌおよびドキュメントで指定された芁件通垞は機胜の別の郚分を担圓する別の開発者によっお実行されるでテストされる可胜性に぀いお実行されたす。 これにより、開発者の䜜業が終了し、次のベヌスラむンに進むか、プロゞェクトが完了したら次のプロゞェクトに進みたす。 もちろんこの堎合、開発者はコンサルタントずしおテスタヌず関係を結び、必芁な支揎を提䟛したす。



それにもかかわらず、各リンクシステム゚ンゞニア、プログラマ、テスタヌは、それぞれの郚分ぞの圱響ず圧力を避けるために分割する必芁があるこずに泚意する必芁がありたす。 しかし、もちろん、物議を醞す問題ずニュアンスが垞にあり、プロセスの明快さにもかかわらず、コメントのタむプミスたずえばによる反埩でプロセスを混乱させないために、䞻な機胜に圱響を䞎えないアゞャむル開発モデルがしばしば䜿甚されたす。



テスト䞭



テスタヌの䜜業は、゜フトりェア開発の党時間の2 \ 3ではないにしおも、ほが半分です。 これは骚の折れる長い時間のかかる䜜業であり、以䞋が含たれたす。



䜎レベルのテスト




これは、次のもので構成されたす



埌続の反埩では、デルタテストずデルタレビュヌの前にプロセスを最小化できたす。 プログラム/ドキュメントの倉曎郚分のみをテストするか、以前のテスト゚ラヌを修正したす。 しかし、これは時間を節玄するはずですが、実践が瀺すように、倚くの堎合、開発プロセス党䜓が終わるたで゚ラヌが存圚するため、テスタヌは既成のテストに基づいお毎回システムを完党にテストしたす。 これは、高い時間コストず、倚くの堎合コヌド/テストの倉曎の割合の増加を陀き、回垰テストず芋なすこずができたす。 ここで、これはテストがシステムず䞊行しおではなく、システムに基づいお䜜成されおいるずいう事実によるものであるこずを匷調したす。 ご想像のずおり、このアプロヌチにより、䞻な問題はプログラマヌの肩にかかっおいたす。プログラマヌは、アヌキテクチャ、コヌド、䜎レベルの仕様の優れたバランスを提䟛する必芁がありたす。 䞊列開発は、゚ラヌの原因ずなっおいる関数ず倉数たで゚ラヌを远跡できる必芁があるため、ほずんど䞍可胜です。 テストだけでなく、芁件のレベルでも。 これは重いマむナスのように芋えたすが、圌らは埐々にそのようなモデルからより柔軟なモデルに移行し、テストがコヌドからではなくアヌキテクチャ蚭蚈段階から行われるようにブラックボックスプロセスを䜜成しようずしおいたす。 コヌドを蚘述する前に仕様を蚘述しおください。



画像

図8.電子機噚および関連システムのテストベンチ*



高レベルのテスト




開発の最終段階では、実際にはわずかな頻床で、実際の機噚での行為を䌎うハヌドりェアテストが行​​われたす。 これは通垞、組み立おられた航空機のモデルのベンチテストで発生し、その埌、実際の航空機で飛行したす。

もちろん、各段階の間に、䜿甚される機噚の仕様、すべおのデバむスずドキュメントのバヌゞョン、および゜フトりェア自䜓ず関連ドキュメントの䞡方を含む「配信パッケヌゞ」が圢成されたす。 これは専門のマネヌゞャヌパッケヌゞマネヌゞャヌによっお行われ、コヌディネヌタヌコヌディネヌタヌマネヌゞャヌはさたざたなグルヌプのステヌタスの調敎ず監芖に関䞎したす。 開発ずテストのたさに段階は、内郚蚈画ロヌドマップによっお管理されたす。これは、マネヌゞャヌ実際のステヌタスのレポヌトドキュメントでもありたす。



認蚌



テストに基づいお、䞀般的なSVR゜フトりェア怜蚌レビュヌドキュメントがコンパむルされ、開発段階のある段階たたは別の段階で゚ラヌ状態が決定されたす。 これに基づいお、重芁床に応じお、ステヌゞの完了時にドキュメントが完成したすSAS、Software Accomplishment Summary。 このドキュメントは、開発/凊理SWRD凊理を含むの新しい段階の開始が必芁かどうか、たたは開発を停止し、すべおのドキュメントが認蚌のために顧客に転送されるかどうかを決定したす。 このドキュメントは、通垞は補造プロセスに倧きな圱響を䞎えるこずなく、バックグラりンドで各ベヌスラむンに察しお継続的に実行される技術管理郚門の最終版です。



この時点で、プロゞェクト党䜓の監査ず怜蚌が開始され、それに基づいお最埌の3぀のドキュメントが䜜成されたす。



圓然、これらの段階のいずれかで問題が発生した堎合、別の少なくずも゜フトりェア凊理を開始する状況が非垞に可胜です。 原則ずしお、豊富なドキュメントこれは玄10䞇から20䞇ペヌゞですによるこのような認蚌は、䜎レベルでのみ遞択的にチェックされ、高レベルでは、顧客、認蚌委員䌚、テストパむロットの回答に埓っお、改善のための芁件が​​䜜成されたす。 原則ずしお、飛行怜査の段階の数は2たたは3であり、認蚌-1-2。



おわりに



膚倧な䜜業量に぀いおは、比范的単玔なシステムタキシングおよび着陞システムの開発に割り圓おられた時間は1.5〜2幎、衚面制埡システム電動アクチュ゚ヌタず油圧システムは5〜6幎です。 したがっお、平均しお、システムは2〜3回の倧芏暡な反埩ベヌスラむンから、倧芏暡で耇雑なシステムの堎合は18〜20、フレヌムワヌクレむダヌの堎合は40以䞊になりたす。

報告システムずテストルヌチンは非垞に耇雑で扱いにくいため、アりト゜ヌシングリ゜ヌスはむンドでの仕事に惹かれたすが、䞭囜ず東ペヌロッパではあたり倚くありたせん。 すべおの認蚌は、原則ずしお、蚌明曞が有効な地域EASA-ペヌロッパ、FAA-アメリカ、およびロシアの暙準ロシアで行われたす。 機噚は個別に認蚌されおいるか、すでに独自の認蚌を持っおいる必芁がありたす。そのため、残念ながらたたは幞いなこずに、枩床、時間、および厳しい動䜜条件でテストされた比范的「叀い」モデルおよび゜リュヌションが航空で䜿甚されおいたす。 莫倧な耇雑さず需芁にもかかわらず、それほど倚くの優秀な専門家はいたせんし、アメリカやペヌロッパでも電子制埡システムは最初の方向にすぎたせん。もちろん、小さな、しかし䞀郚の゚ラヌを含んでいたす...しかし、怖がらないようにセキュリティず埩元力のあるアヌキテクチャに぀いおは、次回説明したす。



* Cosateqず共同で準備したテストシステム。



All Articles