2009年09月24日 08時00分 UPDATE
特集/連載

UMLツール紹介:Enterprise Architect編汎用的なモデリング機能を網羅するUMLツール「Enterprise Architect」

オブジェクト指向での開発を支援するモデリング表記方式である「UML」。本連載では、UMLモデリングを支援する主要なツールを紹介していく。今回はスパークスシステムズジャパンの「Enterprise Architect」を取り上げる。

[井上 樹,豆蔵]

主要なUMLツールを紹介する

 オブジェクト指向によるモデリングを行う際に用いられる表記方式であるUML(統一モデル記述言語)は、ソフトウェアの設計だけでなく、業務分析やビジネス設計にも利用されている。本連載では、UMLモデリングを支援する主要なツールを紹介していく。各ツールの機能概要やほかのツールにない長所(差別化ポイント)を取り上げるだけでなく、短所とも取れる内容にも触れる予定だ。

<評価項目>

  • 対応UMLのバージョン
  • 作成できるダイヤグラム(図表)の種類
  • コード生成機能の詳細
  • 日本語対応の有無

EAが受け入れられる要因

 Enterprise Architect(以下、EA)は、オーストラリアのSparxSystemsが開発し、1998年から販売しているUMLモデリングツールだ。日本ではスパークスシステムズジャパンが日本語化とそのサポートを行っており、2005年から日本語版が販売されている。

 EAはエンタープライズ系や組み込み系などの分野を問わず、多くの企業で利用されている。その最新バージョンは2009年8月時点で「7.5」。モデリング機能のみのデスクトップ版1万7325円から、すべての機能が活用できるアルティメット版9万8700円(いずれも税込み)まであり、そうした価格体系も、多く利用されている要因の1つといえるだろう。

photo Enterprise Architect概観《クリックで拡大》

 EAはUMLのバージョン2.1に対応しており、以下の種類のダイヤグラムを描くことができる。

ダイヤグラム名 対応状況 備考
クラス図      ○  
オブジェクト図      ○  
パッケージ図      ○  
コンポーネント図      ○  
コンポジット構造図      ○  
配置図      ○  
ステートマシン図      ○ 状態遷移表形式に変換可
アクティビティ図      ○  
シーケンス図      ○ コミュニケーション図と相互変換可能(アドインを利用)
コミュニケーション図      ○ シーケンス図と相互変換可能(アドインを利用)
タイミング図      ○  
相互作用概要図      ○  
ユースケース図      ○  

 これらのダイヤグラムに加えて、フローチャートやDFD(データフローダイヤグラム)といった構造化手法で使われるダイヤグラム、「SysML 1.1」(システムエンジニアリング版以上)、「BPMN 1.1」といった表記法のダイヤグラムも扱うことができる。

 また、「XMI」(UMLで書かれた図をツール間で交換するための共通フォーマット)にも対応しているため、ほかのXMI対応のUMLモデリングツールとの間でファイルのインポート/エクスポートも可能だ。さらに、UML仕様以外の部分でのダイヤグラム作成機能としては、モデル要素の色やフォントの変更だけでなく、別名定義(※1)やタグ付き値(※2)の設定、外部ファイルやWebページへのハイパーテキストリンクにも対応する。

 そのほか、メニューの項目や表示されるメッセージはすべて日本語化されており、ダイヤグラムの要素に対する日本語入力も問題はない。

※1 別名定義(1つの要素に「日本語名」と「英語名」のように2つの名前を付けて表示切替が可能)

※2 タグ付き値(タグと値の組をモデル要素に対してユーザーが自由に付加することができる)

汎用的な機能を網羅する

 UMLモデリングツールには作成されたモデルの持つ情報を利用する機能が搭載されているが、EAにもそうした機能が多数用意されている。

 代表的なものを列挙すると、関係マトリクス(任意のモデル要素間の関係の有無を表形式で可視化したもの)の生成、RTFやHTML形式などのドキュメント生成、要素数などメトリクスの計測といったものが挙げられる。

photo 関係マトリクス。クラス図内でどの要素の間に関係があるかを表示する

 さらにEAでは、モデルを利用したソースコードの生成も可能だ(プロフェッショナル版以上)。

EA対応プログラミング言語

Java、C#、C/C++、PHP、Python、Visual Basic、VB .NET、ActionScript、Delphi


 特に、C言語に対応している点は「UMLを使ってみたいが、開発で使っているのが非オブジェクト指向のC言語であるために導入をためらっている」という組み込み系での利用に適しているといえる。

 EAで生成されるソースコードは、モデルに記述した内容とソースコードの生成ルールによって決まる。また、メソッドの中身が入らないスケルトンコードレベルでも、メソッドの中身が入った実行可能なものも生成することができる。さらに、このソースコード生成ルールは独自にカスタマイズできる。この機能を活用して、自社のコーディング規約に準じるように修正したり、新しいプログラミング言語に対応したりといったことも可能だ。

EAの特徴

 次に、ほかのツールとの差別化ポイントといえるEAの特徴的な部分を紹介する。

