- 近年、組込みシステムソフトウェア開発の分野においても、オブジェクト指向による開発の波が押し寄せてきています。UML(Unified Modeling Language)とはグローバルスタンダードなオブジェクト指向の表記法であり、各分野で広く使用されています。
- UMLステートチャートの信頼性
組込みシステムでは、「いつ」、「何処で」、「何をする」のかを明確にする必要があり、ここをおろそかにすると致命的なバグの元になります。
いつ、何処で、何をするのかを設計する場合に、UMLではステートチャートで設計します。ステートチャートは、処理の概念(流れ)を把握しやすいのですが、網羅的ではありません。したがって、予期しないイベントが発生してた際の動作を見逃しやすく、致命的なバグの元になります。
- UMLステートチャートの信頼性
状態遷移表では、事象と状態の組が網羅的に表現されています。UMLのステートチャートを状態遷移表(STM: State Transition Matrix) へ変換することで、「モレ・ヌケ」のない設計をします。

概要
- 状態遷移表の採用
- モデルからコードの自動生成
- モデルベースの試験機能
ZIPC++はUMLに対応するCASEツールです。

- ZIPC++連携UMLモデリングツール
ZIPC++は、各社のUMLモデリングツールと連係動作を行なうことができるので、UMLによる組込みシステム開発の統合開発環境として機能します。
| ツール名 | メーカー名 | |
|---|---|---|
| IBM Rational Rose | 日本アイ・ビー・エム株式会社 | |
| Enterprise Architect | スパークスシステムズジャパン株式会社 |

- STEP1 Rational RoseツールによりUMLモデリングを行います。
- STEP2 ZIPC++により状態遷移表を用いて設計をします。
- STEP3 UMLモデルと状態遷移表からコードを自動生成します。
- STEP4 アニメータ機能により、モデルを動的に試験します。(RTOSおよびバーチャルターゲットと連動した試験も行えます。)

詳細
- ビヘイビアコンバータ
- UMLのクラスビヘイビアであるステートチャート情報は、状態遷移表へ自動変換を行なうことができます。
- これにより、処理の流れをステートチャートで設計後、状態遷移表に情報コンバートして、モレ/ヌケのない設計を行えます。また状態遷移表からステートチャートへのコンバートも可能です。

- モデルチェッカ
- コードジェネレーションする際のモデルチェックを行います。
- チェック対象は、UMLのクラス情報と状態遷移表となります。クラス情報は主に未記入チェックを行い、状態遷移表チェックは、構文チェック/整合性チェックを行います。構文チェックは、未記入や書式等のチェックを行い、整合性チェックでは、状態遷移先存在チェックや状態未到達チェック、状態から遷移しない等のチェックを行います。
- また、表示されるエラーや警告を選択すると、モデルへジャンプし、問題個所が一目でわかります。モデルチェッカにより、設計段階での不具合を早期に発見し、後工程での手戻りを未然に防ぐことができます。

- コードジェネレータ
- コードジェネレータは、UML モデルのクラス情報とクラスビヘイビアの状態遷移表から、C++ の実行可能なコードを自動生成します。
- 状態遷移表からもコード生成を行なうため、スケルトンではなく実行可能なコード生成が可能になります。コードジェネレータによる状態遷移ロジックは、組込みシステムに適したコードサイズ、スピードに優れたアルゴリズムで生成されます。
- 生成コードは、UML モデル情報のファイル項目へ追加され、モデル上からコードを管理できます。
- また、様々なコード生成オプションにより、ユーザ任意なプロダクションレベルのコード自動生成が可能となります。
①生成対象チェック
②生成コードシンボル指定
③コンストラクタ/コピーコンストラクタ/デストラクタ生成
④代入/比較オペレーション生成・関連/依存のインクルード生成
⑤アトリビュートの set/get 関数生成
⑥オペレーションのインライン生成
⑦関連の生成、set/get 関数生成
- また、生成されたコードには保護領域が存在し、コードのカスタマイズ後に再度コード自動生成を行った場合でも、変更した内容をそのまま残すことができます。

- モデルリバース
- コードジェネレータで生成されたソースコードに変更を加えた場合、ソースコードの変更内容をモデルへ反映(ラウンドトリップ)することが可能です。
- 通常、ソースコードに変更がある場合、モデルを修正してから再度コードジェネレーションを行いますが、ターゲット環境上などでモデルを変更できない場合など、直接ソースコードを変更しても、後でモデルリバースを行うことにより、モデルとコードの一体化が可能となります。

