[UMLツールレビュー]
オープンソース、無償モデリングツールの実力派


有限会社メタボリックス
山田正樹
2003/9/11


前身はオープンソースのArgoUML
Poseidon Community Edition 1.6.0_01

製品名: Poseidon Community Edition 1.6.0_01
ベンダ: Gentleware
URL: http://www.gentleware.com/

■Poseidonの前身はArgoUML

 「Poseidon」はドイツのGentlewareが販売するUMLモデリングツールで、その前身はオープンソース(BSDライセンス)の「ArgoUML」である。ArgoUMLをベースに3年ほど前にプロダクト化した。当初は「ひどい出来」という印象だったが、最近はかなりプロダクト品質に近づいている。CobrynやRumpeといったUML業界の有名人を相談役として迎えており、GentlewareもOMGのメンバーとして気を吐いている。同社社長のMarko Boger氏は、UML2のダイアグラム交換の標準制定などに積極的にかかわっている。Gentlewareは、アグレッシブな若者たちの集団という印象がある。

 基になったArgoUMLはhttp://argouml.tigris.org/からダウンロードできる。こちらはBSDライセンスに基づくオープンソース・プロダクトである。Poseidonの多くはここに由来している。日本でIPAの資金を得て開発されたIIOSSも、4年ほど前のArgoUMLのコードを利用したオープンソース・プロダクトだ。なお、「Tigris」とは、ソフトウェア・エンジニアリングをサポートするツールをオープンソースで作っている。有名なところではSubversionなどもTigrisのプロダクトだ(WebDAVベースのバージョン管理システムでCVSの代替品)。ArgoUMLがPoseidonと大きく違うのはプラグインの機構を持っていないところだろうか。

 PoseidonはGentlewareのWebサイトからダウンロードできる。今回評価したのは無償のCommunity Editionというもの。プラグインが使えないことや印刷できないという厳しい制限が付いている。

 Standard Editionの価格は199ユーロ。Community Editionの機能に加えてプラグインが使えるほか、WordやPowerPointにドラッグ&ドロップでエクスポートできる。Professional Editionは699ユーロ。少々高いが、UMLDoc(JavaDoc風のレポート作成、別売りだと99ユーロ)、JarImport(名前のとおり、別売りだと49ユーロ)、Roundtrip(別売りだと199ユーロ)、MDLImport(Roseのファイルの読み込み、別売りなし)の各プラグインが付いている。

 Embedded Editionは組み込み向きのC/C++コード生成機能が付いており、1249ユーロ。特にランタイム・ライセンスの話は出てこないので、不要なのではないだろうか。Enterprise Editionは分散開発用の機能が付いており、999ユーロである(2003年7〜9月発売予定)。どれもGentlewareのWebサイトからクレジット・カードなどで購入可能。日本円で買うことも可能だ。ソフトウェアをダウンロードして、ライセンス・キーを電子メールで送付してもらう形式なので、送料は無料である。

 ちなみにいまベータ版として無償で配布されているプラグインにはRefactoring Browser、Statechart-to-Java、OCL-to-Javaがある。なかなか面白いことをやろうとしているってのはよく伝わってくる。つい買ってしまいそうになるぐらいだ。

■実際にインストールしてみよう

 さて、実際にインストールしてみよう。かかった時間は約3分。少々遅い。インストールにはJavaを必要とする。今回は1.4.1_01を使用した。インストール直後のディレクトリのサイズは24.6Mbytes だった。

 メニューは8個、トップ・レベルのメニュー項目は約49個、メニューをはじめ、記述はすべて英語で、日本語にはならない。ただし、あまり難しくはないと思う。中文などの設定はある。日本でも誰かが手を挙げさえすればいいんだろうが。起動に毎回50秒もかかるのは少々時間がかかりすぎという感じがする。

 ウィンドウ構成はRose風だが、プロパティ・パネルがダイアグラム・エディタの下の部分にある。これはArgoUML系UMLツールに共通している。プロパティ以外にStyle(見た目)、ToDo Items(ツールが「名前がよくない」などの文句をつけてくるCritiqueという機能(後述)があるが、ArgoUML系にはすべて組み込まれている)、Documentation、Java Source、Constraint(制約)、Tagged Value(タグ値)などのタブがある。一通りの図はすべて描ける。日本語もほぼ大丈夫のようだ。図はGIF、PNG、PS、EPS、SVG、JPGでエクスポート可能である。開けるプロジェクトは1回に1つ。ヘルプ・ファイルはHTML(もちろん英語)。Webサイトにも一通りのドキュメントがそろっている。

