修正日:2013年02月22日(作成日:2013年02月17日)


マニュアル(MetricsTool.zipの取り扱い)

動作環境

 ここで紹介するメトリクスツールの動作には、以下の構成要素が必要となる。

同梱物

 必要なファイルは、上記アーカイブ(MetricsTool.zip)にまとめている。その内容は以下の通りである。

図1 アーカイブの内容
図1 アーカイブの内容

 また、その動作にはSmalltalkの処理系であるVisualWorks(じゅん for Smalltalkを含むもの)が必要になる。外部サイトより入手されたい。

マニュアル1(例題プログラム動作までの手順)

 ここでは、同梱物に含まれている例題プログラム(スパゲッティへの可食化の例題)を動作させる手順を説明する。

手順1. 同梱アーカイブ(MetricsTool.zip)の展開と移動

 上に用意したアーカイブ(MetricsTool.zip)を任意の場所にダウンロードし、展開する。 その内容物のうち「path」と「ShellInterface.dylib」を、図2に示すように、VisualWorksの仮想マシンが存在するディレクトリに移動する。

図2 仮想マシンのディレクトリ構成
図2 仮想マシンのディレクトリ構成

手順3. VisualWorksを立ち上げて、stファイルを読み込む

 VisualWorksを起動し、ファイルブラウザから「MetricsTool.st」をファイルインする。

図3 MetricsTool.stをファイルイン
図3 MetricsTool.stをファイルイン

手順4. 可食化の例題プログラムを実行する

 システムブラウザ(リファクタリングブラウザ)を開き、バンドル「KSU」下のパッケージ「KSU-Synapse」に属する、クラス「KSU.SynapseInterpreter」のクラスメッセージ「exampleCodeSpaghettiForStartup」を実行する。 または、ワークスペース等で、以下のフレーズを実行されたい。

KSU.SynapseInterpreter exampleCodeSpaghettiForStartup

 実行と同時に、サンプルプログラム「./path/to/Programs/source.c」をスパゲッティに可食化する。処理を終えると、スパゲッティのレシピが表示される。 もし、しばらく経っても表示されない場合は、「./path/to/Results」ディレクトリを参照されたい。HTMLファイルのレシピが出力されているはずである。

図4 スパゲッティへの可食化の例題プログラム
図4 スパゲッティへの可食化の例題プログラム
図5 スパゲッティのレシピ
図5 スパゲッティのレシピ

マニュアル2(自身でSynapseScriptを記述して実行する際の手順)

 ここでは、ユーザ自身がSynapseScriptを記述して、その実行を行う場合の例を示す。マニュアル1の手順2までを済ませているものとして説明を進める。 また、例題として割り算のメトリクスプラグイン(Division2)を用いる。

手順3. ワークスペース上で実行の準備を行う

 一枚のワークスペースを用意し、以下のように記述する。

KSU.SynapseInterpreter script: ''
図6 ワークスペースでの準備
図6 ワークスペースでの準備

手順4. SynapseScriptを記述する

 準備したプログラムフレーズの引用符内にSynapseScriptを記述する。 ここでは「20÷3」といった割り算の処理を行い、その計算結果(商)をトランスクリプトに表示することとしよう。SynapseScriptの記述は以下の通り。

/*** Assignments ***/
value1 = Value("20");
value2 = Value("3");
division = Metrics("./path/to/Plugins/Division2");
transcript = Transcript();

/*** Synapses ***/
value1 to: division.dividend;
value2 to: division.divisor;
division send: quotient to: transcript;
図7 割り算のSynapseScript
図7 割り算のSynapseScript

手順5. 例題プログラムを実行する

 ワークスペースに記述したプログラムを全て選択して実行してみると、確かにトランスクリプト上に「20÷3」の解として「6.66666...」が表示されている。

図8 トランスクリプト上に結果表示
図8 トランスクリプト上に結果表示