SSブログ

Enterprise Architect(EA)はこんな事もできる [IT設計]

今回は、EAでソースコードの自動生成の紹介をします。
仕事では事情があってEAのソースコードの自動生成はあまり使いません。
実験的なコードや、個人的に作るコードでは自動生成を使います。

...やっと、VB.NETの話題になってきました。

前回に作成したクラス図を使って、今回も手順を追ってみます。

ユーザクラスの属性を追加します。
ユーザクラスを右クリックして、コンテキストメニューから属性を選びます。
20080604-01ユーザの属性追加.png

ユーザ属性ダイアログが表示されます。
プライベートのユーザIDフィールドを作成します。
名前を、m_UserIDとします。サフィックスはm_としました。
型をString、別名にユーザIDとします。
20080604-02ユーザ属性ユーザIDフィールド.png

保存ボタンを押すと、属性一覧に保存されます。
続けて、プロパティを作成します。
ユーザ属性ダイアログで先ほど作成した、m_UserIDを選び、プロパティ・チェックボックスをクリックします。
20080604-03ユーザ属性ユーザIDプロパティの作成.png

すると、プロパティの実装ダイアログが表示されます。
クラスの言語をVB.NETにしているので、プロパティの言語もVB.NETになっています。
プロパティ名は、先ほどのm_のサフィックスを削除した、UserIDに自動的になっています。
可視性は、Publicに、読込(Getter)、書込(Setter)もチェックが付いています。
確認をして、そのままOKボタンを押すだけです。
20080604-04ユーザ属性ユーザIDプロパティの実装.png

ユーザ属性のダイアログに戻ると、プロパティ名の項目が追加され、
UserIDが表示されています。
20080604-05ユーザ属性ユーザIDプロパティの表示.png

以上で、フィールドとプロパティの追加ができます。
ちなみに、サフィックスの設定は、オプションダイアログのソースコードの生成と読み込みにある、
プロパティのGet/Setを作成時にプレフィックスを削除の項目で変更ができます。
20080604-06オプション-ソースコードの生成と読み込み.png

ダイアログを確認します。
属性の所に先ほどのm_UserIDが、操作の所にpropertyステレオタイプとして、UserIDが追加されています。
20080604-07ユーザIDを追加したクラス図.png

同じように他のフィールドやプロパティを追加します。
20080604-08フィールドやプロパティを追加したクラス図.png

クラス名が、論理名になっていますので、物理名に変更します。
元々の名前は、別名に入れておきます。
20080604-09クラス名を物理名に変更.png

名前の付け方はさておき、すべてのクラスの名前を変更します。
20080604-10物理名のクラス図.png

まずは、これでも良いのですが、ドキュメントとして残す場合は、このままだとわかりづらいです。
日本人ですし、英単語で名前付けられても...
そもそも単語、間違えてるじゃん!
って、事も良くあるので、ダイアグラムの書式設定で「別名で表示」を設定すると別名も表示されるようになります。
20080604-11別名も表示したクラス図.png
もしかしたら、別名しか表示されないかもしれません。
その時は、[ツール]-[オプション]で、オプション画面を開いて、[ダイアグラム]の[振る舞い]ページを開きます。
別名の表示方法の設定があるので、別名と名前に設定すると両方表示されるようになります。
プロパティを自動生成した場合は、フィールドの別名が引き継がれないのがちょっと、残念な気がしますが、
フィールド名に別名が表示されているので、我慢できる範囲です。

では次に、ソースコードを自動生成する為の設定を行います。
EAでは、ビューとパッケージで階層構造を設定できますが、その階層のどこをソースコードの名前空間の基準にするかを設定する事ができます。
今回は、ProductNameを基準にします。
20080604-12ProductNameパッケージを名前空間の基準に設定.png

プロジェクトブラウザで見ると、ProductNameのパッケージのアイコンの右下に赤い枠が張り付いています。
ちょっと地味ですが、この表現は気に入ってます。
20080604-13プロジェクトブラウザで名前空間の基準を確認.png

では、そろそろソースコードを自動生成します。
プロジェクトブラウザのProductNameで、右クリックして、ソースコードの生成と読み込みメニューで、ソースコードの生成を実行します。
ソースコードの生成(複数クラス)ダイアログが表示されます。
20080604-14ソースコードの生成.png

ファイルパスの自動生成のチェックをつけて、基準ディレクトリを設定します。
子パッケージをすべて含むのチェックをつけると、先ほどのクラスファイルの一覧が表示されます。
ターゲットファイルも設定されています。
ここで、生成ボタンを押すと、ファイルが自動生成されます。

ユーザクラスを確認してみます。
20080604-15ソースコード-ユーザクラス.png

コード生成のテンプレートを変更できるようです。
コーディング規約などで決められたヘッダなどの記述方法があれば、カスタマイズすれば、それなりに使えるのではいかと思います。
スケルトンの生成としては、十分な機能だと思います。
ここでも、UserNameプロパティが、になっていますので、MyBase.UserResourceName とかに変更する事になるかと思います。 普通はNameなど汎用的な名前にして、わざわざ変更しなくても良い様にするのでしょうけどね。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。