5

階層ステート マシン (HSM) の実行を提供するフレームワークを探しています。

フレームワークの要件は次のとおりです。

  • UML ステート マシンのセマンティクスに準拠する (可能な限り)
  • 少なくともサポート
    • 実行から完了までのセマンティクス
    • 階層状態
    • 入口と出口のアクション
    • 遷移アクション
    • 警備員
    • カスタム パラメータを使用したイベント
  • オブジェクト指向であるか、少なくとも OO 設計を禁止していない

対象プラットフォームはOS搭載の中・大規模組込みシステムです。

上記の要件を満たすフレームワークを知っていますか? フレームワークの長所と短所は何ですか?

4

5 に答える 5

4

Boost MSMをチェックしてみてください。これは、Boost 1.44の新機能ですが、かなり完成しているようです。私はまだそれを自分で試していませんが、それはかなり有望に見えます。

于 2010-09-20T10:49:17.717 に答える
4

Quantum プラットフォームをご覧ください。

私はいくつかの組み込みプロジェクト (非常に小さなものから非常に大きなものまで) でそれを使用しており、必要なすべての箇条書きの項目などをサポートしています。

QP の Web ページは、私がここでできるよりもはるかに優れた説明を行っています。

QP は UML 仕様で指定された機能の 100% を実装していないことに注意してください。

あなたが知っているように見える 2 つの Boost ステートチャート パッケージもあります。

于 2010-09-20T19:42:56.657 に答える
1

UML セマンティクス (入口/出口、遷移、ガード、パラメーター付きイベント、非同期/同期) を備えた階層型および並行ステート マシンをサポートするフレームワークを探している場合は、私のステート マシン コードとダイアグラム ジェネレーターをご覧ください。

ステート マシンを「手動で」実装する代わりに、人間が読み書きできる単純な xml 記述でステート マシンを記述し、ステート マシン ジェネレーターに C++、C#、または Java でコード ソースを記述させます。

実際、C++ バージョンの場合、生成されたコードは、中規模/大規模の組み込みシステム用に簡単にクロスコンパイルできます。それはすでに行われています。

于 2011-08-07T21:10:14.407 に答える
1

UML 2.2 状態図表記法を実装クラスにマッピングすることを目的とした、私の C++ テンプレート クラス フレームワークSTTCLを見たことがあるかもしれません。STTCL アプローチは、GoF 状態パターンを改良したものであり、UML 状態図表記とのギャップを埋めようとします。

フレームワークの実装は、必要に応じて OS の依存関係を構成できます (非同期実行モデルの場合のみ)。

概念をより詳細に説明する PDF ドキュメントが利用可能です

于 2012-02-20T11:32:52.123 に答える