シーケンス図を書くためのツールメモ

たまにシーケンス図を書く必要があって、そのたびにどのツールを使うのか調べているので自分用にまとめておく。 gitで差分を管理したいのでテキストベースで編集できるのが要求条件。

seqdiag

http://blockdiag.com/ja/seqdiag/

特徴

  • python製のコマンドラインツール
  • blockdiagの亜種
  • png, svgで出力できる

セットアップ

  • $ pip install seqdiag

使用感

  • + コマンドラインツールなので他のツールと組み合わせが可能
  • + 手元のテキストエディタで編集できる
  • - リアルタイムにプレビューする手段は自分で用意しないといけない

WebSequenceDiagrams

https://www.websequencediagrams.com/

特徴

  • ブラウザ上で編集・プレビューできる
  • 作成した図は画像png形式で出力できる
  • プレミアムアカウントになれば編集内容が反映される図の埋め込みができるらしい

セットアップ

  • Webサービスなのでなし

使用感

  • + リアルタイムにプレビューできるのは便利
  • + 図のどの部分を編集しているのかがハイライトされる
  • + 手元のテキストエディタで編集できないのでgitリポジトリなどにテキストを保存する場合は少々面倒
  • + セットアップが不要なので使い始めは簡単
  • + 複数のスタイルが用意されている
  • - Mac標準のCtrl+Pなどでカーソル移動ができない
  • - 出力された画像にサイトのURLが埋め込まれる

PlantUML

http://plantuml.com/

セットアップ

  • $ brew install plantuml

使用感

  • + atom packageがあるのでリアルタイムプレビューが比較的簡単に実現できる
    • packageの設定で指定したConfig Fileがないとプレビューできなかった
  • - 自分のメインのエディタはatomではない
    • emacsでも同じことができそうではある

参考

いまのところatomでPlantUMLを使っている。 使用感のところに書いたとおりatomは普段使っているテキストエディタではないのでいちいちアプリケーションを切り替える手間はあるが、 PlantUML専用と割り切ってしまえばむしろ使いやすいかもしれない。

いいものがあればそのうち追記するかも。