課程 | 軟件工程 |
---|---|
作業要求 | 流程圖與活動圖的區別與聯系 |
作業目標 | 了解活動圖和流程圖以及它們的區別與聯系 |
學號 | 3180701113 |
題目要求
(1)給出流程圖的定義說明
(2)給出活動圖的定義說明
(3)舉例對比流程圖與活動圖的區別
(4)舉例分析流程圖與活動圖的聯系
一、流程圖的定義說明
定義
流程圖是對過程、算法、流程的一種圖像表示,通常用一些圖框來表示各種類型的操作,在框內寫出各個步驟,然后用帶箭頭的線把它們連接起來,以表示執行的先后順序。這種表示形象直觀,讓人很容易理解。大概作用就是將工作過程的復雜性、有問題的地方、重復部分、多余環節以簡化和標准化顯示出來。然后將實際的和想象的過程流程進行比較和對照,以便尋求改進過程的機會。也可以使項目小組在過程步驟方面統一意見並檢查出對過程進展有重要影響的環節或活動。
流程圖有時也稱作輸入-輸出圖。該圖直觀地描述一個工作過程的具體步驟。流程圖對准確了解事情是如何進行的,以及決定應如何改進過程極有幫助。這一方法可以用於整個企業,以便直觀地跟蹤和圖解企業的運作方式。
符號
流程圖使用一些標准符號代表某些類型的動作,如決策用菱形框表示,具體活動用方框表示。但比這些符號規定更重要的,是必須清楚地描述工作過程的順序。流程圖也可用於設計改進工作過程,具體做法是先畫出事情應該怎么做,再將其與實際情況進行比較。
類型
文件流程圖
數據流程圖
系統流程圖
程序流程圖
特點:
☆優點:形象直觀,各種操作一目了然,不會產生“歧義性”,便於理解,算法出錯時容易發現,並可以直接轉化 為程序。
☆缺點:所占篇幅較大,由於允許使用流程線,過於靈活,不受約束,使用者可使流程任意轉向,從而造成程序閱讀和修改上的困難,不利於結構化程序的設計。
作用
1.一張簡明的流程圖,能幫你梳理活動流程的先后順序,讓策划、思考的思路更清晰、邏輯更順暢,有助於流程的邏輯實現和有效解決實際問題。
2.流程圖還能幫助我們查漏補缺,避免活動流程、邏輯上出現遺漏,確保活動流程的完整性。通過梳理、琢磨流程上的步驟和關鍵節點,可以快速發現遺漏之處,以便及時整改,保證后續方案執行的順暢。
3.流程圖還是職場溝通的神兵利器,能夠提升我們與老板、同事之間的溝通效率,可以省下不少扯皮的時間。當一件事情的執行步驟比較復雜,判定條件較多,用口頭難以表達清楚,用一張流程圖,就能高效地解決溝通問題。
流程圖的三大結構
(1) 順序結構
在順序結構中,各個步驟是按先后順序執行的,這是一種最簡單的基本結構。如圖,A、B、C是三個連續的步驟,它們是按順序執行的,即完成上一個框中指定的操作才能再執行下一個動作。
(2) 選擇結構
選擇結構又稱分支結構,選擇結構用於判斷給定的條件,根據判斷的結果判斷某些條件,根據判斷的結果來控制程序的流程。在實際運用中,某一判定結果可以為空操作。
(3) 循環結構
循環結構又稱為重復結構,就是流程在一定的條件下,反復執行某一操作的流程結構。循環結構下又可以分為當型結構和直到型結構。
循環結構可以看成是一個條件判斷條件和一個向回轉向條件的組合,循環結構的包括三個要素:循環變量、循環體和循環終止條件。在流程圖的表示中,判斷框內寫上條件,兩個出口分別對應着條件成立和條件不成立時所執行的不同指令,其中一個要指向循環體,然后再從循環體回到判斷框的入口處。
☆當型結構:先判斷所給條件p是否成立,若P成立,則執行A(步驟);再判斷條件p是否成立;若P成立,則又執行A,若此反復,直到某一次條件p不成立時為止。
☆直到型結構:先執行A,再判斷所給條件P是否成立,若p不成立,則再執行A,如此反復,直到P成立,該循環過程結束。
流程圖案例
二、活動圖的定義說明
定義
活動圖是UML用於對系統的動態行為建模的另一種常用工具,它描述活動的順序,展現從一個活動到另一個活動的控制流。活動圖在本質上是一種流程圖。活動圖着重表現從一個活動到另一個活動的控制流,是內部處理驅動的流程。主要用於以下情況:
1.交互圖強調的是對象到對象的控制流,而活動圖則強調的是從活動到活動的控制流。
2.活動圖是一種表述過程基理、業務過程以及工作流的技術。
3.它可以用來對業務過程、工作流建模,也可以對用例實現甚至是程序實現來建模。
符號及說明
1.活動(Activity):是履行操作合同必須發生的主要任務
2.狀態(State):定義事件或活動的當前條件
3.用戶(Actor):即系統角色,可以是人、其他系統或者子系統。
4.控制流(Control Flow):是指執行或評估命令式或聲明式程序的各個語句,指令或函數調用的順序。
5.對象流(Object Flow):是動作狀態或者活動狀態與對象之間的依賴關系,表示動作使用對象或者動作對對象的影響
特點
☆優點:
1.使用活動圖來描述用例場景,可以幫助我們認識問題領域,從問題領域中發現關鍵對象
2.活動圖能夠表示並發活動的情形,非常適合支持並行行為,是支持多線程編程的很好的工具
來全新的寫作體驗
☆缺點:
1.活動圖實際上描述的是業務流程,可能會導致OO的類職責的混亂
2.如果從活動圖的觀點來描述業務,實際上是不能直接看到對象是如何發揮作用的,這樣在觀念上很容易導致對象獨立性被破壞
3.不能顯示對象之間的合作,以及對象在其生命周期內的運轉情況
活動狀態圖(Activity)--狀態
活動狀態用於表達狀態機中的非原子的運行,其特點如下:
(1)活動狀態可以分解成其他子活動或者動作狀態。
(2)活動狀態的內部活動可以用另一個活動圖來表示。
(3)和動作狀態不同,活動狀態可以有入口動作和出口動作,也可以有內部轉移。
(4)動作狀態是活動狀態的一個特例,如果某個活動狀態只包括一個動作,那么它就是一個動作狀態。
UML中活動狀態和動作狀態的圖標相同,但是活動狀態可以在圖標中給出入口動作和出口動作等信息。
動作狀態(Actions)--活動
動作狀態是指原子的,不可中斷的動作,並在此動作完成后通過完成轉換轉向另一個狀態。動作狀態有如下特點:
(1)動作狀態是原子的,它是構造活動圖的最小單位。
(2)動作狀態是不可中斷的。
(3)動作狀態是瞬時的行為。
(4)動作狀態可以有入轉換,入轉換既可以是動作流,也可以是對象流。動作狀態至少有一條出轉換,這條轉換以內部的完成為起點,與外部事件無關。
(5)動作狀態與狀態圖中的狀態不同,它不能有入口動作和出口動作,更不能有內部轉移。
(6)在一張活動圖中,動作狀態允許多處出現。
UML中的動作狀態圖用平滑的圓角矩形表示,如下:
控制點(Guard)
控制轉移方向的條件稱為控制點。
轉移
動作之間的轉換稱之為轉移,活動圖的轉換用帶箭頭的直線表示,箭頭的方向指向轉入的方向
開始節點(Initial Node)
開始節點:表示成實心黑色圓點
終止節點(Final Node)
分為活動終止節點(activity final nodes)和流程終止節點(flow final nodes)。
活動終止節點表示整個活動的結束
對象
對象流
對象流是動作狀態或者活動狀態與對象之間的依賴關系,表示動作使用對象或動作對對象的影響。用活動圖描述某個對象時,可以把涉及到的對象放置在活動圖中並用一個依賴將其連接到進行創建、修改和撤銷的動作狀態或者活動狀態上,對象的這種使用方法就構成了對象流。
對象流中的對象有以下特點:
(1)一個對象可以由多個動作操作。
(2)一個動作輸出的對象可以作為另一個動作輸入的對象。
(3)在活動圖中,同一個對象可以多次出現,它的每一次出現表面該對象正處於對象生存期的不同時間點。
對象流用帶有箭頭的虛線表示。如果箭頭是從動作狀態出發指向對象,則表示動作對對象施加了一定的影響。施加的影響包括創建、修改和撤銷等。如果箭頭從對象指向動作狀態,則表示該動作使用對象流所指向的對象。
狀態圖中的對象用矩形表示,矩形內是該對象的名稱,名稱下的方括號表明對象此時的狀態。
分支與合並(Decision and Merge Nodes)
分支與合並用菱形表示
分叉與匯合(Fork and Join Nodes)
對象在運行時可能會存在兩個或多個並發運行的控制流,為了對並發的控制流建模,UML中引入了分叉與匯合的概念。分叉用於將動作流分為兩個或多個並發運行的分支,而匯合則用於同步這些並發分支,以達到共同完成一項事務的目的。
泳道(SwimLane)
泳道將活動圖中的活動划分為若干組,並把每一組指定給負責這組活動的業務組織,即對象。在活動圖中,泳道區分了負責活動的對象,它明確地表示了哪些活動是由哪些對象進行的。在包含泳道的活動圖中,每個活動只能明確地屬於一個泳道。
泳道是用垂直實線繪出,垂直線分隔的區域就是泳道。在泳道的上方可以給出泳道的名字或對象的名字,該對象負責泳道內的全部活動。泳道沒有順序,不同泳道中的活動既可以順序進行也可以並發進行,動作流和對象流允許穿越分隔線。
活動圖實例解析
★泳道分為:會員泳道和系統泳道。會員選擇商品並加入購物車,系統完成訂單生成及其支付完畢。
★開始節點:會員添加商品到購物車,點擊【訂單確認】,開始交於系統處理訂單流程
★結束節點:商品發送完畢和付款成功,訂單處理流程結束
★活動狀態:產生訂單、Check Credit Cart核對信用卡、Check Stock 核對庫存量、Deliver Goods 發送商品、Process Credit Cart付款
★分叉與匯合:【產生訂單】份叉為檢查庫存量和會員支付金額是否足夠,如果不足,取消訂單,如過庫存量和支付金額足夠,發送商品和付款,最后匯合為訂單完成。
三、活動圖與流程圖的區別與聯系
☆區別:
活動圖是UML用於對系統的動態行為建模的另一種常用工具,它描述活動的順序,展現從一個活動到另一個活動的控制流。
(1)流程圖着重描述處理過程,它的主要控制結構是順序、分支和循環,各個處理過程之間有嚴格的順序和時間關系。而活動圖描述的是對象活動的順序關系所遵循的規則,它着重表現的是系統的行為,而非系統的處理過程。
(2)活動圖能夠表示並發活動的情形,而流程圖不行。
(3)活動圖是面向對象的,而流程圖是面向過程的。
☆聯系:
1.活動圖本質是一種流程圖,只是更加抽象。活動圖是各個對象之間行為聯系,對象則屬於不同的類,是抽象出來的。
2.一個系統中,通過流程圖可以明顯了解到各個對象之間進行怎樣的行為聯系。通過流程圖,可以知道相關行為的具體實現(算法),二者都有同時存在的作用。