1 / 51

作業行為塑模

作業行為塑模. 內容大綱. 導論 狀態圖 狀態圖進階 狀態圖之建構步 驟 與 原 則 狀態圖之建構案例 活動圖 活動圖 之建構步 驟 與 原 則 活動圖 之建構案例 結論. 導論. 在物件導向系統發展過程中,完成了使用個案塑模後,接下來便可進行 物件資料結構塑模、 物件互動行為塑模、 作業行為塑模 等活動以開始架構系統。. 導論 (c.2). 作業行為塑模的工具包含: 狀態圖 (State Diagrams) 活動圖 (Activity Diagrams). 導論 (c.3).

raheem
Download Presentation

作業行為塑模

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 作業行為塑模

  2. 內容大綱 導論 狀態圖 狀態圖進階 狀態圖之建構步驟與原則 狀態圖之建構案例 活動圖 活動圖之建構步驟與原則 活動圖之建構案例 結論

  3. 導論 • 在物件導向系統發展過程中,完成了使用個案塑模後,接下來便可進行 • 物件資料結構塑模、 • 物件互動行為塑模、 • 作業行為塑模 等活動以開始架構系統。

  4. 導論(c.2) • 作業行為塑模的工具包含: • 狀態圖(State Diagrams) • 活動圖(Activity Diagrams)

  5. 導論 (c.3) • 若某物件或系統在其生命週期(從行為開始到結束)中有較複雜的狀態改變時,而這些改變在互動圖中不易表達,則可以用狀態圖詳細表達其所有狀態與狀態間之轉換。 • 對較單純者,不一定需要用狀態圖表達。

  6. 導論 (c.4) • 此外,狀態圖也可用於表達某一使用個案、許多使用個案、子系統、使用者介面等等。 • 除軟體外,也可表達硬體之狀態轉換。

  7. 導論 (c.5) • 若物件或系統涉及執行某些較複雜之操作、作業流程或行為時,例如循序的(sequential)或同時的(concurrent)活動等,因為這些活動不易在互動圖中描述清楚,則可以用活動圖表達。 • 此外,也可用於表達某一使用個案、許多使用個案、子系統等之循序或同時的作業流程或行為。

  8. 導論 (c.6) • 作業行為塑模應先建構狀態圖或活動圖? • 這問題並無標準答案。 • 應視系統之複雜程度、專案需求、分析師之習慣等因素來決定。 • 物件導向的分析與設計很難一次就完整的完成,常須經歷反覆的設計,才能漸趨完整或完美,因此作業行為塑模亦須反覆進行,才能有較滿意的成果。

  9. 導論 (c.7)

  10. 狀態圖 • 狀態圖之主要元件包括: • 狀態(states) • 轉換(transitions ) • 被狀態圖描述的東西 ,可視為一部狀態機(state machine),機器內部有狀態及狀態的轉換。

  11. 狀態圖(c.2) • 一個狀態是一個被描述者在其生命週期中之一個情況(situation),在此情況中,它滿足某條件,可能正等待某些事件的發生,且可能正在執行某活動。 • 狀態具有名稱,名稱以字串命名,且必須是唯一的。

  12. 狀態圖(c.3) • 其運作規則是當轉換發生後,會從 某一狀態(稱來源狀態)進入 另一個狀態(稱目的狀態)。

  13. 狀態圖(c.4) • 狀態之轉換: 事件[成立條件]/動作 Event [Guard] / Action 此三個部分是具有選擇性的,不一定要同時都具備。

  14. 狀態圖(c.5) • 事件(Event):是一種刺激,能激起狀態的轉換,如訊息的接收、時間的到達、訊號(signals)等等。 • 成立條件(Guard):是一個布林式(Boolean expression)。如果轉換包含有成立條件,該條件就會被判斷為「真」(true)或「假」(false),若結果為真,狀態轉換就會發生;若為假,轉換不會發生。 • 動作(Action);是指一短暫且不能中斷的行為。如果轉換包含有動作,該動作就會被執行,且執行完才會進入目的狀態。

  15. 狀態圖(c.6) • 狀態圖包含兩種特殊的狀態: • 開始狀態(Initial States): 表達一狀態機之開始,或一狀態中之起始子狀態。以一實心黑圈表示。 • 結束狀態(Final States):表達一狀態機之結束,或一狀態中之結束子狀態。以一實心黑圈外加一圓圈表示。

  16. 狀態圖(c.7) • 描述洗衣機的狀態圖

  17. 狀態圖進階 • 一個狀態可以有許多部分: • 名稱、 • 進入/離開之動作、 • 活動、 • 子狀態等。 • 各部分不一定要具備,主要是根據被描述者之複雜度而定。

  18. 狀態圖進階(c.2) • 狀態具有名稱,名稱以字串命名,且必須是唯一的。 • 就狀態圖而言: • 「動作」(action) 是指一較短暫且不能中斷的運算行為。 • 「活動」(activity)是指一較長而持續的運算行為,它是一種處理,處理過程中可以被某些事件中斷或暫停。

  19. 狀態圖進階(c.3) • 進入動作:一進入狀態時,所要執行的動作。若狀態中有活動,在活動之前執行。 • 離開動作:離開狀態前,所要執行的動作。若狀態中有活動,在活動停止後執行。 • 子狀態(substate):將一狀態細分的結果,就會有一些子狀態。當一狀態包含有子狀態時,即具有深度(depth),稱為超狀態(superstate)或父狀態。

  20. 狀態圖進階(c.4) • 狀態可分為幾類: • 開始狀態(Initial States) • 結束狀態(Final States) 3. 一般狀態(States without Depth ) 4. 具有深度的狀態(States with Depth) • 循序組合狀態(Sequential Composite States) • 同步組合狀態(Concurrent Composite States) 5. 歷史狀態(History States)

  21. 狀態圖進階(c.5) • 「開始狀態」與「結束狀態」均為虛擬的狀態,沒有名稱、進入/離開之動作、活動、及子狀態等。 • 一般狀態:不具有深度的狀態,也就是裡面沒有子狀態。

  22. 狀態圖進階(c.6) • 具有深度的狀態(states with depth) 又稱組合狀態(composit states)。 • 循序組合狀態:是一具有深度的狀態,其內部的子狀態組成一狀態機。進入該狀態,會在子狀態間循序的轉換,也就是在任一時間點,僅處於其中的某一子狀態。

  23. 狀態圖進階(c.7) • 延續先前洗衣機的狀態圖,擴充「洗滌」狀態為循序組合狀態,其包含一個狀態機,有兩個子狀態:「攪拌式」、「離心力」,進入動作是「添加洗衣精」,離開動作是「排水」。

  24. 狀態圖進階(c.8) • 同步組合狀態:也是一具有深度的狀態,其內部包含有兩個或更多的狀態機。進入該狀態,狀態機會同時的運作,但每個狀態機會各自在其子狀態間循序的轉換。 • 同步組合狀態以虛線分開狀態機。

  25. 狀態圖進階(c.9) • 延續先前洗衣機的狀態圖,擴充「洗滌」狀態為同步組合狀態,其包含另一個狀態機,有三個子狀態:「低速」、「中速」、「高速」,無進入動作及離開動作。

  26. 狀態圖進階(c.10) • 歷史狀態:是一虛擬狀態,儲存組合狀態中上一次離開時的子狀態,可供返回該組合狀態時,從儲存中的子狀態開始。以圓圈內加一“H”表示。

  27. 狀態圖進階(c.11) • 狀態圖元件與表達符號

  28. 狀態圖進階(c.12) • 狀態轉換: • 由狀態A,經事件p,進入狀態F的子狀態F1。 • 由狀態B,經事件q,進入狀態F的子狀態F2。 • 在狀態F的子狀態F3,經事件r,進入狀態C。 • 在狀態F的任 一子狀態,經事件s,進入狀態D。 • 在狀態F進入結束狀態後,自動進入狀態E。

  29. 狀態圖之建構步驟與原則 • 狀態圖之建構步驟包括 (1)找出狀態 (2)找出狀態間之轉換 (3)繪製狀態圖 (4)精練(Refine)狀態圖。

  30. 狀態圖之建構步驟與原則(c.2) • 建構狀態圖可參考下列原則: 1. 從使用個案描述或類別之操作描述,逐一找出狀態圖之狀態與轉換。 2. 狀態之轉換,『事件[成立條件]/動作』,此三個部分是具選擇性的,不一定要同時都具備。 3. 由狀態圖之上方或左上方以"開始" 畫起,從系統的觀點,依被描述者之行為,將其生命週期的活動狀態之順序,逐一畫出所有狀態及轉換。

  31. 狀態圖之建構步驟與原則(c.3) 4. 自身轉換的表示法是,箭頭由該狀態伸出,繞一圓弧後,箭頭再指向該狀態,並在適當位置說明『事件[成立條件]/動作』。 5. 繪狀態圖時,其之轉換應儘量避免交叉。

  32. 狀態圖之建構案例 訂貨處理狀態圖

  33. 狀態圖之建構案例(c.2) • 「訂貨處理」範例有七個狀態,分別為開始、檢查、發送、等待、取消、已運送與結束,狀態間之轉換與運作規則如下: (1) 「開始狀態」,先取第一個項目(動作)。 (2.1)「檢查狀態」,做檢查(活動),若所有庫存項目尚未檢查完(條件),則需繼續取下一個項目(動作),並做檢查(活動),直到所有項目檢查完為止(重複迴圈;自身轉換)。 (2.2)「檢查狀態」,做檢查(活動),若所有項目均已檢查完,且所有項目均在倉庫(條件),則轉換到發送狀態。 (2.3)「檢查狀態」,做檢查(活動),若所有項目均已檢查完,且有某些項目不在倉庫(條件),則轉換到等待狀態。

  34. 狀態圖之建構案例(c.3) (3.1)「等待狀態」,收到項目(事件),若所有項目均在倉庫(條件),則轉換到發送狀態。 (3.2)「等待狀態」,收到項目(事件),若有某些項目不在倉庫(條件),則轉換到等待狀態(重複迴圈;自身轉換)。 (4)「發送狀態」,啟動送貨(活動),送貨(動作),完成後轉換至已送貨狀態。 (5)在送貨前之任一狀態(例如檢查、發送、等待狀態),可允許隨時取消訂單(動作),而轉換到「取消狀態」。 (6)在「取消狀態」會馬上自動轉換至「結束狀態」。 (7) 在「已運送狀態」會馬上自動轉換至「結束狀態」。

  35. 狀態圖之建構案例(c.4) • 狀態圖塑模的另一重要觀念即是「超狀態」之應用,可讓整個狀態圖較為清楚與簡潔。 • 在已運送狀態之前,我們想要在任何時刻取消訂單,則可從檢查、等待、發送等狀態分別轉換至取消狀態。 • 我們也可以將檢查、等待、發送狀態群集成一個超狀態,再由該超狀態轉換至取消狀態來表現。

  36. 狀態圖之建構案例(c.5) 訂貨處理超狀態圖範例

  37. 活動圖 • 活動圖是一種塑模工具,它可被用於表達一個物件、一個使用個案(Oestereich, 1999)、許多使用個案間、或一個系統在其生命週期中之循序或同時的操作(Operation)、作業流程(Workflow)或行為,例如在其生命週期中之所有活動及其轉換關係。 • 尤其是當互動圖中無法清楚表達生命週期中之行為時(例如複雜的平行處理、多執行緒處理之行為等),可以用活動圖更詳細的描述之。

  38. 活動圖(c.2) • 活動圖之主要元件為 • 活動狀態(Activity States) • 轉換(Transitions) 兩者之關係與表達如下圖。

  39. 活動圖(c.3) • 活動圖之元件包括: 1. 開始(Start):開始用予描述一連串活動的起點,以一實心圓形表示。 2. 活動狀態(Activity States):是真實世界的一個處理、一個程序、或是執行一段副程式。活動狀態以一圓角矩形表示,內部說明活動狀態。如同狀態圖,一個活動狀態可以用活動圖描述其細節,所以活動狀態也可以具有深度。 3.轉換(Transitions):與狀態圖的轉換相同,即是當一個活動狀態完成時直接轉換到下一個活動狀態,與狀態圖的轉換不同的是,此轉換只有[成立條件]([guard]) ,以一“箭頭” 旁註[成立條件] 來表示。 [成立條件]是具選擇性的。

  40. 活動圖(c.4) 4.分岔(Fork):分岔是用予表達當轉換發生後,有兩個或兩個以上之平行活動狀態發生的情況。分岔之表達符號是以一橫向黑實線條,外加一條流入之垂直箭頭與多條流出之垂直箭頭表示。 5.會合(Join):會合是用予表達平行活動狀態結束之情況,先完成之活動狀態需等待未完成者,直到所有平行活動狀態都完成。表達符號與分岔類似是以一橫向黑實線條,外加多條流入之垂直箭頭與一條流出之垂直箭頭表示。

  41. 活動圖(c.5) 6.分支(Branch):分支是用予表達當轉換發生後,有多個選擇路徑,但僅能依條件選擇其中一個路徑執行之。分支之表達符號是以一菱形,外加一條流入菱形之箭頭與多條流出菱形之箭頭表示。 7.合併(Merge):合併是用予表達有多個選擇路徑匯集於某點,之後再往下執行。合併之表達符號與分支相似,是以一菱形外加多條流入菱形之箭頭與一條流出菱形之箭頭表示。

  42. 活動圖(c.6) 8.結束(End):結束用予描述一連串活動的結束(或終點),以兩個空心圓表示。 9.責任區(Swimlanes):責任區是用予表達活動圖中,哪些活動狀態是由誰、那個部門、類別或元件負責的一種方式,其表示方式就如同游泳池的水道一樣,每一水道代表一個負責的人、部門、類別或元件。

  43. 活動圖(c.7) 活動圖之元件表達符號

  44. 活動圖之建構步驟與原則 • 活動圖之建構步驟與狀態圖一樣,包括 (1)找出活動,必要時也需找出執行該活動之 實體, (2)找出活動間之轉換, (3)繪製活動圖, (4)精練活動圖。

  45. 活動圖之建構步驟與原則(c.2) • 建構活動圖可參考下列原則︰ 1. 從使用個案描述或類別之操作描述中找出相關的活動狀態與轉換。 2.由活動圖之上方或左上方以“開始” 畫起,接著依物件之操作或行為或系統之作業流程等活動發生之順序,劃出活動及其間之轉換,而在最後的活動狀態之後以“結束” 表達之。 3.遇到有平行處理或多執行緒的活動狀態時以分岔描述之,此時在分岔之前會有一個進入轉換(Incoming Transition),在分岔之後會有數個離開轉換(Outgoing Transition)。

  46. 活動圖之建構步驟與原則(c.3) 4. 有分岔就必須有結合,在所有分岔出去的平行處理的活動狀態都執行完畢後需有結合。此時在結合之前會有數個進入轉換,在結合之後會有一個離開轉換。 5. 遇到數個有[成立條件] 的擇一執行活動狀態時,以分派來表達,此時在分派之前會有一個進入轉換,在分派之後,會有數個具有互斥條件的離開轉換。 6. 合併用來描述以分派為開端的條件式活動狀態的結束,此時在合併之前會有數個輸入轉換,在合併之後會有一個輸出轉換。

  47. 活動圖之建構步驟與原則(c.4) 7. 可以用責任區方式表達哪些活動狀態是由誰、那個部門、類別或元件負責,並將這些活動狀態放置於同一"水道" 內。

  48. 活動圖之建構案例 • 以銷售作業為例,說明活動圖之建構,其銷售作業流程如下: (1)公司接到訂單後便同時進行出貨處理與發票 處理。 (2)出貨處理若屬緊急出貨,則以24小時送貨處 理,若不是,則以一般送貨處理。 (3) 24小時送貨或一般送貨處理完成後需合併。 (4)發票處理後,接著進行收款。 (5)完成收款與出貨(結合)後,這個銷售作業才算 完成。 (6)儲運部負責出貨活動,而營業部負責接訂單、 發票、收款等活動。

  49. 活動圖之建構案例(c.2) • 建構步驟如下: • 從上述之描述可知,接訂單、出貨處理、發票處理、24小時送貨處理、一般送貨處理與收款等均是活動狀態。 • 其中,接訂單後可同時處理出貨與發票,因此需用分岔符號;發票處理與收款是循序的,因此用一般轉換;出貨處理後需選擇24小時送貨處理或一般送貨處理之情況,因此先用分派,完成後用合併符號;兩個平行活動皆完成後用結合符號。 • 完成後,分別在最開始之活動前與結束之活動後分別加開始與結束之符號。 • 此外,若有必要可在活動圖上標示水道線,以區分哪些活動屬於哪些類別、實體或部門等。例如,出貨之相關處理屬於儲運部;而訂貨、發票與收款等屬於營業部門。

  50. 活動圖之建構案例(c.3) 銷售作業之活動圖

More Related