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

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

 

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

組込みシステムのソフトウェア開発とテストは、しばしばターゲットハードウェアとシステム関連要素の入手状況に制約されることがあります。長い間、製品開発の不変のルールと見なされてきたこの制約は、組込みシステムビジネスを遅らせる要因です。市場投入までの時間の遅さ、高い設備投資と運用費(CapExとOpEx)、最適ではない品質管理は顧客を満足させることはできません。さらに、現在の方法では、限られた範囲のセキュリティテストしか行えません。

複数のハードウェアプラットフォームにまたがる、既存の組込みシステムをサポートする必要性は、開発、テスト、ITオペレーション(IT Ops)部門にさらに大きなストレスを与えます。また、ビジネスとしては、アジャイル、DevOps、CI/CDなどの新しい手法を利用したいと思うかもしれませんが、物理的なラボでの開発とテストはそれらの大きな障害となります。

先進のハードウェアおよびシステムシミュレーションソリューションは、この状況を改革します。シミュレーションにより、物理的なハードウェアへの依存から生じる障害を取り除き、開発サイクルの短縮を可能にします。

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

  • 組込み開発において、継続的な統合やDevOpsを実現するためには、システムシミュレーションが必要です。
  • 複雑なシステムのテストや自動テストの実行は、物理的なハードウェアではコストがかかり困難ですが、デジタルツインを使用することでその問題を解決することができます。
  • セキュリティの脆弱性は、デバイスのデプロイ前も、その後も、安全な管理された環境でテストする必要があります。バーチャルラボがそれを提供します。

デジタルツインでのテストは、物理的なハードウェアでのテストよりも
簡単で、コストも低く抑えられます。

従来のライフサイクルの問題点

図1. 物理的なハードウェアやラボを使用する場合、時間的な要件や固有のリスクが比較的大きくなります。

開発の遅延

開発者は、試作品製造からターゲットとなるハードウェアが出てくるのを待つ必要があり、開発作業の遅延や開発プロセスの自動化の妨げとなります。テスト担当者もまた、ターゲットハードウェアやシステムがテストシーケンスを実行するのを待たなければならず、テストサイクルを遅らせます。そして、テストスケジュールは必然的に急いで行うことになるため、テストの範囲と期間を制限し、品質とセキュリティを低下させる結果となります。

これらのハードウェアはすべてコストが高く、設備投資が必要になります。ほとんどの組込みシステムに関わる組織では、誰もがターゲットシステムの希少性に苦しんでいます。人々は機器を入手するために列をなして待っているのです。新しいハードウェアは誠心誠意で取り組んだとしても、「部品集め」と試作を行うのに時間がかかります。セットアップや設定に時間がかかると、市場投入までのサイクルが長くなり、収益の伸びを鈍らせ、競争戦略に悪影響を及ぼします。

新しいDevops手法を妨げるもの

サポートチームは、顧客環境を模倣できるように、ターゲットハードウェアを受け取り、そのターゲットに特化したラボを設定する必要があります。複数のハードウェアプラットフォームで組込みシステムをサポートするという必要性は、すでに拡張不可能な手作業のプロセスをさらに悪化させます。たとえば、デバイスメーカーが、X86 チップ上でLinux OSが動作する、X86上でWindowsが動作する、および Arm®チップ上でLinuxが動作するといった、それぞれのデバイス版を作成したいと思うでしょう。この場合、開発、テスト、サポートの各チームは、ターゲットシステムの設定を3つに分けてセットアップする必要があります。ハードウェアのセットアップの管理は、構成が増えるにつれて複雑になっていきます。

ソフトウェア開発および新技術による製品づくりは、DevOps、アジャイル手法、継続的インテグレーションと継続的デリバリー(CI/CD)といった形で、よりアジャイルで協調的、かつ自動化された手法へと移行しています。しかし、これらのアプローチを用いた組込みシステム構築は、ターゲットハードウェアを必要とする現在の手法では事実上不可能です。同一構成のハードウェアやシステムインスタンスに簡単にアクセスできない場合、クロスファンクショナルチームでの共同作業は困難となります。

例えば、ツール、データ、資産を共有しなければ、複雑なシステムをデバッグするのは一苦労です。テスターが問題を発見しても、それを再現するのは困難です。その結果、足並みが乱れることになります。このシナリオでは、「私のところではうまくいっている」というのがよく言われることです。しかし、品質保証に必要な時間をかけられないまま製品が市場に出てしまうと、被害を受けるのは顧客なのです。

