第2回 SDV開発 クラウドの活用・アーキテクチャ設計・AIの活用まで

第1回のコラムでは、SDV(Software Defined Vehicle)の開発のポイントは「構成の領域が拡大」、「開発環境の領域が拡大」、「機敏な開発スタイル」であり、求められる開発技術も拡大・変化していることを説明しました。第2回目のコラムでは、SDVを開発する上で必要となる開発技術のポイントであるクラウドの活用、柔軟なアーキテクチャ設計、AIの活用の技術を説明します。
目次

https://member.eureka-box.com/products/10/categories/2155688261/posts/2180429396
SDVの開発を進める上での重要な技術を整理します。
1つ目はクラウド活用で、「価値提供の手段」「開発効率化」の2つに大別できます。価値提供手段としてクラウドを活用するためには、エッジコンピューティングやクラウド特有のセキュリティについて学んだうえで、システム構成の設計を行う必要があります。開発効率化については、後ほど詳細に説明します。
2つ目は頻繁なソフトウェア更新・追加を可能にする柔軟なアーキテクチャです。サービス単位で継続的なアップデートを行うことがSDVの特徴ですが、その実現には従来のシステム以上にソフトウェアアーキテクチャが重要になります。USDM(要件定義手法)、MBSE(システム設計)による設計や、ソフトウェアバリエーションを肥大化させないためのSPLによる計画的な管理に、ぜひ取り組むことをお勧めします。またマイクロサービスという概念やコンテナという技術を新たに取り入れる必要があり、後ほど詳細を説明します。
3つ目はAIを活用する技術です。AIを使用したデータ分析の技術や仮説と検証を繰り返すアジャイルな開発を行う技術が必要になります。例えば、運転データを分析してドライバーの運転習慣を把握し、個別の運転アシスタント機能を提供して、安全性の向上を図るなどです。 また生成AIを活用した開発の効率化も重要になります。「RAG」を活用することで、ドメインに関する技術的な質問をチャットボットにする、ソースコードやSimulinkモデルを解説してもらうなど知識の属人化を回避できます。また、静的チェックに生成AIを取り入れることで今までは対人レビューでしか検出できなかった問題を対人レビュー前に発見することができ、レビュー品質の向上/レビュー時間の短縮などができます。
次に各開発技術のポイントの代表的な技術を詳細に説明します。

CI/CD環境をクラウド上に構築して各コンポーネントの開発環境をパイプラインで繋ぐことで、各機能開発チームが個別にインテグレーションテストを実施できるようになるため、ビッグバン結合が抑制され開発スピードだけでなく品質の高いソフトウェアの開発ができるようになります。このように、各コンポーネントの開発で利用する開発リソースや他コンポーネントのソフトウェアの調達を意識せずに独立して進めることができます。
このようなCI/CD環境を構築するには、テスト環境をクラウド上に構築する手順をコード化する「IaCの技術」やソフトウェアの収集、ビルド・インテグレーションの工程を自動化する「パイプラインを設計する技術」、「ソフトウェアのバージョンを管理する技術」を活用することで、機能コンポーネントのソフトウェアのリリースからインテグレーションテストまでが自動で実行される環境を構築することができます。
クラウド環境を利用したCI/CD環境を構築したいと思った方は、Eureka Boxの「CloudNative CI/CD」のコンテンツをご覧ください。ライントレースを行うドローン制御ソフトウェア開発という組込み開発の文脈の中で、クラウドを利用したスケーラブルなシミュレーション環境の構築や、継続的なアップデートを行うためのプロセスを実現する方法を学び、体験することができます。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。