Poseidonでの作業例(クリックすると拡大)

 プロジェクトのファイル・フォーマットは.zargoで、実体は複数のファイルをzipしたものである。論理情報はXMI、図形情報はpgml(SVGの前身となった、PostScript/PDFの中身をXML化したようなファイル形式)になっている。これもArgoUML系UMLツールは共通している。

 線の引き方が少々特殊である。普通にも引けるが、ラピッド・ボタンというものを使った独特な引き方がある。要素を表すアイコンの周りにラピッド・ボタン(汎化、関連など)が複数(4つ程度)付いているので、それを引っ張って相手のところまでドラッグするだけで線が引ける。しかも相手がないところで離せば、自動的に相手になるべき要素が生成されるという優れものだ。このやり方もArgoUML直系でArgoUMLの初期のバージョン(3〜4年前)から実装されているが、最近では商用のツールでもこのインターフェイスを採用しているところが出てきている。この場合、毎回ツールを持ち替えずに作業できるので、かなり効率が高い作業が可能だといえよう。ただし、線を結ぶ相手に近づいてもその要素の色が変わったりしない点は分かりにくいところだ。

 ついでに図のスケールを変えるのもスクロールするのも、BirdViewというパネルでダイレクト・マニピュレーションできる。これも非常にうれしい機能だ。さらにBroom(ほうき)という機能もある。これはまさにほうきのようで、このツールを選んで図上を「掃く」と、縦あるいは横にモデル要素を一直線に並べることができるのだ。これもArgoUML直系のユーザー・インターフェイスである。ただし、うっかりシーケンス図を横に掃いてしまったりすると悲惨なことになるので注意した方がいい。

 名前は図上で直接入力することができるが、そのほかの性質はすべて図の下のプロパティ・パネルから入力する。プロパティ・パネル常駐方式は、画面の広さが要求される。要素をクリックしただけでパネル内容が書き直されるので、CPUを食う可能性があるという弱点はあるが、Poseidonでの操作感は悪くない。むしろ、てきぱきしているといっていい。プロパティ・パネルも、狭いパネルにさまざまなフィールドを詰め込んでいるという感じだが、要素の階層をさかのぼっていけたり、工夫されていると思う(この辺、かつてのArgoUMLはよくなかったが、最近はArgoUMLもよくなってきている)。

■ツールがモデルに関して文句をつけてくる

 要素の上に時々、ポストイット風のコメントが並ぶことがある。これはCritique(批評)といわれているもので、要はモデルに関してツールが文句をつけてくるのだ。これもArgoUML直系の機能の1つ。初心者は初心者で何をいわれているか分からないだろうし、ベテランはベテランでうるさいという人もいるだろう。何をチェックしているかはCritiqueメニューのDesign Issues、BrowseCritiqueを見てみると分かるが、「コンストラクタがない」や「名前がよくない」などをいってくるわけだ。これはダイアグラム・エディタやエクスプローラの下のタブを切り替えるとそれぞれまとめて見ることができる。

 それぞれの図について見てみよう.

 アクティビティ図はスイムレーンが描けない。どの図も簡単なドロー・ツールの機能をそろえているので、お絵描きすれば済む話ではあるが。加えて、アクティビティ図はユースケースの下にしか描けない。ユースケースが1つもないときに、アクティビティ図を作るとユースケースが自動的に作られてしまう。確かにこれは、論理的ではあるのかもしれないが、厳しい制約ともいえるだろう。

 アクティビティ図とは逆に、シーケンス図はユースケースの下に作ることはできず、パッケージの下に作るしかない。

 シーケンス図では、エクスプローラから要素をシーケンス図にドラッグ&ドロップすることはできない。これはほかのツールではほとんどできているので不便に思える。いったん作った後に、その「タイプ」をプロパティ・パネルで指定することはできるのだが、指定できるのはクラスだけでアクタは無理だった。アクタをシーケンス図に出したいことはよくあるのだが……。メッセージは「刺激:アクション」という形になっているのが珍しい(通常はどちらかだ)。アクションは受け手のオブジェクトにタイプが設定してあり、そのタイプが操作を持っていればそれを選択することができる。逆に勝手に作ることはできない。

 シーケンス図でのアクティベーションも少々面倒である。消すこともできないが、コントロールすることもできない。これはほかのツールでもありがちな状況だ。

 シーケンス図ではコピー&ペーストもできないようだ。少しだけ違うシナリオを複数作るということがやりにくい。コピー&ペーストは、クラス図ではできるが、関係はコピーできない。アクティビティ図でもできるようだ。Undo/Redoはメニューにはあるが、機能はしていない。

 状態チャート図は、ユースケースかクラスの下にしか作れない。状態は階層化可能、並行状態もあり。

 標準的なステレオタイプはあらかじめ用意されている。ユーザーが追加することもプロパティ・パネルから簡単にできるが、アイコンを変えることはできないようだ。そのほかの拡張性は、Standard Edition以上でしか使えないプラグインの機能を別にするとほとんどない。ただし、プラグインをユーザーが開発することは可能である。かなり詳細なチュートリアル・ガイド、APIドキュメントなどと一緒に例題も配布されている。これをざっと見た限りでは、Poseidonのかなりの部分がAPIとして露出しているように見えた。

