PlantUMLでレイアウトを調整するのは難しい。

高木です。おはようございます。

最近、しばらくぶりでPlantUMLを使っています。

こういうツールは特定のフェーズでしか使わないので、いつも使い方を忘れています。
今回も結構苦戦しました。

何に一番苦戦するかというと、レイアウトです。

クラス図やシーケンス図の内容ではなく、きれいにレイアウトするのが難しいのです。
こだわらなくてもいいのかもしれませんが、せっかく書くのだから、きれいに書きたいものです。

話が前後しますが、PlantUMLについて少しだけ説明しておきます。

PlantUMLというのは、UMLをテキストで記述できるツールです。
UMLがわからない人は勝手に調べてください。

UMLというのは図でソフトウェア(だけではないですが)の構造や流れを表現する方法です。
フローチャートやブロック図なんかと同じ仲間ですね。

UMLは便利なのですが、図なので書くのが面倒です。
仮に簡単に書けても、差分をとったりすることを考えると、やはりテキストで扱えた方が便利です。

そんなときに登場するのがPlantUMLです。
PlantUMLは(私が嫌いな)Javaで書かれたツールで、テキストで記述したファイルをUMLの画像に変換してくれます。

そんなPlantUMLですが、便利なんですがレイアウトが難しいのです。

ドキュメントを読むと、left, right, up, downなどを使ってレイアウトを調整するように書いているのですが、どうもうまくいきません。
そんなこんなでPlantUMLと格闘しているうちに、だんだんこのツールを作った人物の思考が見えてくるというものです。

どうも、left, right, up, downといった指定だけではレイアウトを制御しきれないようで、「クラス」や「関係」を記述する順番に依存するようです。
ちょっと考えれば、自分でこのツールを実装する場合でもそうするだろうとわかります。

このことに気づいてからは、以前よりずっとレイアウトの調整が楽になりました。
ただ、またしばらくブランクが空いたあとでは、このことを忘れてまた悩むんでしょうねえ。
だから、こうしてブログに記録を残しているんです。