• 検索結果がありません。

ObCL コードの修正

ドキュメント内 JAIST Repository (ページ 51-54)

hmsc1hmsc1

4.4 動的モデル作成プロセス

4.4.2 ObCL コードの修正

システム記述

以前に述べたように,MSCObCLコンバーターによって,生成されたObCLコード にはシステム記述は含まれない.そのため,ObCLコードの最後にシステム記述を追加す る必要がある.

状態遷移の整理

生成されたObCLコードには,冗長な状態遷移が存在する.システム全体の冗長な状 態遷移は,各機能に対応した状態遷移の冗長な部分の和集合である.そのため,各ユース ケースに対応した状態遷移からObMLを用いて冗長な部分を発見することにより,シス テム全体の状態遷移から冗長な部分を取り除くことができる.

各ユースケースに対応した状態遷移の中から冗長な部分を見つける際に,一般的に言え ることは,初期状態と最終状態が異なる場合は同じ状態であると見なすことができるとい うことである.これは,システムは一連の動作を繰り返し行なうという事実によるもので ある.

オブジェクト属性の整理

生成されたObCLコードに出現するオブジェクト属性の意味を定義することにより,こ の属性が必要かどうか判断を行なう.

4.4.3

テスト

動的モデル作成支援環境を用いてまず機能ごとに動的モデルを作成してテストを行な い,各機能に対応する状態遷移の冗長な部分を発見する.その後,システム全体の動的モ デルを作成し,各機能のテスト結果を基に冗長な部分を取り除く.この方法により,冗長 な状態遷移を効率よく整理することができる.

ObMLシミュレータでは,ステップ実行によるテストとテストスクリプトによるテス トを行なうことができる.ステップ実行によるテストはObTSモデルでのステップ動作に したがって進行する.シミュレータと対話的にテストをすることができるので,動作確認 をしながら仕様を検討することができる.テストスクリプトによるテストは,システムコ

ンフィギュレーション(各ステップごとのオブジェクトの動作状態とイベントに関するス ナップショットのリスト)ML言語スクリプトとして記述したものである.このスクリ プトを用いることでシステムに対して連続的にテストをすることができる.

4.16ML言語で記述されたテストスクリプトの構造を示している. テストスクリ プトはイベント列生成器とイベント列解析器から成り,入力イベント列を発生させるイベ ント列生成器と,そのイベントによりシミュレータが出力した結果を解析するイベント列 解析器はともにML言語で記述されている.

設計者はテストしたいシステムに対して,入力イベントとそれに対応する出力イベント をテストスクリプトに記述することで,設計者の意図したイベントごとの動作を柔軟にテ ストすることができる.

野村[8]によると,このテストスクリプトをシステムから切り出だされた各機能に対し て用意することにより,機能別にテストをすることが容易になり,さらに,各機能のテス トスクリプトを再利用することで合成後のシステムに対するテストスクリプトも簡単に 構築することができ,合成後のシステムに対しても柔軟なテストが行なうことが可能にな ることが確認されている.

Test Script Event Sequence

Generator

Event Sequence Analyzer Executed System

(ObML code) ObML Simulator

Standard ML

4.16: テストスクリプトの構造

5

動的モデル作成支援環境を用いた例題

ここでは,前章で提案した動的モデル作成プロセスを用いて,ATMシステムの開発を行 なうことにより,動的モデル作成支援環境の有効性を示すことにする.

ここでは前章のプロセスに従い,まず,各機能ごとに動的モデルを生成し,次に,シス テム全体の動的モデルを生成することにする.

5.1 ATM

の仕様

ATMシステムは,以下の機能を持つ.

払い戻し: withdraw

預入れ: deposit

残高照会: balance inquiry

メンテナンス(現金の補充): maintenance

このシステムは,1つのATM1つの銀行からなっており,銀行は,複数の口座をもっ ているとする.

このシステムのユースケースモデルを付録B.1に示す.

ドキュメント内 JAIST Repository (ページ 51-54)

関連したドキュメント