2016年07月22日

plantumlでredmineに図を挿入

昔UMLは使えねえっていう話をしたと思うんですね


今でも何でもかんでもUMLで書くのはおかしいとは思ってるんだけど、まあそれでもシーケンス図と状態遷移図だけは認めてやってもいいし、
if分がいくつもガチャガチャ続く場合はどうしてもフローチャートはほしい。フローチャートとアクティビティ図はほぼ等価だと思うんで、
ひとつのコンポーネント入れるだけでシーケンス図も状態遷移図もアクティビティ図も書けるんならまあ使ってもいいかなくらいに思ってきた。
適材適所ですな。

でもastahでいちいち図を描くのは面倒だしあれ起動むっちゃ遅い、しかもテキストデータじゃないから差分管理面倒くさいということで
すこし敬遠してた部分もあったんだけど、テキストでUML起こせるツールがあったんですね。しかもredmineと連携もできる。
今回はこのツール、plantumlをredmineと連携させて、設計資料を充実させようというお話。



完成予定図

今回の記事の手順でredmineを拡張すると、こんな感じのテキストから

戦闘シーンは以下のとおりに遷移する

{{plantuml

(*) --> "攻撃順の決定"

--> ===FORK===
--> "自攻撃力 = プレイヤーの技量点+2D6"
--> ===JOIN===

===FORK=== --> "敵攻撃力 = 一番先頭の敵の技量点+2D6"
--> ===JOIN===

if "自攻撃力 ≧ 敵攻撃力" then
  --> [true] "攻撃順 = 自分"
  --> "運試しの選択" as node1
else
  --> [false] "攻撃順 = 敵"
  --> node1
endif
 こんな感じの図が生成できる

screenshot.5.png

あら便利。

インストール方法 plantuml編

まずplantumlっていうテキストからUMLを作るソフトをダウンロードします。
俺のubuntu環境では
sudo aptitude install plantuml
コマンド一発で取得できた。できない環境(windows)でもplantumlでググればjarファイル取得できると思う
それに加えてGraphvizっていう作図用ライブラリもインストールが必要だ(シーケンス図だけ利用するなら不要)
これも
sudo aptitude install graphviz
で取得できた、と思う(ちょっと前にやったんで詳細忘れた・・・すまぬ)
2つのソフトが連携できているかどうかはplantuml -testdot ってコマンド打って

# plantuml -testdot
The environment variable GRAPHVIZ_DOT has not been set
Dot executable is /usr/bin/dot
Dot version: dot - graphviz version 2.26.3 (20100126.1600)
Installation seems OK. File generation OK
こんなメッセージが出てくればOKなはず。ダメならなんかダメってメッセージが出る。

インストール方法 Wiki External Filter編

続いてredmineのプラグイン、WikiExternalFilterを導入します。
入れ方は簡単、redmineのプラグインフォルダ配下にそのままコピって、

cd /usr/local/redmine/plugins/

プラグインのconfig フォルダ配下のymlファイルをredmineのconfigフォルダにコピー

cp wiki_external_filter/config/wiki_external_filter.yml ../config

日本語対応するためにちょっとymlの6,7行目をいじる

development: &development
  plantuml:
    description: "Constructs UML diagram image from its textual description in PlantUML language, see http://plantuml.sourceforge.net"
    template: image
    outputs:
      - command: "/usr/bin/plantuml -tsvg -charset UTF-8 -pipe"
        content_type: "image/svg+xml"
        prolog: "@startuml"
        epilog: "@enduml"
これだけ!(俺は赤文字青文字全体をいじったけど、青文字部分だけでも日本語化できるかもしれない。試してない)
これをやらないと、半角英数以外の文字が変な□で変換されちゃうから注意だ!
ただこれだけやっておけば、データベースの変更がいらないのでrake db:migrateしなくていいから楽だね!

インストールは以上!あとはplantumlの解説サイトにしたがって、自由にテキスト作図を楽しもう
posted by LoyalTouch at 06:28| Comment(0) | TrackBack(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック