モデリングツールから統合開発環境へUMLツールレビュー(1/3 ページ)

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

対応プログラミング言語の豊富さが魅力
WithClass 7.0J Enterprise Edition

製品名:WithClass 7.0J Enterprise Edition

ベンダ:グレープシティ(旧:文化オリエント)

URL:http://www.grapecity.co.jp/japan/support/database/P3_139.htm


 WithClass米マイクロゴールドが開発、グレープシティ(旧:文化オリエント)が販売しているUMLツールである。WithClassというとかつてのC++の前身、「C with Class」を思い出すが、 このツールはおそらく関係がない。私がこのツールを見たり、実際に使ったりするのも初めてだ。

 今回はEnterprise版の正式ライセンスを評価用にお借りした。パッケージ内容は以下のようになっており、きちんとしたパッケージに入っている。『ITマネージャとソフトウェア設計エンジニアのためのかんたんUML - オブジェクト指向モデリング言語がわかる本』/ (株式会社 オージス総研著、千藤雅弘監修、1999年、翔泳社)とCD-ROM×1、カタログ、パンフレット多数、ユーザー登録カード(料金受取人払いはがき 登録はWebからでも可)などいろいろ入っていたので1.2kgもあった。

 WithClassには、エンタープライズ版とプロフェッショナル版があり、エンタープライズ版では、HTMLとWord文書への出力、VBAによるマクロ/アドインが可能である。この差が7万円(エンタープライズ版は16万8000円)かもしれない。フォワード・エンジニアリング/リバース・エンジニアリングの能力に関しては、どちらのバージョンも同じというのがほかのツールとは違っている。

さっそくインストール

 さっそくインストールしてみる。インストールにかかった時間は必要な再起動も含めて約7分、インストール直後のインストール・ディレクトリのサイズは約12.2Mbytesだった。

 ウィンドウの構成は「Rose」に似ているが、モデル・ブラウザに相当するビューはない。つまり、図を論理的にまとめたり、モデル要素に図以外から直接アクセスしたりすることはできないということだ。クラスに関してだけは、このようなビュー(クラス・ブラウザと呼んでいる)があり、パッケージなどを使って構造化することができる。

 インストール直後のメニューの数は11、メニュー項目数はdisableされているものも含めてトップ・レベルに115程度ある。

 さて、実際にモデルを描いてみることにしよう。サポートしているUMLのバージョンは明記されていないようだが、そんなに新しい感じはしない。UML 1.1程度ではないだろうか。

 要素に対する属性はすべてダイアログから入力する。遅くはないが、線が思うように引けないのでいらいらする人もいるかもしれない。デフォルトでは、直角に曲がる線しか引けず、それを細かくコントロールできない。ユーティリティ->環境設定で、直線を引くように設定し、線のポッチをダブル・クリックして開くダイアログで直線にすることはできるのだが、状態チャート図の状態遷移では、このような操作はできなかった(その代わりに曲線を選ぶことができた)。線は関連/集約/汎化のほかに、線/破線/矢印線などというUMLのセマンティクスとは独立なものもあり、これを使うと点線の関連なども描けてしまう。UMLモデル要素とは関係のない図形も描けるのだ。これはこれでいいことだが、特にUMLモデル要素を区別することはできないので、使いようによっては困ることもあるのではないだろうか。ユースケースさえも、実は単なる「だ円」なのである。当然、拡張点を設定するなどユースケースとしての属性を設定することはできない。

 つまり、UMLモデル要素として扱われるものと、単なる図形データとして扱われるものがあるわけだ。図形データに対しては名前、説明、関連するクラス/ダイアログ/ファイル、コメント、ステレオタイプ、作成者、日付(自動的には付かない)、インターフェイス、タグ値を設定することができる。クラスなどは単なる図形データではなく、「クラス」として扱われる。

 この結果、いくつか疑問が浮かぶ。例えば、アクティビティ図でスイムレーンが必ず2つずつ作られ、そのペアに対してだけしか名前が付けられないのはなぜか? シーケンス図で一度、ライフライン間にメッセージの矢印を引くともう二度と動かせないのはなぜか?

 興味深い点もある。例えば、コンテナ(アクティビティ図のスイムレーンとか状態チャート図の複合状態とか)のインターフェイスは独特だ。普通のツールでは、ある要素をコンテナの中にドラッグ&ドロップをしてようやく中に入れることができるのだが、WithClassではコンテナの大きさを広げるだけで、その中に入った要素はすべてコンテナに含めることができる。

 要素の選択もユニークだ。普通は選択されたものにハンドルが付いたりするのだが、WithClassでは選択範囲が点線で表示される。この範囲をうまくドラッグできれば、その上に載っている要素を移動できるのである。しかし、実際にどの要素が動くかははっきりせず、範囲を表す点線もうまく消えずに残っていたりし、直感的でないと感じた。

