組込み設計開発でEnterprise Architectを利用するメリット

Enterprise Architectは、いわゆる組込み機器の設計開発のためにも広く利用されています。このように多くの組込み機器の設計開発に利用される理由として考えられる点は、以下のものがあります。
- C言語・C++言語への対応
(「Enterprise Architect Suite システムエンジニアリング版」では、VHDL・Verilog・SystemCにも対応) - ステートマシン図と状態遷移表の相互変換
- コード生成のカスタマイズ
- タイミング図への対応
- 再利用のための仕組みの提供
なお、Enterprise Architectの概要とメリットは、こちらでも紹介しています。あわせてご覧ください。
C言語・C++言語への対応
Enterprise Architectは、プロフェッショナル版以降で、C言語・C++言語を含む10種類の言語に対応しています。C言語は、1つのファイルを1つのクラスとして表現する方式(既定値)および、オブジェクト指向の概念をある程度反映できる方式を選択できます。
(この設定を変更する場合には、メインメニューから「ツール」→「オプション」で表示されるオプションダイアログからC言語の設定グループを表示し、「オブジェクト指向のサポート」を「True」に設定します。)
なお、「Enterprise Architect Suite システムエンジニアリング版」(あるいはアルティメット版)を利用することで、Ada・SystemC・Verilog・VHDLのソースコードを解析してクラス図を生成することができます。また、これらの言語およびC言語・C++などの言語を対象に、振る舞い図(ステートマシン図・アクティビティ図・シーケンス図)からソースコードを生成することも可能です。
2011年11月の「組込み総合技術展」(ET2011)で紹介しましたソリューション「リファクタリング・派生開発に役立つ効率的なC/C++ソースコード解析」のページもご覧ください。
ステートマシン図と状態遷移表の相互変換
Enterprise Architectのステートマシン図は、状態遷移表として表示することもできます。また、ステートマシン図で編集した内容は、即時に状態遷移表に反映されます。逆に、状態遷移表で編集した場合には、ステートマシン図に反映されます。(→詳細説明)
このように密接に連携していますので、UMLのステートマシン図で設計を行い、状態遷移表で検討漏れのチェックを行い即時に編集し、UMLのステートマシン図に戻り図の形を整える、というような設計作業が可能です。
ステートマシン図に関係する機能については、こちらのページに情報をまとめています。また、状態遷移設計についてまとめたPDFドキュメント「ステートマシン図の整合性確保 マニュアル」や、2011年11月に出展しました「組込み総合技術展」で紹介しましたソリューション「効率的に・確実に状態遷移設計の品質を確保」のページもご覧ください。
コード生成のカスタマイズ
Enterprise Architectでクラス図からコード生成を行う場合の生成結果については、自由にカスタマイズすることができます。クラス図からコードを生成する際の処理内容は「テンプレート」という形になっています。このテンプレートを編集することで、特定の環境に対応するようなC言語やC++言語のコード生成を行うこともできます。
タイミング図への対応
Enterprise Architectは、UML2.4.1のタイミング図に対応しています。タイミング図では、複数の状態を持つ項目間でのメッセージのやり取りと、状態の変化をわかりやすく表現することができます。このような処理は、組込み機器の設計は含まれることが多くあります。
Enterprise Architectのタイミング図は、マウス操作でメッセージを作成できます。作成したタイミング図の内容は、ドラッグ操作で簡単に編集できます。

再利用のための仕組みの提供
Enterprise Architectは、情報のリサイクルツール「ARCSeeker」と簡単に連携できます。Enterprise Architectで作成した設計モデルに、関連する資料を含めてまとめて「コンポーネント」として蓄積し、管理・再利用(リサイクル)することができるようになります。詳細はこちらをご覧ください。
大規模な設計開発においては、設計情報を可能な範囲でリサイクルすることで、効率を上げたり品質を向上したりできる可能性が高まります。また、情報が各自のマシンにのみ保管され、他の人がその情報の存在を認知できない問題も発生します。ARCSeekerを利用することで、このような問題を回避することのできる環境を構築することができます、