システムシミュレーションとは?

チームがシステムシミュレーションを活用して、テストを改善し、開発サイクルを短縮する方法をご紹介します。

 

システムシミュレーションとは?

組み込みシステムのソフトウェア開発およびテストは、多くの場合、ターゲットとなるハードウェアや関連するシステム要素の入手可能性によって制約を受けます。この制約は、長らく製品開発における不変のルールと見なされてきましたが、組み込みシステム事業の足を引っ張っています。市場投入までの遅延、高い資本支出(CapEx)および運営費(OpEx)、そして不十分な品質管理は、顧客の不満を招きます。さらに、現在の方法では、実施できるセキュリティテストの範囲が限られています。

既存の組み込みシステムを複数のハードウェアプラットフォームでサポートする必要性は、開発、テスト、およびIT運用(IT Ops)部門にさらなる負担を強いています。また、企業としてはアジャイル、DevOps、CI/CDといった新しい手法を活用したいと考えていても、物理的なラボ環境での開発やテストという現実が、そうした取り組みの大きな障害となっています。

高度なハードウェアおよびシステムシミュレーションソリューションは、こうした状況全体を一変させます。シミュレーションにより、組織は物理的なハードウェアへの依存によって生じる障害を取り除き、開発サイクルを加速させることができます。

なぜシステムシミュレーションを利用するのか?

  • 組み込み開発において、継続的インテグレーションやDevOpsを実現するには、システムシミュレーションが不可欠です。
  • 複雑なシステムのテストや自動テストの実行は、物理ハードウェア上ではコストがかかり困難ですが、デジタルツインを活用することでこの問題を解決できます。
  • デバイスの導入前および導入後は、仮想ラボが提供する安全かつ管理された環境下で、セキュリティの脆弱性テストを実施する必要があります。

デジタルツインを用いたテストは、物理ハードウェアでのテストよりも容易で、コストも抑えられます。

従来のライフサイクルにおける問題点

図1. 物理的なハードウェアや実験室を使用する場合、所要時間が比較的長く、固有のリスクも比較的高い

開発の遅延

開発者は、ターゲットハードウェアが試作段階から完成するのを待たなければならず、これが開発作業を遅らせ、開発プロセスの自動化を妨げます。テスターも、テストシーケンスを実行するためのターゲットハードウェアやシステムを待たなければならないため、テストサイクルが遅延します。その結果、避けられない急ごしらえのテストスケジュールにより、テストの範囲と期間が制限され、品質とセキュリティの低下を招きます。

こうしたハードウェアはすべて高価であり、設備投資を必要とします。ほとんどの組み込みシステム組織では、誰もがターゲットシステムの不足に悩まされています。人々は機器を利用するために順番待ちを余儀なくされます。たとえ最善の意図があったとしても、新しいハードウェアが「テープアップ」やプロトタイピングの段階を経るには時間がかかります。セットアップや設定にかかる時間は市場投入までのサイクルを長引かせ、収益の伸びを鈍化させ、競争戦略に悪影響を及ぼします。

新しいDevOps手法の導入を阻む要因

サポートチームは、顧客環境を再現できるよう、ターゲットハードウェアを備えたラボを受け取り、設定を行う必要があります。 複数のハードウェアプラットフォーム上で組み込みシステムをサポートする必要性は、すでにスケーラビリティに欠けるこれらの手動プロセスをさらに複雑化させます。例えば、デバイスメーカーは、X86チップ上でLinux OSを実行するエディション、X86上でWindowsを実行するエディション、Arm®チップ上でLinuxを実行するエディションといったデバイスのバリエーションを作成したいと考えるかもしれません。この要件により、開発、テスト、サポートの各チームは、3つの異なるターゲットシステム構成を個別にセットアップする必要があります。構成の数が増えるにつれて、ハードウェアセットアップの維持管理はより複雑になります。

ソフトウェア開発や新技術製品の創出は、DevOps、アジャイル手法、継続的開発/継続的インテグレーション(CI/CD)といった形で、よりアジャイルで協調的、かつ自動化された手法へと移行しつつあります。しかし、ターゲットハードウェアを必要とする現在の実務では、これらのアプローチを用いて組み込みシステムを構築することは事実上不可能です。部門横断的なチームは、同一構成のハードウェア/システムインスタンスに容易にアクセスできなければ、連携して作業を行うことが困難になります。

例えば、ツール、データ、資産を共有できなければ、複雑なシステムのデバッグは困難です。テスターが問題を特定しても、その再現が難しい場合があります。その結果、膠着状態に陥ってしまいます。「私の環境では動作する」という言い訳は、このような状況ではよく聞かれるものです。しかし、品質保証に十分な時間をかけられないまま製品が市場に出回ることになり、結局は顧客が不利益を被ることになります。

ツールの限界

現在利用可能なツールの多くは、ハードウェアや単純なコードの評価を目的としており、複数のデバイスが組み合わさった複雑な組み込みシステムのデバッグを想定して設計されたものではありません。これらのツールは本来の用途では十分に機能しますが、複雑な組み込みシステムのテストや設計に用いると不十分です。その結果、市場投入までの遅延、開発コストの増加、そして収益や市場シェアの損失につながります。

