連載
» 2003年06月24日 12時00分 公開

UMLツールレビュー:UMLモデリングツール、使いやすさの鍵とは? (2/4)

[山田正樹(有限会社メタボリックス),@IT]

機能の多さ、拡張性の高さに定評感
Rational Rose Enterprise Edition


製品名:Rational Rose Enterprise Edition

ベンダ:日本ラショナルソフトウェア

URL:http://www.rational.co.jp/products/rose/index.html



機能の多さに驚く

 最初のレビューはRational Rose(以下、Rose)である。なぜ、Roseから始めるかには理由がある。RoseはUMLツールのデファクト・スタンダードとしての位置付けを誇っており、ほかのUMLツールでもRoseのモデルの読み書きをサポートしているからだ。ゆえに、最初にRoseでモデルを描いておかなければ、他のツールでテストができない。後述するが、Roseのファイル・フォーマットである「petal」という形式は、OMGの標準規格にモデルを添付するときにも使われているほどである。

ALT Rose概要画面(クリックすると拡大)

 購入する場合は、1年分の保守費用付きで25万2000円から103万2000円。これはライセンスの形態とコード生成できる言語の数によって異なる(正確にはラウンドトリップ・エンジニアリングという)。2年目からの保守費用は購入費用の17%程度。保守費用には電話と電子メールによる技術サポートと無償アップグレードが含まれる。

 ライセンスの形態はマシンに固定されるノード・ロック・ライセンスと、ライセンス数以内ならどのマシンでも使えるフローティング・ライセンスの2種類。後者の方が75%ほど高い。フローティング・ライセンスの場合はロック・サーバ(FLEXlm)を動かして、それがライセンス数を管理するのだろう。

 今回レビューの対象となるのは評価版である。ウィザードに従いながらインストールを行い、Roseを起動して、使える状態になるまでにかかる時間は約14分。その間に、評価リクエストコードとユーザー情報(住所など)を入力し、電子メールで評価ライセンスキーを受け取る。

 インストール直後のインストール・フォルダ容量は218Mbytes。この圧倒的なボリューム感とインストール時間の長さは、ほかのツールに比べてかなりのものだという印象が残った。

 起動時のメニューの数は11、トップ・レベルのメニュー項目数は約130。この中には「ツール」と呼ばれる各プラグインが提供するメニューが16項目も含まれている。ぱっと見ても機能の多さに驚く。

 描ける図の種類は8種類。オブジェクト図は描けない。もし、オブジェクト図が必要な場合は、コラボレーション図で代用するのだろう。そもそも、オブジェクトだけが描ける図を欲しくなることは、実際のモデリング上ではまずないと言っていい。そのため、多くのUMLツールでは、オブジェクト図をサポートしていない場合がある。

ほかのUMLツールでもサポートされるpetalフォーマット

 ファイル形式は、Roseの独自ファイルである「petal」フォーマットである。もっとも、現時点では、OMGの共通標準フォーマットであるXMI(XML Metamodel Interchange)をサポートしていたとしても、有用だとはいえないかもしれない。XMIには図形情報が含まれず、互換性も弱いという“弱点”があるのだ。もし、XMIを使いたければhttp://www.rational.com/support/downloadcenter/addins/rose/index.jspにあるXMI 1.3.5 Add-inを使えばいいだろう。

 petalフォーマットを考察してみる。Petalそのものはプレーンテキストで、LispのS式の並びのような構造である。つまり“(要素の種類、要素の属性)”という入れ子だ。構造的にシンプルで、解析しやすいという利点がある。