ツールの制限

現在利用可能なツールの多くは、ハードウェアや単純なコードの評価を目的としており、複数のデバイスの組み合わせを含む複雑な組込みシステムのデバッグ用ではありません。これらのツールは、意図した環境ではうまく機能しますが、複雑な組込みシステムのテストや設計に使用する場合には、不十分です。その結果、市場投入までの時間が遅れ、開発コストが増大し、収益と市場シェアが失われています。

品質と安全性の妨げ

多くの場合、ハードウェアの不足により、チームは品質とセキュリティを維持するために十分なテストサイクルと多様なシナリオを実行することができません。製品のデリバリーサイクルは必要な時間に合わせて拡張されない限りは不可能です。さらに、中には機器にダメージを与える可能性のあるセキュリティテストもあり、その場合、テストの継続のためには、ハードウェアの交換を待たなければなりません。しかし、新製品の発売の遅延は、収益の減少につながるため、許されません。新製品を計画通りに導入することと、顧客とのトラブルの可能性の間で企業は悩むことになります。顧客とのトラブルはあくまで「可能性」であり、発生しても後で解決できるため、通常は市場投入のスピードが優先されます。

シミュレーションの利点

組込みシステム製品開発のルールが変わりつつあります。Wind River® Simics®などのハードウェア/シミュレーションソリューションを使用したバーチャルラボでは、開発者、製品設計者、テスト担当者が時間サイクルを圧縮して並行して作業することが可能です。また、DevOpsを含め、より高速でよりアジャイルな手法を活用することができます。テストおよびサポートチームは、拡大し続けるシステム環境のポートフォリオをサポートしながら、障害や不可解なシステムエラーをより深く掘り下げることができます。1つのシステム画面をチーム間で共有し、また、ハードウェアとソフトウェアを切り離すことで、テストをより早く開始することができます。その結果、開発サイクル全体が加速されます。

ウインドリバーは、自社の製品開発にSimicsを使用しています。我々の経験では、Simicsによってテストの自動化が12,000%向上し、バグ修正が90%高速化しました。

The Business Case for Full System Simulation in Embedded Developmentを読む

最終的に、システムシミュレーションは、組込みシステムビジネスの収益性を向上させます。シミュレーションにより、製品をより早く市場に投入し、開発コストと関連するコストを節約し、製品をより早く収益段階へ移行させることができます。競合他社よりも早く製品をリリースすることで、競争上の地位も向上します。また、物理的なラボを運営するために必要な資本投資が大幅に削減されます。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 Simics

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

Simicsにより、開発者はあらゆるターゲットシステムへのオンデマンドかつ容易なアクセス、開発者間のより効率的なコラボレーション、より効率的で安定した自動化を実現し、組織はアジャイル開発と継続的開発の実践による利益を得ます。製品ライフサイクルを短縮できるため、複雑な、組込みの、インターネットに接続された、大規模なIoTシステムであっても、より良いソフトウェアをより早く作成し、提供することができます。

  • 設計段階では、様々なハードウェアの設定を試し、設計上の想定を確定する前に検証することができます。
  • 開発段階では、物理世界と全く同じ動作をするとされる仮想システム上で、ソフトウェアのテストや実行を行うことができます。
  • テスト段階では、高価なハードウェアのセットアップを必要としないソフトウェアデバッグが可能であり、仮想ターゲットを完全に制御することで、問題の切り分けを効率的に行うことができます。
  • 開発者は全工程を通じて、ツールチェーン、ライブラリ、オペレーティングシステムAPI、およびオペレーティングシステムの動作が、すべて同じである実際のターゲットシステムで作業します。

電子システムの開発、デバッグ、インテグレーション、テストにおいて最大の障害の1つは、ターゲットとなるハードウェアや物理的なラボが必ずしも誰でも使える状態でないこと、またはそれらを利用するには長い待ち時間がかかることです。このため、エンジニアはリファレンスボードやホストベースの開発など、あまり理想的ではない代用品でやりくりしなければなりません。Simicsを使えば、どのチームメンバーでも、いつでも、世界中のどこからでも、どのような量のハードウェアでも、オンデマンドで利用できるバーチャルラボが使えます。さらに、バーチャルラボはシステムの一部分ではなく、システム全体とすることも可能です。これにより、ユーザは一部分ではなく、完全なシステムの中で仕事をすることができます。

» 詳細はこちら