品質とセキュリティの阻害

多くの場合、ハードウェアの不足により、必要な時間を確保するために製品リリースサイクルを延長しない限り、チームは品質とセキュリティを維持するのに十分なテストサイクルや多様なシナリオを実行することができません。 さらに、一部のセキュリティテストは機器に損傷を与える可能性があるため、チームはテストを継続するために代替ハードウェアの到着を待たなければなりません。しかし、新製品の導入遅延は容認できません。製品の提供が遅れると、収益の損失につながるからです。企業は、計画通りに新製品を導入する必要性と、顧客に問題が生じる可能性との間で板挟みになります。顧客の問題はあくまで「潜在的な」ものであり、実際に発生しても後で修正できるため、通常は市場投入のスピードが優先されます。

シミュレーションのメリット

組み込みシステム製品開発のルールは変化しつつあります。Intel® Simics® などのハードウェア/シミュレーションソリューションを活用した仮想ラボにより、開発者、製品設計者、テスターは、短縮された開発サイクルの中で並行して作業を行うことが可能になります。これにより、DevOps を含む、より迅速かつアジャイルな手法を活用できます。テストおよびサポートチームは、ますます拡大するシステム環境のポートフォリオに対応しつつ、不具合や不可解なシステムエラーの原因を深く掘り下げて調査することができます。 チームはシステムの一元的なビューを共有して連携し、ハードウェアとソフトウェアを分離することで、より早期にテストを開始できます。その結果、開発サイクル全体を加速させることができます。

Wind River社は、自社の製品開発にSimicsを採用しています。当社の経験では、Simicsの導入によりテストの自動化率が12,000%向上し、バグ修正の速度が90%向上しました。

詳細はこちら:組み込み開発におけるフルシステムシミュレーションのビジネスケース

結局のところ、システムシミュレーションは組み込みシステム事業の収益性を高めます。シミュレーションにより、製品を市場に迅速に投入でき、開発コストや関連する間接費を削減し、製品をより早く収益化段階へと導きます。競合他社よりも迅速に製品をリリースすることで、市場での競争力も向上します。物理的なラボを維持するために必要な設備投資も大幅に削減されます。適切に運用されれば、Simicsによって実現される仮想ラボは、開発およびテストプロセスに関わるすべての関係者が、より高品質な製品を生み出すことを可能にします。

Enabling the full stack for modern applications and use cases

DevOps

組み込み開発における継続的インテグレーションとDevOpsを実現:

Enabling the full stack for modern applications and use cases

デジタルツイン

デジタルツインを活用して、物理ハードウェアではコストがかかり困難な複雑なシステムのテストやテストの自動化を実現:

Enabling the full stack for modern applications and use cases

セキュリティ

安全かつ管理された環境でセキュリティの脆弱性をテストします。デプロイの前後において、仮想ラボで関連するセキュリティシナリオを徹底的にテストします:

Wind Riverのアプローチ

Intel Simics

図2. Simicsは従来の製品ライフサイクルを短縮します。

Simics を使用することで、開発者はあらゆるターゲットシステムにオンデマンドで簡単にアクセスできるようになり、開発者間のコラボレーションがより効率的になり、自動化もより効率的かつ安定したものになります。これにより、組織はアジャイルかつ継続的な開発プラクティスからビジネス上のメリットを享受できるようになります。その結果、製品ライフサイクルを短縮し、複雑で組み込み型の、接続された大規模な IoT システムであっても、より優れたソフトウェアをより迅速に開発・提供することが可能になります。

企業は、製品ライフサイクルのあらゆる段階でSimicsを活用できます。

  • 設計段階では、チームはさまざまなハードウェア構成を試行し、設計の仮定を確定する前に検証を行うことができます。
  • 開発フェーズでは、開発者は、実環境と全く同じ動作をする仮想システム上でソフトウェアをテストおよび実行できます。
  • テストフェーズでは、ソフトウェアのデバッグに高価なハードウェア環境を必要とせず、仮想ターゲットを完全に制御できるため、問題を効率的に特定できます。
  • プロセス全体を通じて、開発者は実際のターゲットシステムと同じツールチェーン、ライブラリ、OS API、およびOSの挙動を使用して作業を行います。

電子システムの開発、デバッグ、統合、およびテストにおける最大の障害の一つは、ターゲットハードウェアや物理的な実験室が、常に誰もが利用可能な稼働状態にあるとは限らないこと、あるいはそれらへのアクセスに長い待ち時間が伴うことです。そのため、エンジニアはリファレンスボードやホストベースの開発など、理想的とは言えない代替手段で対応せざるを得ません。 Simics を使用すれば、チームメンバーなら誰でも、いつでも、世界中のどこからでも、必要な数のハードウェアを自由に利用できる仮想ラボをオンデマンドで構築できます。さらに、この仮想ラボはシステムの一部にとどまらず、システム全体を再現することが可能です。これにより、ユーザーはシステムの一部ではなく、完全なシステムという文脈の中で作業を行うことができます。

Intel および Simics は、Intel Corporation またはその子会社の商標です。

» 詳細はこちら