ウィンドウ構成はほかのUMLツールにも大きな影響を与えた

 さて、基本を押さえたところで、モデルを描いていこう。ちなみに、Roseの起動時間は17秒程度。新しいモデルを作るときにはフレームワークを指定することもできるが、例えばJ2SE 1.3を指定すると、2分40秒ほどかかる。

 フレームワークとは、要はクラスライブラリをモデル化したものである。J2SEを使うシステムをモデリングするときには、java.util.Listなどのクラスが最初から図に入っており便利なのだが、一方、その時点でファイルサイズは232Kbytesになってしまう。実際に数えたわけではないが、数百個のクラスがモデルに含まれているいるので、ファイルサイズが増大するのは事実である。ゆえに、この機能を使うのは実装モデリングのときだけではないだろうか。Roseのこのバージョンでは、J2EE、J2SE 1.2、J2SE 1.3、jdk-116、jdk-12、jfc-11、oracle8-datatypes、rational unified process、VB6 Standard、VC6 ATL 3.0、VC6 MFC6.0などのフレームワークが用意されている。もちろん、自分で作成したモデルを基にフレームワークを作ることも可能だ。

 ウィンドウ構成は、左上にモデルブラウザ、左下にコメントビュー、右側にダイアグラムエディタというのが基本だ。さらにブラウザや図の中の要素を右クリックするとポップアップメニューが表示され、ダブルクリックするとダイアログが現れて詳細な操作や情報を入力することができる。この仕組みは、現在のUMLツールの多くに引き継がれている。UMLツールの原型を作り出したラショナルは偉大である。ただし、Roseの操作感を原型にしたUMLツールの先入観がすでに市場に広がっているため、新しいUMLツールがこのような構成からずれた場合、「直感的ではない」との評価を受ける恐れがある。逆に、この構成を壊すことで、まったく新しいイメージのUMLツールを開発することができる可能性があるともいえる。

 日本語対応はおおむね問題ないが、シーケンス図のメッセージ入力時に一部しか表示されない場合や、行分けが2バイト・コードの真ん中で行われて文字化けする場合がある。

 アンドゥは1レベルのみだ。また、アンドゥ可能な操作とアンドゥ不可能な操作がある。これは、実際にモデリングしていると不安な点として挙げておく。モデリングは流れ作業ゆえに、かなり以前の作業までさかのぼっていくことが多い。

 スクロールやスケーリング(拡大・縮小)もごく一般的なインターフェイスが提供されているが、 大きな図を描くときには通常の使用感だった。可もなく不可もなく。ただし、スクロールはOSのウィンドウシステムが提供する縦/横のスクローラで対応、画面の右下にある「手」ツールを使えば、上下左右に自由にスクロールできるという便利さだ。スケーリングは、メニューから拡大/縮小を段階的に指定できる。今回レビューした多くのUMLツールは、このようなインターフェイスだったが、さらに直接的なインターフェイスへと改善される余地がまだあるのではと思う。

外部のバージョン管理ツールをRoseで制御可能

 プロジェクト(モデルファイルの単位)は、一度に1つしか開けない。ただし別のプロジェクトの要素をコピー&ペーストすることは可能だ。

 モデルブラウザから図への要素のドラッグ&ドロップは、(範囲に限りはあるが)可能である。つまり、同じクラスが複数のクラス図に登場でき、一方を変更すれば他方も同じように変わっている。これが単なるお絵描きツールとしてのUMLツールと、背後にきちんとメタモデルを持っているUMLツールの違いだと思う。

 ヘルプはWindowsの標準ヘルプシステム。内容的には普通だが、このヘルプシステム自体は、何回もトピックを開かなくてはいけないなど利便性に課題を残している。

 外部のバージョン管理ツールをRoseから制御することができる点は評価したい。ただ、使えるのは、ラショナルのClearCaseとマイクロソフトのSCC(Source Code Control)インターフェイスに準拠したツールのみ。SCC準拠ツールには、もちろんマイクロソフトのVisual Source Safe(VSS)も含まれる。バージョン管理の単位はモデル、あるいはパッケージ(モデル管理ユニットと呼ぶ)に対応したモデルファイルだ。 つまり、Roseでは1つのモデルをパッケージ単位で複数のファイルに分割し、作業し、後で結合すること(分散モデリング)もできるわけである。Roseからバージョン制御でできることは、基本的にチェックイン/チェックアウトで、それ以外の機能はバージョン管理ツールを直接使う。ただしClearCaseに関しては、ほかのこともできるようだ。

 当初、レポート作成機能は搭載されていないと考えていたが、add-inの1つとしてWebPublisherという機能があった。かなり時間はかかるが(例題の場合8分以上)、Webブラウザを使ってRoseのような見た目(レポートやリンクという意味ではそれ以上)でモデルをブラウジングできる。例題では、画像ファイルなども合わせて1.8Mbytesになった。まるでJavaアプレットを利用しているようである。

ALT HTMLレポート画面(クリックすると拡大)

 印刷は図、あるいは仕様(モデル要素とそのプロパティの一覧)ごとに任意に選択して行うことができる。

