(零雨其蒙原創 轉載請注明)
2007
年
3
月
11
日星期日
?
第五部分
細化迭代
3
——中級主題
第
28
章
UML
活動圖及其建模
UML
活動圖的基本作用
???
一個
UML
活動圖表示一個過程中的多個順序活動和并行活動。這些活動圖有助于業務過程、工作流、數據流和復雜算法進行建模(
P346
)。
???
從上面這段話的描述我們可以得知,活動圖可以替代面向過程的分析與設計中的業務流程圖和數據流程圖以及算法圖等。
?
UML
活動圖的基本表示法
基本表示法包括如下符號:
動作(
action
)
也就是它完成某些事物
分區(
partition
)
表示參加過程的不同參與者,這樣可以使得系統責任更加清晰,誰負責什么工作(
action
),而且顯得不是那么亂糟糟的一片,讓人看得想吐!
分叉點(
fork
)
一個輸入轉換,以及多個輸出的并行轉換或對象流,就是一分多
連接點(
join
)
多個輸入轉換或對象流,一個輸出變換,就是多合一
對象節點(
object node
)
由動作產生或使用的對象。這允許我們對數據流或對象流建模,也就是說在表示數據流圖時可以使用它。
當某個活動需要在另外一個活動圖中展開時,如何表示?
可以使用耙子(
rake
)符號來表示。使用耙子的作用就好像在畫業務流程圖或數據流程圖時要畫不同層次(
level
)的圖一樣,需要一層一層細化,我覺得使用
rake
是個更清晰的選擇,比傳統的數據流圖等要好。因為耙子這個符號很好!
如何表示條件分支?
使用決策(
decision
)符號和合并(
merge
)符號
以上例子見
P348-350
準則
l????????
對于復雜的業務過程使用活動圖,而簡單的使用用例文本就好了。
l????????
盡量保持在同一張圖中所有動作節點的抽象水平一致。也就是說要表示同一程度的顆粒度。
?
?
第
29
章
UML
狀態機圖和建模
UML
狀態圖的作用
???
狀態圖是動態視圖,用來表示狀態。
UML
狀態機圖(
state machine diagram
)描述了某個對象的狀態和感興趣的事件以及對象響應該事件的行為。
事件
event
??
指一件值得注意的事情的發生。
狀態
state
??
指對象在事件發生之間某時刻所處的情形。
??
我覺得具體而言對象狀態變化包括:屬性值改變,關聯關系改變和生命周期的改變(創建、激活、鈍化和銷毀)
轉換
transition
??
是兩個狀態之間的關系。它表明當某事件發生時,對象從先前的狀態轉換到后來的狀態。
?
?
何時使用
UML
狀態機圖
??
準則
??
?
考慮為具有復雜行為的狀態依賴對象(
指響應行為依賴于當前狀態,比如按下電話某個鍵,狀態的變化依賴于電話機處于何種狀態,接聽還是放在原位)而不是狀態無關對象建模。
?
?
事務處理等復雜的反應式對象和頁面(
UI
,
Web
,窗口)導航(一系列的流程,比如先按
btnA
,然后
edtB
的
enble
屬性變為
true
等;還有就是
Web
頁面導航的例子,如
A
頁面通過
URL
導航到
B
頁面,然后點擊
B
頁面上的按鈕轉到
C
頁面),都可以用狀態圖來進行可視化表示。
?