SE | × | PE | ○ | EE | ○ | VE | × |
フォワードエンジニアリングとは作成したモデリング情報から、ソースを出力するための機能です。 フォワードエンジニアリングには、クラス構造などを元にした静的構造のソース出力とステートチャート図などを基にした 動的構造のソース出力があります。
なお、現バージョンの1st Modellerは静的構造のソースをのみ出力可能です。
フォワードエンジニアリングを行うためには以下の条件を満たしている必要があります。
- WSH(Windows Host Scripting)がインストールされていること
- VBScriptEngine は Ver.5 以上であること
- MSXMLがインストールされていること
なお、Windows 2000 以降の OS であれば上記の条件は満たしていると思います。 Windows 2000 より古い OS については、WSH と MSXML のインストール(またはバージョンアップ)を行って下さい。
1.モデリングを行う
モデリングを行います。クラス・モデルに登録されているクラス・モデルを元にソース出力を行います。 クラス・モデルの属性や操作の情報がソースに出力された際には、メンバ変数やメソッドになります。
ソース出力した際にクラスの基本クラスをソースに記述したい場合があります。その時に利用するのが関連・ディクショナリです。 関連ディクショナリで登録した『派生関係』を利用して基本クラスを自動生成します。
属性の型や操作の引数の型に属性タイプを使用している場合は、属性タイプの実装時の型を使用してソースを出力します。 モデリング時は 名前、年齢、住所 などの抽象的な型名にしておき、ソース出力時には std::string、int、std::list<std::string> に置き換えるというような利用方法があります。
2.ソース出力を行う
詳細は後述するためここでは概要を説明します。
クラス・ディクショナリを表示してメニューからフォワードエンジニアリングを選びます。
設定画面が表示されるので、出力対象のクラスや出力言語およびテンプレートを選びます。
実行ボタンを押下すると、ソース出力が始まります。
3.ソースを使用する
出力したソースを各自で用意した開発環境(VS.NET、Eclipse、C++Builderなど)で利用してください。
制約事項に書かれている内容に該当する場合は、ソースを手直しした上でご利用ください。
4.テンプレートを変更する
ソース内のインデント方法(TABは使用禁止だったり、2-TABだったり)や、改行の位置(メソッドの引数ごとに必ず改行する)など各自で好みがあると思います。 またプロジェクトや企業・団体によっては、コメントの書式が決まっていることもあると思います。
1st Modeller が提供しているテンプレートファイルをコピーして手を入れることで ある程度簡単に書式を変える事が出来ます。新規に作成したテンプレートファイルは、 1st Modeller のメニューの[ツール(T)]-[環境オプション(O)]を選んで表示される画面の [フォワードエンジニアリング]タブから登録できます。
テンプレートを編集するためには、XMLの記述方法について少しは知識が必要です。知識とはいうものの、 XMLをエラーなく記述できれば問題ありません。次に、テンプレートで使用するためのタグについて理解する必要があります。 これは、1st Modeller のインストールフォルダ内のdocフォルダに入っている『FE-XML仕様.xls』または『同.mht』を参照してください。
テンプレートを編集するための専用ツールが提供できれば良いのですが、現時点では開発時間の問題から提供できそうにありません。 XMLの編集にはテキストエディタなどをご利用ください。5.より詳細な設定を行う
後述する設定画面を使用することで、自動的にコンストラクタ/デストラクタを生成したり、getter/setterを自動的に生成することができます。
6.新しい言語に対応する
テンプレートを新たに作成することで、好みの言語のソースを出力させる事が可能です。
現時点では細かい説明をドキュメントに起こす事が出来ないため、上記のテンプレートの変更方法を参考にして行ってください。
また、新言語に対応できた場合は TOM'S SOFTWARE にお送り頂くことで正式版に組み込むことも検討いたします。
新言語に対応するに当たって、既存の機能では足りなくなった場合はお知らせください。フォワードエンジニアリングエンジンを改良することも検討します。
1.出力情報の設定
クラス・ディクショナリを 1st Modeller のクライアント領域に表示した状態で、 メニューから[クラス・ディクショナリ(D)]-[フォワードエンジニアリングの実行(F)]を選ぶと次のような画面が表示されます。
入力項目について順に説明します。
『出力先フォルダ』ソースの出力先となるフォルダを指定します。 パッケージ名を持つクラスの場合は、サブフォルダを自動的に作成します。 既にファイルがある場合は上書きされてしまうので注意してください。
『言語』はソース出力に影響を与えます。現在は「setter/getter」の機能にのみ影響を与えます。 初期表示はクラス・ディクショナリで入力した値になります。
『テンプレート』出力言語に対応したテンプレートファイルを選びます。言語に応じて下記のファイルを選んでください。
言語 テンプレート C++ fe\template\C++\original.xml Java fe\template\Java\original.xml Delphi fe\template\Delphi\original.xml
2.出力クラスの選択
次にソースを出力する対象を決めます。次のような画面が表示されますので、出力したいクラスにチェックを入れてください。 初期状態では全てのクラスにチェックが入っています。
3.ソース出力の実行
実行ボタンを押下するとソース出力が始まります。
下記の画面は実行ボタンを押下して処理が終了した状態です。『処理結果』の画面に処理時のログが出ています。 何らかのエラーが出た場合このウィンドウにエラーが表示されます。
処理が正常終了すると下記のようなメッセージボックスが表示されます。出力したソースを確認するためにご使用ください。
1.設定画面
2.ソースに埋め込まれるコメントの入力
「作者」と「著作権表示」は出力したソースファイルに埋め込みます。
3.コンストラクタとデストラクタの自動生成
「自動的にコンストラクタ/デストラクタを作成する」にチェックを入れることで 引数のないコンストラクタを生成します。(C++で例えるならデフォルトコンストラクタにあたる)
4.getter/setter の自動生成
「protectedとprivateメンバ変数に対する getter/setter を作成する」にチェックを入れることで getter/setter を自動生成します。
「設定」画面内の「言語」を選択することで以下のように処理される。
言語が Delphi 以外の場合は、getter接頭語+メンバ変数名でgetterメソッドを作成します。setterも同様です。 メンバ変数の先頭の"m_"または末尾の"_"は削除して使用します。また、先頭の文字を大文字にします。
例)m_name → getNameDelphi の場合は、メソッドではなくプロパティを自動生成します。 プロパティ名はメンバ変数名の先頭の"F"および末尾の"_"を削除して、メンバ変数の先頭の文字を大文字に変換したものを使用します。 例)Fname → Name
- Javaのimport、C++の#include、Delphiのusesが自動生成されない
- インナークラスが正しく出力されない
- C++の場合テンプレートクラスを基本クラスにした場合テンプレート引数が表現できない(現時点では入力する機能もない)
- 出力言語がC++とJava、Delphiしか対応していない