リバース・エンジニアリング、フォワード・エンジニアリングの速度

 ひととおりモデルを描いてみた後に、リバース・エンジニアリングを行った。以前はリバース・エンジニアリングにかなり時間と工数を割かれたものだが、最近はツールの性能が向上してきており、比較的楽になってきた。「ツール」→「Java.J2EE」→「Javaのリバース・エンジニアリング」を選び、CLASSPATHとrt.jar、JUnitのソース・ディレクトリを設定するだけである。だが、設定は楽でも時間はかかる。約25分。図は出てこないので、必要ならばモデルブラウザから要素を拾い出して自分で描かなければならない。もっとも、ツールが自動で描いてくれた図は、分析/設計用途にはあまり使い物にならない場合が多い。今回のケースでは空のメソッドや配列の初期可子などがパースできず、エラーになった。

 今度はリバースしたモデルを、何の変更も加えずにフォワード・エンジニアリングしてみた。この場合は速くて1分少々。@roseuidというjavadocタグ、そのほかの標準的なjavadocタグが埋め込まれる。前者はラウンドトリップ・エンジニアリングで、クラスの識別に使われるのだろう。メソッドの場所がクラス内で移動している場合もあるが、基本的にメソッド内部は変更されない。今回のケースでは、引数のfinalを理解できず、勝手にメソッドを付け加えられてしまった。内部クラスの解釈にもバグがあるようで、一部の内部クラスのメソッドがコメントになってしまった。結局、上記の理由によりant buildは失敗した。

拡張性はかなり高い

 Roseの拡張性はかなり高い。拡張の詳細は、ヘルプのRational Rose Extensibility Interface(REI)として公開されている(ただし英語)。拡張にはいろいろなレベルがある。1つはスクリプティング。内蔵されたVisualBasic風の言語(RoseScript)で、Roseのほぼすべてをカスタマイズすることができる。簡単なスクリプト開発環境も用意されている。Roseからはメニュー項目を追加することで、これらの拡張機能を直接呼び出すことができる。拡張機能側からは、呼び出されたときに選択/表示されている図や要素を知ることができる。もう1つはautomationと呼ばれるOLEコントロール。公開されたOLEのインターフェイスを通してほかのアプリケーションからRoseを制御することができる。できることはRoseScriptとほぼ同じ。さらにadd-inという仕組みを使うと、要素を右クリックしたときに出るポップアップメニューにメニュー項目を追加することもできるし、ダイアログ(プロパティ・パネル)を追加することもできる。ただしこれをやる場合は、レジストリを変更したりするなど大変な作業である。このような拡張性を利用した拡張機能は、前述のXMI add-inのあるページでいくつか公開されている。

ALT Roseスクリプティング機能(クリックすると拡大)

 最近のUMLツールによく搭載されているレポート作成機能はRoseにはないが、これらの拡張機能を使えば自分で作ることもできるだろう。もちろんスクリプト機能でも実現できるが、SoDaというレポートオーサリングツール(別製品)が用意されており、他のRational製品とも繋がって複数のツールの成果物をまとめてドキュメント化できる。Roseユーザーには、こちらを勧めたい。

 以上、Roseをひととおり使ってみた。UMLへの準拠度、コストパフォーマンス、最新モデリングテクニックを求める場合は、実はほかにも機能面で強力なツールが存在することは確かである。とはいえ、フォーマットが広く使われていること、拡張性の高さ、普及度を考えればやはり、“The Rose”としての存在は当分揺るぎそうにない。

ラショナルソフトウェアのコメント

 多数のUMLモデリング ツールが存在する現在、ツールの評価や選定は大変な作業です。その中、ユーザーの視点で書かれたツールレポートはとても有益なものだと思います。弊社も、現場の貴重な意見として今後の製品開発の参考にさせていただきます。

 ユーザーはツールの特徴や機能の違いを検証し、各自の目的に最適なものを選択します。しかし、その差異にばかり捕らわれていると、本来モデリングから得られる重要なメリットを失う危険性もあります。モデリングとは、単にソースコードを自動生成するために行うものではありません。モデリングとは、曖昧なもの、伝えにくいもの、整理が難しいものを、誰もが分かる抽象的な表記でグラフィカルに表現し、関係者が共通の認識を持ち、分析と設計を進め、開発全工程を押し進めていく基準になりうるものと考えます。

 ラショナルソフトウェアでは、モデリングのメリットを十分に受けるために、その目的や方法(プロセス)をきちんと定義しています。プロセスをバックボーンに設計されたツールにより、モデルを軸にして開発を進めていく「モデル駆動型開発(Model Driven Development)」を提案しています。ソフトウェア開発環境展(SODEC)(2003年7月9日開催)では、Rational Roseだけでなく、最新のUMLモデリングツールであるRational XDEもご覧頂けます。要件分析からテストまでモデルが駆動する最新の開発環境をぜひ会場でお確かめください。



Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ

マーケット解説

- PR -