参考 NSRP0424調査解析
ここではNSRP0424によるテストケースを解析した結果を記述する。
本書は解析のツールとして簡単なアプリケーションを構築した。
STEPによるデータの入出力を下図のように想定した。
STEPによるデータの入出力ではI/F部分にSDAIが実装されることになるだろう。
テストケースを解析するにあたりI/FおよびApplicationの一部を実装したシステムを構築した。
本書で構築したシステムは次のような利用を考慮した。
上図はEXPの拡張子をもつファイルを構築したシステムで読込XML形式でSCL(STEP Class Library)を実装するための中間ファイルを出力する。
構築したシステムは出力されたXMLファイルからSCLを自身に実装する。
SCLを実装したシステムはSTPの拡張子をもつファイルを読込インスタンスの状態あるいはエンティティの関連性を描画する。
XMLファイルを出力することで一般に普及している言語系への実装を考慮している。
構築するシステムが予め実装するクラスの構成を下図に示す。
C++は多重継承をサポートしているが本書で実装する言語系は多重継承をサポートしないものとして上図のクラス群を構築した。
ExpressObject, Entity, Type, Primitives, Identifier, Number, Integer, およびStringクラスでEXPファイルの読込を行う。
このときファイルの選択部分はStepGUIが機能し, 読み込まれたエンティティはStepGUIのインスタンス変数であるengineがもつSaiObjectのインスタンス変数であるinstancesがリストとしてもつ。
このとき読み込んだEXPファイルの名称, スキーマ, および記述をSdaiObjectのインスタンス変数であるinstance, name, schema, およびdescriptionがもつ。
XMLファイルの出力はStepGUIから出力するファイル名を入力しSdaiObjectクラスが機能する。
STPファイルの読込はStepGUIから読み込むファイルを選択しP21Objectで実装されたSCLクラス群のインスタンスをP21Objectクラスが生成する。
StepGUIは実装されたエンティティやインスタンスの関連性を3次元の木構造で可視化する機能をもつ。
SCLクラス群は上図のAP227ApplicationObjectと書かれた破線の箱の部分へ実装される。
各クラスについて簡単に以下に説明する。
ExpressObjectはEXPファイル読込機能のための抽象クラスであり, objectをインスタンス変数としてもつ。
objectインスタンス変数はEXPファイルから読み込んだエンティティ群の情報をApplicationObjectクラスのインスタンスとしてもつ。
EntityおよびTypeクラスはEXPファイルの読込後特化エンティティ群と汎化エンティティ群を排他制御のリストであるSetとしてもつ。
構築したシステムがEXPファイルを読込後生成したエンティティの関係を描画した例を下図左インスタンスの関係を描画した例を下図右に示す。
本書では構築したシステムを用いてAIMのエンティティを構築したシステムに実装し, STPファイルを読込, インスタンスの関連性を調査した。
|