セーフティクリティカルなシステム向けのソフトウェアを開発する際に求められる要件が増大する中、JTEKT社では、それを効率的に満たすため、ISO 26262に準拠したAUTOSARベースの継続的インテグレーション(CI)プロセスを構築しました。dSPACE TargetLinkを通じてソフトウェアを継続的にビルドできるこのプロセスは、将来的にソフトウェアデファインドビークルを開発する際の基盤となるものです。
JTEKT社は、すべての大手OEMメーカーに対応するシステムサプライヤですが、その中でも特に安全性を左右する車両コンポーネントの1つであるステアリングシステムを開発しています。しかし、自動車業界のADAS/ADセクターにおける現在のトレンドは、ステアリングシステムにも介入する内容が含まれるため、この分野にも既に大きな影響を与えています。そのため、これらのシステム用のソフトウェアを開発する際には多数の制約や規格を考慮する必要が生じています(図1)。通常であればこうした複雑さが高まれば、開発作業にかかる時間も増加していくものですが、その一方で同社のお客様が求めているのは真逆のものです。つまり、新しいソフトウェアバージョンのより頻繫なデリバリーと、市場投入時間の短縮を期待しているのです。
同社のシニアソフトウェアエンジニアであるLuc Malrait博士は、「お客様の信頼を獲得しそれを維持するには、開発プロセスの流れを合理化しながら、同時に規格を全般的に満たすことが重要です。近年のお客様は端的にそれを求めているのです」と述べています。
短い開発時間で、高度な要件に対応
高まりゆく要件を満たすためには、ツール環境と開発手法の両方を調整し最適化しなければなりません。それはCI/CDワークフローという業界用語で表されます。つまり、アプリケーションを形成するためにコンポーネントを継続的にマージする継続的インテグレーション(CI)と、極めて短い間隔で(ほぼ連続して)新しいソフトウェアバージョンを提供する継続的デリバリー(CD)です。
同社のソフトウェア設計部門のグループマネージャであるGhislain Poncet氏は、「既に時間的にタイトになっている開発プロセスに対して、ソフトウェアデファインドビークルはそのような開発時間をさらに加速させる役割を果たします。こうした難題には、適切なツールとプロセスを準備しておく必要があるのです」と説明します。
JTEKT社が導き出した答え:AUTOSARベースの運用方式
JTEKT社の開発手法(図2)の第1ステップ、いわば土台というべきものは、AUTOSARに準拠したモデルベースのソフトウェアアーキテクチャ設計です。Luc Malrait博士は、「一貫性に優れたAUTOSARベースの開発手法がすべての土台です。これにより、ソフトウェアモジュールの再利用や他の参加者とのやり取りが容易になり、ツール間のインターフェースの問題も最小限に抑えることができます。このやり方の優位性は、すべてのところで感じられると言ってもよいくらいです」と述べています。
第2ステップにおいては、同社の開発者はdSPACE TargetLinkを用いてモデルから量産コードを生成します。これにより、開発プロセスの極めて早期の段階でソフトウェア設計を確認できるため、エラー修正に要する労力が、後の工程でエラー修正を行う場合に比べて大幅に少なくなります。
同社は、モデルの品質保証にMES(Model Engineering Solutions)社のMXAMを使用して、モデリングガイドライン、モデル構造、およびモデル指標を確認しています(ステップ3)。BTC EmbeddedTester(ステップ4)も言及に値するツールです。これを使用すると、コードの実行中にその機能テストを行えるだけでなく、バックトゥバックテストを行ってモデルとコードの挙動が一致することも確かめられます。
Figure 2: Schematic representation of the development process at JTEKT. Everything is based on the AUTOSAR-based software architecture.
課題:バージョンおよび成果物の管理
JTEKT社では、多数の従業員がさまざまな場所で同じプロジェクトに取り組む分散型の開発手法を採り入れていますが、全体像を把握しながら業務が全体としてスムーズに進むようにするには、克服すべき2つの重要な課題がありました。
- 成果物管理: 連携的な開発手法と多数のツールを使うということは、レポート、データモデル、スクリプト、設計文書、ソースコード、テキストファイルなど、大量のファイル(成果物)が必然的に発生することになりますが 、これらはレポジトリと呼ばれる専用のディレクトリ/アーカイブに整然と格納し、管理されなければなりません。
- バージョン管理: ソフトウェア開発者は作業中に絶えず新しいバージョンの成果物を生成しているため、最新のバージョンと過去のバージョンをいつでも追跡できるような、わかりやすいバージョン管理が不可欠でした。
JTEKT社が用いるツール環境と開発手法
JTEKT社のソフトウェア開発ワークフローでは、基本的に以下のファイル処理ツールが相互に連携しています(図3)。
- Git :Gitはフリーソフトウェアであり、分散型のファイルバージョン管理に使用します。Gitでは、複数の開発者がどこに居るかにかかわらず、1つのプロジェクトに同時にアクセスできます。また、Gitはプラットフォームに依存しないため、ほぼすべての環境で使用できます。
- JFrog Artifactory: JFrog Artifactoryは、幅広い種類のデータの管理向けレポジトリ、すなわちディレクトリ/アーカイブです。同社では、JFrog Artifactoryを使用してソフトウェア開発中に作成されたソフトウェア成果物を管理しています。
- Jenkins: Jenkinsは、プラットフォームに依存しないウェブベースのJavaアプリケーションであり、アプリケーションプログラムへのソフトウェアコンポーネントの継続的インテグレーションに使用します。Jenkinsでは、ほぼあらゆる組み合わせの言語およびソースコードレポジトリに対して継続的インテグレーションジョブ(パイプライン)を書き込むことが可能です。これらのパイプラインでは、(モデリングガイドラインの検証、バックトゥバックテスト、レポートといった)通常の作業が自動的に処理され、すべての成果物が適切にパッケージ化されます。そして結果として、完成したアプリケーションプログラムを得るということになります 。
Figure 3: Tool landscape and working methods at JTEKT. The continuous integration of the software components into an application program is implemented with the help of the Jenkins software environment.
将来の継続的デリバリー
継続的インテグレーション(CI)は、それ自体がJTEKT社の標準的な開発手法として確立されており、そこに規定されたメソッドに沿うことで、同社では1稼働日あたり平均10個以上のビルドを完成させることができます。今後は、将来の継続的デリバリー(CD)に向けたさらなる合理的なステップが計画されています。これは特にソフトウェアデファインドビークル(SDV)関連の今後の開発によって推し進められる予定です。SDVには、日常的な使用から得られるデータが定期的に提供され、その情報が今度は開発業務の中に加味されていくという循環があるためです。