反復型開発・アジャイル開発モデル

eBinderでは、パーシャルロード機能およびタスク生成機能を使用し、タスクごとに単体検証を行います。一つのタスクの単体検証が終わるとシステムに組み込み、システム検証を行います。このサイクルを繰り返して開発を進めていきます。

eBinderは、タスク単位でのデバッグだけでなく、eT-Kernel/ExtendedeMCOS POSIX などのプロセスベースのリアルタイムOSを使った開発もサポートしています。

さらに、マルチコアプロセッサ向けeT-Kernel Multi-Core Editionを使った開発もサポートしています。




反復型開発モデルの開発手順

1. ランタイム環境には、カーネルやミドルウェア、検証済みのユーザコードといった、デバッグの必要のないモジュール群が動作しています。デバッグ対象のプログラムはタスク/モジュール単位で開発します。


2. コンパイル済みのオブジェクトプログラムを、動作中のランタイム環境にパーシャルロードします。


3. パーシャルロードしたオブジェクトを新規タスクとして動的生成します。


4. 動的生成したタスクをタスクレベルデバッガにアタッチし、デバッグします。


5. タスクレベルデバッガを使用してバグが発見されたら、


6. エディタなどを使ってバグを修正します。


7. 修正したコードをリコンパイルします。


8. バグ修正済みのオブジェクトを動作中のランタイム環境にリロードします。 


9. リロードしたオブジェクトを新規タスクとして動的生成し、


10. 生成したタスクをタスクレベルデバッガにアタッチし、デバッグします。


11. タスクレベルデバッガを使用して、バグ修正を確認します。


12. デバッグの完了したオブジェクトをシステムに追加します (静的リンク) 。


13. タスク単位の検証が終わると、今度はシステム解析ツール (EvenTrekPartScopeReal-Time Profiler) などを使って、システム全体の検証を行います。このサイクルを繰り返してシステムの開発を進めていきます。



eT-Kernel/Extended, eMCOS POSIX を使った場合の開発

eBinderは、eT-Kernel/Extendedなどメモリ保護機能/プロセスモデル対応のリアルタイムOSを使った開発もサポートしています。eT-Kernel/Extendedを使った場合の開発について、eBinderが提供する機能や特長などのポイントをまとめます。

プログラムローディング

eT-Kernel/Extendedは、OS自身で動的にプログラムをロードするためのローダを持っています。このローダ機能を使って、プロセスとシステムプログラムをローディングできます。一方、その他のカーネルアプリケーションのローディングには、eBinderが提供するパーシャルロード機能を使うことができます。

デバッグ

eBinderのタスクレベルデバッガでは、eT-Kernel/Extendedのプロセス内の個々のタスクをタスク単位でデバッグできるほか、プロセス内の全タスクを停止させるなどのプロセス単位のデバッグもできます。また、システムプログラムや共有ライブラリ、DLLなど、eT-Kernel/Extendedが取り扱うすべてのプログラムのデバッグが、配置されているアドレスのことなどを意識することなく可能です。

システム解析

eT-Kernel/Extendedを使った場合でも、EvenTrekPartScopeReal-Time Profilerを活用できます。EvenTrekでは、プロセス内のタスク群のトレース情報と、システムプログラムなどのカーネルアプリケーション内のタスクのトレース情報などが取得できます。PartScopeでは、プロセスやロードしたモジュールの情報、プロセス内のタスク情報、プロセスが利用する各種のOS資源情報などが参照できます。

プラットフォーム開発支援

eBinderのプラットフォームパッケージ機能を効果的に活用できます。eT-Kernel/Extendedが特に効果を発揮する、大人数での大規模なシステム開発における分散開発を支援します。プラットフォームパッケージ (PLP) の作成は、eT-Kernel/Extendedに標準で含まれている、プラットフォーム作成用のテンプレート情報を利用することで容易にできます。

eT-Kernel Multi-Core Edition, eMCOS を使った場合の開発

eBinderは、シングルコア向けeT-Kernelと同様に、eT-Kernel Multi-Core Editionを使った開発もサポートしています。シングルコアプロセッサの場合と同様に、タスク単位の反復型開発モデルで開発を進められるほか、SPM/TSM両方のスケジューリングモードのタスク/プロセスのデバッグができます。

タスクレベルデバッグ

マルチコアプロセッサでは、タスク間の同期や排他の正確さが特に必要になります。タスクレベルデバッガを使うことで、こうした設計上の課題を解決できます。タスクレベルデバッガでは、タスク単位のデバッグができます。タスクごとにウィンドウを立ち上げ、システム全体を止めずに個々のタスクをブレークさせたり、ステップ実行させたりしながら複数のタスクの検証が平行してできます。True SMP Mode (SMP型スケジューリング) では対象のタスクが実行されているCPUコアを意識する必要なくデバッグできます。CPUコアが切り替わった時にはeBinderが自動的に追従するため、タスクのデバッグのみに集中できます。またSingle Processor Mode (AMP型スケジューリング) では、従来のシングルコアプロセッサの際と全く同じやり方でデバッグできます。




異なるCPUコア上のプログラム間やシステム全体の解析

eBinderのシステム解析ツールを使うことで、異なるCPUコア上で動作するプログラムの動きが、グラフィカルな遷移図で簡単に確認できます。プログラム間の協調動作の様子や、システム全体の動きを、俯瞰的に捉えることができます。下の図は、4つのCPUコアをもつマルチコアプロセッサ上で動作しているプログラムの解析結果を示したイベントログ取得/解析ツールEvenTrekの様子です。




4つのCPUコア上で動作しているプログラムの実行遷移図です。タスクやオブジェクトが動作しているコアの違いによって、色分けされています。



ある2つのCPUコア上で動作するタスクやオブジェクトの動きに絞って、グラフを表示したものです。このようにEvenTrekでは、特定のCPUコアにフィルターをかけて表示することができます。解析対象を絞ることで、動きが捉えやすくなります。



特定の1つのCPUコア上で動作するタスクとオブジェクトの動きに絞って、グラフを表示したものです。Single Processor Mode (SPM) で動作するプログラムを解析する場合は、通常この表示形態でデバッグを行います。シングルコアプロセッサ向けソフトウェア資産を移行する場合にも、この形態を使って動作確認ができます。