オープンソース、無償モデリングツールの実力派UMLツールレビュー(1/4 ページ)

» 2003年09月11日 12時00分 公開
[山田正樹(有限会社メタボリックス),@IT]

無償UMLモデリングツールながら機能は豊富でサポートも完備
Jude 竹1.1

製品名:Jude 竹1.1

ベンダ:(株)永和システムマネジメント

URL:http://www.ObjectClub.jp/Jude/


 「Jude 竹1.1」(最新バージョンは1.2.2)は永和システムマネジメントが無償で配布しているUMLモデリングツールである。現在は竹バージョンだが、梅バージョン(ほとんどクラス図しか描けなかったような記憶がある)は、1999年7月頃から無償配布をしている。Javaで記述された製品で、中国語/韓国語もサポート(実際には、特に中国語/韓国語をサポートしているわけではなく、システム標準の言語で動作している。GUIつまりメニュー名などは、日本語と英語をサポートしている。その上で、中国語と韓国語のWebページを提供している状況)しており、サポート用のWebページも存在する。無償とはいえ、サンデー・プログラマが作ったようなものではない。かといって、オープンソースのツールというわけでもない。このような、かなり機能が豊富なソフトウェアをソフトウェア・ハウスが無償で配布して、ビジネス上のメリットがあるのか疑問なのだが、どうやら、カスタマイズや(このツール関連の)受託開発、ソースコード販売でビジネス面をサポートするというプランがあるらしい。

 入手方法は上記Webサイトからのダウンロードである。ダウンロード方法は明解で、特に問題はない。Java実行系が別途必要である。実行環境は、J2SE 1.4.1以降が指定されている。1.4.0では入力がうまくいかなかった。

 インストールも明解で特に問題はない。ただし、インストール時にマシンに複数のJavaがインストールされている場合、どのJavaを使うかを指定できないので、その中の特定のバージョンを使わせるためには、.batファイルの書き換えが必要になるかもしれない。どのJavaが使われているかは、logファイルを見れば分かる。

 インストール直後のインストール・ディレクトリのサイズは2Mbytes程度。非常に小さい。起動も特に問題なし。起動直後のメニューの数は5つで、トップ・レベルのメニュー項目数は42個程度である。

 ウィンドウの構成は、Rose風だ。ただ、プロパティ・パネルはポップアップではなく、基本的にエクスプローラの下に表示されている。もちろん消すこともできる。またエクスプローラには複数のタブがあり、モデル全体をいろいろな側面から見ることができる。この1つに「マップ」というものがあり、これは図全体を眺めるためのビューである。直接スクロールも可能で。通常のスクロール操作は、図のエディタ上で、右ドラッグすることでスクロールする(図を直接掴んで動かすイメージで、斜め方向のスクロールが楽になる)。だ。マウスの右ドラッグで見たい範囲を見たいスケールで見ることも可能。

Jude 竹1.1での作業例(クリックすると拡大) Jude 竹1.1での作業例(クリックすると拡大)

 さて、図を描き始めてみると、まず線の引き方が独特なのに気付く。線を引き始める対象をクリックすると、線の断片が対象の中心からカーソルまで表示され、線を引き終わる対象までドラッグしていって離す。通常やるように、線を引き始める対象から引き終わる対象までずっとドラッグしていっても何も起こらないのでびっくりすることになる(最新バージョンでは改善されている)。

 もう1つの“不思議”は、線の向きである。関連やメッセージ、遷移は普通と同じく、矢印の根元から矢印の先に向かって引くのだが、汎化、実現、依存などは矢印の先から根元に向かって引くのだ。不思議である。実際これらの関係についてはツール・ボタンのアイコンにまで順序が書き込んであるから確信犯なのは間違いない。1つ考えられることは主語と目的語の関係だ。例えば、関連は「A knows B」でAからBに向かって矢印を引く。しかし、実現は「A realizes B」で、BからAに向かって線を引く。“これではまずい”とJudeの関係者は考えたのかもしれない。だが、依存は「A depends on B」で、AからBに向かう矢印でいいはずなのだが(最新バージョンでは改善されている)。

 日本語の扱いは普通で、特に問題は見受けられなかった。モデル全体の要素の中から名前の一部を指定して検索することもできる。

 Javaだからといって遅いとか操作がもたつくという感じはしなかった。ユーザー・インターフェイスはSwingを使っているのだろう。

 ファイル形式はJavaオブジェクトをシリアライズしたもののようだ。このやり方は低コストで実現できるのだが、一方で、バージョンの変化に比較的弱い。いまのところ特に問題はないが。

