ラピッドプロトタイピングとは、次のステップを見失うことなく、アイデアを数分以内に動作するシステムへと具現化することです。Vector Application Framework は、GitHub や VS Code との統合、すぐに使用できる Docker image を通じて、シンプルなセットアップを実現し、手軽に始められるようにしています。
完全にテキストベースで、ミドルウェアに依存しないアプローチにより、ワークフローの一貫性とアクセシビリティが保たれ、組み込みの抽象化機能によって、プロトタイプを本番環境対応のアーキテクチャへと進化させることができます。これにより、初期のプロトタイプを超えても、初期の成果を活用し続けることが可能になります。
課題
組み込み・ディストリビューションシステムのラピッドプロトタイピングとは、プロジェクトのアイデアを、数分という短時間で実行可能なプログラムや動作するプロトタイプへと具現化するプロセスと言えます。これを実現するためには、そのための環境が一定の要件を満たしている必要があります。その要件には、何よりもまず、優れたアクセシビリティ、低い参入障壁、そして使いやすさが含まれます。
こうした特徴を備えたフレームワークこそが、アイデアを具現化し、例えばハッカソンのセットアップやテストノードの作成時などに、プロジェクトの進行を加速させる助けとなります。


残念ながら、実行可能プログラムを初期段階で迅速に作成することだけでは、全体の一部に過ぎません。プロトタイプが良好であると判断された場合、本番システムに適した開発ワークフローへのマイグレーション計画が必要となります。仕様主導型開発は、本番環境向けのソフトウェアを作成するための一つの手法であり、自動車業界では一般的な慣行となっています。
このパターンによれば、まずソフトウェアシステムのモデリングが行われます。しかし、この作業方法は、実装を最優先とするプロトタイピングとは対照的です。とはいえ、マイグレーションを可能にするためには、プロトタイピング段階の既存の設計要素および実装要素が、仕様への導出をサポートしていなければなりません。そうでなければ、プロトタイプ開発は行き詰まってしまいます。
解決策
新しいプロトタイピングプロジェクトの立ち上げは、できるだけ簡単であるべきです。そのため、ベクター Application Frameworkは、評価やプロトタイピングの目的で無料でご利用いただけます。このコミュニティエディションには、特定の使用規約が適用されており、ベクターグループ (vectorgrp) の GitHub 組織で公開されています。
すべての依存関係を含むソリューション全体が Docker image としてバンドルされており、そのためすぐに使用できます。専用の拡張機能により、広く利用されている開発環境である Microsoft Visual Studio Code (VS Code) との直接的な統合もさらに確実になります。

この拡張機能の2つの主な特徴は、一方でプロジェクトのナビゲーションとタスクの実行が簡単に行えること、もう一方で、実行可能ファイルやモジュールをインタラクティブなソフトウェアアーキテクチャグラフの形で視覚的に表現できることです。
さらに、フレームワークのツール一式およびすべての設計要素はテキストベースとなっています。つまり、ワークフロー全体を VS Code 内で完結させることができるため、ツールや Window を切り替える必要はもうありません。GitHub Codespaces などのクラウドホスト型開発環境を利用すれば、Web ブラウザー上でもこのフレームワークを使用することが可能です。
フレームワークでの作業をさらに容易にするため、ミドルウェアの詳細は隠蔽されており、自動車ソフトウェア分野特有の用語は使用されていません。これは、エキスパートだけでなくすべての対象グループが理解できるよう、コンピュータサイエンスで確立された一般的な用語やパターンを優先して行われています。本質的には、2つの基本的な通信原則、すなわちデータ要素と操作が存在します。 前者は、pub/sub メッセージングやイベント駆動型通信に対応しており、さらにキーバリュー型データベースへのデータの永続的な保存にも使用できます。後者は、リモートプロシージャコール(RPC)のパターンに相当します。インターフェースを使用することで、これらを任意の組み合わせでグループ化することが可能です。
独立したアプリケーション開発の最大の利点は、いわゆる抽象化モジュールによって実現されます。ここで、アプリケーション向けのインターフェースと、具体的なミドルウェアソリューションおよびAPIとのマッピングが行われます。これらのモジュールの実装は、品質レベルが異なるものが存在し、その例としては、ベクター SIL Kit、DDS、MICROSAR Adaptive、あるいはEclipse S-CORE通信モジュールなどが挙げられます。 アプリケーションコードとミドルウェアソリューションをこのように明確に分離することで、プロトタイピングから開始し、後に本番環境へマイグレーションを行うプロジェクトに必要な柔軟性が確保されます。初期の評価段階では、例えばVector SIL Kitを使用して、統合テストや実行テストを行うことができます。このSoftware-in-the-Loop(SIL)環境を接続するためのライブラリはオープンソースで提供されており、設定の手間もほとんどかかりません。統合に必要な設計要素は、フレームワークによって完全に提供されます。つまり、そのまま動作するのです。 その後、次のような本番システムは、現場で実績のあるMICROSAR Adaptiveミドルウェアへマイグレーションすることが可能です。必要に応じて、フレームワークによってAUTOSARモデル設計要素(ARXML)を生成し、それを初期仕様として、反復的に修正・調整することができます。既存の仕様設計要素とのマージも、フレームワーク内で実行可能です。入力ファイルとして、ARXML、各種IDLフォーマット、またはVehicle Signal Specification(VSS)の読み込みがサポートされています。
総じて、Vector Application Frameworkは、分散アプリケーションやマイクロプロセッサベースのシステムにおいて、プロトタイピングから量産に至るまでの全工程に最適です。ぜひお試しいただき、ご自身のプロジェクトを始めてみてください。アイデアが実行可能なプログラムへと、いかに迅速に変換されるかに驚かれることでしょう。
メリット
- オープンで透明性が高いです。フレームワークのAPIおよびコアコンポーネントは、Eclipse.SDVプロジェクトとしてオープンソースで公開されています。
- 手軽に利用可能。ベクター Application Frameworkの無料評価版バンドルがGitHubで公開されています。
- 使用のしやすさ。VS Codeとの統合や、すぐに使えるDocker imageの提供により、前提条件なしで使用できます。
- 参入障壁が低い。ドメイン固有の用語は使用せず、代わりにコンピュータサイエンスのフィールドで確立された用語やパターンに基づいています。
- 完全にテキストベースです。設計要素、実装要素、テスト要素のすべてがテキスト形式でファイルされます。すべてのワークフローのステップを1つのIDE内で実行できます。さらに、この特性は、Gitベースの共同作業やAIエージェントに最適です。
- ミドルウェアに依存しません。基盤となるミドルウェアに関する知識がなくてもアプリケーション開発が可能であり、関心の分離をサポートすることで、真の移植性と再利用を実現します。
- 本番環境へのマイグレーション。フレームワークによってミドルウェアモデルの設計要素が生成され、仕様優先の作業モードおよび本番環境へのマイグレーションが可能になります。

