2009年10月15日 08時00分 UPDATE
特集/連載

UMLツール紹介:JUDE編最も利用されているモデリングツール「JUDE」。その理由とは?

35万人を超える登録ユーザー数を持つ「JUDE」シリーズ。日本発のこのツールが広く利用されている理由とは一体何だろうか? 今回はJUDEの機能の特徴とともにその理由を考察する。

[小黒登行,豆蔵]

開発者の利便性を追求したツール

 2009年10月現在、「JUDE」シリーズの登録ユーザー数は35万人(※)を超えており、世界でも利用者の多いツールの1つだ。永和システムマネジメントの平鍋健児氏(現:チェンジビジョン代表取締役)が「開発者が必要とする機能を持つツールを作ろう」と開発に着手したことがきっかけとなり、当初は「Jude」という名称で公開された。1999年に商品化されて名称が大文字のJUDEに変更された後、チェンジビジョンが開発および販売を継続している。JUDEはその誕生の背景からも分かるように「開発者の利便性を追求したツール」だといえる。

※ 無償版を含む。チェンジビジョン「JUDEメンバーズ世界分布マップ」より。

JUDEシリーズ製品一覧
製品名 機能
JUDE/Community 無償のUMLモデリングツール
JUDE/Professional システム設計支援ツール
JUDE/Share 情報共有アプリケーション
JUDE/Biz 内部統制のための文書作成支援ツール
JUDE/Think! マインドマップ描画ツール

 本稿では、UMLツールである「Community」「Professional」「Share」について解説する。

photo JUDE/Professional《クリックで拡大》

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

対応UMLのバージョンと作成できるダイヤグラム(図表)の種類
ダイヤグラム名 対応状況 備考
クラス図      ○  
オブジェクト図      ○ クラス図に作成
パッケージ図      ○ クラス図に作成
コンポーネント図      ○  
合成構造図(コンポジット構造図)      ○  
配置図      ○  
ステートマシン図      ○  
アクティビティ図      ○  
シーケンス図      ○  
コミュニケーション図      ○  
タイミング図      ×  
相互作用概要図      ×  
ユースケース図      ○  

 相互作用概念図とタイミング図には対応していないが、通常の開発に必要十分な表記法に対応している。また、UML以外のダイヤグラムが充実している点も特徴の1つだ。

群を抜いた日本語への対応

 JUDEの日本語への対応は、UMLツールの中で群を抜いている。例えば、ダイヤグラムの要素の名前を1つ取ってみても、OMG(Object Management Group)の「UML2.0仕様書」およびUMTP(UMLモデリング推進協議会)の「用語標準(日本語訳)」に準拠している。そのため、「OCUP」や「UMLモデリング技能認定試験」の受験者が、試験対策として参考にすることも可能だ。また、適切な用語が使用されているため、初めてUMLを導入する環境でも受け入れられやすいだろう。

スムーズな操作性

 チェンジビジョンのWebサイトでは、JUDEを「設計支援ツール」と紹介している。そう紹介されているように、UMLモデリングツールというよりは設計支援ツールとして作り込まれている感がある。ほかのUMLツールに比べると、少ない操作手順でモデルを描くことができ、「頭の中で描いていたモデルをストレスなく描いていくこと」を可能にしたツールだといえる。そのため、一度JUDEを使ってしまうと、その快適な操作感が忘れられなくなる利用者も多い。開発プロジェクトの公式ツールがほかのツールであっても「考えを整理してモデル(形)にする」というモデリング過程ではJUDEが使われることもある。

基本的なモデルがスムーズに描画可能

 JUDEでは、ほかのツールではよくある「ダイヤグラムへの要素追加のたびに[プロパティ]が開き、入力を終えたらそれを閉じる」という操作を必要としない。例えば、クラス図を描く際、そのクラスを置くとクラス名がすぐに編集可能状態になるので、そのまま名前を書いて終了することができる。

 このような感覚は、ほかの図や要素でも同様だ。シーケンス図を描く場合でも、ライフラインのない所からメッセージを引けば、自然と拾得メッセージを描くことができる。また、ネストした実行指定からメッセージを引き始める場合でも、“マウス操作で絵を描くよう”に思い通りの実行指定からメッセージを描き出すことができる。このような直感的な操作ができるツールは意外と少ない。

より付加的な操作サポートも提供

 また、利用者にとって“ちょっと便利な機能”が用意されているのが特徴だ。例えば、あるクラスの属性や操作をドラッグ&ドロップしてほかのクラスに移動させることができたり、[Ctrl]キーを押したままマウスホイールを操作することによってその図を拡大/縮小させることができる。

ヒューマンコミュニケーションの課題解決にも役立つ

 ソフトウェア開発において、UMLによる設計手法が積極的に使用され始めたのは2000年代に入ってからだといわれている。実際の開発現場では、これまで培ってきた独自の知識や経験を基に、UML以前のダイヤグラムを用いて分析/設計している開発者が多く存在する。そうした開発者がすぐにUMLのみの開発に移行するのは難しいだろう。

 JUDEでは従来用いられてきたダイヤグラムを積極的に取り入れることで、スキルの異なる開発者同士のコミュニケーションをつなぐことができ、「開発現場におけるヒューマンコミュニケーションの課題」を解決することも可能だ。

 JUDEは「ER図」「フローチャート」「DFD」などの既存ダイヤグラムをUMLに変換する機能を備えている。これまで蓄積された知識などの既存資産をUMLに変換し、それらを基にソフトウェア開発へとつなげていくことも考えられる。

 また、最近注目されている「マインドマップ」にも対応している。単にマインドマップが描けるだけではなく、マインドマップからクラスなどのUML要素を生成したり、クラスをマインドマップ上にドラッグ&ドロップして、マインドマップの枝に追加することもできる。こうした「UMLとマインドマップの連携によって、分析のための思考を支援する」点は、新しいアプローチだといえる。