UMLを描いてみる

 実装図(コンポーネント図、配置図)以外の図はすべて描ける(公開済みのJude竹1.2ではサポートされている)。オブジェクト図が描けるというのが変わっている。オブジェクト図が描けるツールはありそうであまりない。たいていは、コラボレーション図で代用しているのだ。しかし、あると非常に便利である。ベース・クラスを設定し、属性を追加してやれば同期してオブジェクトにも属性が追加される。もちろん、オブジェクトごとに属性の値も設定・表示できる。願わくは(これはOMGの標準にもないのだが)instanceofの関係を描けると大変うれしい。

 全体の操作としては、ごく当たり前のことが当たり前にできる感じである。要素を図上でコピーし、別の図上にペーストすることができる。エクスプローラから図へのドラッグ&ドロップも可能である(もちろん論理的に意味がある場合のみ)。ただし、図を描ける場所がかなり限定されている。例えば、パッケージの下には、クラス図とユースケース図のみが作れるが、クラスの下にはアクティビティ図と状態チャート図のみ、ユースケースの下にはアクティビティ図と状態チャート図、シーケンス図、コラボレーション図のみといった具合だ。これは初心者や図の描き方がこの作法に合っている場合にはいいかもしれないが、少々制約が厳しいような気がする(メニューバーから図を作成できる機能はすでに開発済みだ)。

 ユースケース図ではもっぱらアクタがかわいいという評判である。最新バージョンではスマートな形状に変更されているが。

 シーケンス図ではアクティベーションをちゃんと見ており、戻りはそれに従ってしか描けないようになっている。このようなインターフェイスは意外といままでなかった。悪くないやり方だと思う。ただしまだ、逐次型のシーケンスしかサポートされていない。矢印を付け替えることもできない。間違えたら(あるいは考えが変わったら)描き直しなのである。とはいえ、どのシーンにおいても、Undo/Redoが可能な点は評価できる。

 クラス図では「図を罫線で表示」機能が楽しい。これはつまりクラス図をASCII アート(文字記号を使ってグラフィックスを表示する方法)で表そうというのだ。もちろん全能ではないけれど、ちょっとしたクラス図をメールに添える場合がよくある。この際、クラス図以外もサポートしていただければ(特にシーケンス図など)もっとうれしいかもしれない。

 エクスプローラのあるパッケージの下のクラス群から自動的にクラス図を作ってくれる機能もある。リバース・エンジニアリングをしたときのためだろう。これは追加もできるとなお使いやすいのではないか。

 すでにあるクラスと、同じ名前のクラスを図上で作ったときには「同じ名前のクラスがすでに存在しています」と表示して、キャンセルされてしまう。ダイアログで確認のうえ、既存のクラスと同じ名前にできないだろうか(エクスプローラからドラッグ&ドロップしたのと同様に)。

 サブシステムなどは表現できない(最新バージョンではサポート済み)。コラボレーション(点線だ円)も描けない。この辺はUMLのバージョン的には少し前の世代という感じかもしれない。それゆえ、少々凝ったことを表そうとすると工夫が必要になる。

 状態チャート図では、アクティビティ図と異なり、状態を入れ子にできる。状態機械をincludeすることも可能。ただし、includeした状態機械をダブルクリックして開くということはできない。名前を書いておくだけだ。残念ながら並行状態はまだ描けない。

 コラボレーション図は、メッセージ作成時にクリックした位置より受信側にマウスを動かすことで向きが決定する。作成後、上下に移動させることが可能という珍しいタイプである。メッセージの順序をどうやって操作するかは、どのツールでも工夫のしどころだが、Judeでは先行者と起動者を指定することで決めている。これは考えてみれば素直にUMLのメタモデルどおりなのだが、このような実装は見たことなかった。面白い。

