本実験では,対象アプリケーションとして,ゴール指向要求分析法KAOSのモデリングツー ルとして実用化されているk-toolを用いた.k-toolの画面イメージを図5.1に示す.k-toolで は,KAOSにおけるゴールモデルやオペレーションモデルなどの図形表現を図5.1で示したメ インウィンドウ右部分に位置するメインエディタ上で描画可能であり,また,左部分には,モ デルの構成要素として記述された各要素がツリー構造で表示されるインタフェースを持つ.ま た,図5.1には表示されていないが,各要素の属性情報を編集するプロパティビューも提供し ている.
k-toolはJava言語により実装されたGUIベースのモデリングツールであり,その構成概要
は表5.1に示すとおりである.k-toolはGUIをもつソフトウェアにおいて広く利用されてい るMVC(Model - View - Controller)モデル[49]に従って構築されている.MVCモデルにお いては,情報を管理するModel,Modelの情報をGUI上に表示するView,ユーザからの入力
図5.1.KAOSモデリングツールk-tool
表5.1.k-toolの構成概要.ただし,クラス数には内部クラスは含んでいない.
メインパッケージ数 7パッケージ (gui, io, tool, projectなど) クラス数 271クラス 総コード行数 64,803行
を受け,ViewやModelを操作するControllerの3つの構成要素が存在し,これらの相互作用
により,システムを設計・実装する.
k-toolを構成する各パッケージの役割を表5.2 に,各パッケージ間の関係を図5.3に示す.
k-toolにおいては,概して,guiパッケージがMVCモデルにおけるViewに,toolおよびprint パッケージがControlに,system, projectおよびioパッケージがModelに対応し,各パッケー ジを構成するクラス群がMVCモデルの該当する要素(Model,View,Controller)の各実装に 該当する構造となっている.
本実験においては,まず,k-tool構築時に作成された開発仕様書からk-toolに対する要求を 抽出し,初期ゴールモデルを構築した.本実験において利用した初期ゴールモデルを図5.2に 示す.この初期ゴールモデルにおいては,後述する進化1,進化2に該当する機能と,実験の 簡略化のために,プロパティ編集画面を別ウィンドウで表示する機能や,バージョン表示機能 などの一部の機能を実際のk-toolから除外した状態の要求が記述されている.本論文では以
降,このk-toolから一部の機能を除外したバージョンのソフトウェアを便宜上,k’-toolと呼
び,k’-toolのゴールモデルに対して整形プロセスを適用し,Control loop単位で構築したバー
図5.2.実験で用いたk-toolに対する初期ゴールモデル
表5.2.各パッケージの役割
パッケージ名 位置づけ
gui メインウィンドウ,メインエディタ部,メニュー,ツールバー部などの,
GUI部品および表示処理のためのクラスをまとめたもの.
ゴールなど作図要素の描画クラスもここに含める.
io 各種ファイルへのアクセス(読み書き)クラスをまとめたもの.
print 印刷機能に関するクラスをまとめたもの.
project 本ツールでの編集対象である情報を保持するクラスをまとめたもの.
system エディタの起動用メインクラス,各ダイアグラム,表示オブジェクトの
管理など,ツール全体の管理機能のためのパッケージ tool 編集操作に関する機能クラスをまとめたもの.
util その他一般的な用途のためのクラスをまとめたもの.
ジョンのソフトウェアをc-toolと呼ぶ.
• k-tool:従来のKAOSモデリングツール
• k’-tool:従来のKAOSモデリングツールの実装から,進化1,進化2に該当する機能
と,一部の機能を除外(削除)したもの
• c-tool:k’-toolと同様の機能を持つが,本研究で導入するControl loopのモデリングに 従って,設計・実装したもの