モデルロジックの概要
モデルロジックとは
本章では、シミュレーションのモデルロジックを構築する方法を学習します。FlexSimでは、シミュレーションモデルを実行しているときの3Dオブジェクトとその他のシミュレーション要素の全体的な動作と相互作用のことをロジックと言います。つまり、モデルロジックとは、シミュレーションモデルの実行開始からシミュレーションが終了するまでに発生する一連のイベントをコントロールするものです。
ご想像のとおり、モデル化しようとしているビジネスシステムの複雑さによっては、シミュレーションモデルのロジック構築が困難なことがあります。本章の他の項目は、できるだけ簡単なロジックを構築することを狙いとしています。本章ではまず、FlexSimにおける一般的なモデルロジックの機能を理解するために必要となる主要な概念について説明します。次に、モデルロジックの構築に関わるさまざまなツールの操作方法について説明します。
ユーザーマニュアルの今後のリリースで、本章にはさらに多くのトピックが追加されることになっています。役立つトピックがないか時々見返してください。
モデルロジックの作成に使用するツール
モデルロジックの構築には、ほぼすべてのFlexSimツールが何らかの形で関わっています。しかし、この処理には他のツールよりも重要度の高いツールがあります。このセクションでは、主要なツールの一部をご説明します。
オブジェクトのプロパティ
これまでの説明で、3Dオブジェクトのプロパティを編集すると、その動作やビジュアル外観をコントロールできるようになることがわかりました。
オブジェクトのプロパティを編集するには、主に[プロパティ]ウィンドウを使用します。ただし、一部のプロパティは[クイックプロパティペイン]でも使用できます。詳細については、「オブジェクトプロパティを編集する」を参照してください。
処理フローツール
処理フローツールは、シミュレーションモデルのロジックを構築するために使用する主要ツールです。処理フローツールを使用すると、モデルのロジックのフローチャートを作成できます。このフローチャートの中に、あらかじめプログラムされたロジックの小さいかたまりを含むアクティビティを追加します。シミュレーションモデルを実行すると、トークンと呼ばれる小さな緑色の円が処理フローアクティビティを移動し、各アクティビティのロジックを実行します。
アクティビティのプロパティを編集して、これらのアクティビティを3Dモデルのオブジェクトにリンクさせることができます。または、純粋に処理フローツールそのものの内部で自己完結するシミュレーションを作成することもできます。たとえば、必要に応じて、シミュレーションモデルのフローアイテムにトークンをリンクできます。
処理フローツールを使用してモデルのロジックをコントロールすることには、次のような利点があります。
- 使いやすさ - FlexSimの主な利点の1つに、カスタムオブジェクトを作成する機能があります。これにより、複雑なビジネスプロセスの基礎となるロジックをシミュレーションできます。処理フローツールが導入されるまでは、このようなカスタマイズにはFlexScript(FlexSimの内部スクリプト言語)でコードを記述しなければならないことがほとんどでした。多くの上級ユーザーがコードを直接操作できることを好む一方で、見えない部分でコードが記述されるシンプルでユーザーフレンドリーなインターフェイスを好むユーザーもいます。処理フローツールが開発されたのはそのためです。このようなことから、特にプログラマーでないユーザーは、非常に直感的に処理フローツールを使用できます。
- 優れた柔軟性 - 処理フローツールは、さまざまな種類のシミュレーションプロジェクトや、シミュレーションタスクに対するさまざまなアプローチに柔軟に対応できます。シミュレーションに対するある特定のアプローチを習得し、シミュレーションモデルをこのスタイルに合わせることをユーザーに求めるのではなく、処理フローツールの方がユーザーおよびユーザーのシミュレーションへのアプローチに対応します。処理フローツールで同じ問題を解決する方法は多数あるため、ユーザーにとって納得のいく方法でシミュレーションのロジックを構築できます。この柔軟性により、ユーザーのシミュレーションプロジェクト独特の課題に対処することが可能になります。
- 利害関係者対策 - 処理フローツールは、意思決定者にシミュレーションモデルを提示するのに理想的です。視覚に訴えたわかりやすいフローチャートを使用してビジネスシステムのより深いロジックを提示できるため、利害関係者がビジョンを理解してくれる可能性が高くなります。アクティビティの移動や接続が可能なため、アクティビティを空間的に整理したり、その意味が最もよく伝わるようにグループ化したりすることもできます。
- 容易なデバッグ - 処理フローツールによってビジネスシステムのより深いロジックが視覚的に表現されるため、視覚効果は、単に説得力のあるプレゼンテーションを作成できるだけでなく、シミュレーションのデバッグにも役立ちます。
FlexScript
FlexScriptはFlexSimの内部スクリプト言語です。処理フローツールにより、ほぼあらゆる種類のシミュレーションロジックを扱えますが、上級ユーザーはFlexScriptを使用してモデルロジックをコード化する方法を覚えると役立ちます。FlexScriptを学習すると、シミュレーションプロジェクトを高度化したり、シミュレーションモデルの表面下で何が起こっているかを理解したりするのに役立ちます。本章では最終的にFlexScriptでのコーディングの基礎を紹介しますが、今のところはまずこのマニュアルの「リファレンス」セクションにある「FlexSimでコーディングする」のトピックを参照してください。
モデルロジック構築のベストプラクティス
以下のセクションでは、モデルロジックを構築する際の一般的なガイドラインを示します。
システムのフローチャートを作成する
多くのFlexSimユーザーは、通常、ビジネスシステムの簡単なフローチャートを作成することからシミュレーション処理を開始します。モデル構築の初期段階で、処理フローツールでこのようなフローチャートを設計し、モデル構築の後期段階で、同じフローチャートにさらに複雑なロジックを追加し、シミュレーションモデルのロジックをコントロールできます。
段階的にロジックを構築する
処理フローツールには、簡単にプロジェクトの規模を拡大縮小したり、複雑さを変更したりできる機能が多数あります。一般的に、シミュレーションプロジェクトには、複雑で大きな問題が含まれますが、これらは小さな問題の組合せに分割できます。大規模なシミュレーションモデルを小さく管理しやすいものに分割し、一度に1つの要素に取り組むことを検討してください。その小さな要素にロジックを1つ構築したら、シミュレーションモデルを実行してテストし、予測どおりに動作するかを確認します。1つの要素がうまく機能したら、そこからさらに多くのロジックを構築できます。
処理フローツールを使用すれば、プロジェクトのライフサイクルの早い段階において、ユーザーが納得のいく観点から、シミュレーションのロジック構築を始めることができます。つまり、より迅速にユーザーのアイデアをシミュレーションに組み込むことができます。また、ユーザーの知識が変化したり、ユーザーがビジネスシステムに関する新しい情報を得たりしたとき、シミュレーションのライフサイクルの後半で、より簡単に効率的にシミュレーションを作り変えることができます。