掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     連結点とフォークの違い


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
ukkie(未登録ゲスト)
投稿日時: 2010-7-2 15:27

連結点とフォークの違い

「ステートマシン図」からのソースコード生成機能ガイドでは
連結点とフォークは同じようなものだと説明しています。
ものの本を見ると、フォークは直交状態を作るものだと
説明があり、であれば連結点とは全く異なると思います。
本には、状態内を点線で区切って、直交状態を表していますが
EAでも同様の記述が可能でしょうか。であれば、どうやって
点線を引きますか。
tkouno
投稿日時: 2010-7-2 16:17
EA Administrator
投稿: 3939

Re: 連結点とフォークの違い

頂きましたご質問に回答させていただきます。

ご質問の「フォーク」についての本来の意味としては
ご提示の内容が正しいかと思います。

ただし、このEnterprise Architectのソースコード生成の機能では
スレッドなど、同時に複数の処理を行うことができるような
コードの生成を行うことには対応していません。

そのため、現状として、結果的に連結点と同じ働きになってしまっているとご理解下さい。


Enterprise Architectで直交状態を記述することは可能ですが、
上記と同様の理由で、コード生成のためのモデルでは
利用することはできません。

ご要望に添えず申し訳ございません。

ukkie(未登録ゲスト)
投稿日時: 2010-7-2 16:54

Re: 連結点とフォークの違い

では、同時に複数の処理を行うには、別のクラスのステート
マシン図を作成して、それを呼び出すような形になるので
しょうか。どうすればよいかイメージが湧きません。

直交状態はUMLの仕様だと思うのですが、対応
していないのは、技術的に難しいのか、あるいは他の理由が
あるのでしょうか。
tkouno
投稿日時: 2010-7-5 8:36
EA Administrator
投稿: 3939

Re: 連結点とフォークの違い

「同時に複数の処理」を実際のコードとして行うためには、例えばスレッドのような仕組みであるとか
あるいはタスクのような形で定義された複数の処理を実現するための仕組みなどを、OSやフレームワークで
提供する必要があると考えています。

しかし、Enterprise Architectの「既定の」コード生成の結果は、特定のOS等に依存するような
内容・前提ではありません。ですので、既定のままでは、複数の処理を
考慮したコードを出すことはできません。


ご指摘のように直交状態はUMLの仕様ですし、Enterprise Architectでも表現する(書く)ことは可能です。
ただし、UMLでは、モデルとして表現した内容とソースコードとの関係は規定していません。
ですので、「UMLで書ける=ソースコードに出せる」ということは、UMLの仕様としては未定義です。


直交状態としてUMLモデルで表現する、ということは、おそらく実装する環境(OS等)で
複数の処理を同時に行うことができる、ということになるかと思います。
ですが、上記のように、Enterprise Architectではその実装する環境を前提とした
コード生成になっていませんので、ご希望の結果になるように、コード生成のルールを
カスタマイズしなければならない、ということになります。

以上で回答になっていますでしょうか?
ukkie(未登録ゲスト)
投稿日時: 2010-7-5 9:59

Re: 連結点とフォークの違い

組み込みでは、必ず並列処理が必要となります。EAで
自動生成したコードを、具体的に並列処理させる方法が
知りたいのです。並列処理が出来なければ、使い物に
なりません。EA導入の判断をするのに、すごく
重要なことです。現在EAを組込み用途で使われているお客様は
この問題をどうやって解決されているのでしょうか。
ソースコードについて、UMLが定義していないのは理解
できますが、並列処理の具体的例のいくつかは提供すべき
ではないでしょうか。
tkouno
投稿日時: 2010-7-5 14:55
EA Administrator
投稿: 3939

Re: 連結点とフォークの違い

返信が遅くなり、申し訳ございません。

ステートマシン図からのコード生成の結果についてご覧いただくと
ご理解いただけるように、コード生成のイベントを発生させるコードなどは
含まれていません。
この部分が、OSなどの環境に依存する部分で、ツール側では
提供していない部分です。

ご返信を拝見しますと、おそらく100%のコード生成(=生成後すぐに動作するようなコード)を
期待されているのではないかと思います。Enterprise Architectの
コード生成の設定では、例えばITRONとかVxWorksとか、環境についての
設定箇所はありません。ですので、それぞれの環境に対応するコードまでは
対応していないということになります。
この部分は、それぞれのお客様が、それぞれの環境に応じた
コードを作成することになり、弊社では提供しておりません。

ご要望に添えず、申し訳ございません。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