您好,登錄后才能下訂單哦!
小編給大家分享一下EA畫UML活動圖中活動是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
語義
活動是對行為的說明,它描述了計算過程順序和并發的步驟。狀態機和活動有相似之處,它們都描述了一段時間中出現的狀態序列以及引起狀態之間改變的條件。兩者的不同點在于狀態機關注的是執行或者經歷一次計算的單個對象的狀態,而活動關注的則是計算本身的狀態,它可能跨越多個對象,并且顯式地對活動節點之間的控制流和信息流建模。
活動具有輸入和輸出參數,分別代表了提供給活動執行所需的值以及執行活動所產生的值。活動可以作為參數化的行為(behaviour)附加到其他各種行為上。
動作(活動也一樣)要求其所有的輸入上都出現令牌,并且會在所有的的輸出上都產生令牌。
執行規則基本上是并發的。如果兩個活動節點被不同的令牌集合激活,那么它們可以并發執行。這意味著節點之間沒有內在的執行順序。
----UML參考手冊(第二版)
示例
上面的內容來自UML參考手冊,理解中文本身沒有問題,但是和實際結合起來就沒有那么容易了。我們以前一篇文章中那個解一元二次方程流程為例進行說明。這部分就來就是原創了。先上圖。
中間的圓角方框SolveEquation中的內容就是活動。該活動是對解一元二次方程的說明,它描述了計算過程順序和并發的步驟。
SolveEquation活動具有3個輸入參數(系數a,b,c)和1個輸出輸出參數solution,分別代表了提供給活動執行所需的值以及執行活動所產生的值。
SolveEquation的執行是并發的。如果兩個活動節點被不同的令牌集合激活,那么它們可以并發執行。這節點之間沒有內在的執行順序。
當InputA動作(這里假設得到的a!=0)完成以后,執行令牌轉移到InputB的同時,SolveEquation的輸入a也得到執行令牌,SolveEquation內部使用a變量的節點的輸入pin也同時得到令牌。
這里也包含判斷a是否為0的判斷節點。判斷節點只有一個輸入,已經具備了執行條件,因為a不等于0,所以計算delta值的動作的a管腳的得到令牌。
參見下圖中紅線部分。這一切可以認為是和InputB并發執行的。
在a!=0這個分支中一共有四個處理,下面3個處理需要等待delta的計算結果。而計算delta的處理需要等待b, c兩個輸入管腳上的令牌。
InputB處理結束以后,InputC處理的同時,b管腳得到令牌,同時分發給SolveEquation處理內部各個Action的b管腳。參見下圖中藍線部分。
這時計算delta的處理還差c管腳上的令牌沒有到達,所有處理繼續等待。
InputC處理結束后,c管腳得到令牌,分發給所有粉色線相連的管腳。終于可以計算delta值了。
delta值計算完成以后,根據判斷結果,執行令牌被傳送到適當的處理。該處理結束后,在輸出管腳生成計算結果并隨著令牌轉移給SoloveEquation活動的輸出管腳上。
以上是“EA畫UML活動圖中活動是什么意思”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。