
Quick Sequence Dialog Editorというツールを見たときに「これはすごいかも」と思って、いろいろ触ってみたり、仕事で使って見たり、ドキュメントの翻訳をしたりしました。テキストベースで書いた擬似コードからUMLのシーケンス図を出してくれるというツールです。誤解を恐れずに例えると、シーケンス図専用のDoxygenみたいな。感じです。
コードを打つたびにリアルタイムに更新されるGUIが秀逸で、結構面白いです。擬似コードを使うので、マウスで絵を描くようにはできず、ナビゲーションもないので、コーディングルールを覚えないと使えないという難点はありますが(なので翻訳をした)、ルールはそんなに複雑ではないし、結果がすぐに絵になるので楽しいです。
GUIベースのツールだけど、コンソールコマンドとしても動作し、疑似言語で書かれたソースコードを読み込ませると画像ファイルとして出力してくれる機能もあるので、これはやるしかない!と思ってSphinxの拡張機能を作ってみました。Sphinxの中に.. sequence-diagram::というディレクティブを書いて、Quick Sequence Diagram Editorの擬似コードを書くと、ビルド時に絵にしてくれます。Doxygen用の拡張機能をコピーしてちょこちょこ置き換えただけの手抜き実装ですが、ちゃんと動いて画像を出してくれます。トップのスクリーンショットがその結果になります。
拡張機能を使うにはリポジトリに置いてあるコードをダウンロードして、sdedit.pyをコピーして、conf.pyの拡張機能の所に追加すると、専用のディレクティブとオプションが使えるようになります。詳しくはこちらをご覧ください。
まぁ、Sphinxに組み込まないで、単独で使っても面白いので、ぜひ使って見てください。