実際に使える工夫が随所にされているのがうれしい

 さて、今度はソースコードを読み込ませてみよう。いままでどおり、JUnitを使う。しかし、staticな内部インターフェイスが理解できないようで、エラーになってしまった(最新バージョンでは、この問題を含め、Javaソースコード読み込みの問題も改善している)。途中でエラーになるとそこでストップして全体の処理がキャンセルされてしまうのが少々つらい。また、対象となるJavaソースコードも.java(複数可)でしか指定できず、フォルダで再帰的に指定できないのもつらい。かかった時間は25秒ほど。パッケージごとに「クラス図の自動生成」をしてみる。それなりに問題ないクラスが生成される。

 ラウンドトリップはできない。クラス図からのスケルトン生成やJavaDocの生成は可能だ。JavaDocを生成するときにはJDKのtools.jarをJudeのインストール・ディレクトリにコピーし、Judeを再起動する必要がある。JUnitをリバースしたものからのスケルトン生成が40秒程度。JavaDoc生成の方は残念ながら、生成されたindex.htmlから各クラスをたどることができなかった。リンクのパス名の問題のようだ(最新バージョンではこれを含め、HTML出力の問題も改善している)。

 図は1枚ごとに、PNGあるいはJPEGで出力できる。まとめての出力はできないようだ。Rose98の.mdlファイル(クラス図のみ)ということだったが、今回のレビューで使用したRose2001Aの.mdlファイルは「ファイルが壊れている」としてまったく読めなかった。現時点ではほかのツールとモデル情報を交換する方法はない。

 ヘルプはないが、Webサイトに簡単なFAQとTipsはある。拡張性やHTMLでのモデルの出力などの機能はほとんどないようである。Judeはバージョン管理やグループ作業を直接サポートするような機能も、ほとんどない。ラウンドトリップ・エンジニアリングのような開発工程全体をサポートするような機能もあまりない。ただし「モデリング」ということに限ってみれば、基本的な機能はほぼ実現している。何より細かくて実際に使える工夫が随所にされているのがうれしい。

 私が現在使用しているモデリングツールと置き換えることができるかといわれたら、実際には難しいと答えざるを得ない。しかし、無料でここまで使えるのであれば、重宝することは間違いない。

永和システムマネジメントのコメント

 大変参考になる利用者視点のレポート記事で、Judeを評価いただき感謝いたします。Judeは、弊社(永和システムマネジメント)が開発し、無償で公開しているUMLモデリングツールです。分析・設計時の思考を妨げない直感的な操作ができる、手に馴染むツールを目指しています。

 ユーザーからいただいた多くのフィードバックを反映させながら、バージョンアップを続けています。記事では、1.1を評価していますが、最新版は、Jude竹1.2.2(9月1日現在)です。最新版には、実装図やサブシステムのサポートを含み、記事中に書かれているソースコード読み込みやHTML出力に関する不具合なども改善されています。また、今回の評価記事でご指摘いただいた、関係作成時の操作方法や図作成箇所の制限緩和などの改善点については、さっそく、対応を開始しています。

 記事中に無償での配布意図について触れられていますが、「より多くの人にUMLを活用してほしい」、「多くのユーザーからの声を反映することで、魅力を向上したい」という想いから、今後も、無償配布を続けていきたいと考えています。今後、固有の環境によりフィットしたツールをご要望のお客様に対して、有償でJudeのカスタマイズサービス等を提供していきたいと考えています。

 Judeは、弊社Webページ(http://www.objectclub.jp/Jude/)より無料でダウンロードできます。ビジュアルなUMLモデリングにぜひご活用ください。Judeに関するお問い合わせなどは、jude-info@esm.co.jpまでお願いいたします。


       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