テストと実行
物理システムの制約を受けずに、ソフトウェアを仮想システム上で、物理システム上と同じように実行できます。
- 仮想システム上で実行するソフトウェアバイナリは、実ターゲットで実行するバイナリと同じです。そのうえ、開発者全員が最初からそのバイナリを実行できます。
- 仮想ターゲット上で動作する実際のソフトウェアを、HIL(hardware-in-the-loop)やSIL(simulation-in-the-loop)セットアップで統合することが可能です。
- 実環境の要因を使って組込みソフトウェアシステムをテストするため、実際の使用シナリオをテストできます。
Simicsのディターミニズムにより、完璧な再現性が得られます。仮想ターゲットで見つかった不具合は、環境に関係なく常に再現可能です。
デバッグ
Simicsでは、問題の切り分けや解析作業が格段に効率化されます。
- ハードウェアにアクセスせずに、仮想ターゲットを完全に制御しながら、すべてのソフトウェア(BIOS、ドライバ、低レベルのソフトウェア、OSレベルのコードなど)のデバッグを行えます。
- システムの実行、停止、シングルステップ実行、逆実行により、不具合の発生場所と原因を正確に特定し、その結果得られたセットアップや解析内容を世界中のチームメンバーにメールで送信できます。
Simicsのディターミニズムにより、完璧な再現性が得られます。仮想ターゲットで見つかった不具合は、環境に関係なく常に再現可能です。
開発
Simicsでは、アプリケーション開発の最初から、ツールチェーン、ライブラリ、OS API、OS動作が同じである実ターゲットを使用できます。このため、異なるツールチェーンを使用して、コードを実ターゲット用にコンパイルしてターゲットシステムに統合するまで不具合が見つからないという問題が解消されます。開発者が最初から実ターゲットを使用することで、開発プロセスの後半にエラーが見つかってコストがかさむ事態を回避できます。
仮想ターゲットでは、ハードウェアの数が不足することも、複雑なコンフィギュレーションや異なるセットアップを管理することもありません。ハードウェアが動作しなかったり、高い費用をかけて配送したりする必要もありません。
共有
製品ライフサイクルのすべての段階で、仮想システムを活用して、製品ユーザを支援できます。
- 社内の開発グループは実ボードの設計中に、プラットフォームインテグレーション担当者やアプリケーション開発チームに、仮想ボードを提供できます。
- プログラムの異なる部分を担当するパートナー企業間で、開発用共通システムを共有できます。
- ハードウェアベンダは、試作チップの完成前に、顧客に新製品を先行体験してもらうことができます。
- 営業では、新製品の販売前にデモを行えるので、製品の発売から収益を上げるまでの時間のずれを縮小できます。
- 営業、顧客対応、パートナー対応、トレーニング部門の業務チームでは、ハードウェアのシミュレーションをチーム内に配備することで、大きなパワーアップを図れます。
コンフィギュレーション
Simicsでは、ターゲットシステムのセットアップはソフトウェアだけです。そのため、スクリプトやSimicsモジュールを使って、簡単なものから複雑なものまで、ターゲットシステムのほぼすべてのパラメータを制御できます。
- 数に制限なくボードをセットアップできます。コンフィギュレーションを変更するために、ラボに出向く必要がありません。
- 複数のコンフィギュレーションを簡単に保存して、任意のセットアップを即座に再現できます。
- コンフィギュレーションは現在も将来も、世界中のどこでも同じように機能します。
- 稼働システムの仮想バージョンを最新の状態に保っておくことで、ハードウェアやソフトウェアの更新のテスト、変更の実施、製品のバージョンアップに利用できます。
- 顧客サービス部門では、すべての顧客のコンフィギュレーションをすぐに用意できるので、簡単にエラーを再現して、顧客のトラブルを解決できます。
コミュニケーション
Simicsでは、システムのハードウェア、ソフトウェア、現在の状態、実行履歴を単一のまとまりとして捉え、チームのメンバーなら世界のどこからでも簡単にコピー、送受信、再現することが可能です。
Simicsなら、開発、テスト、インテグレーション、サポート、メンテナンスの各チーム間のコミュニケーションがスムーズに行えます。デバイスモデル、ターゲットコンフィギュレーション、システムセットアップ、自動化スクリプト、チェックポイント、トラフィックの記録、デバッグコンフィギュレーションといったSimicsの資産は、ユーザやチームの間で簡単に共有できます。
Simicsのチェックポイントとディターミニズムを利用して、エラーが生じるテストケースを開発者のマシン上で、サイクルまで完全な精度で、確実に再現できます。