astah* チュートリアル...astah* チュートリアル 第7 章...

33
株式会社チェンジビジョン 使用バージョン:astah* 6.0, 6.1 astah* チュートリアル [第 7 章 ⾔語サポート機能を使ってみよう] 目次 言語サポート機能を使ってみよう 2 Java 2 Java 基本機能 2 Java スケルトンコードを作成してみよう 5 Java ソースコードの読み込みをしてみよう 7 C++ 10 C++基本機能 10 C++スケルトンコードを作成をしてみよう 13 C++リバースをしてみよう(サンプル、サポート対象外) 17 C# 23 C#基本機能 23 C#スケルトンコードを作成してみよう 26 C#リバースをしてみよう(サンプル、サポート対象外) 29

Transcript of astah* チュートリアル...astah* チュートリアル 第7 章...

Page 1: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

株式会社チェンジビジョン

使用バージョン:astah* 6.0, 6.1

astah* チュートリアル [第 7 章 ⾔語サポート機能を使ってみよう]

目次

言語サポート機能を使ってみよう 2

Java 2

Java 基本機能 2

Java スケルトンコードを作成してみよう 5

Java ソースコードの読み込みをしてみよう 7

C++ 10

C++基本機能 10

C++スケルトンコードを作成をしてみよう 13

C++リバースをしてみよう(サンプル、サポート対象外) 17

C# 23

C#基本機能 23

C#スケルトンコードを作成してみよう 26

C#リバースをしてみよう(サンプル、サポート対象外) 29

Page 2: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

2 / 33

言語サポート機能を使ってみよう

使用できるエディション: astah* professional、astah* UML

astah*では、よく使用される基本的な言語 Java、C++、C#に対応しています。

JAVA

使用できるエディション: astah* professional、astah* UML

JAVA 基本機能

プロジェクトの言語設定をしてみよう プロジェクトの言語設定は、プロパティビュー、または、システムプロパティで設定します。

プロジェクトのプロパティビュー[プロジェクトの設定]タブ

[ツール]-[システムプロパティ]-[ファイル]-[プロジェクトの新規作成時の言語]-[Java]

Page 3: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

3 / 33

JAVA 言語固有の設定をしてみよう クラス、属性、操作の[言語]タブ(プロパティビュー)で、Java 言語固有の設定が可能です。

JAVA のデフォルトモデルを使ってみよう

astah* professional インストールフォルダ¥ template¥project¥ Java1.4.asta

astah* professional インストールフォルダ¥ template¥project¥ Java5.asta

システムプロパティでデフォルトモデルを設定していない場合は、[ファイル]-[テンプレートからプロジェクトの新

規作成]-[ Java1.4.asta]または[Java5.asta]を選択します。

Page 4: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

4 / 33

以下のような内容です。

[Java5.asta] [Java1.4.asta]

またシステムプロパティで新規プロジェクト作成時のデフォルトモデルの設定もできます。

Page 5: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

5 / 33

JAVA スケルトンコードを作成してみよう

作成したモデルから Java のスケルトンコードを出力できます。

インストールフォルダ配下の Sample.asta を開いて出力してみましょう。

Page 6: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

6 / 33

メインメニューの[ツール] - [Java] - [Java スケルトンコードの作成]を選択します。

Class パッケージの直下のソースを出力してみます。

以下のように出力されました。

Page 7: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

7 / 33

Monitor.java を開いてみます。

正しく出力されていることがわかりますね。

JAVA ソースコードの読み込み をしてみよう 今度はプロジェクトを新規作成し、前章で出力したソースをリバースしてみます。

(1) プロジェクトを開き(または新規作成し)、メインメニューの[ツール]- [Java ソースコードの読み込み] を

選択します。

(2) Java ファイル選択ダイアログで、Java のファイルを選択します。

(3) Java のソースコードからパッケージやクラスのモデルを生成します。リバース時には関連にしたい属性を指定

できます。

以下のダイアログで Close ボタンをクリックすると終了です。

Page 8: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

8 / 33

以下のようにリバースされました。

(4)リバースしただけではクラス図は作成されませんので、生成したモデルからクラス図を自動作成します。

構造ツリーのプロジェクトのポップアップメニューより以下のメニューを選択します。

- [クラス図を自動作成する]

- [詳細クラス図を自動作成する]

Page 9: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

9 / 33

以下のようにクラス図が自動生成されました。