拡張子は「.omt」と「.wc」

 WithClassのモデルは、「.omt」という拡張子を持つバイナリ・ファイルに格納される。この.omtというのは、OMT(UMLの創始者の1人であるランボーが、UML以前に提唱していた方法論であるObject Modeling Technique)法からきているのだろうか? WithClassは、UMLのほかに、Rambough、Coad-Youdon、Booch、 Shlaer-Mellor、Martin-Odellの方法論をサポートしているのである。なお、Rambough以外の方法論を指定してもファイル名の拡張子は変わらなかった。

 .omtファイルと同時に「.wc」というファイルも作られるのだが、こちらはテキスト・ファイルである。個々の図ごとの保存も可能で、このときには、「.wcd」という拡張子を持つファイルになる。中身のフォーマットは、.wcと共通のようだ(もちろん表す内容は違う)。ところで、うちの環境では.omtファイルをダブル・クリックで開けることはできなかった。

 ほかのUMLツールとの相互運用性はない。図だけに関していえば、gif、jpeg、TIFF、bmp、WMFに落とすことができる。WMFは日本語にもきちんと対応している。

 バージョン管理の機能は特にない。PVCSへのアクセスがメニューにはあるが、ヘルプには「サポート対象外」と書いてあった。

レポート、印刷、ヘルプを検証する

 バージョン管理に関係のある機能かと思ってしまうのは、「リポジトリ」である。クラスやパッケージを登録したり、登録したものを図に持ってきたり挿入することができるようだ。つまり、永続性のあるペーストボードのような機能だろうか。しかし、ヘルプに使い方が載っていないので判然としない。

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

 エンタープライズ版の特徴は、レポート生成機能だろう。ところが、Wordでのレポート生成をしようとしても、Word.Applicationが見つからないといって失敗してしまう。あらかじめWordを起動しておいても同じだった。HTMLレポートを作ってみる。対象となるのはクラス図のみ。HTMLレポートはうまく生成された。クラス図とクラス図の中のクラスをクリックすると、そのクラスの詳細(属性、操作など)が表示される。

 図の印刷は1枚ずつの対応で、巨大な図を1枚に収める指定はできない。

 ヘルプは、Windowsのヘルプ機能である。使用方法、メニューごとの説明、図ごとの説明はある。しかし、内容が豊富とはいえないと感じた。前述の「リポジトリ」に関する記述がその一例である。開発元のWebサイトでは、コード生成のチュートリアル(英語)があった。

プログラミング言語の種類が多い

 拡張性はかなり高い。VBA(Visual Basic for Application)を使用すれば、モデル各図の情報にアクセス可能である。実際に、エンタープライズ版に付属しているHTMLやWordのレポート生成アドインはVBAで作成されているようだ。

 ステレオタイプの追加もできる。WithClassのインストール・フォルダにある「XXXStereotype.txt」(XXXはActorなど、モデル要素の種類名)にステレオタイプ名を付け加えると、ダイアログで選択できるようになる。

 WithClassで目を引くのは、コード生成/読み込みできるプログラミング言語の種類の多さだ。読み込み可能なのは、C#、VB.NET、VC、Java、C++、Delphi、IDL。生成可能な言語は、さらにoo COBOL、Smalltalk、Eiffel、SQLがある。さらにユニークなのは、クラス図だけではなく、状態チャート図からもコード生成が可能な点だ。変換パラメータは、WithClassインストール・フォルダのScriptsフォルダにあるファイルで指定されている。このパラメータを設定すれば、変換方法を変えることもできるはずである。シーケンス図からはレポート生成が可能である。

 実際、Javaのクラス図を変換すると、すべてのクラスを1つのファイル(ファイル名はreport.txtで決め打ち)に出力したが、クラス図上でJava固有の情報を設定することができなかった。状態チャート図では、イベントはすべて文字列、状態側のアクションはなく、シンタックスもそのままではコンパイル不可であった。コード生成機能に関しては、今後の課題だろう。

 JUnitのリバース・エンジニアリングには約55秒かかった。すべてのクラスを1枚のクラス図に展開するので、 人間が見るのには向いていないが、基本的な情報は取り込まれているようだ。作成されたファイルサイズは155Kbytes。なお、WithClassは、ラウンドトリップ・エンジニアリングをサポートしていない。

グレープシティ(旧:文化オリエント)のコメント

 WithClass 7.0Jは、UMLツールの導入を気軽に検討いただくことを目的に、書籍を含めてお求めやすい価格設定で2001年11月に発売しました。米マイクロゴールドが販売するオリジナル製品は、1993年からの販売実績があります。

 さて、今回ご指摘の点は、やはり弊社ユーザー様からもご意見をお寄せいただいておりました。改めて今後の製品開発に役立てていきたいと思います。また、ヘルプにつきましては、その後情報を追加しております。現在、弊社のWebサイトで公開中の修正版をご利用いただければ幸いです。

 また、トライアル版もご用意しておりますので、ぜひ実際にお試しください。


       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