astah*

Japanese | English
Home 機能 C#リバース 利用ガイド

お知らせ

[pro,UML] C#リバース 利用ガイド

Eメール 印刷

ここでは astah* の編集APIを利用したサンプル「C#リバースプログラム」を解説します。(サポート対象外)
本アプリケーションを用いて、C#ソースコードから astah*モデルを作成できます。

目次


はじめに

C#リバースプログラムでは、Doxygenというフリーソフトを使っています。事前にDoxygenでソースコードをパースし、作成したxmlファイルを用いて astah*モデルを作成するためです。
このサンプルプログラムを使う前に、必ず astah* API サンプルプログラム使用許諾契約をお読みください。使う際、使用許諾契約に同意したものとみなします。


サポートについて

C#リバースプログラムは、astah* 編集APIのサンプルプログラムのためサポートサービスの対象ではありません。
不具合報告や実行環境に関連するご質問など、対応しかねる場合がありますのでご了承ください。


動作に必要な環境

OS、Java実行環境はどちらも astah* UML、astah* professionalのシステム要件を満たす必要があります。
Windows環境で動作確認しています。

  • astah* professional、astah* UML 6.0以降
    (astah* professional(astah* UML)インストールフォルダ\lib\commons-digester.jar(バージョン1.5)などにも依存します)
  • J2SEおよび、Digesterを利用できる環境
  • Doxygen 1.7.1 (doxygen-1.7.1-setup.exe)、利用にあたっては、Doxygenのライセンスやドキュメントを参照してください。
    Doxygen 英語サイト link_external_17 / Doxygen 日本語サイト link_external_17 / Doxygen ダウンロードページ link_external_17

対応項目の詳細

クラス、属性、操作、それらの各定義、astah* professional、astah* UMLが対応するC#の言語属性の取込みに対応しています。
プリミティブ型、const、delegate、~destructor()など、項目が多いため、詳しくは「対応項目の詳細」をご覧ください。


Doxygenのダウンロードから設定まで

bullet1 1. Doxygenをダウンロードする

bullet1 2. Doxygenのインストールと起動

  • doxygen-1.7.1-setup.exeをダブルクリックして、ウィザードに従いインストールします。
  • [スタート]メニューから [doxygen]-[doxywizard] をクリックして起動します。

bullet1 3. Doxygenの設定

  • 起動すると [Doxygen GUI Frontend] ダイアログが表示されます。[Wizard]-[Topics]-[Project]を選択し、次の項目を設定します。
    doxygen1_s
    Project name プロジェクト名
    Project version or id プロジェクトバージョン、もしくはID
    Source code directly ソースコードディレクトリ
    Scan recursively ONにするとサブフォルダも対象になる
    Destination directory XML出力先ディレクトリ
    ディレクトリの文字列に、&, <, >, *, @の記号を使わないようにしてください。これらが含まれると、Doxygen 1.5.7.1により生成したXMLのタグの中身が、&amp, &lt, &gt, &star, &at といった文字列にならないため、リバースプログラムが正常に動作せずコンバートされません。
  • 続いて [Wizard]-[Topics]-[Mode]を選択し、各項目を設定します。
    csharp_doxygen2_s
    Select the desired extraction mode "Documented entities only" を選択
    Select Programming language to optimize the result for "Optimize for C# output" を選択
  • [Wizard]-[Topics]-[Output]を選択し、設定します。
    doxygen3_s
    Select the output format(s) to generate Doxygen 1.5.6、1.5.7.1、1.5.8、1.7.0、1.7.1の場合、"XML"を選択する
    Doxygen 1.5.7の場合、"HTML"と"XML"を選択する
    (1.5.7ではXMLのみを出力できないため)
  • [Expert]-[Topics]-[Input]を選択し、設定します。
    doxygen4_s
    INPUT_ENCODING UTF-8などソースの文字コードを入力する。必ずソースと同じ文字コードとすること
  • [OK]ボタンを押下して、[Doxygen GUI Frontend]ダイアログに戻り、[Save]ボタンを押下して設定内容を保存します。
  • [Doxygen GUI Frontend] Step1で、Specify the working directory from which doxygen will run](Doxygenワーキングディレクトリ)を指定します。

bullet1 4. Doxygenでソースコードを読み込む

  • [Doxygen GUI Frontend] Step4にある[Start]ボタンを押下してXMLを生成します。
  • 画面に "*** Doxygen has finished" と出力されればXML作成は完了です。

bullet1 5. Doxygenで作成したXMLから astah* プロジェクトに変換する

  • astah* professional (astah* UML)インストールフォルダ\api\sample\sample_doxegen_c_sharp\run.bat を使います。
  • 例) C:\doxygen_xml配下のXMLを、C:\doxygen_xml\converted.astaに変換する
    run.bat C:\doxygen_xml C:\doxygen_xml\converted.asta

本プログラムの設定-Config.propertiesファイル

設定ファイルを編集することで、一部挙動の設定が可能です。

astah* professional(astah* UML)インストールフォルダ\api\sample\sample_doxygen_c_sharp\doxygen_csharp\Config.properties

jude_csharp_types_for_attribute プロパティをクラスの属性として作成するか、関連として作成するかを設定する。
プロパティは通常、関連として作成されるが、ここで設定した型を持つプロパティは、クラスの属性として作成される。
例)BrickOut::Form1,BrickOut::Form2
(カンマ区切りで、型をネームスペース付きで列挙します。)

クラス図を自動作成する

構造ツリーでパッケージ、サブシステム、モデル等のポップアップメニューより、クラス図を自動生成するメニューを選択します。
選択したパッケージ、サブシステム、モデル等の配下にあるモデルでクラス図を自動作成します。
コミュニティサイトのTIPS (旧製品名のJUDEで書かれています) link_external_17

AutoCreateClassDiagram_s


サンプルのコンパイル

ソースコードを改変した場合は、起動前にコンパイルが必要です。次のバッチファイルをダブルクリックしてください。

astah* professional(astah* UML)インストールフォルダ\api\sample\sample_doxygen_c_sharp\compile.bat