PlantUML on ADT Ubuntu12 [ぱそ関係]
PlantUML というのは、テキストで記述されたシーケンスを図に変換してくれるプログラムです。
http://plantuml.sourceforge.net/
もともとは Web 上でシーケンス図を書ける https://www.websequencediagrams.com/ (以下WSD)というのがあって、それをローカルでも実行できるようにするためのエンジン部分という感じかな。
Web Sequence Diagrams は位置合わせとかは全部自動でおまかせ(なので妙に幅広になったりするけど)で結構便利です。 UML ツールというよりはドローツールのクラウド版ですね。
本家 WSD と比較して PlantUML での記述方法の文法的な差分は、
1.全体を @startuml 〜 @enduml で囲む必要あり
2.# コメントは使えない
3.Cのソースに書くときは /* */ や /// コメントの中に埋め込む
ぐらいですね。
やっぱ、本家 WSD のようにシーケンスの内容が Server 側に全部送られて HOST 側でパースして png 作成っていうのは仕事で使うのにはちょっと抵抗あります(というかプロジェクトで使う正式ツールとしてはきっと NG でしょう)から offline 実行のニーズは結構あると思います。
ただ、PlantUML 自体は plantuml.jar 一つで text to シーケンス図変換しかやりません。 WSD みたいな感じでフル活用するには graphviz などの外部ツールや GUI が必要です。 一応、それっぽくラップしてくれる PlantUML Editor とか幾つかソリューションはあるのですが、今ならやはり eclipse 上で実行&ソースにシーケンスを埋め込みでしょう。
ということで PlantUML の eclipse プラグイン版のインストール方法
まずこちらの環境ですが、
iMac → VMware → ubuntu 12.4(LTS) → Java,graphviz → eclipse/ADT → PlantUML Plugin → でもこの記事ではC言語を想定。
という感じでなかなか深い階層構造になってます。
VMWare:
売り物です。
ubuntu 12.4(LTS):
https://wiki.ubuntu.com/PrecisePangolin に説明あり。
http://www.ubuntu.com/download/desktop から拾ってこれます。
VMWare で新しい仮想マシンを作ってそれ上で ISO イメージからインストール可能。
まあ、元から Linux 環境があればそれを使えばいいと思います。 Mac でも Windows でも Linux でも どうせ ADT 使うので OS は何であってもほぼ一緒でしょう。
Java:
http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html を見ながらインストール。
sudo su して
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java7-installer
ですな。
ちなみに、Linux 用 ADT は 32bit 限定っぽいので、Java も 32bit 版を使う必要があるみたいです。
graphviz:
ubuntu Software Center(画面左のバーの買い物カゴみたいなアイコン)から graphviz で検索してぽちっとインストール。
eclipse/ADT(Android SDK):
http://developer.android.com/sdk/index.html から ADT bundle をダウンロードしてお好きな場所に展開。 eclipse まるごと入りなので楽チンです。
コレが実際にユーザーが実行するアプリになります。
ちなみにサイトにアクセスしに行った時に、「そのブラウザが動いてる OS」用の ADT をデフォでダウンロードさせる仕組みになっているので、VMWare の中の Linux で動かす ADT は VMWare の中のブラウザからアクセスして持っていったほうがいいです。
PlantUML プラグイン:
PlantUML のサイト http://plantuml.sourceforge.net/eclipse.html にちゃんと入れ方が書いてあります。 ADT は eclipse 4.x 系を使っているので、対応プラグインのバージョンは 1.1.8 の方です。
ということで、わりとあっけなく表示可能。
実際のソースコードはこちら。
https://github.com/goodyoga/euler_001_multiples_of_3_and_5/blob/master/main.c
あと設定というか注意点として下記があげられます。
- eclipse 用語としての「パースペクティブ」と「ビュー」を理解しておくこと
パースペクティブはビューの集まり&配置を覚えてるもの。 ビューは単品の情報表示画面の一つ一つ。
A定食とかがパースペクティブで小鉢がビューみたいな感じかな。
コードを書いてる時は C/C++パースペクティブ、デバッグするときはデバッグパースペクティブ、Java の開発では Javaパースペクティブ、という感じで切り替えながら使います。
で、実際にソース書くときとシーケンスを書く時が同じなら、PlantUML のビューは C/C++ ビューに表示したほうがいいのですが、画面が狭くなるのであえて開発とは別のパースペクティブにしておくのもありかも。(例えば、Java のパースペクティブを間借りするとか)
- PlantUML プラグインは eclipse プロジェクト内のファイルを扱う
まあ、eclipse のプラグインなので当たり前といえば当たり前ですが。
なのでシーケンスだけを書きたい人は、シーケンス専用のプロジェクトを起こす必要が有ります。
ソースコード内のコメント埋め込みシーケンス言語のパースはやってくれるので既存のソースがある場合はソース内にコメントで追加してくほうが楽でしょう。
- ソースのコメントに埋め込む場合、空白文字を一つ入れる
たとえば、///<space>@startuml 。。。みたいに書く場合は、それ以降の行はすべて ///<space> で揃えないと("///" だけ書くと) PlantUML が文法エラー扱いにします。 eclipse のデフォルトで保存時オプションの行末のスペースを削除するが有効になっているので、シーケンス言語内で改行のみの行を書いたつもりがスペース削除されてこれとバッティングします。
- PlantUML の View のうち、もう一つの PlantUML Source の使い方がわからねぇ。
上記の通りプロジェクト内のファイルと紐付けられて出てくるので、ソースコードのコメントに埋め込みの場合は PlantUML Source ビューは使い道がないです。 たぶん シーケンスだけ独立して .wsd ファイルにする場合なんかに使うんじゃないかと思いますが試してません。
てな感じで。
http://plantuml.sourceforge.net/
もともとは Web 上でシーケンス図を書ける https://www.websequencediagrams.com/ (以下WSD)というのがあって、それをローカルでも実行できるようにするためのエンジン部分という感じかな。
Web Sequence Diagrams は位置合わせとかは全部自動でおまかせ(なので妙に幅広になったりするけど)で結構便利です。 UML ツールというよりはドローツールのクラウド版ですね。
本家 WSD と比較して PlantUML での記述方法の文法的な差分は、
1.全体を @startuml 〜 @enduml で囲む必要あり
2.# コメントは使えない
3.Cのソースに書くときは /* */ や /// コメントの中に埋め込む
ぐらいですね。
やっぱ、本家 WSD のようにシーケンスの内容が Server 側に全部送られて HOST 側でパースして png 作成っていうのは仕事で使うのにはちょっと抵抗あります(というかプロジェクトで使う正式ツールとしてはきっと NG でしょう)から offline 実行のニーズは結構あると思います。
ただ、PlantUML 自体は plantuml.jar 一つで text to シーケンス図変換しかやりません。 WSD みたいな感じでフル活用するには graphviz などの外部ツールや GUI が必要です。 一応、それっぽくラップしてくれる PlantUML Editor とか幾つかソリューションはあるのですが、今ならやはり eclipse 上で実行&ソースにシーケンスを埋め込みでしょう。
ということで PlantUML の eclipse プラグイン版のインストール方法
まずこちらの環境ですが、
iMac → VMware → ubuntu 12.4(LTS) → Java,graphviz → eclipse/ADT → PlantUML Plugin → でもこの記事ではC言語を想定。
という感じでなかなか深い階層構造になってます。
VMWare:
売り物です。
ubuntu 12.4(LTS):
https://wiki.ubuntu.com/PrecisePangolin に説明あり。
http://www.ubuntu.com/download/desktop から拾ってこれます。
VMWare で新しい仮想マシンを作ってそれ上で ISO イメージからインストール可能。
まあ、元から Linux 環境があればそれを使えばいいと思います。 Mac でも Windows でも Linux でも どうせ ADT 使うので OS は何であってもほぼ一緒でしょう。
Java:
http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html を見ながらインストール。
sudo su して
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java7-installer
ですな。
ちなみに、Linux 用 ADT は 32bit 限定っぽいので、Java も 32bit 版を使う必要があるみたいです。
graphviz:
ubuntu Software Center(画面左のバーの買い物カゴみたいなアイコン)から graphviz で検索してぽちっとインストール。
eclipse/ADT(Android SDK):
http://developer.android.com/sdk/index.html から ADT bundle をダウンロードしてお好きな場所に展開。 eclipse まるごと入りなので楽チンです。
コレが実際にユーザーが実行するアプリになります。
ちなみにサイトにアクセスしに行った時に、「そのブラウザが動いてる OS」用の ADT をデフォでダウンロードさせる仕組みになっているので、VMWare の中の Linux で動かす ADT は VMWare の中のブラウザからアクセスして持っていったほうがいいです。
PlantUML プラグイン:
PlantUML のサイト http://plantuml.sourceforge.net/eclipse.html にちゃんと入れ方が書いてあります。 ADT は eclipse 4.x 系を使っているので、対応プラグインのバージョンは 1.1.8 の方です。
ということで、わりとあっけなく表示可能。
実際のソースコードはこちら。
https://github.com/goodyoga/euler_001_multiples_of_3_and_5/blob/master/main.c
あと設定というか注意点として下記があげられます。
- eclipse 用語としての「パースペクティブ」と「ビュー」を理解しておくこと
パースペクティブはビューの集まり&配置を覚えてるもの。 ビューは単品の情報表示画面の一つ一つ。
A定食とかがパースペクティブで小鉢がビューみたいな感じかな。
コードを書いてる時は C/C++パースペクティブ、デバッグするときはデバッグパースペクティブ、Java の開発では Javaパースペクティブ、という感じで切り替えながら使います。
で、実際にソース書くときとシーケンスを書く時が同じなら、PlantUML のビューは C/C++ ビューに表示したほうがいいのですが、画面が狭くなるのであえて開発とは別のパースペクティブにしておくのもありかも。(例えば、Java のパースペクティブを間借りするとか)
- PlantUML プラグインは eclipse プロジェクト内のファイルを扱う
まあ、eclipse のプラグインなので当たり前といえば当たり前ですが。
なのでシーケンスだけを書きたい人は、シーケンス専用のプロジェクトを起こす必要が有ります。
ソースコード内のコメント埋め込みシーケンス言語のパースはやってくれるので既存のソースがある場合はソース内にコメントで追加してくほうが楽でしょう。
- ソースのコメントに埋め込む場合、空白文字を一つ入れる
たとえば、///<space>@startuml 。。。みたいに書く場合は、それ以降の行はすべて ///<space> で揃えないと("///" だけ書くと) PlantUML が文法エラー扱いにします。 eclipse のデフォルトで保存時オプションの行末のスペースを削除するが有効になっているので、シーケンス言語内で改行のみの行を書いたつもりがスペース削除されてこれとバッティングします。
- PlantUML の View のうち、もう一つの PlantUML Source の使い方がわからねぇ。
上記の通りプロジェクト内のファイルと紐付けられて出てくるので、ソースコードのコメントに埋め込みの場合は PlantUML Source ビューは使い道がないです。 たぶん シーケンスだけ独立して .wsd ファイルにする場合なんかに使うんじゃないかと思いますが試してません。
てな感じで。
Parallels Desktop 9 for Mac Retail Box CD JP
- 出版社/メーカー: パラレルス
- メディア: CD-ROM
APPLE iMac 27"/3.2GHz Quad Core i5/8GB/1TB MD096J/A
- 出版社/メーカー: アップル
- メディア: Personal Computers
コメント 0