構造アクティビティのシミュレーション

<< 目次を表示 >>

ページ位置:  シミュレーション > 振る舞いモデルのシミュレーション >

構造アクティビティのシミュレーション

振る舞いモデルを構成する要素として複雑なものの一つに、構造アクティビティ要素があります。この要素は、複数のアクションを内部に持ちます。構造アクティビティ要素に含まれる内容を評価するための種類として、ループノードや条件ノードがあります。どちらも、シミュレーションに利用することができます。

 

 

条件ノード

条件ノードは、「評価」と「本体」の区画の組(節)で構成されます。本体の区画はアクティビティ図で利用する要素を利用して定義します。「評価」の区画で定義された条件を満たす場合に、「本体」の区画に定義された内容が実行されます。

 

節が1つのみの場合には、条件ノードは本体の区画から結果を出力するか、あるいは結果を持ちません。複数の節がある場合、それぞれの節の「評価」の内容が評価され、条件を満たす場合に「本体」の内容が実行されます。いずれかの「本体」の区画から結果を出力するか、あるいはすべての「評価」の内容が条件を満たさない場合に処理が完了します。

 

シミュレーションの実行時には、「確定」のチェックボックスの内容はシミュレーションに影響します。それ以外の2つ(「常に独立」「限定」)はシミュレーションでは参照・利用されません。「確定」のチェックボックスの値による動作の変化は次の通りです。

 

 

条件ノードを利用することで、さまざまなパスをシミュレーションすることができます。シミュレーションでは条件や処理にJavaScriptや、sim変数を利用することができます。処理は、アクション要素の効果の内容として記述することができます。条件ノード内で利用する場合には、名前を適切に設定する必要があります。例えば、年齢によって判断するような内容を記述した一例が下記の内容です。

 

if (sim.Person.age >=65)

 sim.AgeCondition.Clause1.Decider1=true;

else

 sim.AgeCondition.Clause1.Decider1=false;

 

この例で、条件ノードの名前がAgeConditionです。評価の内容がClause1に記載されていて、出力ピンの名前がDecider1です。

 

 

ループノード

ループ構造アクティビティノードは、いわゆる While,Repeat,For のようなループ処理を表現するために利用されます。それぞれのループノードは3つの区画で構成されます。

 

 

それぞれの内容を定義するには、ツールボックスからアクティビティ図の要素を区画内にドロップし、定義します。本体の区画には、処理の内容を示す複雑な構成を定義することもできます。

 

ループノードはいくつかのアクションピンを持つことができます。

 

 

それぞれの区画では、JavaScriptで処理の内容を記述することができます。処理の内容はアクションの「効果」の欄に記載します。sim変数を利用する場合には、名前を適切に指定する必要があります。次の例は、評価の区画に配置されたアクション要素の効果として記述したものです。

 

sim.LoopNode1.decider = (sim.LoopNode1.loopVariable>0);

 

 

参照: