開発者にやさしいIDE, NetBeansを使ってみよう!
   

第三回 NetBeans Enterprise Packを使ったUML開発



NetBeans Enterprise Packを使ったUML開発


1 はじめに

現在開発中のNetBeans5.5ではEnterprise Packとして大規模開発用のツールが提供される予定です。
その中にはUMLモデルを使ったプログラム作成ができるツールが含まれています。
この記事では、Roumen氏が作成したデモをベースにして、NetBeans Enterprise PackのUMLツールの使い方を見ていこうと思います。

図:画面


Roumen氏のデモは次のURLにあります。
http://roumen.name/blog/uml_demo/uml_demo.html


2 ダウンロードとインストール

今回の記事では、Beta版のNetBeans Enterprise Packを使います。
またNetBeans Enterprise Packを使うためには、NetBeans5.5本体も必要です。本体の方もBeta版を使います。
こちらから「NetBeans IDE 5.5 Beta Installer」と「NetBeans Enterprise Pack 5.5 EA Installer」をダウンロードしてください。
http://www.netbeans.info/downloads/download.php?type=5.5b

また、NetBeans 5.5 Betaでは、NetBeans 5.0相当分のメッセージは日本語ファイルが公開されています。
UML関連の部分に関しては英語のままになりますが、やはりある程度メッセージが日本語化されているととっつき易くなるので、今回はこのファイルで日本語化を行っておきます。
日本語メッセージはこちらからダウンロードできます。
http://ja.netbeans.org/docs/releaseinfo/release55beta_ja.html

インストールでは、まず先にNetBeans5.5Beta本体をインストールしてください。それからEnterprise Pack 5.5をインストールします。
最後に、日本語メッセージファイルを解凍して、NetBeans5.5Betaをインストールしたフォルダに上書きコピーしてください。


3 プロジェクトの準備

それではNetBeans5.5Betaを起動してみましょう。

図:起動画面


まず、Javaコードを記述するためのプロジェクトを作成します。
メニューから「ファイル > 新規プロジェクト」を選択してください。

図:ファイル > 新規プロジェクト


カテゴリ「一般」からプロジェクト「Javaアプリケーション」を選択して「次へ」ボタンを押します。

図:一般 > Javaアプリケーション


今回はプロジェクト名に「Fruits」という名前をつけます。「主クラスを作成」のチェックははずしておきます。
「完了」ボタンを押すと、プロジェクトが生成されます。

図:名前と場所の入力


プロジェクトの「ソースパッケージ」にはまだなにもありません。

図:作成されたファイル


それでは、このプロジェクトのUMLを扱うためのプロジェクトを作成します。
先ほどと同様に新規プロジェクトで、今度はカテゴリ「UML」のプロジェクト「Java-Platform Model」を選択して「次へ」ボタンを押してください。

図:UML >Java-Platform Model


プロジェクトの名前は、ここでは「FruitsModel」にしています。
「Generate Code」にはチェックをつけておいてください。

図:名前と場所の入力


このプロジェクトがモデリングの対象にするJavaプロジェクトを選択します。先ほど作成したプロジェクトを選択して「完了」ボタンを押します。

図:対象プロジェクトの選択


最初に作成するダイアグラムを指定します。ここでは「Class Diagram」を選択して、「Diagram Name」に「Fruits」を指定します。

図:ダイアグラムの選択


これでクラス図を編集する準備が整いました。

図:プロジェクト生成画面


4 クラス図を書いてみる

早速クラス図を書いてみましょう。右側のパレットから「Class」をクリックして選択状態にします。この状態でデザイン領域をクリックすると、クラス図が配置されます。

図:クラスの配置


パレットの「Class」をクリックして選択を解除しておいてから、配置したクラス図のクラス名部分をダブルクリックすると、クラス名の入力ができます。
このクラスには「Fruit」という名前をつけます。

図:名前の入力


このようにしてクラス図に名前をつけるとJavaソースも作成されます。

図:Javaソースが作成される


属性を追加してみます。
「Attribute」を右クリックして、メニューから「Insert Attribute」を選択します。

図:コンテキストメニュー属性の追加


今回は「private String color」と入力します。

図:型と名前の入力


そうすると、セッター・ゲッターも同時に追加されます。

図:アクセッサもモデルに追加される


もうひとつ属性を追加してみます。同じ手順で「private float weight」という属性を追加してください。

図:もうひとつ属性を追加


Javaソースを開いてみると、クラス図の変更がソースにも反映されていることがわかります。

図:ソースに反映されている



5 ソースの変更も反映される

ここで、ソースに「private String name」というフィールドを追加してみてください。

図:ソース側でフィールドを追加する


ソースに追加した変更が、クラス図のほうにも反映されています。アクセッサメソッドも自動的に追加されます。

図:モデルにも反映されている


このように、NetBeans Enterprise 5.5のUML編集では、クラス図とソースのどちらを編集しても、もう片側に反映されます。


6 インタフェースを作ってみる

次はインタフェースを作成してみます。
パレットから「Interface」を選択して、デザイン領域をクリックすると、インタフェースが配置されます。

図:インタフェースの配置


パレットの選択を解除して、配置したインタフェースの名前をダブルクリックして、名前を入力します。ここでは「Eatable」とします。

図:名前の入力


インタフェースのメソッドを追加します。「Operations」で右クリックして、メニューから「Insert Operation」を選択します。

図:コンテキストメニュー:操作の追加


メソッドとして、今回は「public void eat()」を入力してください。

図:メソッド名の入力


これでインタフェースが作成できました。

図:インタフェースのモデル


ソースを見てみると、もちろんインタフェースの定義が作成されています。

図:ソースも生成されている


それでは、先ほど作成したFruitsクラスにEatableインタフェースを実装してみましょう。
パレットのImplementationを選択状態にしてください。それから、先にFruitsクラスの方をクリックしたあとでEatableインタフェースをクリックするとインタフェースが実装されます。

図:FruitsからEatableを結ぶ


インタフェースを実装すると、Eatableインタフェースで定義していたeatメソッドがFruitsに実装されます。

図:インタフェースの実装


ここでは試していませんが、ソースのほうにimplementsを記述したときにも、モデルの方に反映されます。


7 継承してみる

インタフェースを作成してみたら、次は継承を行ってみましょう。
その前にメソッドをもうひとつ追加しておきます。「public void draw()」というメソッドを追加してください。

図:drawメソッドの追加


このdrawメソッドは抽象メソッドにしておきます。drawメソッドで右クリックして、メニューから「プロパティー」を選択してください。

図:コンテキストメニュー:プロパティー


プロパティーが開くので、「Abstract」にチェックを入れます。

図:Abstractにチェックを入れる


抽象メソッドは斜体で表示されます。また、クラス名も斜体で表示されるようになっています。これはクラスが抽象メソッドを持つようになったため、抽象クラスになったことをあらわします。

図:Abstractメソッドは斜体で表示


Appleクラスを作成してください。

図:Appleクラスを作成


それでは、このAppleクラスをFruitクラスのサブクラスにしてみます。
パレットで「Generalization」を選択した状態で、AppleクラスをクリックしてからFruitクラスをクリックします。継承の指定はサブクラスからスーパークラスという順に指定します。

図:AppleからFruitsを結ぶ


そうすると、サブクラスでオーバーライドするメソッドを指定するダイアログが開きます。ここではearメソッドとdrawメソッドにチェックを入れて「OK」ボタンを押してください。

図:オーバーライドするメソッドの指定


そうすると、継承が行われます。

図:継承の表示


ソースにも反映されます。

図:ソースが生成された


こうして生成されたソースに「String type」というフィールドを追加してみます。

図:フィールドの追加


もちろんモデルの方に追加されています。

図:モデルに反映されている


このように、NetBeans Enterprise Pack 5.5を使うとモデルとソースの好きな方を編集してプログラムを作成することができます。


8 デザインパターンを使ってみる

ここまでで基本的なクラス図作成ができるようになりました。
NetBeans Enterprise Pack 5.5では、クラスにデザインパターンを適用する機能もあるので、少しこの機能を見てみましょう。
デザイン領域で右クリックして、メニューから「Apply Design Pattern」を選択します。

図:コンテキストメニュー:デザインパターンの適用


そうすると、デザインパターンウィザードが開きます。

図:デザインパターンウィザード


最初に、適用するパターンを選びます。GoFのパターンやEJBコンポーネントなどを選ぶことができます。今回は、比較的簡単なSingletonパターンを選んでみます。

図:パターンの選択


「Namespace」には作成するクラスのパッケージを指定します。ここではなにも指定せず「Next」ボタンを押します。

図:パッケージの指定


「Participant」の欄にクラス名を指定します。「Basket」とします。

図:パターンに対応するクラスの指定


新しいダイアグラムを作るかどうかを指定します。ここでは「Create class diagram」のチェックは外しておきます。

図:新しいダイアグラムを作るかどうかの指定


生成する内容が表示されるので、確認して「Finish」ボタンを押します。

図:生成内容の確認


コード生成に関する確認ダイアログが表示されるので、「Yes」ボタンを押します。

図:コード生成の確認


コード生成処理が行われます。コードが生成されたら「Done」ボタンを押します。

図:コード生成の実行状況


次の図のようなモデルが生成されます。

図:生成されたモデル


ソースをみると、Singltonパターンのための雛形になっています。

図:生成されたソース


デザインパターンの機能は、まだこなれてない感じもありますが、仕組みとしてはとても面白いと思います。


9 まとめ

こういったツールが充実することで、プログラム作成での単純作業を減らしたり、プログラムの構成を視覚的に確認したり、少しプログラムの作業が楽になることが期待できます。
使い方によっては、とても強力な味方になってくれることでしょう。