内藤利典†,渡辺喜道††
†山梨大学大学院工学研究科
††山梨大学工学部
内藤利典:poko@s.cs.yamanashi.ac.jp, 渡辺喜道:nabe@cs.yamanashi.ac.jp
Rational Rose[1]はRational Software Corporationにより開発されたビジュ アルなモデリングツールである。Rational Roseを用いることにより、クライ アント/サーバ型コンピューティング環境や分散コンピューティング環境で構 築されるロバストで効率のよいビジネスソリューションを生成可能となる。ま た、Rational Roseを利用することで、実質的に世界標準の分析・設計表記法 であるUML(Unified Modeling Language)[1]を用いたモデリングをはじめ、一 般によく使われているソフトウェア開発工程におけるソフトウェアプロダクト のモデリングが可能となる。本稿では、山梨大学総合情報処理センターの第2 実習室のパーソナルコンピュータ上にインストールされているRational Rose Enterprise Editionの基本的な使い方について述べる。なお、Rational Rose はWindows 2000 Professional上にインストールされている。
2.ビジュアルなモデリングとRational Roseビジュアルなモデリングとは開発しようとするシステムをグラフィカルに記述 するプロセスである。ビジュアルなモデリングにより、複雑な問題の本質的な 部分と非本質的な部分を比較的簡単に分離することができる。また、ビジュア ルなモデリングでは、異なる視点から開発しようとするシステムを見るための 各種ビューを通じてモデリングが進行する。
ソフトウェアシステムのためのモデルを設計することは、建築の分野に例える と、大きなビルを建設する際の青写真を作成することに相当する。ソフトウェ アシステムのモデリングもビル建設の青写真も、果たすべき役割は本質的に同 等である。つまり、大規模ソフトウェアを作成する際には詳細な作成計画を立 てる必要があり、そのための方法のひとつがモデリングである。良いモデルを 作成すると以下の利点が得られる。
さらに、ソフトウェア開発にRational Roseを用いると次のような利点がある。
ここではRational Roseの主要な機能であるUML[2][3]を用いたモデリングとモ デリングの結果として生成されたモデルからのJava言語[4]のプログラムコー ドのテンプレートを生成する方法について例を用いて説明する。UMLはソフト ウェアシステムの成果物を仕様化、図式化、構築及び文書化する言語である。 UMLには、ユースケース図、クラス図、振舞い図(ステートチャート図、活動 図、相互作用図(シーケンス図、協調図))、実装図(コンポーネント図、配 置図)と呼ばれる異なる視点から見たシステムのビューモデルを記述する図式 が定義されている。ここで取り上げる例では、まずUMLのクラス図を作成し、 そのクラス図からコードの雛型を生成する方法について説明する。
まず、Rational Roseを起動するために、Windowsのメニューから[スタート]- [プログラム(P)]-[Rational Rose Enterprise Edition]-[Rational Rose Enterprise Edition]を選択する。図1にRational Roseを選択している様子を 示す。
図1 Rational Roseを選択する様子の例
Rational Roseが起動されると図2のような画面となる。この画面の中央のウィ ンドウは新規にソフトウェアシステムをモデリングする際にも現れる画面で、 Rational Roseに備わっているフレームワークを利用するかどうかの問合せ用 のダイアログボックスである。フレームワークとはモデリングをする時に用い ることができる予め定義されたコンポーネント(構成要素の部品)のテンプレー トである。Rational Rose Enterprise EditionにはJ2EEやJDK1.2などのフレー ムワークが含まれている。
図2 フレームワークの選択画面の例
フレームワークを利用する場合には必要なフレームワークのアイコンを選択す る。フレームワークを選択した場合には、そのフレームワークに基づいて、予 め定義されたコンポーネントのテンプレートが現れる。現れたテンプレートの 空欄となっている箇所に必要な情報を埋め込むことにより、モデリングが進行 する。今回は、フレームワークを使わない場合の例で使用方法を説明する。フ レームワークを用いない場合は、図2の中心にあるウィンドウにあるキャンセ ルボタンを選択すればよい。キャンセルボタンを押すと、図3に示すような UMLのクラス図を作成するためのウィンドウがアクティブとなり、モデリング を開始できる状態になる。
図3 モデリングを開始するときのウィンドウの例
現在アクティブとなっているウィンドウの左横に縦に並んでいるツールバーの 中からモデリングするために必要な部品のアイコンを選択し、クラス定義のウィ ンドウ上でクリックすると、その部品が配置される。配置された部品のパラメー タを変更し、システムのモデル化を行う。図4は、ひとつのクラスを配置し、 それにクラス名TmpClassをつけたときの例である。この図は、クラスを表す図 形の上で左ボタンをクリックしたことで、ポップアップメニューが現れ、その メニューの項目を選んで、各種設定を実施しようとしている瞬間のスナップ ショットである。
図4 Rational Roseの実行画面の例
このポップアップメニューの中から"仕様を開く"を選択すると、図5に示すよ うなダイアログボックスがポップアップし、クラスの仕様を編集することがで きる。この例では、クラス名をNewClassに変更した後のダイアログボックスを 示している。このダイアログボックスでは、クラス名だけでなく、メソッド名、 変数名などをクラスに関する様々な名称や属性等を編集することができる。
図5 クラスの仕様を変更している様子の例
次に、実際にクラス図を編集した結果の一部を紹介する。図6は、1つのクラ スTestClassとそのクラスの中に1つのプライベート変数testElementと2つの パブリックメソッドsetElementとgetElementを定義した例を示している。変数 testElementの型は文字列型で、その値の初期値は変数Defaultの値とすること を表している。
図6 編集されたクラスの例
図7には、先ほど作成したクラスTestClassの他に、いくつかのクラスを定義 した時のクラス図を示す。このクラス図では、TestClassの親クラスが superClassであり、superClassはtestInterfaceを実装していることを表して いる。
図7 クラス図を記述した様子の例
図7で表したクラス図のモデルからJava言語のコードを作成している様子を図 8に示す。プログラムのコードを作成するためには、カーソルでモデルを指定 し、[メニュー]-[Java/J2EE]-[Javaの生成]を選択する。その結果、あらかじ め割り当てておいたディレクトリにプログラムコードが生成される。
図8 コード生成の様子の例
生成されたコードを以下に示す。このコードは、TestClassのJavaのプログラ ムである。
//ソース ファイル: C:\\java\\TestClass.java public class TestClass extends superClass { private String testElement = Default; /** * @roseuid 3D4A450C0174 */ public TestClass() { } /** * @roseuid 3D4A41860307 */ public void setElement() { } /** * @return String * @roseuid 3D4A41A9011D */ public String getElement() { return null; } }4.おわりに
本稿では、Rational Roseの簡単な利用方法について述べた。Rational Roseは ソフトウェアのモデリングツールとして定評のあるソフトウェアである。モデ リングツールは短期間でソフトウェアを開発するためや保守の容易なソフトウェ アを作成するためには大いに役立つ。是非一度使ってみて欲しい。
参考文献[1] | Rational Rose Corporation:"Rational Rose Tutorial",(オンライン),入手先 <http://www.rational.com/> (参照 2003-02-20). |
[2] | Object Management Group: "Unified Modeling Language Resource Center",(オンライン), 入手先 <http://www.rational.com/uml/> (参照 2003-02-20). |
[3] | Object Management Group, (OMG Japan SIG翻訳委員会UML作業部会訳):"UML仕様書",アスキー(2001 年). |
[4] | J・ゴスリン,B・ジョイ, G・スティール, G・ブラーハ,(村上雅章訳) : "Java言語仕様 第2版", ピアソン・エデュケーション(2000年). |