[UMLツールレビュー]
オープンソース、無償モデリングツールの実力派
有限会社メタボリックス
山田正樹
2003/9/11
オーストラリアのUMLモデリングツール Enterprise Architect 3.51Professional Edition |
製品名: | Enterprise Architect |
ベンダ: | Sparx Systems |
URL: | http://www.sparxsystems.com.au |
■トップ・レベルのメニュー項目数は90
「Enterprise Architect」は、オーストラリアのSparx Systemsが開発、販売しているUMLモデリングツールである。今回は英語版の評価である。実際、30日間利用可能な評価版は英語版しかないそうなのでその点、ご了承願いたい。
英語版はオンラインで購入することができる。デスクトップ版が95 USドル、プロフェッショナル版が149 USドル、コーポレート版が173 USドルと極めて安価である。プロフェッショナル版の機能はデスクトップ版+コード・エンジニアリング+複数ユーザーのサポート、コーポレート版の機能はプロフェッショナル版+RDBへのデータ格納+セキュリティの設定、ということらしい。Windows版のみで、日本語版は国内の窓口(http://www.sparxsystems.jp/ea_purchase.htm)から購入することができるが、まずWebで購入を申し込み、見積書と振込先を受け取る。費用を口座に振り込めば、ライセンス・キーとダウンロードURLが電子メールで受け取れる。
インストールにかかった時間は2分30秒。インストール直後のインストール・ディレクトリの大きさは17.1Mbytes。英語版のドキュメントは540ページのPDFがある。日本語版はWinHelpだけのようだ。そのほか開発元/販売元のWebサイトにもかなり豊富な資料やメイリング・リストなどの受け口がある。日本の窓口ではメール・マガジンを出していたり、XOOPSを使ったフォーラムを運営しており、熱意はありそうだ。
Enterprise Architectを起動してみると、メニューの数は9個、トップ・レベルのメニュー項目の数は90ほどもある。さらにメニューの中身を見てみると普通のUMLツールには見当たらないようなメニュー項目が目に付く。例えば、「Projects」というメニューがあり、そのメニュー項目は「Issues(問題点)」「Glossary(用語集)」「Metric
Types(尺度の種類)」「Estimation(見積もり)」「Relation Matrix(関連マトリックス)」。「Reference」というメニューには「People(人)→Model
Author(モデル作成者)、Clients(顧客)、Resources(資源)、Roles(役割)」「Maintenance(保守)→Problems(問題)、Testing(テスト)」といった具合なのだ。
つまりEnterprise Architectは単なるUMLモデリングツールではなく、開発プロセス全体をサポートするツールなのだろう。
■図の自由度は高いがインターフェイスに難
ファイル形式はマイクロソフトのJetのようだ。そのほかにXMIのimport/exportをサポートしている。ウィンドウ構成はやはりRose風だが、プロパティ・パネルがいつも表示されているタイプ。Windowsのアプリケーションらしく、ウィンドウ内部のパネルの構成はかなり自由に変えることができる。プロパティ・パネルは単なるテーブルなので、項目数が多くなってくるとどこに何があるのかよく分からない。
Enterprise Architectでの作業例(クリックすると拡大) |
ツール・ボタンを選択して、図上に要素を置くとまずプロパティ・パネルが出て、名前などの入力を促される。図上での直接の名前の変更などはできない。関係を表す線も、曲げようと思ったら右クリックから“Toggle Line point at Cursor”を選ぶかCtrl-Qする必要がある。直接の操作ができるものはかなり少ないと感じた。何よりトップ・メニューもポップアップ・メニューも項目数が大変多いので、慣れないうちはかなりどぎまぎさせられる(メニュー項目名が英語ということもあるかもしれないが)。例えば、クラス図でクラスを1つ作り、右クリックでポップアップ・メニューを出すと、なんと24個のメニュー項目が出てくるのだ。
クラスの属性や操作はクラスの右クリックからダイアログを経由しないとできないようなのだが、そのダイアログが非常に分かりにくい。ダイアログの下半分に属性(あるいは操作)の一覧が出ているのだが、まず下でnewして、ダイアログ上半分のフィールドを埋め、また下でsaveしなければならない。それを忘れると消えてしまう。
図の自由度はかなり高く、任意の図にほぼ任意の要素を描けてしまう。これはこれで慣れればさまざまなことが描けてよい。が、逆に考えると、図で描いたこととUMLメタモデルとの論理的なマッピングは弱いのかもしれないと感じた。
UML以外のいろんな図が描けるというのも、Enterprise Architectならではの特徴だろう。例えば、分析図。これはいわゆるビジネス・プロセス図と考えてよさそうだ。名前のとおり、エンタープライズ・アーキテクチャの記述にも使えるかもしれない。Customなんていうのもあり、GUIの遷移を描いたり、あるいはまったく自由な図を描くことも可能だ。
操作感はどうかというと、実は少々“鈍い”と感じることがあった。要素を図の上に置いてからダイアログが出るまで2〜3秒かかる。プロパティを持たないはずの「開始状態」を状態チャート図の上に置いても、やはりダイアログが出て入力を強制され、思考の流れを分断される。線を引く場合は確定するまで1〜2秒かかり、少しつっかえる感じがした。
図間で要素をコピーしようとすると、関係(シーケンス図ならばメッセージ)はコピーできなかった。要素を複数選択してコピーしようとした場合には、1つの要素ごとにコピー先の名前を聞かれる。さらに、図を切り替えるたびに保存するか捨てるか聞かれる。間違えて「捨てる」を押しそうになるのが怖い。
アクティビティ図で状態を入れ子にできないことやシーケンス図でメッセージを引くときにトラッキングしてくれず、どこに引いているのかよく分からない、クラスの関連などを図の上で直接付け替えることができないなど気になる点はいくつも指摘できる。
UMLのバージョンとしては1.1が基本だ。
明示的にダイアグラムをグラフィックスとして落とすメニュー・コマンドがある。フォーマットはBMP、PNG、WMF、EMF、JPG、GIFなど。コピー&ペーストでPowerPointに持っていくこともできる。
■開発プロセス管理面は充実
一方、開発プロセスの管理的な側面は非常に充実している。
例えばどの要素にもポップアップするプロパティ・ダイアログには「Responsibility(責務)」というタブがあるのだが、その中には要件、型、状態(提案済み、承認済み、必須、検証済み、実装済み)、難しさ(高中低)、優先度(高中低)、作成日(これは自動設定される)といったフィールドがある。
また、エクスプローラ部分も最初から複数のビューに分かれている。ユースケース・ビュー(ビジネス・プロセス・モデル、ユースケース・モデル)、動的ビュー(アクティビティ、相互作用、状態チャート)、論理ビュー(データ・モデル、論理モデル)、コンポーネント・ビュー、運用ビュー、カスタム・ビュー(公式要件、非機能的要件、パフォーマンス、ユーザー・インターフェイス)などだ。図や要素はすべてこのビューの下に作ることになる。
標準的なステレオタイプは用意されている、ユーザーが追加するのも簡単だ(Referenceメニュー→Stereotypesなど)。ステレオタイプにアイコン(metafileフォーマット)を関連付けることもできる。ステレオタイプはセットとして(プロファイルの一部として)扱いたいものだが、プロファイルを管理することもできる。同じようにパターンやテンプレートも管理することができるようだ。この辺は機能満載のEnterprise
Architectらしく抜かりはない。
Enterprise ArchitectはOLE Automationのインターフェイスを提供している。このインターフェイスを通じて、Enterprise Architectの内部情報の多くにアクセスできる。これ自身はサポート対象ではないようだが、PDFのドキュメント(80ページほど)などが提供されている。
■コンセプトはまさに「Enterprise Architect」である
さて、今度はリバース・エンジニアリングしようと思ったのだが、どうも「Diagram→Import」メニューの下のメニュー項目がdisableされており、どのようなタイミングでenableされるのかよく分からない。リバース・エンジニアリングの対象もフォルダ単位ではなく、ファイル単位でしか指定できないようだ。ただし、リバース・エンジニアリングの対象となる言語の種類は多く、C++、Java、VB、VB.net、Delphi、C#となっている。ここではJUnitのソースコード(当然Java)を読み込んでみる。
package文とimport文を理解はしてくれているようだが、JavaのパッケージをUMLのパッケージには対応づけてくれない。これはそういうポリシーと思えばしかたがないかもしれないが、少々やっかいだ。
今度は読み込んだクラスをそのまま書き出して(フォワード・エンジニアリング)みよう。コード生成も個々のクラスごとに指定して行うしかないようだ。クラスごとに右クリックの「Code Generation」メニューでリバース、フォワード、コードの閲覧(エディタの起動)ができる。しかし、どうも1つのファイルに複数のクラス(内部クラスなど)があると、読み込みはできても書き出しができないようだ。JUnitは内部クラスを使っているため、ラウンドトリップができないということになる。
また、モデル上でインスタンス変数を1つ消去し、フォワードしてみたのだが、吐き出されたコード上では消えていなかった。あまり信頼性は高くないようだ。モデルをHTMLあるいはRTFドキュメントとして作成することもできる。HTMLで出力してみると、JavaScriptを使ったナビゲーションも可能で、図も含むかなりリッチなHTMLドキュメントが作成される。英語版では残念ながら一部の日本語文字列が化けていた。
機能は豊富なのだが、“小さい気配りが大きく足りない”ために、とても使いにくい印象は拭えない。非常に安価なので、この豊富な機能をうまく使い込むことができれば“はまる”ことができるかもしれないが。この機能の多さは、Togetherの方向性とは大きく違う。UMLを使用して、マネジメント・プロセスとエンジニアリング・プロセスをちゃんとやろうという方向だ。ただし、プロジェクト管理関係の機能は特にプロジェクトによって大きくニーズが違ってくる。そのためにフィールドなどを自分のプロジェクト管理に応じて追加/変更できることなどが必要になってくるかもしれない。この方向性はSPEM(Software Process Engineering Metamodel:UMLを使ってソフトウェア・プロセスを記述するOMG標準)の動向と相まって、重要性が高まることは間違いないはずなのだ。
2/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 連載記事一覧 |