ほとんどのUML仕様を網羅する

 まず「UML仕様への徹底した対応」が挙げられる。冒頭のEA対応ダイヤグラムの表ですべてのダイヤグラムに「○」が付いていることからも分かるように、EAはUML仕様で定義されているほとんどの内容に対応している。

 それこそ、多くのモデリングツールでは省略されている“重箱の隅”のようなUML仕様にも対応している。また、UMLの仕様として定義されている表記ルール自体もツール内に作り込まれているため、UML仕様で許されていない表現でモデルを描こうとすると警告が出る。もちろん、そうしたルールチェックを回避して自由にモデルを描くこともできる。

 こうしたことから、EAは「UML仕様に準拠したモデルを作りたい」「UMLの表記を隅々まで使いこなしたモデルを作りたい」という要求にも対応するといえる。

利用用途の幅広さ

 EAは非常に多くの機能を持っており、「UMLを使用したシステム開発に必要とされる機能はほとんど入っている」と実感している。そのため、EAは「個人的なUMLの学習から、複数のメンバーでモデル作成や共有を行う実際のシステム開発」までの幅広い用途をカバーするといえる。

 また、必要とする機能が見当たらなければ、アドインを作成するという選択肢も用意されている。アドインの作成方法は公開されており、EAのサイトでは開発元やEAユーザーによって作成されたアドインが多数公開されている。その中にはソースコードが公開されているアドインもあるため、アドイン開発を始めるためのハードルは低いといえる。

充実したサポートの存在

 EAのツールの特徴というわけでないが「サポートが充実している」こともEAの良い点だといえる。具体的には「バグへの対応の早さ」と「訪問セミナー」だ。

 バグへの対応は、バグの深刻度にもよるが、対応が早い場合は数日のうちにバグを修正したビルドが公開される。これは海外のツールとしては珍しいことだといえるだろう。これにより、EAのユーザーサポートのWebページでは常に最新のビルドが確認できる。このページを見るとかなりの頻度でビルドが更新され、バグが修正されていることが分かる。ここ1年ではバージョンアップも含めて8回更新されている。この点は、ツールのバグで開発がストップしてしまうこともある企業ユーザーには役立つ点だ。

 また、EAのユーザーは無料の訪問セミナーを受けることができる。プロジェクトメンバーに基本的な操作を習得してもらいたい場合や、ソースコード生成のような識者の具体的なアドバイスが欲しい機能についてのセミナーが受けられる。こうしたサポートを活用することで「ツールを買ったはいいけれど、使いこなせなかった」といった事態を防ぐことができる。

 UMLモデリングツールにはそれぞれ開発思想のようなものがあり、それを理解していないと持っている性能を生かし切れないことがある。EAにもこれに当てはまることがある。そのためセミナーを利用して、その開発思想を理解できるチャンスがあるのはユーザーとしては喜ばしい点だ。

高機能である故の「分かりづらさ」

 ここからはEAの短所を挙げていく。

 まず挙げられるのは、高機能である故の「分かりづらさ」だ。EAは多機能であるため、やろうとしていることに対してそれがメニューのどこにあるのかが分かりづらく、どう操作すると自分の思ったことができるのか分からないこともしばしばある。

 例えば、クラス図で片方向の関連を書く際、参照不可能な方向を明示するために関連端に「×」を表示するという表記がある。しかし、これを実現するためには、表示のための設定やモデルのプロパティを幾つか設定しなければならない。実際、EAを長いこと使っているはずの筆者でも、人から教えてもらうまでこの操作は分からなかった。

 機能が分かりづらいという点については、EAの開発元でも把握しており、充実した日本語ヘルプやツールチップ表示などで大抵のことは分かるように改善されつつある。

 また、EAは汎用ツールとしての側面を持っており、特定のシステム開発方法論に特化したツールではない。そのため「どのダイヤグラムを組み合わせて、どのような情報をモデルに入力すれば良いのか」といったシステム開発方法論に相当する知識をユーザーが持っていた方がよい。

 特定のシステム開発方法論に対応するモデリングツールでは、ダイヤグラムの組み合わせ方やモデル情報の入れ方に関する知識をツール自身が持っているものもある。そういったツールでは、ユーザーはそのルールに従っていけば、実際のシステム開発で使えるレベルのモデルを作成できる。EAではそうした部分はユーザーに任されているのである。

継続して使用できるツール

 EAはどのような用途にでも使えるので、長年重宝している。それは特定のシステム開発方法論に依存しない点がメリットとなっているからだ。それ故、特定の用途に向けたUMLモデリングツールと比べると、生産性や使い勝手などの点で一歩譲ってしまうところもある。しかし、その点を差し引いても、EAはモデリングツールを継続して使う人にとって“長く使えるツール”としてお勧めのUMLモデリング製品だといえる。

<著者紹介>

井上 樹(いのうえ たつき)

株式会社豆蔵 ES事業部 基幹コンサルタント

組み込みシステム開発を対象としたオブジェクト指向・UMLの導入、プロセス改善に関するコンサルティングやトレーニングを中心に担当している。主な著書に『ダイアグラム別UML徹底活用』(翔泳社)、『いちばんやさしいオブジェクト指向の本』(技術評論社)がある。


この記事を読んだ人にお薦めのホワイトペーパー

この記事を読んだ人にお薦めの関連記事