2012-07-11 12 views
9

Próbuję modelować moją aplikację za pomocą diagramów aktywności UML. Używam JavaScript i Node.js oraz wiele asynchronicznych wywołań zwrotnych. Oto co wymyśliłem:Asynchroniczne wywołania zwrotne w diagramach aktywności UML

Activity Diagram

Co o tym sądzisz? Rozumiesz, co się dzieje? Używam "ogólnego konektora", aby powiązać wywołanie zwrotne z działaniem ("uruchom MyClass.myMethod) i węzeł-widelec, aby pokazać wykonanie" równoległe ".Nie znalazłem pisemnego słowa o wywołaniach zwrotnych w Diagramach aktywności w dowolnym miejscu na . w internecie lub moje książki

EDIT byłoby to kod JavaScript na schemacie.

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

możliwe duplikat http://stackoverflow.com/questions/415974/how- pokazywać-asynchroniczne-operacje-na-uml-diagram działania – Rayfleck

Odpowiedz

6

prawidłowy sposób, aby pokazać zwrotnych jest następująca: ⁺

Ty instanciate Obiektu, przekazać je do docelowego portu i wywołać określone operacje (calculateTime) na nim. Przepływ sterowania jest kontynuowany natychmiast i po zakończeniu operacji asynchronicznej wynik jest przesyłany do kołka wynikowego. Argumenty za wywołaniem asynchronicznym można określić, dodając do akcji więcej pinów obiektu (nie).

async callback Activity Diagram

⁺ (patrz UML spec. 08.11.06 11.03.10 CallOperationAction/11.3.8 CallAction)

3

najlepszym sposobem, aby pokazać zwrotnych w diagramach aktywności byłoby sygnały Wystarczy wziąć pod uwagę, że sygnały są całkowicie asynchroniczne (całkowite odłączenie między nadawcą a odbiorcą) i nie jestem pewien, czy tak jest w javascript, ale mają one bliższe znaczenie dla tego, co chcesz.

+0

Sygnały to dobry pomysł, ale nie mogę przekazywać argumentów od nadawcy do odbiorcy !? – Chris

+2

Oczywiście, że możesz. – vainolo

Powiązane problemy