■リバース/フォワード・エンジニアリングをしてみよう

 さて、リバース・エンジニアリングを試してみよう。例によってJUnitのコードを読み込ませる(Fileメニュー→Import Files)ディレクトリを指定し、その下を再帰的に読み込ませることができるから、この辺は簡単だ。かかった時間は約2分10秒。JavaのパッケージをUMLのパッケージに対応づけてくれ、さらにパッケージごとにクラス図を作ってくれる。

 今度はこれをフォワード・エンジニアリング(コード生成)してみる(Generationメニュー→GenerateJava Code from Classes of Model)。こちらも、あるパッケージの下すべてを対象に指定できる(一部を外すこともできる)。かかった時間は約1分30秒。生成されたJavaソースコードにはリバース・エンジニアリングしたクラスのメソッドの内容などもそのまま取り込まれている(一部のメソッドは消えてしまった。原因は不明。特に、エラー・メッセージも出ていないようだが)。このメソッド内の実装コードそのものはダイアグラム・エディタの下のJava Sourceタブのところに入っている。このコードを書き換えれば、フォワード・エンジニアリングで吐き出されるコードに反映されるはずだ。つまり、ラウンドトリップ・エンジニアリングが可能ということだ。また、JavaDocコメント(のテンプレート)がすべての要素ごとに挿入されている。

 同じ「Generateメニュー→Generate Java Code from Classes of Model」でJavaの代わりにHTMLを指定すると、モデルのHTMLドキュメントが生成される。かかった時間は1分ほど。クラスごとに、JavaDoc風のHTMLファイルが生成される。ただし、フィールド名が表になっているだけで、JavaDocコメントは使われておらず、リンクも作られていない。何よりファイル名がXXX.javaのままなので(実際の内容はHTML)紛らわしいことこの上ない。

 Poseidonは(ArgoUMLも)数年前の状況に比べればずいぶんきちんとしたツールになってきた。ただ、一部には使いにくい点がはっきり残っており、機能にアンバランスな部分も認められる。しかし、ユニークで面白い機能がたくさんあり、これからの成長性も見込めそうだ。無償で使えるツールとしては十分及第点だろう。いざとなればArgoUMLのソースコード相手に格闘だ。うまくいけばそれを元に新しいビジネスを起こせるかもしれない。

3/4

INDEX
UMLモデリングツール、使いやすさの鍵とは?
  レビューの基準
  Rational Rose Enterprise Edition
  Konesa Client Evaluation 1.1c
  Pattern Weaver Standard Edition 1.1
モデリングツールから統合開発環境へ
  WithClass 7.0J Enterprise Edition
Describe Developer for Sun ONE Studio 4
Together Control Center 6.0.1
オープンソース、無償モデリングツールの実力派
  Jude 竹1.1
  Enterprise Architect 3.51 Professional Edition
Poseidon Community Edition 1.6.0_01
  まとめ


IT Architect 連載記事一覧


この記事に対するご意見をお寄せください managemail@atmarkit.co.jp

「ITmedia マーケティング」新着記事

生成AIの米中依存、地政学リスクに――BCGが警告
ボストンコンサルティンググループ(BCG)の戦略シンクタンクであるBCGヘンダーソン研究...

Webサイトリニューアル時のSEOチェックポイント 順位を落とさないために必須の12の対応を解説
何らかの目的があって進めるリニューアルではあるものの、検索順位がその代償になってし...

ハッシュタグはオワコン? イーロン・マスク氏も「使うな」と投稿、その意図は……
ハッシュ記号(#)とキーワードを連結させることで投稿のトピックを明示する「ハッシュタ...