【軟體工程】看我火眼金睛——系統流程圖、程式流程圖、資料流圖、活動圖、狀態圖、順序圖辨析
【前言】
在軟體工程中我們學習了資料流圖,程式流程圖,UML中的活動圖,狀態圖,順序圖,這些圖貌似都是在描述軟體的執行過程,那麼它們到底有哪些相同點,又有哪些不同點呢?下面,我們一起來探索一下。
【軟工中學的圖】
【系統流程圖】
系統流程圖(System Flowchart)是描繪系統物理模型的傳統工具。它的基本思想是用圖形符號以黑盒子形式描繪系統裡面的
每個部件(程式、檔案、資料庫、表格、人工過程等),表達資訊在各個部件之間流動的情況。
照妖鏡照妖: 其實就是把每個子程式的內部程式隱藏, 例如:我要去吃桌子上的蘋果。
系統流程圖當如下:
我們用圖來描述我走向蘋果這個動作,但是不考慮我走路是具體的姿態,翻滾著去了,跳著去了,都不管。那麼這些具體的姿態誰管呢, 程式流程圖管。
【程式流程圖】
程式流程圖是程式分析中最基本、最重要的分析技術,它是進行程式流程分析過程中最基本的工具。它運用工序圖示符號對生產現場的整個製造過程做詳細的記錄,以便對零部件、產品在整個製造過程中的生產、加工、檢驗、儲存等環節待作詳細的研究與分析,特別適用於分析生產過程中的成本浪費,提高經濟效益。
照妖鏡照妖: 在程式設計中,我們的程式流程圖就是具體描述某一項功能的具體實現的。例如對吃蘋果這個系統中的單獨過程進行描述。
( 感覺說的似乎有歧義,放上機房登入的圖來一起看)
【資料流圖】
資料流圖(Data Flow Diagram
照妖鏡照妖: 就是第一個描述系統流程中資料的流動,和加工。還是吃蘋果。這次吃需要填個單子,告訴我媽說蘋果被我吃了。腦袋,肚子,腿,嘴為不同部門。
資料流圖如下:
【UML中學的圖】
【活動圖】
活動圖(activity diagram,動態圖)是闡明瞭業務用例實現的工作流程。業務工作流程說明了業務為向所服務的業務主角提供其所需的價值而必須完成的工作。業務用例由一系列活動組成,它們共同為業務主角生成某些工件。工作流程通常包括一個基本工作流程和一個或多個備選工作流程。工作流程的結構使用活動圖來進行說明。
照妖鏡照妖:其實就是程式流程圖的另一種表現形式,說的是都是具體實現某種功能時的流程的東西,但是活動圖可以體現出使用者和程式之間的互動。
這個就不用蘋果來講了, 沒這個能力了。。 這是在機房收費系統中新增一個學生。
注意: 一個用例圖就要有一個活動圖。
【順序圖】
順序圖是將互動關係表示為一個二維圖。縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協作中各獨立物件的類元角色。類元角色用生命線表示。當物件存在時,角色用一條虛線表示,當物件的過程處於啟用狀態時,生命線是一個雙道線。
照妖鏡照妖:它和活動圖本質上 一樣,都是描述一個活動中,幾個物件間訊息的傳遞及行為相應。 於活動圖相比, 順序圖能更明確的表示個物件的生命期, 什麼時候存在,什麼時候不需要存在
這還是新增一個學生。
注意: 有發出資訊就要有返回資訊
【狀態圖】
狀態圖(Statechart Diagram)是描述一個實體基於事件反應的動態行為,顯示了該實體如何根據當前所處的狀態對不同的事件做出反應的。通常我們建立一個UML狀態圖是為了以下的研究目的:研究類、角色、子系統、或元件的複雜行為。
照妖鏡照妖:就是描述物件在一項活動中的狀態變遷。
以下是 studentinfo 在 新增學生過程中的狀態變遷。
【總結】
比較難分頭緒的幾種圖,仔細的區分一下還是有不小區別的,系統流程圖是整個系統中各個部分的關係, 程式流程圖是沒個系統部分中內部各部分的聯絡,資料流圖是業務流程中各個部門間資料的流動關係。 他們三個算是一個系列。
活動圖,順序圖,狀態圖是一個系列。 活動圖描述用例執行時各部分活動, 順序圖描述統一內容,更明顯的表示出物件存在的時間。 狀態圖是隻一個活動中,物件在不同狀態間的變遷。
(想編個生活化的例子,好難哦╮(╯▽╰)╭ )
希望對大家的理解能有所幫助