torutkのブログ

ソフトウェア・エンジニアのブログ

Javadoc生成ドキュメントにシーケンス図(Quick Sequence Diagram Editor)

クラス仕様をJavadocでドキュメント化すると、ときおりシーケンス図を載せたくなる場合があります。

DoxygenではMscgen: A Message Sequence Chart Rendererというツールがあってコメント中にテキストでシーケンス図の定義を書くと、ドキュメント生成時に画像ファイルを生成しドキュメント中に画像リンクを追加してくれる機能がありました。

Javadocの場合は、Quick Sequence Diagram Editor - Summaryというツールがあり、Javadocコメント中にテキストでシーケンス図の定義を書くと、HTMLドキュメント生成時に画像ファイルを生成し、HTML中に画像リンクを追加してくれる機能があります。
Javadocのタグレットとして動作するので、Javadocコマンドのオプションで指定します。

日本語訳ドキュメントのJavadocタグレット説明は以下

日本語訳された渋川さんのブログでの紹介記事(以下)を見て、実際に試してみようと思ったのでした。

Quick Sequence Dialog Editorというツールを見たときに「これはすごいかも」と思って、いろいろ触ってみたり、仕事で使って見たり、ドキュメントの翻訳をしたりしました。テキストベースで書いた擬似コードからUMLのシーケンス図を出してくれるというツールです。

実行メモ

Quick Sequence Diagram Editorのダウンロードページ(以下URL)から、jar形式またはzip形式を入手します。(Windowsでもexe形式はタグレットを指定できないのでだめです)

Javadocコメントに、簡単なサンプルを見まねて記述

/**
 * 位置情報を表現する。
 * @sequence.diagram "Locationのインスタンス作成"
 * a:A
 * /location:Location
 * 
 * a:location.new
 */
public final class Location implements Serializable {

コメント行の先頭のアスタリスクはあっても問題なしでした。
空行は、詰めてしまうとエラーになるようです。

NetBeansで試してみたので、プロジェクトプロパティの構築→ドキュメント化で[追加のJavadocオプション]欄に以下を追記

-tagletpath C:\java\sdedit\bin -taglet net.sf.sdedit.taglet.SequenceTaglet
    • Quick Sequence Diagram Editrのzip版を入手し、C:\javaの下に解凍した場合の記述

プロジェクトから[Javadocを生成]を実行し、生成されたHTMLドキュメントを見ると、シーケンス図が載っていました。