柔軟なアーキテクチャを実現するためには設計技術も重要ですが、ここではサービスを独立させるメリットとマイクロサービスを実現するためのコンテナ技術について説明します。
SDVではサービスの継続的なアップデートが非常に重要になります。しかし、車両が提供するサービスが一つのモノシリックに結合されている場合、一部のサービスの変更に対して全体のアップデートが必要になってしまいます。また、デプロイタイミングをサービス間で調整する必要があり、サービスの最新機能の提供が遅れてしまう可能性があります。しかし、サービス単位でリリースできるマイクロサービスアーキテクチャの場合は、APIに変更が無い場合はサービス単位でデプロイすることができます。各アプリケーションの開発サイクルでリリースすることで最新の機能を素早くユーザーに届けることができます。
マイクロサービスを実現するための手段にコンテナを活用する方法があります。コンテナ間は独立したアプリケーションとして動作します。そのため、各サービスをコンテナで実行することで既存サービスのコンテナを変更せずに、新規サービスのコンテナの追加や更新を行うことができます。
コンピュータリソースに限りのある組み込み製品でコンテナを活用するには、イメージ容量や処理速度を意識して「コンテナを設計する技術」が必要になります。また、「コンテナ間のネットワークを構築する技術」、「コンテナを協調制御するためのAPIを設計する技術」なども必要となります。
コンテナ技術を活用してマイクロサービスを実現するとハードウェア層を抽象し、クルマやECUとの依存関係も疎となります。異なる車種に同一のサービスを提供することができるため、幅広いユーザーに価値を提供することができます。
コンテナ技術に触れてみたいと思った方は、Eureka Boxの「Docker」の講座を無料会員登録でも閲覧することができます。Dockerの仕組みや基本的な操作方法を学ぶことができるので、ぜひ無料会員登録してコンテンツをお試しください。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。

AI活用方法について「生成AI」を例に説明します。
生成AIは近年目覚ましい成長を遂げています。生成AIの活用方法の一つにRAGがあります。RAGはReteval Augmented Generationの略で、LLMに外部知識(ドメイン固有の知識など)を与えることでLLMの出力精度を向上する技術です。
生成AIやRAGを活用することで、知識の属人化を避けることができます。また、今までは自動化できていなかった領域のタスク(成果物レビュー、生成など)を自動化、効率化することができます。
RAGを構築するには、「サービスを利用する方法」と「自前で構築する方法」があります。自前で構築する場合は「生成AIのAPIの使い方」や「クラウドや社内ネットワーク上にアプリを構築する技術」が必要になります。また、既存のドキュメントをナレッジとしてDBに登録することができますが、精度の高い出力を得るためには、LLMが扱いやすいように「ドキュメントを整形する技術」やドキュメントの更新に合わせてナレッジDBをアップデートするなどの「アプリの保守・運用技術(DevOps、LLMOpsなど)」も必要となります。
生成AIを活用することで一部の有識者に負担が集中してしまう状況を避け、効率的に業務を進めることができます。また、成果物のドラフト版の生成やレビューの一部に活用することもできます。
SDVの開発技術を実際に学んでみたいという方に、まずは無料でお試しいただけるオンライン学習を準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
エンジニアの独学・スキルアップに! 他では学べない技術が充実
上流工程ソフトウェア開発技術を学ぶ!
Eureka Box(ユーリカボックス)
無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実

https://member.eureka-box.com/products/10/categories/2155688261/posts/2180429396
SDVにおける開発技術について、2回に分けて解説いたしました。
SDVの開発はクルマ単体からクラウドを含めた領域へ拡大し、ソフトウェアサービスがクルマの価値を左右する「構成領域の拡大」とクラウド上の開発環境を使用する「開発環境の領域の拡大」、一枚岩のソフトウェアから、サービス単位に素早く継続的にアップデートを行う「機敏な開発スタイル」へと変化します。
そして、SDVの開発に必要な技術も「クラウドを活用する技術」、「柔軟なアーキテクチャを設計する技術」、「AIを活用する技術」へと拡大、変化しています。
SDVの開発では、従来の開発と比べて多くの開発技術が求められます。SDVへの移行に不安になった方もいらっしゃるかもしれません。オンライン学習プラットフォームEureka Boxではそんな不安にお応えすべく、SDVに必要な開発技術のコンテンツを用意してます。
SDV開発に必要な開発技術の全体像とEureka Boxのコンテンツの関係は、次のSDVコンテンツマップを参照ください。

https://member.eureka-box.com/products/10/categories/2155688261/posts/2179189780
デジタル人材が不足している今の時代、特にソフトウェア開発の現場では「上流技術」のスキルを持つ人が必要とされています。
そのスキルが効率よく身につくように設計されたのが「オンライン学習のEureka Box(ユーリカボックス)」
Eureka Boxの運営企業であるエクスモーションは、日本を代表する大手自動車メーカー、医療機器メーカー等、ソフトウェア開発の支援を実際に行っている企業だからこそ、現場で活かせる学びに焦点をあてたプログラムに構成されています。
「Eureka Box(ユーリカボックス)」を是非ご活用ください。
