2012-07-11 30 views
9

Tôi đang cố gắng lập mô hình Ứng dụng của mình với Sơ đồ hoạt động UML. Tôi đang sử dụng JavaScript và Node.js và nhiều cuộc gọi lại không đồng bộ. Dưới đây là những gì tôi đã đưa ra:Gọi lại không đồng bộ trong sơ đồ hoạt động UML

Activity Diagram

Bạn nghĩ gì? Bạn có hiểu điều gì đang diễn ra không? Tôi đang sử dụng một "chung kết nối" để liên kết các cuộc gọi lại với hành động ("chạy MyClass.myMethod) và một ngã ba-nút để hiển thị" song song "thực hiện.Tôi đã không tìm thấy một từ viết về callbacks trong Activity Diagrams bất cứ nơi nào trên . web hoặc cuốn sách của tôi

EDIT Đây sẽ là mã JavaScript cho sơ đồ:.

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

thể trùng lặp của http://stackoverflow.com/questions/415974/how- to-show-asynchronous-hoạt động-on-uml-hoạt động-sơ đồ – Rayfleck

Trả lời

6

Một cách chính xác để hiển thị callbacks như sau: ⁺

Bạn instanciate một đối tượng, vượt qua nó với mục tiêu cổng và gọi các hoạt động cụ thể (calculateTime) trên đó. Luồng điều khiển tiếp tục ngay lập tức và khi hoạt động không đồng bộ kết thúc, kết quả sẽ được chuyển đến chốt kết quả. Các đối số cho cuộc gọi async có thể được xác định bằng cách thêm nhiều đối tượng- (trong) đặt chân vào Hành động.

async callback Activity Diagram

⁺ (xem UML Spec. 11-08-06 11.3.10 CallOperationAction/11.3.8 CallAction)

3

cách tốt nhất để hiển thị callbacks trong sơ đồ hoạt động sẽ là tín hiệu Chỉ cần đưa vào tài khoản mà tín hiệu hoàn toàn không đồng bộ (tách rời hoàn toàn giữa người gửi và người nhận) và tôi không chắc đây là trường hợp trong javascript. Nhưng chúng có ý nghĩa gần hơn với những gì bạn muốn.

+0

Tín hiệu là một ý tưởng tốt, nhưng tôi không thể vượt qua các đối số từ người gửi đến người nhận !? – Chris

+2

Tắt khóa học bạn có thể. – vainolo

Các vấn đề liên quan