2012-07-11 114 views
9

私はUMLアクティビティ図を使用してアプリケーションをモデル化しようとしています。私はJavaScriptとNode.jsを使用しており、多くの非同期コールバックを使用しています。ここに私が思い付いたものです:UMLアクティビティ図の非同期コールバック

Activity Diagram

あなたはどう思いますか?あなたは何が起こっているのか理解していますか?私はコールバックをアクション( "MyClass.myMethodを実行する")とフォークノードを "パラレル"実行に関連付けるために "汎用コネクタ"を使用しています。アクティビティ図のどこにでもコールバックについて書かれた単語は見つかりませんでした。 。ウェブまたは私の本

EDIT これは図のためのJavaScriptコードのようになります。

var MyClass = function() { 
    //constructor 
}; 
MyClass.prototype = { 
    myMethod : function(cb) { 
     //this is an async method 
     var result = 5 + 5; 
     setTimeout(function() { 
      cb(null, result); 
     },100); //execute Callback after 100ms 
    } 
}; 

//instanciate a MyClass Object 
var myClassInstance = new MyClass(); 

//create a callback function that prints the result 
var callbackFunction = function (err,result) { 
    console.log(result); 
}; 

myClassInstance.myMethod(callbackFunction); 
console.log('I am first'); 
+0

可能重複http://stackoverflow.com/questions/415974/how- to-show-asynchronous-operations-on-uml-activity-diagram – Rayfleck

答えて

6

コールバックを表示する正しい方法は以下の通りです:⁺

オブジェクトをインスタンス化、ターゲット・ポートに渡して、その上に指定された操作(calculateTime)を呼び出します。制御フローは直ちに続き、非同期動作が終了すると、結果は結果ピンに転送されます。非同期呼び出しの引数は、より多くのオブジェクト・イン・ピンをアクションに追加することで指定できます。

async callback Activity Diagram

⁺(UML仕様を参照。11-08-06 11.3.10 CallOperationAction/11.3.8 CallAction)の

3

アクティビティ図でコールバックが信号となり表示する最良の方法はちょうどその信号を考慮に入れます。完全に非同期(送信者と受信者の間の完全な分離)であり、これがjavascriptの場合はわかりませんが、彼らはあなたが望むものに近い意味を持っています。

+0

信号は良い考えですが、送信者から受信者に引数を渡すことはできません! – Chris

+2

もちろんできます。 – vainolo

関連する問題