Generate and import source codes by SparxSystems Japan Enterprise Architect 日 本 語 版 ソースコードの 読 み 込 みと 生 成 機 能 ガイド (2015/12/01 最 終 更 新 )
1. はじめに このドキュメントでは ソースコードの 読 み 込 みと 生 成 の 操 作 方 法 について 説 明 します なお ソースコードの 読 み 込 みと 生 成 は Enterprise Architect デスクトップ 版 では 利 用 できません 2. ソースコードの 読 み 込 みと 生 成 機 能 の 概 要 2.1. エディションの 種 類 と 利 用 できる 機 能 Enterprise Architect には ソースコードと UML モデルに 関 連 する 機 能 が 搭 載 されていま す この 機 能 は Enterprise Architect のエディションによって 以 下 のようになっています Enterprise Architect プロフェッショナル 版 コーポレート 版 クラス 図 からソースコードを 生 成 することと 既 存 のソースコードを 読 み 込 んでクラス 図 を 生 成 することができます 対 象 の 言 語 は Java, C#, C++, C, VB.Net, Delphi, PHP, Python, ActionScript, Visual Basic です Enterprise Architect Suite ビジネスモデリング 版 プロフェッショナル 版 の 内 容 に 加 えて Java, C++, C#, VisualBasic.NET, C 言 語 (オブジ ェクト 指 向 モードのみ)の 言 語 について シーケンス 図 アクティビティ 図 ステートマシ ン 図 の 3 つの 振 る 舞 い 図 からのコード 生 成 機 能 が 利 用 できます また ビジネスルール からのコード 生 成 機 能 が 利 用 できます この 機 能 については PDF ドキュメント ビジネスルールからのコード 生 成 機 能 ガイド をご 覧 ください http://www.sparxsystems.jp/products/ea/ea_documents.htm Enterprise Architect Suite システムエンジニアリング 版
プロフェッショナル 版 の 内 容 に 加 えて Ada, SystemC, Verilog, VHDL のソースコード を 読 み 込 んでクラス 図 を 作 成 することと クラス 図 から Ada, SystemC, Verilog, VHDL の ソースコードを 生 成 することができます また SystemC, Verilog, VHDL, Java, C++, C#, VisualBasic.NET, C 言 語 (オブジェクト 指 向 モードのみ)の 言 語 について シーケンス 図 アクティビティ 図 ステートマシン 図 の 3 つの 振 る 舞 い 図 からのコード 生 成 機 能 が 利 用 できます Enterprise Architect Suite アルティメット 版 上 記 の 全 ての 機 能 を 利 用 することができます 2.2. 機 能 の 概 要 2.2.1. ソースコードの 読 み 込 み Enterprise Architect のソースコードの 読 み 込 み 機 能 は ソースコードからクラス 図 を 生 成 することができます Enterprise Architect Suite シリーズで 利 用 できる 振 る 舞 い 図 からのソースコード 生 成 機 能 で 生 成 したソースコードを 読 み 込 んで シーケンス 図 やステートマシン 図 に 反 映 するこ とはできません (この 振 る 舞 い 図 からのソースコード 生 成 機 能 は UML モデルからソースコードへの 一 方 向 のみとなります ) ソースコードの 読 み 込 みでは メソッド( 操 作 )の 内 部 ( 処 理 部 分 )は 解 析 の 対 象 になりませ ん なお オプション 設 定 を 変 更 することで メソッドの 内 部 のコードをクラスの 操 作 (メ ソッド)の 情 報 の 一 つとして 取 り 込 むことは 可 能 です ( 設 定 は 6 章 をご 覧 下 さい ) 読 み 込 むソースコードの 文 字 コードが SHIFT_JIS 以 外 の 場 合 には 事 前 に 第 6 章 の 内 容 をご 覧 になり 設 定 を 変 更 してください 2.2.2. ソースコードの 生 成 Enterprise Architect のソースコード 生 成 は 基 本 的 にはクラス 図 から ソースコードの スケルトン の 出 力 となります(C 言 語 や C++ 言 語 における ヘッダファイル の 情 報 の
みを 出 力 します) メソッドの 内 部 については 空 になります クラス 図 で 定 義 されている 関 連 や 汎 化 などの 関 係 がソースコードに 反 映 されます ( 各 操 作 のプロパティ 画 面 の 振 る 舞 い グループにある 既 定 のソースコード の 欄 に 入 力 された 内 容 は ソースコードの 新 規 生 成 時 に 操 作 (メソッド)の 実 装 として 出 力 されます すでにソースコードがある 場 合 の 同 期 処 理 の 場 合 には この 内 容 は 反 映 されません ) なお ステートマシン 図 からのソースコード 生 成 については ドキュメント ステート マシン 図 からのコード 生 成 機 能 ガイド を シーケンス 図 やアクティビティ 図 からのソー スコード 生 成 については ドキュメント アクティビティ 図 シーケンス 図 からのコード 生 成 機 能 ガイド をご 覧 下 さい http://www.sparxsystems.jp/products/ea/ea_documents.htm 生 成 するソースコードや 読 み 込 むソースコードの 文 字 コードを SHIFT_JIS 以 外 の 変 更 したい 場 合 には 事 前 に 第 6 章 の 内 容 をご 覧 になり 設 定 を 変 更 してください 3. クラス 図 からソースコードを 生 成 する 手 順 まず 作 成 したクラス 図 からソースコードを 生 成 する 方 法 について 説 明 します 最 初 に クラスに 対 する 設 定 を 行 う 必 要 があります 今 回 の 例 では 以 下 のようなクラスを 対 象 に 説 明 します( 図 1) ParentClass + Parent_op1() :int SampleClass - att1 :int = 0 - att2 :double ::ParentClass + Parent_op1() :int 図 1 クラスの 設 定 を 行 うには 対 象 のクラスのプロパティを 開 きます 言 語 のドロップダ ウンリストから 希 望 する 言 語 を 選 択 します( 図 2)
図 2 以 上 で ここで 行 う 設 定 は 完 了 です 3.1. 単 一 のクラスに 対 してコードを 生 成 する 次 に このクラスのソースコードを 出 力 します 対 象 のクラスを 右 クリックして ソー スコードの 生 成 と 読 み 込 み ソースコードの 生 成 を 選 択 します すると ソースコードの 生 成 画 面 が 表 示 されます( 図 4) 対 象 の 言 語 に 先 ほど 設 定 した 言 語 が 表 示 されていることを 確 認 してください
図 4 この 画 面 の 上 部 の パス は 実 際 に 出 力 されるファイル 名 です 右 端 の ボタン を 押 して 出 力 する 位 置 を 指 定 します また 下 にある インポートおよびヘッダ は 無 条 件 にファイルの 先 頭 に 付 加 する 文 字 列 を 指 定 します 例 えば Java の 場 合 には import 文 C++の 場 合 には 共 通 ライブラリのヘッダの include などを 記 入 します なお Java の ように 生 成 するファイルが 1 つのみの 場 合 には 上 段 のエディットボックスを 利 用 してく ださい C++のように ヘッダファイル(.h)とプログラムソースファイル(.cpp)が 分 かれて いる 場 合 には 上 段 がヘッダファイルで 下 段 がソースファイルに 対 応 します 基 本 的 には この 画 面 ではパスのみを 設 定 します なお パス 情 報 は 保 存 されますので 以 前 に 生 成 したことがある 場 合 には その 情 報 が 設 定 されています 設 定 が 完 了 したら 生 成 ボタンを 押 します ソースコードを 確 認 する 簡 単 な 方 法 として Enterprise Architect の 内 部 で 表 示 する 方 法 があります 対 象 の 要 素 を 右 クリックして ソースコードの 生 成 と 読 み 込 み ソース コードの 表 示 を 選 択 して 下 さい タブとしてソースコードが 表 示 されます このタブはエディタになっていますので 簡 易 な 編 集 も 可 能 です 3.2. まとめてソースコードを 生 成 する 以 上 の 方 法 で ひとつのクラスに 対 してソースコードを 生 成 することができますが ク
ラスの 数 が 多 い 場 合 には この 方 法 でソースコードを 生 成 するのは 手 間 がかかります そ こで パッケージ 単 位 でソースコードを 生 成 する 方 法 について 説 明 します なお この 方 法 を 利 用 する 場 合 でも それぞれのクラスごとに 言 語 を 設 定 する 必 要 があ ります クラスが 生 成 される 際 の 既 定 の 言 語 を 設 定 することができますので 利 用 する 言 語 が 決 まっている 場 合 には 最 初 に 設 定 してください メインメニューから プロジェクト プロジェクトのオプション を 選 択 し プロ ジェクトのオプション 画 面 を 表 示 させます 左 側 のツリーから ソースコードの 生 成 と 読 み 込 み カテゴリを 選 択 すると 右 側 に コード 生 成 の 既 定 言 語 という 選 択 肢 がありま す このドロップダウンリストから 希 望 する 言 語 を 設 定 した 後 にクラスを 作 成 すれば クラスの 言 語 が 自 動 的 に 設 定 されます( 図 5) なお 既 存 のクラス 要 素 の 設 定 には 影 響 しま せん 既 に 作 成 済 みのクラスの 言 語 の 設 定 を 一 括 変 更 する 方 法 は ヘルプファイルの パ ッケージ 内 のクラスの 設 定 を 一 括 変 更 のページをご 覧 下 さい 図 5 それでは パッケージを 対 象 に 一 括 コード 生 成 を 行 う 方 法 を 説 明 します プロジェクト ブラウザから 対 象 となるパッケージを 選 択 し 右 クリックしてコンテキストメニューを 表
示 させます このメニューから ソースコードの 生 成 と 読 み 込 み ソースコードの 生 成 を 選 択 してください すると ソースコードの 生 成 (パッケージ) 画 面 が 表 示 されま す( 図 6) 図 6 この 画 面 で 設 定 する 必 要 のある 主 な 項 目 について 説 明 します まず 生 成 対 象 の 要 素 の 一 覧 は 対 象 となるクラスやインターフェースの 名 前 と 種 類 出 力 ファイルパスが 表 示 されています この 一 覧 は 既 定 値 ですべての 項 目 が 選 択 状 態 になっています この 選 択 を 解 除 すると 生 成 の 対 象 外 となります 必 要 に 応 じて この 一 覧 から 出 力 したいクラスを 選 択 してください このときに すべて 選 択 すべて 非 選 択 のボタンが 便 利 です ま た 指 定 したパッケージの 子 パッケージに 含 まれるクラスをまとめて 出 力 したい 場 合 には 子 パッケージをすべて 含 む にチェックを 入 れてください 自 動 的 にクラスやインター フェースを 検 索 して 一 覧 を 更 新 します なお 上 記 図 6 の 例 ですと PaentClass はターゲットファイルが 指 定 されていません このような 場 合 に 生 成 を 実 行 すると 実 行 時 に 出 力 する 位 置 とファイル 名 を 入 力 する 必 要 があります 一 括 で 出 力 する 場 合 に ファイルパスをまとめて 指 定 したい 場 合 もあると 思 います こ のような 場 合 には ファイルパスの 自 動 生 成 にチェックを 入 れてください ディレクト
リの 位 置 を 指 定 する 画 面 が 表 示 されますので 希 望 する 位 置 を 指 定 してください すると 現 在 のパッケージの 階 層 構 造 と 同 じディレクトリ 構 成 のパスをすべてのクラスに 対 して 自 動 的 に 生 成 します 次 の 例 は 生 成 パスを 自 動 生 成 した 例 です( 図 7) 図 7 なお 既 にパスが 指 定 してあるクラスに 対 してはそのパスを 利 用 し それ 以 外 のクラス については 自 動 的 にパスを 生 成 したいという 場 合 には 設 定 済 みのパスを 優 先 にチェッ クを 入 れてください 以 上 の 設 定 を 行 った 後 で 生 成 ボタンを 押 せば ソースコードが 生 成 されます 4. 言 語 ごとの 個 別 設 定 Enterprise Architect は 10 種 類 (Enterprise Architect Suite システムエンジニアリング 版 アルティメット 版 は 14 種 類 )のプログラム 言 語 の 入 出 力 に 対 応 しています それぞれの 言 語 には 言 語 固 有 の 表 現 やキーワードがあります Enterprise Architect では こうした 言 語 固 有 の 情 報 はタグ 付 き 値 やステレオタイプで 管 理 しています 例 えば C++ 言 語 の 場 合 に クラス 要 素 にステレオタイプ<<struct>>を 設 定 してコード 生 成 を 行 うと 構 造 体 として 出 力 されます このように 言 語 ごとの 個 別 の 関 連 付 けについては ヘルプファイルの ソースコード とモデルの 対 応 付 け のページをご 覧 下 さい 5. 既 存 のソースコードを 読 み 込 む 方 法 次 に 既 存 のソースコードを 読 み 込 む 手 順 について 紹 介 します
この 章 では 具 体 的 な 例 として オープンソースソフトウェアである Tomcat のソースコー ドの 一 部 を 例 にして 説 明 します 5.1. ソースコードの 読 み 込 み ソースコードの 読 み 込 みの 実 行 前 に 7. ソースコードの 読 み 込 みのオプション の 内 容 をご 覧 になり 必 要 に 応 じて 設 定 を 変 更 して 下 さい 最 初 に ソースコードを 読 み 込 んでクラス 要 素 を 生 成 する 対 象 のパッケージを 指 定 しま す 作 成 する 位 置 のパッケージをプロジェクトブラウザで 選 択 し 右 クリックしてくださ い コンテキストメニューが 表 示 されますので ソースコードの 生 成 と 読 み 込 み ソ ースディレクトリの 読 み 込 み を 選 択 します すると 図 8 のような 画 面 が 表 示 されます 図 8
5.2. 読 み 込 み 位 置 と 方 法 の 選 択 ルートディレクトリには 読 み 込 む 対 象 のファイルが 含 まれるディレクトリを 選 択 しま す また ソースの 種 類 を 設 定 します 今 回 の 場 合 には Java に 設 定 します ソースの 種 類 を 指 定 すると 拡 張 子 の 内 容 は 自 動 的 に 変 わります この 設 定 が 適 切 でない 場 合 には ソースコードの 読 み 込 みを 実 行 しても 対 象 のソースファイルを 発 見 できず そのまま 終 了 します 何 も 読 み 込 まれない 場 合 には この 部 分 を 確 認 してください ソースコードの 読 み 込 み 時 にクラス 図 を 作 成 する 場 合 には 各 パッケージのクラス 図 を 作 成 にチェックを 入 れて 下 さい 各 パッケージ( 名 前 空 間 あるいはディレクトリ)ごとに 園 パッケージに 含 まれるクラス 要 素 が 配 置 されたクラス 図 も 生 成 されます その 他 の 設 定 項 目 については 必 要 に 応 じて 変 更 して 下 さい OK ボタンを 押 せば 読 み 込 みが 開 始 されます 画 面 にクラスが 追 加 され しばらくすると 読 み 込 まれた 結 果 が 表 示 されます 5.3. 注 意 点 ソースコードの 読 み 込 みを 行 う 場 合 に 注 意 点 があります 既 存 のソースコードの 解 析 を 行 う 場 合 に 対 象 のソースコードが 多 い 場 合 にまとめて 読 み 込 むと 解 析 に 非 常 に 時 間 がかかります 例 えば クラスが 1000 個 ある 場 合 には クラ ス 間 の 関 係 は 1,000 2 =1,000,000 個 になります これだけの 関 係 を 同 時 に 解 析 することにな るため 多 くのメモリ 量 および 高 いマシンの 性 能 が 必 要 になります ソースコードの 量 が 多 い 場 合 には 分 割 して 読 み 込 むことをお 勧 めします 例 えば 対 象 のルートディレクトリのなかにサブディレクトリが 複 数 個 ある 場 合 には それぞれのサ ブディレクトリ 単 位 で 読 み 込 み 機 能 を 実 行 します これにより 同 時 に 解 析 する 必 要 のあ るクラス 間 の 個 数 が 減 るため 結 果 的 には 短 時 間 で 作 業 が 完 了 します また 1 つのディレクトリ( 言 語 によっては 名 前 空 間 )に 多 くのクラスが 含 まれる 場 合 自 動 生 成 されるクラス 図 には 多 くのクラスが 含 まれ 表 示 する 場 合 に 時 間 がかかります こ の 場 合 には 属 性 や 操 作 を 非 表 示 にすると 改 善 できます その 手 順 は 次 の 通 りです
1. ダイアグラムを 開 きます 2. ダイアグラムの 背 景 でダブルクリックし プロパティ 画 面 を 表 示 します 3. 要 素 タブにある 区 画 の 表 示 グループ 内 の 属 性 操 作 のチェックを 外 しま す あるいは 属 性 操 作 タブにある 表 示 対 象 の 指 定 のうち 不 要 な 属 性 や 操 作 の 可 視 性 のチェックを 外 します 4. ダイアグラムに 戻 ると 不 要 な 情 報 が 表 示 されなくなり 描 画 速 度 を 改 善 できます 5. 要 素 に 余 白 が 表 示 されているような 場 合 で 要 素 の 大 きさを 調 整 する 場 合 には Ctrl+A でクラス 図 内 の 要 素 を 全 て 選 択 した 状 態 で ALT+Z(メインメニューからは 要 素 書 式 設 定 選 択 した 要 素 の 自 動 サイズ 調 整 )を 押 すと 最 適 なサイズに 縮 小 さ れます 6. さらに 再 度 自 動 レイアウトを 実 行 する 場 合 には メインメニューから ダイアグラム ダイアグラムの 自 動 レイアウト を 実 行 してください 5.4. エラーが 発 生 する 場 合 読 み 込 みの 際 に エラーが 発 生 する 場 合 があります このエラーのうち 出 力 されるロ グに プログラム 言 語 のマクロを 定 義 する 必 要 があるかもしれません と 表 示 される 場 合 があります このような 場 合 には 多 くの 場 合 には 独 自 のマクロが 解 釈 できずにエラーと なっています (Enterprise Architect では マクロの 解 釈 展 開 などのプリプロセス 処 理 は 行 いません ) 5.5. マクロとして 認 識 する 文 字 列 の 追 加 このようなマクロがある 場 合 には メインメニューから プロジェクト 設 定 プログラム 言 語 のマクロ を 実 行 してください 図 10 の 画 面 が 表 示 されます ここで 追 加 した 値 は マクロと 認 識 して 無 視 することができます
図 10 追 加 ボタンを 押 し 表 示 される 画 面 でエラーになっているマクロ 名 を 入 力 してくだ さい 5.6. 独 自 のクラス 図 の 作 成 ソースコードの 読 み 込 み 機 能 で 自 動 的 に 作 成 可 能 なクラス 図 は 同 じパッケージに 含 ま れるすべてのクラス 要 素 を 含 んだものになります パッケージ 内 のクラス 要 素 が 多 い 場 合 には 非 常 に 大 きなクラス 図 が 生 成 されます 特 定 のクラスに 着 目 したクラス 図 を 作 成 するには 次 の 方 法 で 行 います 1. 新 規 にクラス 図 を 作 成 し 注 目 したいクラス 要 素 を 1 つ クラス 図 の 中 に 配 置 します (プロジェクトブラウザからドラッグします) 2. その 要 素 を 右 クリックし 関 係 する 要 素 の 追 加 を 実 行 します 関 係 する 要 素 の 追 加 画 面 が 表 示 されますので 最 初 は 何 も 設 定 を 変 更 せず 全 て ボタンを 押 して 条 件 を 満 たす 要 素 を 全 て 選 択 した 状 態 で OK ボタンを 押 してください 関 連 や 依 存 などの 関 係 がある 要 素 が 自 動 的 に 配 置 されます 3. この 作 業 を 他 のクラスに 対 して 繰 り 返 したり 設 定 内 容 を 変 更 して 必 要 な 要 素 のみを 追 加 したりするなどの 方 法 で 注 目 したい 情 報 のみが 配 置 されたクラス 図 を 作 成 できます なお 特 定 のパッケージについて 子 パッケージも 含 めて 全 てのパッケージ 内 に 含 まれる クラスのクラス 図 を 作 成 したい 場 合 には 以 下 のページからダウンロードできるアドイン
クラス 図 自 動 作 成 アドイン が 便 利 です ( 製 品 のサポートユーザーのみダウンロード 利 用 できます ) http://www.sparxsystems.jp/products/ea/tech/addins.htm 5.7. クラス 図 作 成 の 基 本 的 なルール ソースコードを 読 み 込 んでクラス 図 を 作 成 する 場 合 の 基 本 的 なルールは 次 の 通 りです 原 則 として 1 つのクラスに 対 して 1 つのクラス 要 素 を 生 成 します C#の Partial クラスの 場 合 には 複 数 のクラス 要 素 を 生 成 します C 言 語 の 場 合 には 1 つのファイル(.h)に 対 して 1 つのクラス 要 素 を 生 成 します 継 承 関 係 は 汎 化 の 関 係 を 作 成 します 属 性 として 他 のクラスを 保 持 している 場 合 には 関 連 の 関 係 を 作 成 します 集 約 は 作 成 しません 第 7 章 で 説 明 するオプション 戻 り 値 や 引 数 にクラスが 利 用 されている 場 合 には 読 み 込 み 時 に 依 存 関 係 を 作 成 が 有 効 な 場 合 には 属 性 の 型 操 作 の 引 数 の 型 操 作 の 戻 り 値 の 型 に 他 のクラスを 利 用 している 場 合 には 依 存 の 関 係 を 作 成 します コレクションクラス( 例 えば list<someclass>のような 形 式 での 利 用 )に 対 して 適 切 に 関 連 を 作 成 するためには ユーザーオプションの 追 加 のコレクションクラス の 設 定 が 必 要 になる 場 合 があります この 設 定 についてはヘルプファイルをご 覧 下 さ い 6. ラウンドトリップでの 利 用 6.1. 概 要 Enterprise Architect では クラス 要 素 からソースコード 生 成 を 実 行 したり ソースコー ドを 読 み 込 んでクラス 図 を 作 成 したりした 後 に 以 下 のような 操 作 が 可 能 です ソースコードを 編 集 し クラス 要 素 に 同 期 反 映 する クラス 要 素 の 内 容 を 変 更 し ソースコードに 同 期 反 映 する これらの 操 作 方 法 は 新 規 にソースコードを 生 成 したり クラス 図 を 生 成 したりする 手
順 と 変 わりません 例 えば ディレクトリを 指 定 してソースコードを 読 み 込 む 場 合 既 に 読 み 込 み 済 みのクラス 要 素 がモデル 内 にある 場 合 には そのクラス 要 素 との 同 期 処 理 が 行 われます モデル 内 に 対 応 するクラス 要 素 が 存 在 しない 場 合 には 新 規 にクラス 要 素 が 生 成 されます このラウンドトリップにおいては 以 下 の 注 意 事 項 があります 同 期 するかどうかの 判 定 は それぞれのクラス 要 素 内 で 保 持 しているソースファイル のパスが 一 致 するかどうかが 基 準 です 同 じソースコードであっても 配 置 されてい るディレクトリが 異 なる 場 合 には 新 規 のクラス 要 素 として 読 み 込 まれます 複 数 人 で 作 業 をしていて クラス 要 素 に 対 応 するソースコードの 位 置 が 変 わる 場 合 には ロ ーカルパス の 機 能 をご 利 用 ください Enterprise Architect Suite の 各 エディションで 利 用 できる 振 る 舞 い 図 からのソース コード 生 成 は 読 み 込 みやラウンドトリップには 対 応 しません 同 期 の 対 象 は クラスが 持 つ 属 性 や 操 作 (メソッド)の 定 義 のみです 操 作 (メソッド)の 中 身 ( 実 装 )は 対 象 外 です また クラス 名 が 変 わる 場 合 やパッケージ 名 (ディレクトリ 名 前 空 間 )が 変 わる 場 合 も 同 期 の 対 象 外 です (Enterprise Architect では ソースファイルに ツールのための 専 用 のコメントを 埋 め 込 みません そのため 位 置 や 名 前 が 変 わる 場 合 には 同 じかどうかの 判 別 ができ ません ) クラス 要 素 の 操 作 を 編 集 削 除 した 場 合 や ソースコードのメソッドを 編 集 削 除 し た 場 合 に 同 期 する 場 合 の 結 果 は 下 記 の モデルから 削 除 した 場 合 の 動 作 について をご 覧 下 さい クラス 要 素 の 属 性 操 作 の 名 前 を 変 更 してソースコード 生 成 を 実 行 する 場 合 には オ プション 画 面 の 属 性 と 操 作 グループにあるオプション コード 生 成 時 にモデルに ない 属 性 と 操 作 の 削 除 を 確 認 する が 有 効 になっていない 場 合 には 変 更 後 の 名 前 の 属 性 や 操 作 がソースコードに 追 加 されます 名 前 を 変 更 して 置 換 したい 場 合 には こ のオプションを 有 効 にしてください ( 下 記 の モデルから 削 除 した 場 合 の 動 作 について をご 覧 下 さい ) ラウンドトリップで 有 用 な 情 報 は 無 料 セミナー Enterprise Architect ソースコード 生 成 ルール カスタマイズ 実 践 セミナー でも 説 明 しています このセミナーは 下 記 Web サ イトから 動 画 をいつでもご 覧 いただけます 1. ソースコード 生 成 の 概 要 の 内 容 をぜひご 覧 下 さい Enterprise Architect ソースコード 生 成 ルール カスタマイズ 実 践 セミナー
http://www.sparxsystems.jp/seminar/eacodegenerate.htm 6.2. モデルから 削 除 した 場 合 の 動 作 について Enterprise Architect では 既 定 の 設 定 では 以 下 のような 動 作 になります ソースコードで 属 性 やメソッドの 追 加 編 集 削 除 を 行 った 後 にモデルに 反 映 する 場 合 には すべての 変 更 内 容 が 反 映 されます モデルで 属 性 やメソッドの 追 加 を 行 った 後 にモデルに 反 映 する 場 合 には すべての 変 更 内 容 がソースコードに 反 映 されますが 編 集 した 場 合 には 正 しく 反 映 できない 場 合 があります また 削 除 した 場 合 には 変 更 内 容 は 反 映 しません このような 動 作 になっている 理 由 は 次 の 2 点 です モデルからのソースコード 生 成 では 操 作 (メソッド)の 実 装 は 出 力 されず ソースコー ド 側 に 追 記 します つまり 情 報 量 としてはモデルよりもソースコード 側 が 多 いとい うことになります この 情 報 量 の 違 いがあるため モデルから 属 性 や 操 作 を 削 除 した 場 合 に 情 報 量 が 多 いソースコード 側 を 自 動 的 に 削 除 することは 危 険 です (ソースコード 側 のみに 存 在 する 情 報 が 存 在 するため) Enterprise Architect では ソースコード 内 にツールのための 情 報 (タグ)を 埋 め 込 みま せん そのため 属 性 や 操 作 の 編 集 や 削 除 を 正 確 に 判 断 することができません 上 記 のように 情 報 量 の 違 いがあるため 不 正 確 な 判 断 で 編 集 削 除 することが 問 題 とな る 場 合 があります そのため 属 性 や 操 作 の 編 集 や 削 除 を 実 行 するためには コード 生 成 時 にモデルにない 属 性 と 操 作 の 削 除 を 確 認 する のオプションを 有 効 にする 必 要 があります このオプション が 有 効 になっている 場 合 に モデルからソースコードを 同 期 生 成 すると 以 下 のような 画 面 が 表 示 される 場 合 があります
この 例 では モデルから operation2 を 削 除 し operation3 の 名 前 を newname に 変 更 して います これらの 変 更 が 確 実 に 判 断 できなかったため どのようにすればよいのかをツー ルの 利 用 者 に 確 認 しています このように 不 確 実 な 点 がある 場 合 には 利 用 者 が 判 断 す るようになっています (オプション コード 生 成 時 にモデルにない 属 性 と 操 作 の 削 除 を 確 認 する が 有 効 になって いない 場 合 にはこの 画 面 は 表 示 されず 属 性 や 操 作 が 削 除 されることはありません ) 今 回 の 例 では 以 下 のように operation2 については 削 除 を operation3 については newname への 再 割 当 を 指 定 する 必 要 があります
こうした 操 作 により 同 期 生 成 時 に 適 切 にソースコードに 反 映 することができます 7. ソースコードの 読 み 込 みのオプション ソースコードを 読 み 込 む 際 に Enterprise Architect のオプションを 変 更 することで 結 果 が 変 わる 部 分 があります このようなオプション 項 目 のうち 知 っておくと 便 利 な 項 目 をご 紹 介 します オプション 画 面 のうち ユーザーごとに 設 定 が 保 存 されるオプションを 表 示 するには メインメニューから ツール ユーザーのオプション を 実 行 します その 後 左 側 の 一 覧 で ソースコードの 生 成 と 読 み 込 み を 選 択 して 下 さい 以 下 のような 画 面 になり ます
図 12 ここで よく 利 用 する 設 定 は 次 の 項 目 です 戻 り 値 や 引 数 にクラスが 利 用 されている 場 合 には 読 み 込 み 時 に 依 存 関 係 を 作 成 このチェックボックスを ON にすると ソースコードの 読 み 込 み 時 に 関 連 の 関 係 だけでなく 依 存 の 関 係 も 追 加 されます そのため 既 存 のソースコードの 解 析 に 役 立 ちます また 属 性 と 操 作 のページでは 以 下 の 設 定 が 役 に 立 ちます
読 み 込 み 時 に 操 作 の 実 行 もモデルに 読 み 込 む この 項 目 にチェックを 入 れると メソッドの 実 装 ( 内 部 のコード)を Enterprise Architect のプロジェクトファイル 内 に 取 り 込 みます この 情 報 は 操 作 のプロパティ 画 面 にある 振 る 舞 い グループの 既 定 のソースコード 欄 に 格 納 されます なお もし 既 定 のソースコード 欄 に 情 報 がある 場 合 には ソースコードの 生 成 時 に この 内 容 をソースコードに 出 力 します ( 新 規 生 成 時 のみ 同 期 の 場 合 は 除 きます ) コード 生 成 時 にモデルにない 属 性 と 操 作 の 削 除 を 確 認 する この 項 目 については 6.2 章 をご 覧 下 さい プロジェクトごとに 設 定 が 保 存 されるオプションを 表 示 するには メインメニューから プ ロジェクト プロジェクトのオプション を 実 行 します その 後 左 側 の 一 覧 で ソ ースコードの 生 成 と 読 み 込 み を 選 択 して 下 さい
このページでよく 利 用 する 設 定 は 次 の 項 目 です ソースコードの 文 字 コード ソースコードが SHIFT_JIS あるいは US_ASCII 以 外 の 場 合 には 変 更 が 必 要 です な お 日 本 語 EUC の 場 合 には 20932 (JIS X 0208-1990 & 0212-1990) を 指 定 してく ださい なお この 設 定 は CSV ファイルの 入 出 力 時 の 文 字 コード 設 定 としても 利 用 されます 8. ソースコードエディタ Enterprise Architect では Enterprise Architect の 内 部 でタブとしてソースコードエデ ィタを 表 示 し ソースコードの 参 照 編 集 を 行 うことができます この 章 では この 機 能 について 説 明 します Enterprise Architect の 内 部 でソースコードを 表 示 するには 対 象 のクラスを 右 クリック して ソースコードの 表 示 を 実 行 して 下 さい なお ソースファイルと 関 連 づけられて いるクラスのみが 対 象 です (ソースファイルから 生 成 したクラス 図 か クラス 要 素 からソースファイルを 生 成 したこと がある 場 合 に ソースコードの 表 示 の 項 目 を 選 択 することができます ) ソースコードを 表 示 するタブでは 上 部 にツールバー 左 側 に 構 造 ツリー 右 側 にソー スコードが 表 示 されます
このエディタは 一 般 的 なエディタと 同 じ 操 作 が 可 能 です 自 動 的 にインデントを 制 御 する 機 能 などが 提 供 されています また Ctrl+Space キーで モデル 内 で 定 義 されている 操 作 名 などを 挿 入 することができたり 操 作 (メソッド)の 定 義 の 上 にカーソルを 載 せると 引 数 (パラメータ)の 説 明 が 表 示 されたりするような コードの 編 集 を 効 率 化 するための 仕 組 み も 搭 載 されています また 画 面 上 部 のツールバーにあるボタンを 利 用 すると ソースコードからモデル 内 の 要 素 の 位 置 へ 移 動 することもできます ボタンを 押 すと プロジェクトブラウザ 内 の 対 象 のクラス 要 素 にカーソルが 移 動 します ボタンを 押 すと プロジェクトブラウザ 内 の 対 象 の 属 性 や 操 作 にカーソルが 移 動 します この 状 態 で 利 用 されているダイアグラム (Ctrl+U)の 機 能 を 利 用 することで ソースコードから ダイアグラム 内 のモデル 要 素 に 移 動 することができます なお ソースコードとモデルの 両 方 を 参 照 しながら 作 業 を 行 いたい 場 合 には 上 記 のよ うなソースコードタブではなく ソースコードサブウインドウを 利 用 すると モデルとソ ースコードを 同 時 に 両 方 見 ることができますので 便 利 です (ソースコードサブウインドウが 表 示 されている 状 態 で クラス 要 素 属 性 操 作 をプロジ ェクトブラウザやダイアグラム 内 で 選 択 すると 自 動 的 に 関 連 するソースコードが 表 示 さ れます 属 性 や 操 作 を 選 択 した 場 合 には 定 義 位 置 にカーソルが 移 動 します )
改 版 履 歴 2009/09/01 初 版 ( 過 去 のチュートリアル スタートアップマニュアルを 再 構 成 し 加 筆 ) 2009/10/09 コンポーネント 図 に 関 する 情 報 が 末 尾 に 誤 って 掲 載 されていたものを 修 正 機 能 についての 説 明 (2 章 )と 読 み 込 みの 際 のオプション(6 章 )を 追 加 2010/03/29 ソースコードの 読 み 込 みについて いくつかの 説 明 を 追 加 2010/04/16 Enterprise Architect 8.0 のリリースに 伴 い 内 容 を 更 新 7 章 を 追 加 2011/05/18 Enterprise Architect 9.0 のリリースに 伴 い 内 容 を 更 新 2011/09/12 既 定 のソースコード 欄 についての 説 明 を 追 加 2011/12/06 Enterprise Architect 9.2 のリリースに 伴 い 内 容 を 更 新 2012/03/07 Enterprise Architect 9.3 のリリースに 伴 い 内 容 を 更 新 2012/12/14 Enterprise Architect 10.0 のリリースに 伴 い 内 容 を 更 新 2014/04/22 Enterprise Architect 11.0 のリリースに 伴 い 内 容 を 更 新 2014/06/09 ラウンドトリップに 関 する 情 報 を 6 章 として 追 加 2015/02/12 Enterprise Architect バージョン 12.0 リリースに 伴 い 内 容 を 更 新 2015/03/02 5.7 章 を 追 加 5 章 の 内 容 を 改 善 2015/12/01 Enterprise Architect バージョン 12.1 リリースに 伴 い 内 容 を 更 新 6.2 章 を 追 加