Page 10: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

10 / 33

C++

使用できるエディション: astah* professional、astah* UML

C++基本機能

プロジェクトの言語設定をしてみよう プロジェクトの言語設定は、プロパティビュー、または、システムプロパティで設定します。

プロジェクトのプロパティビュー[プロジェクトの設定]タブ

[ツール]-[システムプロパティ]-[ファイル]-[プロジェクトの新規作成時の言語]-[C++]

C++言語固有の設定をしてみよう クラス、属性、操作の[言語]タブ(プロパティビュー)で、C++言語固有の設定が可能です。

[クラス] [属性]

Page 11: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

11 / 33

[操作]

C++用のデフォルトモデルを使ってみよう astah* professional インストールフォルダ¥ template¥project¥ C++.asta

システムプロパティでデフォルトモデルを設定していない場合は、[ファイル]-[テンプレートからプロジェクトの新

規作成]-[ C++.asta]を選択します。

以下のような内容です。

Page 12: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

12 / 33

またシステムプロパティで新規プロジェクト作成時のデフォルトモデルの設定もできます。

型修飾子(*、&等、ポインタ情報)を使ってみよう プロパティビューより型修飾子を入力できます。型修飾子はダイアグラムエディタ上でクラスや属性等の図要素

に表示されます。HTML 出力や RTF 出力にも対応しています。

Page 13: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

13 / 33

C++ プリミティブ型の対応 各プリミティブ型に対応しています。

bool / char / signed char / unsigned char / short / unsigned short / short int / signed short int / unsigned short int /

int / signed int / unsigned int / long / unsigned long / long int / signed long int / unsigned long int / float / double /

long double / wchar_t

C++スケルトンコードを作成をしてみよう 使用できるエディション: astah* professional、astah* UML

インストールフォルダ配下の Sample.asta を開いて、プロジェクトのプロパティビューの"プロジェクトの設定"で

C++を ON にします。

以下の MSG ではいを選択します。

Page 14: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

14 / 33

メインメニューの[ツール] - [C++] - [C++スケルトンコードの作成]を選択します。

Class パッケージの直下のソースを出力してみます。

またオプションもあります。

Page 15: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

15 / 33

以下のようにヘッダーファイル、ソースファイルともに、出力されましたね。

Monitor.h を開いてみます。

Page 16: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

16 / 33

Monitor.cpp を開いてみます。

正しく出力されていることがわかりますね。

Page 17: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

17 / 33

C++リバースをしてみよう(サンプル、サポート対象外)

使用できる製品: astah* professional

[使用方法]

詳しい使用法は astah* C++リバース利用ガイドをご参照ください。

stah* professional インストールフォルダ¥api¥sample¥sample_doxygen_c_plus¥sample_doxygen_c_plus.html

[イメージ]

[Doxygen を利用してリバース]

[C++のスケルトンコードを作成]の章で出力したソースを Doxygen を使用し、XML に変換します。

読み込みソースパス配下のファイルがすべて対象な時には RECUSIVE のチェックが必要なので、注意してくださ

い。また、ソースのエンコードもファイルのエンコードと揃えてください。

ソース XML *.asta

Doxygen リバースツール

Page 18: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

18 / 33

また、ヘッダーファイルのパスを追加するのも重要です。

[Doxygen の設定ポイント]

特に以下に注意してください。

・[Expert]-[Input]-[RECURSIVE]

・[Expert]-[Input]-[INPUT_ENCORDING]

・[Expert]-[Preprocessor]-[INCLUDE PATH]

Page 19: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

19 / 33

以下のように出力されました。

Page 20: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

20 / 33

これを API サンプルを経由してプロジェクトを作成します。作成した結果を開いてみます。

この時点ではクラス図がないため、クラス図を自動生成してみます。

Page 21: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

21 / 33

次のようにクラス図が自動生成されました。

リバース前のクラス図と比較するため、移動と色付けをします。

Page 22: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

22 / 33

これがフォワード前のモデルです。

比較するとグローバルな Global クラスがあります。これは C++では、クラスに属さないメソッド等が生成される

ため、リバース時に各名前空間に Global クラスが生成されます。

また、Tracer クラスと Engine クラス 、Tracer クラスと Steering クラス、Tracer クラスと Monitor クラス、Tracer

クラスと State クラスの関連がありませんが、その代わり、Tracer クラスには、属性として、Engine クラス、Steering

