2010-02-12-02-SVG で UML - project-enigma

2010-02-12-02-SVG で UML

>> Site top >> weblog >> 月別アーカイブ >> 2010年02月のlog >> 2010-02-12-02-SVG で UML

最終更新日付:2014/01/01 19:03:03


SVG で UML

2010 年 02 月 12 日

前回の続き。

そんなわけで、ソフトウェアベンダーが販売する UML ツールは個人には好きではない。大艦巨砲主義的で、大抵高価だからだ。安価なものやフリーのものも存在するようだが、細かい仕様に追従しようとして扱いが面倒だったりする。自分が必要としているのは、あくまで思考を記録しておくためのスケッチとしてのツールだ。そこからソースコードを生成するつもりもないし、微に入り細に入った記述をするつもりもない。

昔は、そこまで考えていなかったため、(Microsoft に買収される前からの)Visio を使用していた。Visio は VBA マクロを搭載していたため、オートメーションができたから色々とマクロも仕込んだ。余談だが、Visio 社はドローツール関連の特許を持っていた上に Visio 製品に VBA マクロを搭載してしまったために Microsoft に買収されてしまったのだ。ちょっと残念だったりする。

現在の話に戻るとしよう。Visio は現在では UML の記述を標準でサポートしているが、問題は Visio が必要だということだ(当たり前だが)。これが自分としては引っ掛かる。PDF にでも印刷すれば良いが、それで場所を選ばなくなるのは閲覧だけだ。そして、Visio の UML 機能も、これまた『頑張り過ぎている』のだ。自分にとっては too muchなのである。くどいようだが、自分が必要としているのは軽量で、必要十分な描画ができて、どこでも使えて他のソフトウェア製品に依存しないツールである。

そのような不満を感じていた頃、VML( Vector Markup Language )というのをネット上で目にした。HTML のようなテキストによるマークアップの記述により、ブラウザ上にベクタグラフィックスを描画できるというやつだ。最小限のテキスト記述から VML 文書を生成するツールを作れば、あとの描画はブラウザに任せることができるだろう。

当時は実験的に試しただけだったが、最近またその熱が戻ってきた。調べてみると、VML は SVG( Scarable Vector Graphics ) にとって替わられたようだ。この仕様を調べ、自分にとって必要なダイアグラムを生成するツールを作ってみた。たとえば、以下の画像はツールで生成した SVG ファイルをブラウザで表示させた、ツール自身の設計情報(の一部)の画面キャプチャである。

この SVG 画像を生成するためにツールに入力するテキストファイルは以下の通りだ。

class
name:Entity
abstract:true
position:300 100

class
name:EntityFinder
stereotype:interface
position:500 100

class
name:SVG
position:300 300
attributes:
- m_rect : Rect
- m_entityList : EntityList
operations:
≪EntityFinder≫
+ FindEntity( ... ) : Entity*

dependency
from:Entity
dest:EntityFinder

inheritance
from:SVG
dest:Entity

implementation
from:SVG
dest:EntityFinder
linestyle:RB

composition
from:SVG
dest:Entity
linestyle:LL
arrow:1

このツール、まだ完成には至っていない。簡単なクラス図とユースケース図しか書けないし、関連の多重度やロール名などにも対応していない。とはいえ、膨大な UML 仕様の全てをサポートするつもりはないし、あくまで(現時点では)個人的なツールに過ぎない。必要に応じて少しずつ育てていけたらいいなとは思っている。

問題は、Internet Explorer が SVG をネイティブサポートしておらず、Adobe SVG Viewer というプラグインを必要とすること、そして Adobe SVG Viewer はどういうわけだか開発を終了していることだ。Mozilla Firefox はネイティブサポートしているようだが、なぜか点線すらまともに描画してくれない。設定が悪いのかもしれないが、そこまで調べる元気もない。こうなると、『軽量で、必要十分な描画ができて、どこでも使えて他のソフトウェア製品に依存しないツール』という当初の目的が達成できるのかも怪しくなってきている。悩ましいところだ。

 

コメント

仲間がいた - 01/21/2011 04:07:22 PM

私も昔UMLをSVGで作ろうと試みた事がありました。2005頃だったと思います。

その当時もIEがSVG非対応で、さらにFFとSVGViewreの描画実装の違いで難航、UMLを記述する為のXMLフォーマットも策定されておらず、目論見はもろくも崩れ去ったのでした。

HTML5の到来でようやくIE9からSVG正式サポート、他のブラウザの対応もなされてきてるので、時間があったらまた挑戦したいなーって心の奥で思っていたところでした。

今ではUMLを書くときはastah(旧JUDE)を使っていますけど、

UML仕様に引きずられて、表現したいように表現できなかったり(具体的にはクラスの関係性に備忘コメントとか付けたかったりとか他にも色々)してもう少し事由に書きたいなーって思ったり。。。

そんなところに「思考を記録しておくためのスケッチとしてのツールだ」を見て、激しく同意しましたよ!

ブログを書かれてから1年近く経ってますけど、このツールが美人さんに育ってゆくことを応援しています。

kagelow - 01/22/2011 12:12:46 AM

コメントありがとうございます。この手の話題に反応して頂けるととても嬉しいです。

実際問題として、たとえば Rational Rose などを筆頭とする大艦巨砲主義的な UML CASE ツールを「本気で」使っているプロジェクトや個人ってどれくらいいるんでしょうね。そういった調査があれば結果をみてみたいな、と思ってしまいます。

私がやろうとしたことは、つまるところ UML 記法を(自分に必要な部分だけ)サポートする svg ファイル生成ツールです。その後、1年近くイジり回して現在に至っています。改めて長々と書いたのが2010-11-24-01-SVG と UML の話のあたりにありますので、よろしければ御笑覧下さいませ。

このページにコメントする

 

このページのタグ

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.