UMLモデリングツール(お絵描き含む)の比較
MementoWeaver開発記(4)
(大幅に加筆・訂正)
前回でJavaFXの使い方の最初の一歩はなんとなくわかりそうな気がしてきたので、各種の設計ドキュメントを書いてみる。
その際に、いくつかのフリーなモデリングツールを試してみたので、選択の理由と評価(感想)をまとめておく。
ドキュメント種別と使用ツールの関連
現時点で作成するドキュメントとそのツールの関係は以下のとおり。
ドキュメント | 使用ツール | 備考 |
---|---|---|
ユースケース図 | astah* community | Software Ideas Modelerから乗り換え |
ユースケース記述 | LibreOffice 4(http://ja.libreoffice.org/) | フリーのツールでユースケース記述までサポートはしてくれないのでWriterを使う |
コンポーネント図 | astah* community | 一般的に期待されるようなコンポーネント図とは一寸違うけど、社内的に言うところのCRDのレベルを描くために。Software Ideas Modelerから乗換え |
クラス図 | AmaterasUML | Javaからリバースしたいのでastah* communityでは不可 |
状態マシン図 | astah* community | Software Ideas Modelerから乗り換え |
ER図 | ERMaster | Software Ideas Modelerから乗り換え |
その他 | LibreOffice | 一旦、上記にはまらないような文書はオフィスソフトで描くことにしておく |
いつもの事ながら有用なフリーウェアを開発されている関係者の皆様に感謝します。
モデリングツールの比較
現時点ではAstah*,AmaterasUML,ERMasterに落ち着いているが、他のツールについても試してみた感想などを簡単にまとめる(プライベートなので無料で使えるツールに限定)。
関心のある諸元
ツール | 入手元 | 動作形態 | リバース | ユースケース図 | コンポーネント図 | クラス図 | ステートマシン図 | ER図 |
---|---|---|---|---|---|---|---|---|
astah* community | astah* community - 無償UMLモデリングツール | 単体 | 不可 | ok | ok | ok | ok | - |
AmaterasUML | AmaterasUML - Project Amateras | eclipse | 可(クラス図) | ok | - | ok | - | - |
ERMaster | ER Master | eclipse | 可(DDL) | - | - | - | - | ok |
Software Ideas Modeler | http://www.softwareideas.net/ | 単体 | 未確認 | ok | ok | ok | ok | ok |
Modelio | http://www.modelio.org/ | 単体 | 未確認 | ok | ok | ok | ok | - |
ArgoUML | http://argouml.tigris.org/ | 単体 | 未確認 | ok | ok | ok | ok | - |
Violet UML Editor | http://alexdp.free.fr/violetumleditor/page.php | 単体/eclipse | 不可 | ok | - | ok | ok | - |
感想
astah* community
国内での定番ともいえるモデリングツール。
UMLをスケッチするには結局のところastah*が最も使いやすいように感じた。
UML2系にも対応。
community版ではJavaからのリバースが出来ないので、これだけで閉じられないのが残念(有償版なら出来るようだが、自宅用ではお金を掛けられない)。
AmaterasUML
Eclipseプラグインであることは、ツールを複数立ち上げなくてすむという意味で1つのメリット。またJavaソースからのクラス図生成も行えるのはポイントが高い*1。
残念なのは、対応するモデルがユースケース図、クラス図、シーケンス図、アクティビティ図のみであること。
今回はステートマシンは欲しいと考えていたので主力にはなれず。
Javaの読み書きは行えるが、基本的にはお絵描きツールという認識(違ってたらごめんなさい)。
ERMaster
正直、これはすごい!って思った。ERモデリングのツールなんだけど、フリーでこの完成度は驚いた。
Eclipseプラグインであることも1つの利点だが、DDLのリバース/フォワードもメジャーなDBMSには対応している*2ようだし*3、基本的な作図については全く不満無し。
今まで使ったことのある他のERツール(フリー)と比較すると、特にメタデータの扱いが秀逸。
Software Ideas Modeler
何と言っても優れているのは、対応するダイアグラムのカバレッジの広さ。
UML,ER,BPMN等の比較的メジャーなダイアグラムから、「何それ美味しいの?」的なダイアグラムまで広範にカバーしている。
(その分、各ダイアグラムの扱いについて厳密性は失われているが。)
このツール1つでトップダウンアプローチのダイアグラムについては、ほぼ全て網羅できるのではないか?と期待して実際に使い始めてみたが、残念なことに若干Buggy。
ダイアグラムの構成要素を複製した時に、内部識別子的な何かの管理にバグがあるらしく、次に開いたときに図が書き換わっている、ってことが何度かあった。
このバグは一寸致命的なので今回は採用を見送る。
ArgoUML
以前に使っていたことのあるUMLモデリングツール。
特に欠点を感じているわけではないが、UML2系に非対応であることと、他のツールと比較して特に秀逸なところがあるわけでもないので今回は見送り。
作成したドキュメント
ユースケース図
要するに管理者がデジカメから素材を取ってきて、HTML(=メメント)を作ってというだけのツールなのでユースケースとしてはこの程度かと。
HTMLを作成する際には、素材に付与したタグをベースにして作成するHTMLを切り替える。
クラス図
クラス図はJavaと同期を取るために頻繁に更新されるだろうからここでは省略。Git上のプロジェクト内においておく。
ERD
一時的に付与したタグなんかを保管するためにDBにもデータを持たせる。
ADにも書いているけど、DBMSは導入が手軽なJavaDB(Derby)を使用することにする。
素材とタグの状態遷移は状態マシン図で表現する。
状態マシン図
ステートマシン(Material)
ステートマシン(TaggedMaterial)
データ配置
ユースケースの補足としてデータ配置のイメージをポンチ絵(Libre Office Draw)で表現する。
ファーストカットなのでまだまだ変更は入ると思うが、とりあえずこのような感じで進めてみる。