- アニメータ
- コードジェネレータで生成されたソースコードを実行し、デバッグを行うツールです。アニメータでコードを実行すると、実行過程を状態遷移表にビジュアルに表示します。これにより、現在どのような状態で何が実行されているのかが視覚的に解ります。
- アニメータは、実行環境を作成するために、コンパイラ/デバッガとしてMicrosoft Visual C++ を使用します。
- Visual C++と連動することによりモデルとコード双方の視点から同時にデバッグを行なうことができます。
※Visual C++との連動デバッグ機能は.NETのみ対応
- アニメータは、実行環境を実行して、ビジュアルに実行過程を表示するだけではなく、状態遷移表上からブレイク設定や、イベント発行なども行えます。また、実行結果をログとして保存でき、ログから状態遷移表カバレッジなどの算出、RTOS (Win32、ITRON) を含めた動作が可能になっています。
- これらの機能により、モデルベースでデバッグが可能となり、視覚的にも解りやすく、状態遷移表上でもデバッグ機能が使えるので、ソースコードのみでデバッグするよりも、格段にデバッグ効率が上がります。

- バーチャルターゲット
- Visual BasicやVisual C++ などで作成したGUIと連携をするための仕組みが完備されており、バーチャルターゲットを操作しながらのモデル検証が行えます。これにより、アニメータでのモデルベースデバッグに加え、更に直感的に画期的な検証を行うことができます。

- RTOSフレームワーク
- RTOSフレームワークは、RTOSシステムコールをラップしたクラスライブラリ群で構成されます。
- RTOSは標準でWin32とμITRONに対応しています。RTOSを抽象化することで、純粋なモデル部分とRTOS部分の切り分けが容易になるため、ユーザーはシステムコール部を差し替えることによりターゲット変更なども容易に行えます。コードジェネレータの生成するコードは、常にRTOSフレームワークをシステムコールのインターフェースとします。
- アニメータ実行環境では、動作RTOSとしてWin32とμITRON3.0(ItIs)に対応しており、ITRONはWindows上で動作するITRON OSを完備することで、Windows上でもITRONを含む検証が行えます。独自RTOSを利用している場合は、Windows上で動作するように設定することで、独自RTOSも含めた検証を行うことが出来ます。
※TOPPERS(μITRON4.0)は将来対応予定

ZIPC++は次の環境で動作します。
| OS | 日本語 Windows 2000/XP/Vista |
|---|---|
| CPU | 上記 OS が快適に動作する環境 |
| メモリ | 上記 OS が快適に動作する環境 |
| ディスク容量 | 約120MBの空き容量 (インストール時) |
| UMLツール | 以下の対応するUMLモデリングツールがインストールされていること ・IBM Rational Rose ・Enterprise Architect |
| その他 | アニメータ機能の使用には、Microsoft Visual C++ 6.0/.NET2002/.NET2003/2005(SP1) が必要です。 バーチャルターゲット機能の使用には、Microsoft Visual Basic 6.0/.NET2002/.NET2003/2005(SP1)、または、Microsoft Visual C++ 6.0/.NET2002/.NET2003/2005(SP1) が必要です。 |
対応Rational Rose製品 (日本IBM社製)
| IBM Rational Rose 2000/2001/2002/2003/V7 |
Modeler Edition |
|---|---|
| Professional Edition | |
| Enterprise Edition | |
| Developer Edition | |
| Technical Developer Edition | |
| ※XDEシリーズの上記コンポーネント製品を含む |
対応Enterprise Architect製品 (スパークスシステムジャパン社製)
| Enterprise Architect5.0以降 (動作確認済:5.0/6.0/6.1/6.5/7.1/7.5) |
デスクトップ版 |
|---|---|
| プロフェッショナル版 | |
| コーポレート版 | |
| フローティングコーポレート版 |
※Enterprise Architect 4.xをご使用の場合は機能が制限されます。
※Enterprise Architect 7.5をご使用の場合は、Enterprise Architect Suiteの各エディション(ビジネスモデリング版/システムエンジニアリング版/アルティメット版)に対応します。










