よくある質問(FAQ):ソースコードの生成と読込

「プロジェクトブラウザ」は、バージョン15.0で「モデルブラウザ」に名前が変更になりました。

  1. モデル側から操作や属性を削除した場合でも、ソースコード同期でソースコード側の操作や属性が削除されずに残ってしまう
  2. 構造体を生成したい
  3. ソースコードを日本語EUC(EUC-JP)で出力したい
  4. あるクラスの内部クラスとして別のクラスを定義したい
  5. 既存のソースコードの解析・分析に利用できますか?
  6. ソースコードの読み込みでシーケンス図は生成されますか?
モデル側から操作や属性を削除した場合でも、ソースコード同期でソースコード側の操作や属性が削除されずに残ってしまう
「ホーム」リボン内の「設定」パネルにある「オプション」ボタンを押し、メニューから「ユーザー」を選択して、「属性と操作」のカテゴリにある「コード生成時にモデルにない属性と操作の削除を確認する」にチェックを入れてください。コード生成時に該当する属性や操作がある場合、削除された場合の処理を決めるためのダイアログが表示され、処理方法を決めることができます。
構造体を生成したい
構造体を定義・使用するためには、以下の手順となります。
  1. 通常通りクラスを作成する
  2. 構造体のメンバーを属性として追加する
  3. クラスにステレオタイプstructを設定する
その後、クラス要素を対象にしてソースコード生成を実行すればstructとして出力されます。
ソースコードを日本語EUC(EUC-JP)で出力したい
プロジェクトのオプションダイアログの「ソースコードの生成と読み込み」グループにある「ソースコードの文字コード」で「20932 (JIS X 0208-1990 & 0212-1990)」を指定してください。出力だけでなく、読み込む場合も同様の設定で可能になります。
なお、この「20932」が表示されないマシンの場合には、言語の追加設定を行う必要があります。Windowsの「コントロールパネル」の「地域のオプション」から設定できる「コードページ変換テーブル」一覧から「20932」を追加してください。これにより変換テーブルがインストールされます。
あるクラスの内部クラスとして別のクラスを定義したい
あるクラスの内部クラスとして別のクラス(構造体・列挙定義)を含めたい場合には、モデルブラウザにおいてクラスの子要素として別のクラスを作成するか、ネストの関係で結んでください。このようにすることで、ソースコードの生成時には親クラスのソースファイル内に定義されます。
既存のソースコードの解析・分析に利用できますか?
Enterprise Architectにはソースコードの読み込み機能がありますが、作成したクラス図から生成したソースコードの同期を想定用途としています。解析・分析のための機能としては位置づけておらず、一般的なソースコードの解析・分析ツールのようなさまざまな機能(例: 処理の流れをわかりやすく可視化・属性(変数)の使用位置の把握・利用されていないメソッド(関数)の利用位置・呼び出し関係の把握など)は一切ありません。
Enterprise Architectは設計のためのモデリングツールです。既存のソースコードの解析・分析ツールではありませんので、解析・分析のための機能はありません。こうした解析・分析のためのツールとしてEnterprise Architectにご興味をお持ちいただく場合もありますが、「役に立たない」「解析・分析になっていない」「問題点が見つからない」「ソースコードの内容と完全に同一にならない」などの声をいただきます。解析・分析ツールではありませんので、妥当と思います。
同様に、シーケンス図の自動生成の機能も、動作内容をシーケンス図として可視化する機能であり、ソースコードの内容の可視化の機能ではありません。生成される内容は実際の動作に強く影響されます。(例えば、何らかの最適化が行われている場合、最適化された結果の動作をログとして記録し、シーケンス図を生成します。)
既存のソースコードの解析・分析・可視化のためには、設計のためのツールであるEnterprise Architectではなく、解析・分析のためのツールであるAtScopeUnderstandなどをご利用ください。
ソースコードの読み込みでシーケンス図は生成されますか?
Enterprise Architectでは、ソースコードからのシーケンス図の自動生成には対応しておりません。