クラス、Monitor クラス、State クラスを持ち、逆参照も付加されます。UML2.0 では属性も関連もプロパティとい

う概念になり、意味合いは同じです。

また、Monitor クラスと Engine クラス 、Monitor クラスと Steering クラスの関連がないこと

Monitor クラスと LightSensor クラスの関連がないことも同じです。

Page 23: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

23 / 33

C#

使用できるエディション: astah* professional、astah* UML

C#基本機能

プロジェクトの言語設定をしてみよう プロジェクトの言語設定は、プロパティビュー、または、システムプロパティで設定します。

プロジェクトのプロパティビュー[プロジェクトの設定]タブ

[ツール]-[システムプロパティ]-[ファイル]-[プロジェクトの新規作成時の言語]-[C#]

Page 24: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

24 / 33

C#言語固有の設定をしてみよう クラス、属性、操作の[言語]タブ(プロパティビュー)で、C#言語固有の設定が可能です。

[クラス] [属性]

[操作]

Page 25: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

25 / 33

C#用のデフォルトモデルを使ってみよう astah* professional インストールフォルダ¥ template¥project¥ C_Sharp.asta

システムプロパティでデフォルトモデルを設定していない場合は、[ファイル]-[テンプレートからプロジェクトの新

規作成]-[ C_Sharp.asta]を選択します。

以下のような内容です。

またシステムプロパティで新規プロジェクト作成時のデフォルトモデルを設定できます。

Page 26: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

26 / 33

C# プリミティブ型の対応 各プリミティブ型に対応しています。

bool / byte / char / decimal / double / float / int / long / object / sbyte / short / string / uint / ulong / ushort

C#スケルトンコードを作成してみよう

使用できるエディション: astah* professional、astah* UML

インストールフォルダ配下の Sample.asta を開いて、プロジェクトのプロパティビューの"プロジェクトの設定"で

C#を ON にします。

Page 27: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

27 / 33

以下の MSG ではいを選択します。

メインメニューの[ツール] - [C#] - [C#スケルトンコードの作成]を選択します。

Class パッケージの直下のソースを出力してみます。

Page 28: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

28 / 33

またオプションに次があります。

以下のように出力されましたね。

Monitor.cs を開いてみます。

正しく出力されていることがわかりますね。

Page 29: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

29 / 33

C#リバースをしてみよう(サンプル、サポート対象外)

使用できる製品: astah* professional

[使用方法]

詳しい使用法は astah* C#リバース 利用ガイドをご参照ください。

astah* professional インストールフォルダ¥api¥sample¥sample_doxygen_c_sharp¥sample_doxygen_c_sharp.html

[使用イメージ]

[Doxygen を利用してリバース]

[C#のスケルトンコードを作成]の章で出力したソースを Doxygen を使用し、XML に変換します。

読み込みソースパス配下のファイルがすべて対象な時には RECUSIVE のチェックが必要なので、注意してくださ

い。また、ソースのエンコードもファイルのエンコードと揃えてください。

ソース XML *.asta

Doxygen リバースツール

Page 30: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

30 / 33

以下のように出力されました。

Page 31: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

31 / 33

これを API サンプルを経由してプロジェクトを作成します。

作成した結果を開いてみます。

この時点ではクラス図がないため、

クラス図を自動生成してみます。

Page 32: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

32 / 33

次のようにクラス図が自動生成されました。

リバース前のクラス図と比較するため、移動と色付けをします。

Page 33: astah* チュートリアル...astah* チュートリアル 第7 章 言語サポート機能を使ってみよう 7 / 33 Monitor.java を開いてみます。 正しく出力されていることがわかりますね。

astah* チュートリアル 第 7 章 言語サポート機能を使ってみよう

33 / 33

これがフォワード前のモデルです。

Tracer クラスと Engine クラス 、Tracer クラスと Steering クラス、Tracer クラスと Monitor クラス、Tracer クラ

スと State クラスの関連がありませんが、その代わり、Tracer クラスには、属性として、Engine クラス、Steering

クラス、Monitor クラス、State クラスを持ち、逆参照も付加されます。UML2.0 では属性も関連もプロパティとい

う概念になり、意味合いは同じです。

また、Monitor クラスと Engine クラス 、Monitor クラスと Steering クラスの関連がないこと、Monitor クラスと

LightSensor クラスの関連がないことも同じです。