UML スケッチ ツール
2004年6月16日
UML 図をたくさん描きますが、CASE ツールは使いません。その理由は、リポジトリの仕組み全体ではなく、UmlAsSketchに興味があるからです。これまで、私の一般的な選択肢は Visio でした。Visio には UML テンプレートが付属していますが、組み込みのテンプレートは使いません。私はパヴェル・フルビーのテンプレートを好みます。
Visio は私にとって非常にうまく機能しており、今でも私の第一選択です。しかし、別のものに興味を持っていることを認めなければなりません。Visio は Windows でのみ動作しますが、Mac と Unix 系 OS も使用します。そのため、すべて(または実際には一般的なデータ形式)で動作するツールがあるとよいでしょう。私は他の人と共同作業をするのが好きなので、オープンソースであれば、Visio にアクセスできない場合は図を描くことができます。
Mac 上の OmniGraffle を少し触ってみましたが、その機能を十分に評価するには不十分です。ただし、アンチエイリアスされた見栄えの良い出力が生成されます。UMLet も面白いプロジェクトです。
しかしながら、私が最も望むことは、UML 図をテキストとして指定することです。奇妙に聞こえるかもしれませんが、UML 図は図であるため、なぜテキストを使用するのでしょうか。テキストにはいくつかの利点があります。図のレイアウトの多くは、図形式でのみ微調整するのが面倒で、テキスト形式の方がはるかに簡単です。図は編集のメカニズムではなく、視覚化として使用します。また、テキスト形式を使用すると、cvs と diff を使用して時間の経過による変更を追跡できます。
その結果、私はUmlGraphに興味をそそられました。この中で最も惹かれるのは、由緒ある pic プログラムを使用するシーケンス図エディターです。このページは、pic マクロでシーケンス図の素敵なテキスト表現を作成する方法を示しています。もちろん、pic マクロでできることには制限がありますが、さらにコンパクトでわかりやすいテキスト表現を想像できます。
objects thread, t:thread tool, :Toolkit peer, p:Peer, unborn trace found: a1:run(3) -> thread: run() -> tool: callbackLoop() -> self create -> peer handleExpose() -> peer: return delete -> peer
それは私の直感にすぎません。それが実際にどのように効果的かはわかりません。いずれにせよ、UmlGraph をそのまま試して、どのように機能するかを確認する予定です。pic プログラムは非常に小さいため、変更が必要な場合は簡単に調整できます。
UmlGraph のクラス図ジェネレーターは、Java ソースファイルからコードを生成できる点で優れています。ただし、単なる図記法としてはかなり扱いづらいようで、クラスの配置を制御したいと思います。顧客は注文の左にあるなど、十分なものがあります。この図を、次のようなテキストを使用して表すことができます。
layout row: Controller, EmbeddedAgent, URLStreamHandler, ChannelIterator SetTopController below: URLStreamHandler PowerManager below: SetTopController interface URLStreamHander operations OpenConnection() parseURL() setURL() toExternalForm() class SetTopController specializes Controller EmbeddedAgent implements URLStreamHandler attributes authorizationLevel operations startUp() shutDown() connect() associations -> PowerManager class ChannelIterator dependencies -> SetTopController keyword:friend
これもまた私の直感に過ぎません。重要なことは、誰かがこの方向に進んでいることを嬉しく思っており、さらに多くのことを見てみたいということです。
人々が私に教えてくれた、スケッチのようなツールをいくつか紹介します。
- MetaUml
- TWiki Draw プラグイン
- シーケンス
- エージェント UML ツール
- yUML: img タグに埋め込まれたテキスト仕様から、Web ページにクラス図とユースケース図を描きます。乱雑なスタイルです。
- PlantUML