1. UML変換くんマニュアル

UML変換くん

1.1. はじめに

このドキュメントは「UML変換くん」の取扱説明書です。

機能と実際の操作手順を順番に説明します。

不明な点がありましたら、問合せフォームよりご連絡ください。

1.2. インストール

1.2.1. UML変換くん

「UML変換くん」をベクターからダウンロードします。

「to_uml.zip」を解凍します。

「ToUml_installer.exe」実行してインストールします。

1.3. 初回起動

_images/first_start_fig.png

図. 1.1 スタートメニュー

Winキーを押下します。

「はじめに」の手順でパスワードを取得します。

「UML変換くん」を起動します。

パスワードを入力します。パスワードが解除されます。

1.4. 起動

_images/start_fig.png

図. 1.2 UML変換くん起動画面

Winキーを押下します。

「UML変換くん」を起動します。

1.5. UMLに変換

1.5.1. PlantUmlコードへ変換

1.5.1.1. 機能説明

ToUml v0.50 - ToUml code convert

Usage: ToUml [-p kind] [-c code] [-r] [-rg] [-o outpath] [-strict] [-av] [-mp] filepath
  -p kind: ターゲットのプログラミング言語をkindに入力 (defult:java )
  -c code: ターゲットの文字コードをcodeに入力.(sjis or utf8 or... )
  -r: サブディレクトリを含めて探索する.
  filepath: ソースコードのパスを入力. ファイル名にワイルカードを使える.
       ex.: c:\xxx\*.java
  -rg: ファイル名に正規表現を使いたいとき設定. "||" をディレクトリとファイル名の間に置いて区切る.
       ex.: c:\xxx\||^[CE].+\.java
  -o outpath: outpathに出力先ディレクトリのパスを入力.
  -strict: 厳格モードで処理する.通常処理が失敗する場合に試す.
  -av: すべてを一つのクラス図で出力.
  -mp: マルチプロセスモードで実行.

1.5.1.2. 捕捉説明

表 1.1 補足説明

機能 説明

-p kind kindにプログラミング言語名を入れます。現在はjavaのみです。※バージョンはJava9です。

-c code codeにターゲット文字コードを入力しまします。標準はutf8です。

-r

リカーシブモードです。サブディレクトリを含めて探索します。

filepath ターゲットにするソースファイルのパス名を書きます。ファイル名にはワイルドカードが使えます。複数ファイルを対象にする場合に使ってください。

-rg

filepathのファイル名に正規表現が使えるようになります。ワイルドカードでは表現しきれない場合に使ってください。※ディレクトリ名とファイル名の間には「||」を書いて区切ってください。

-o outpath

出力先ディレクトリのパスを入力してください。標準は実行時のカレントディレクトリです。

-strict 厳格にjavaソースコードを解析します。動作が遅くなります。ファイル数が多いとガベコレオーバーします、vmメモリを大きくした方が良いです。正しく動作しないときに試しに付けてください。

-av

通常はディレクトリ単位でクラス図を作成しますが、このオプションを付けると一つのクラス図として出力します。複数ファイルを対象にした場合はクラス図が大きくなりすぎます。※このモードにしたときにはファイル出力はしません。※標準出力をファイルに書き出してください。

-mp

Webサーバーなど、マルチプロセスで使う場合にセットします。※このモードにすると一時ファイル置き場にファイルが残ることがあります。たまに削除しましょう。

1.5.1.3. 操作例

1.5.1.3.1. 前提

「c:\tmp」に対象のファイルがあるとします。

> cd /d c:\tmp\

まず、チェンジディレクトリで移動しておきます。

1.5.1.3.2. 1ファイル変換

「c:\tmp\A.java」にあるjavaファイルを変換する場合。※文字コードは標準ではutf8となっています。

> ToUml .\A.java

出力ファイル: temp.pu

1.5.1.3.2.1. 変換前

A.java

package pkg;

public class A extends Base{
        private int a;
        private long b;
        private String str;
        public int func(int in_num ){
                return in_num;
        }
}

class Base{
}
1.5.1.3.2.2. 変換後

temp.pu

@startuml
skinparam classAttributeIconSize 0
set namespaceSeparator none
package pkg{
        class Base{
        }
        class A{
                -a:int
                -b:long
                -str:String
                +func(in_num:int):int
        }
}
package java{
        package lang{
                class int<< (D,orchid) >>{
                }
                class long<< (D,orchid) >>{
                }
                class String{
                }
        }
}
Base <|-- A
A --> int
A --> long
A --> String
A ..> int
@enduml
1.5.1.3.3. 対象の文字コードがsjis

A.javaがsjisの場合

> ToUml -c sjis A.java

出力ファイル: temp.pu

1.5.1.3.4. 複数ファイル変換

「c:\tmp\A.java」、「c:\tmp\b\B.java」と複数のjavaファイルを変換する場合。

> ToUml -r .\*.java

出力ファイル: temp.pu、b.pu

1.5.1.3.4.1. 変換前

B.java

package pkg;

public class B extends A{
        public int func(int in_num ){
                return 10;
        }
}
1.5.1.3.4.2. 変換後

temp.b.pu

@startuml
skinparam classAttributeIconSize 0
set namespaceSeparator none
package pkg{
        class A{
        }
        class B{
                +func(in_num:int):int
        }
}
package java{
        package lang{
                class int<< (D,orchid) >>{
                }
        }
}
A <|-- B
B ..> int
@enduml

1.5.2. UMLクラス図へ変換

1.5.2.1. plantumlの操作

「plantuml.jar」を起動します。

起動するときにダブルクリックではなくコマンドプロンプトから

java -jar plantuml.jar -gui -tsvg

と起動すると出力ファイルが「.png」ではなく「.svg」となり大きなクラス図も表示されて便利でした。

※PlantUmlは先に導入しておく必要があります。「PlantUml Graphviz インストール」で検索してみて下さい。
※とりあえず、すぐ試したい人用に下記URLのWebサイトを用意しました。小さなものなら変換できます。

http://mapplio.info/to_uml/webap/from_java_to_uml.cgi

_images/plantuml_start_fig.png

図. 1.3 plantuml起動画面

「Change Directory」をクリックします。

_images/plantuml_change_dir_fig.png

図. 1.4 ターゲットディレクトリ設定

「c:\temp」ディレクトリを設定して、「開く」をクリックします。

_images/plantuml_after_change_dir_fig.png

図. 1.5 ディレクトリ設定後

自動的に「c:\temp」上にある「*.pu」ファイルをクラス図画像「*.png」に変換します。

※「.pu」ファイルの変更を監視していて、変更があるとクラス図画像に変換します。
※「.pu」ファイルが大きすぎるとギブアップします。