チーム開発への対応

 ここからは、チーム開発に役立つ機能を幾つか紹介する。

主なチーム開発支援機能

プロジェクトマージ

モデルの簡易比較

参照プロジェクト設定

別名定義

ブラウザからの参照およびコメント


 「プロジェクトマージ」機能は、複数に分岐させたプロジェクトファイルをマージさせる機能だ。実際に使ってみると、マージ性能が高く、自動マージできないパターンを見つけることができなかった。また、目視で差分を選択しながらマージする場合には、次に紹介する「モデルの簡易比較機能」を起動させることで、ダイヤグラムを比較表示しながら判断することができる点が優れている。

 「モデルの簡易比較」機能は、同じベースバージョンから分岐させた2つのファイルを比較するときに便利な機能だ。異なっている項目をリストとして表示するだけでなく、ダイヤグラム同士を比較して、その中から追加、削除、更新のある部分を色付け表示してくれる。先述したように、プロジェクトマージ機能からも起動可能でプロジェクトファイル同士の比較に利用できる。

photo 「モデルの簡易比較」機能の画面《クリックで拡大》

 「参照プロジェクト設定」は、複数人で作業を分担する開発を支援する機能だ。あらかじめファイルを分割した状態で複数のプロジェクトファイルを作り、それらのファイル間に参照関係を設定する。この設定により、ほかの作業者のモデルの参照のみを可能にすることができる。また、ほかの作業者のファイルが変更されると、自分のファイルにも反映される。

 「別名定義」機能は、オフショア開発で役立つ機能だ。ほかのUMLツールでは2つの名称を付けることができるが、JUDEではこの機能により3つの名称に対応する。例えば、日本でシステム設計モデルを作って、外国に実装を依頼する場合など、「日本人が理解しやすい名前」+「英語の実装名」+「実装国の言語による名前」を切り替えできる。これにより、言語の違いを意識することなくコミュニケーションを円滑に図ることができる。また、JUDEでは、関連名や関連端名やNoteといったかなり細かい単位で別名を付けることができる。こうした別名定義は、レビュー時の理解を早めるのにも役立つだろう。

 また、「ブラウザからの参照およびコメント」機能によって、Webブラウザ上でモデルを共有化してコメントを付けることができる(※)。そのため、モデルをレビューしたり、モデルに対する質疑応答をしたりするのに適している。この機能は、チェンジビジョンのWebサイトからJUDE/Shareデモサイトを利用することで実際に体験することができる。

※ JUDE/Share版の機能。

photo Webブラウザ上での表示とコメント添付《クリックで拡大》

チーム開発で使えるライセンス体系の利点

 JUDEをチーム開発で利用する際には、ライセンス上の利点が2つある。1つは「無償版(JUDE/Community)が存在する」ことだ。有償版で作成したモデルをほかの企業で実装してもらう際、無償版をビュワーとして利用してもらうことができる。もう1つは「コーポレートライセンスの利用許諾が開発に協力している企業にも認められている」ことだ。複数の企業が共同して設計を行う場合、ほかの企業にも自社のコーポレートライセンスを利用してもらうことが可能だ。各企業の開発環境の差異を吸収することもでき、チーム開発での導入がしやすいといえる。

必要最低限のコード生成機能にとどまる

 JUDEでは先述したように“ヒューマンコミュニケーションの課題を解決する”ものとしての価値を求めており、コード生成機能は必要最低限にとどまっている。以下の言語でのテンプレート生成とコードからのリバースが可能だが、それ以外は現在未対応だ。

JUDE対応言語

Java、C++、C# (※ ただし、C++とC#のリバースはサポート対象外)


 その代わり、JUDEでは対応APIが公開されており、コード生成や状態遷移表の出力などのサンプルプログラムをJUDEのコミュニティーサイトからダウンロードできる。また、これらのAPIを利用して、ユーザー自身がモデルからのコード生成、変換、出力などのプログラムを作成することも可能だ。

 モデルから実装コードに出力して、再び実装コードからモデルにリバースしたいユーザーにとっては、JUDEの基本機能は物足りないと感じるかもしれない。そうしたユーザーは、自分でその機能を作り込むことになるだろう。

製品体系を転換し、さらに幅広い用途へ

 チェンジビジョンは2009年9月、商品名をJUDEから「astah*(アスター)」へと変更することを発表した。新しい名称はアスタリスクから取ったもので「いろいろなものを描けること」を意味しているという。ここから分かるように「開発者が求めるもの、開発現場のコミュニケーションに活用できるものを今後も取り込む」という開発元の姿勢がうかがえる。

<著者紹介>

小黒登行(おぐろ たかゆき)

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

金融・流通系のシステム開発の現場でCOBOLを中心とした開発を経験した後、半導体製造装置メーカーで約8年間C/C++言語を使用した組み込みソフトウェア開発に携わり、その後、豆蔵へ入社。現在、オブジェクト指向技術をベースとしたUMLモデリング・開発プロセスの導入支援を行っている。「楽をするための苦労」「家庭を大切にできる現場づくり」が信条。


関連ホワイトペーパー

UML | モデリング | コミュニケーション | 内部統制 | C# | 組み込み


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

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