关于系统设计中的流程图
在平時的軟件開發(fā)和方案總體設(shè)計中,往往需要繪制各種各樣的流程圖,比如業(yè)務(wù)流程圖、數(shù)據(jù)流程圖、系統(tǒng)流程圖等等。由于各種圖所反應(yīng)的側(cè)重點不一樣,這三種圖所使用的場景也會有差異,本文介紹了各種圖的使用場合和繪制方法,以及各種圖之間的區(qū)別,以便于在具體的應(yīng)用場景中靈活使用。
首先要搞清楚什么是流程。流程是一個或一系列連續(xù)有規(guī)律的行動,這些行動以確定的方式發(fā)生或執(zhí)行,促使特定結(jié)果的實現(xiàn)。ISO9001:2000質(zhì)量管理體系標(biāo)準(zhǔn)中給出的定義是:“流程是一組將輸入轉(zhuǎn)化為輸出的相互關(guān)聯(lián)或相互作用的活動”。流程不可或缺的因素包括六個:參與者(對象)、活動(動作)、次序、輸入、輸出、標(biāo)準(zhǔn)化。各要素的定義如下所示:
參與者(對象):誰在這個流程中?可以是系統(tǒng),可以是個外部設(shè)備,更多的指什么角色。比如客服同時有小A和小B兩人,但是若他們的工作性質(zhì)完全一樣,那么在流程圖里只需要寫一個客服角色就可以了。
活動(動作):一個處理動作,具體做了什么事,比如點餐、結(jié)帳等活動。
次序:這些事情發(fā)生的前后順序如何,哪個任務(wù)是其他任務(wù)的前置條件?比如客人不結(jié)帳,就不會產(chǎn)生送他優(yōu)惠卡的活動。
輸入:每項活動開始取決于什么樣的輸入物或數(shù)據(jù),比如做飯的師傅開始做菜時,需要拿到具體的點菜單。
輸出:每項活動結(jié)束后,會輸入什么樣的文檔或數(shù)據(jù)傳遞給下一方,比如師傅做好菜后,如何讓負(fù)責(zé)傳菜的人知道菜已經(jīng)做好?
標(biāo)準(zhǔn)化:采用一套標(biāo)準(zhǔn)化的符號傳遞你的流程圖,從而使受眾更快明白。
流程圖的要素
而流程圖是將流程表達(dá)清楚的圖形,即用圖形表示什么對象在什么前置條件下執(zhí)行了什么操作,產(chǎn)生了什么結(jié)果。
拍動畫片的流程
接下來對軟件開發(fā)與設(shè)計領(lǐng)域中常用的幾種流程圖分別介紹如下:
業(yè)務(wù)流程圖
由于信息系統(tǒng)的目標(biāo)是盡可能解放人在工作中的作用,強(qiáng)調(diào)自動化,為了實現(xiàn)自動化,就有必要從用戶的視角梳理業(yè)務(wù)流程是什么樣子,通過業(yè)務(wù)流程的梳理,提供系統(tǒng)了簡單扼要的“縮略俯瞰圖”,幫助觀眾快速了解業(yè)務(wù)如何運(yùn)轉(zhuǎn)。它包含了幾個關(guān)鍵詞:誰,什么時候,在什么條件下,做了什么事情,輸入什么,輸出什么,輸出給誰。
業(yè)務(wù)流程圖應(yīng)該是拿到業(yè)務(wù)需求(或BRD)后,首先輸出的文檔,但并不是一成不變的,會在多次討論中不斷補(bǔ)充完善,最后成為整個項目的標(biāo)桿文件,在構(gòu)建技術(shù)架構(gòu)和技術(shù)分工時,將其作為主要參考。所以,繪制業(yè)務(wù)流程圖時,一定要邏輯清晰,不能遺漏任何一個重要部分。
與系統(tǒng)流程不同,業(yè)務(wù)流程更關(guān)注于業(yè)務(wù)本身如何運(yùn)作,講的是業(yè)務(wù)故事,包含的是業(yè)務(wù)規(guī)則。而系統(tǒng)流程則是滿足業(yè)務(wù)流程,實現(xiàn)部分流程或全部流程的信息化和系統(tǒng)化。
表示方法
一般業(yè)務(wù)流程圖一般用泳道進(jìn)行是泳道表示,可以有橫向的泳道,也會有縱向的泳道。泳道圖在某些文檔里會被稱為“以活動為單位的流程圖”,浮在泳道中的都是一個個活動。能夠較好的表現(xiàn)出各個活動之間的關(guān)系一個各個部門之間的責(zé)任。
繪制業(yè)務(wù)流程圖的符號如下:
業(yè)務(wù)流程圖的符號
泳道圖的畫法:
泳道圖畫法
一個示例
通常情況下,一個業(yè)務(wù)需求不僅僅對應(yīng)一個功能需求,而是由多個功能需求組成的,舉例來說:業(yè)務(wù)需求是注冊,那么功能需求就包括填寫信息的正則校驗,驗證碼的生成與校驗,注冊協(xié)議查看(和勾選),此外,后臺還要有賬戶生成與信息記錄的功能,需要手機(jī)注冊的還要有短信的發(fā)送與驗證功能(郵箱注冊同理)。可見,業(yè)務(wù)需求要求概括精煉,功能需求要求詳細(xì)具體。一個業(yè)務(wù)需求通常涵蓋多個功能需求,涉及前端展示、后臺記錄等多個部分,所以業(yè)務(wù)流程圖通常復(fù)雜詳細(xì),盡量能夠涵蓋各種異常情況(每種異常情況都有相應(yīng)的前、后臺解決方案)。
業(yè)務(wù)流程圖的繪制思路:
*首先將業(yè)務(wù)按階段劃分,比如電商類可以分為下單和支付,單車類可以分為提車、騎行和停車;
*然后列出每個階段參與的功能模塊,比如下單階段,就有商品查看、登錄/注冊、信息記錄、個人中心等功能。
*最后按照時間順序,畫出業(yè)務(wù)需求在各個功能模塊之間的流轉(zhuǎn)情況。
*為了輸出一份完整的業(yè)務(wù)流程圖,一般有兩個原則:先思考主干流程,再思考分支流程,主干流程邏輯準(zhǔn)確,分支流程全面無遺漏;表達(dá)清楚后臺產(chǎn)生的各種判斷及相應(yīng)的前端展示,這將作為接口設(shè)計的重要根據(jù)。
下面是以電商購物為例繪制的一份業(yè)務(wù)流程圖:
電商網(wǎng)站購買流程
數(shù)據(jù)流程圖
數(shù)據(jù)流圖,作為一種圖形化的設(shè)計方法,用來說明業(yè)務(wù)處理過程、系統(tǒng)邊界內(nèi)所包含的功能和系統(tǒng)中的數(shù)據(jù)流。它是從數(shù)據(jù)的傳遞和加工角度,以圖形方式來表達(dá)系統(tǒng)的邏輯功能,數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯交換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示放大。它是描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。
表示方法
在DFD中,通常會出現(xiàn)四種基本符號,分別是數(shù)據(jù)流,加工,數(shù)據(jù)存儲和外部實體(數(shù)據(jù)源和數(shù)據(jù)終點)。數(shù)據(jù)流是具有名字和流向的數(shù)據(jù),用標(biāo)有箭頭的名字表示。數(shù)據(jù)流是具有名字和流向的數(shù)據(jù),加工是對數(shù)據(jù)流的轉(zhuǎn)換,用圓圈表示。數(shù)據(jù)存儲是可以訪問的存儲信息,用直線段表示。外部實體是位于被建模系統(tǒng)之外的信息生產(chǎn)者和消費(fèi)者,是不能由計算機(jī)處理的部分,表示數(shù)據(jù)處理的來源和去向。用標(biāo)有名字的方框表示:
數(shù)據(jù)流圖的表示方法
數(shù)據(jù)流圖繪制說明如下:
*DFD中所有的圖形符號只限于前述4中圖形元素嗎,DFD中不可夾帶控制流,圖上每個符號必須有名字。
*頂層DFD必須包括前述4種基本元素,缺一不可,頂層DFD中的數(shù)據(jù)流必須封閉在外部實體之間。
*每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流。
*需按層加工框編號。編號表明了該層加工處在哪一層,以及上下層的父圖與子圖的對應(yīng)關(guān)系。
*規(guī)定任何一個數(shù)據(jù)流子圖必須與它上一層的一個加工對應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。即父圖與子圖的平衡。
*數(shù)據(jù)流程圖的繪制一般是從左到右進(jìn)行。從左側(cè)開始標(biāo)出外部實體,然后畫出由外部實體產(chǎn)生的數(shù)據(jù)流,再畫出處理邏輯、數(shù)據(jù)流、數(shù)據(jù)存儲等元素及其相互關(guān)系,最后在流程圖的右側(cè)畫出接收信息的系統(tǒng)外部實體。
*父圖與子圖的平衡。子圖是對父圖中處理邏輯的詳細(xì)描述,因此父圖中數(shù)據(jù)的輸入和輸出必須在子數(shù)據(jù)存儲輸入/輸出協(xié)調(diào)。數(shù)據(jù)存儲必定有輸入數(shù)據(jù)流和輸出數(shù)據(jù)流,缺少任何一個則意味著遺漏了某些加工。只有流入沒有流出,則數(shù)據(jù)處理無需存在;只有流出沒有流入的數(shù)據(jù)處理不可能滿足。
一個示例
下圖是一個辦理取款手續(xù)數(shù)據(jù)流程圖的例子
數(shù)據(jù)流圖的例子
系統(tǒng)流程圖
系統(tǒng)流程圖是描繪系統(tǒng)物理模型的傳統(tǒng)工具,它的基本思想是用圖形符號以黑盒子的形式描繪系統(tǒng)理念的每個部件,包括程序,文件,數(shù)據(jù)庫,表格,人工過程等,表達(dá)信息在給個部件之間流動的情況,而不是表示對信息進(jìn)行加工處理的控制過程。系統(tǒng)流程圖是在系統(tǒng)分析員在做系統(tǒng)構(gòu)架階段,或者說,在接觸實際系統(tǒng)時,對未來構(gòu)建的信息處理系統(tǒng)的一種描述。這種描述是相對簡單且完全的,涉及到未來系統(tǒng)中使用的處理部件,如磁盤,顯示器,用戶輸入以及處理過程的先后順序表示等,標(biāo)準(zhǔn)的系統(tǒng)流程圖應(yīng)該有10種圖元。
一個示例
系統(tǒng)流程圖表示
表示方法
系統(tǒng)流程圖的例子
各個圖之間的區(qū)別
系統(tǒng)流程圖、業(yè)務(wù)流程圖、數(shù)據(jù)流程圖三者區(qū)別如下:
(1)業(yè)務(wù)流程圖是一種描述系統(tǒng)內(nèi)各單位、人員之間業(yè)務(wù)關(guān)系、作業(yè)順序和管理信息流向的圖表,利用它可以幫助分析人員找出業(yè)務(wù)流程中的不合理流向。所以說業(yè)務(wù)流程圖是一種物理模型。
(2)數(shù)據(jù)流程圖是一種能全面地描述信息系統(tǒng)邏輯模型的主要工具,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。它是一種邏輯模型。
打個比方,業(yè)務(wù)流程圖主要是描述業(yè)務(wù)走向,比如說病人吧,病人首先要去掛號,然后在到醫(yī)生那里看病開藥,然后再到藥房領(lǐng)藥,然后回家。
而數(shù)據(jù)流程則是描述數(shù)據(jù)的走向,繼續(xù)以病人為例,這個時候主要畫的是病人掛號系統(tǒng)需要那些表,數(shù)據(jù)改怎么存,醫(yī)生看病用到那些表,數(shù)據(jù)改怎么存等。
(3)系統(tǒng)流程圖又叫事務(wù)流程圖,是在計算機(jī)事務(wù)處理應(yīng)用進(jìn)行系統(tǒng)分析時常用的一種描述方法(另一個是數(shù)據(jù)流圖),它描述了計算機(jī)事務(wù)處理中從數(shù)據(jù)輸入開始到獲得輸出為止,各個處理工序的邏輯過程。
業(yè)務(wù)流程圖與數(shù)據(jù)流程圖的區(qū)別
1.描述對象不同
業(yè)務(wù)流程圖的描述對象是某一具體的業(yè)務(wù);數(shù)據(jù)流程圖的描述對象是數(shù)據(jù)流。
業(yè)務(wù)是指企業(yè)管理中必要且邏輯上相關(guān)的、為了完成某種管理功能的一系列相關(guān)的活動。在系統(tǒng)調(diào)研時,通過了解組織結(jié)構(gòu)和業(yè)務(wù)功能,我們對系統(tǒng)的主要業(yè)務(wù)有了一個大概的認(rèn)識。但由此我們得到的對業(yè)務(wù)的認(rèn)識是靜態(tài)的,是由組織部門映射到業(yè)務(wù)的。而實際的業(yè)務(wù)是流動的,我們稱之為業(yè)務(wù)流程。一項完整的業(yè)務(wù)流程要涉及到多個部門和多項數(shù)據(jù)。例如,生產(chǎn)業(yè)務(wù)要涉及從采購到財務(wù),到生產(chǎn)車間,到庫存等多個部門;會產(chǎn)生從原料采購單,應(yīng)收付賬款,入庫單等多項數(shù)據(jù)表單。因此,在考察一項業(yè)務(wù)時我們應(yīng)將該業(yè)務(wù)一系列的活動即整個過程為考察對象,而不僅僅是某項單一的活動,這樣才能實現(xiàn)對業(yè)務(wù)的全面認(rèn)識。將一項業(yè)務(wù)處理過程中的每一個步驟用圖形來表示,并把所有處理過程按一定的順序都串起來就形成了業(yè)務(wù)流程圖。
數(shù)據(jù)流程圖是對業(yè)務(wù)流程的進(jìn)一步抽象與概括。抽象性表現(xiàn)在它完全舍去了具體的物質(zhì),只剩下數(shù)據(jù)的流動、加工處理和存儲;概括性表現(xiàn)在它可以把各種不同業(yè)務(wù)處理過程聯(lián)系起來,形成一個整體。
2.功能作用不同
業(yè)務(wù)流程圖是一本用圖形方式來反映實際業(yè)務(wù)處理過程的“流水帳”。繪制出這本流水帳對于開發(fā)者理順和優(yōu)化業(yè)務(wù)過程是很有幫助的。業(yè)務(wù)流程圖的符號簡單明了,易于閱讀和理解業(yè)務(wù)流程。繪制流程圖的目的是為了分析業(yè)務(wù)流程,在對現(xiàn)有業(yè)務(wù)流程進(jìn)行分析的基礎(chǔ)上進(jìn)行業(yè)務(wù)流程重組,產(chǎn)生新的更為合理的業(yè)務(wù)流程。通過除去不必要的、多余的業(yè)務(wù)環(huán)節(jié);合并重復(fù)的環(huán)節(jié);增補(bǔ)缺少的必須的環(huán)節(jié);確定計算機(jī)系統(tǒng)要處理的環(huán)節(jié)等重要步驟,在繪制流程圖的過程中可以發(fā)現(xiàn)問題,分析不足,改進(jìn)業(yè)務(wù)處理過程。
數(shù)據(jù)流程分析主要包括對信息的流動、傳遞、處理、存儲等的分析。數(shù)據(jù)流程分析的目的就是要發(fā)現(xiàn)和解決數(shù)據(jù)流通中的問題,這些問題有:數(shù)據(jù)流程不暢,前后數(shù)據(jù)不匹配,數(shù)據(jù)處理過程不合理等。通過對這些問題的解決形成一個通暢的數(shù)據(jù)流程作為今后新系統(tǒng)的數(shù)據(jù)流程。數(shù)據(jù)流程圖比起業(yè)務(wù)流程圖更為抽象,它舍棄了業(yè)務(wù)流程圖中的一些物理實體,更接近于信息系統(tǒng)的邏輯模型。對于較簡單的業(yè)務(wù),我們可以省略其業(yè)務(wù)流程圖直接繪制數(shù)據(jù)流程圖。
3.基本符號不同
對數(shù)據(jù)流程圖的基本符號解釋如下:
外部實體表示數(shù)據(jù)流的始發(fā)點或終止點。原則上講,它不屬于數(shù)據(jù)流程圖的核心部分,只是數(shù)據(jù)流程圖的外圍環(huán)境部分。在實際問題中它可能是人員、計算機(jī)外設(shè)、系統(tǒng)外部的文件等。在圓形框中用文字注明外部實體的編碼屬性和名稱。
數(shù)據(jù)流是用箭頭線及其上的數(shù)據(jù)表示數(shù)據(jù)流動的方向,數(shù)據(jù)流由一個或一組數(shù)據(jù)項組成。
數(shù)據(jù)存儲表示邏輯意義上的數(shù)據(jù)存儲環(huán)節(jié),不考慮存儲的物理介質(zhì)和技術(shù)手段的數(shù)據(jù)存儲環(huán)節(jié)。它用一個右邊開口的長方形條來表示,圖形右部填寫存儲的數(shù)據(jù)和數(shù)據(jù)集的名字,左邊填寫該數(shù)據(jù)存儲的標(biāo)志。
處理邏輯加工也稱為處理或功能,它包括兩方面的內(nèi)容:一是改變數(shù)據(jù)結(jié)構(gòu);二是在原有數(shù)據(jù)內(nèi)容基礎(chǔ)上增加新的內(nèi)容,形成新的數(shù)據(jù)。一般用一個長方形表示處理邏輯,圖形下部填寫處理的名字,上部填寫該處理的標(biāo)志。
關(guān)于業(yè)務(wù)流程圖和數(shù)據(jù)流程圖的基本符號很多教材上都不完全一致,還沒有形成一個統(tǒng)一的標(biāo)準(zhǔn)。例如,有的教材上用圓形表示外部實體,有的用矩形表示外部實體。二者所使用的符號不同,但代表的含義都相同。業(yè)務(wù)流程圖中的業(yè)務(wù)處理和存儲這兩個符號和數(shù)據(jù)流程圖中的相應(yīng)的符號基本一致;業(yè)務(wù)流程圖和數(shù)據(jù)流程圖中都有箭頭線的符號,但含義不同:業(yè)務(wù)流程圖中的箭頭線表示信息流向,它沒有名稱;數(shù)據(jù)流程圖中的箭頭線表示某一數(shù)據(jù)流,它有名稱,通常寫在數(shù)據(jù)流的上方。
4.繪制過程不同
業(yè)務(wù)流程圖就是用一些規(guī)定的符號及連線來表示某個具體務(wù)處理過程。業(yè)務(wù)流程圖的繪制是根據(jù)系統(tǒng)詳細(xì)調(diào)查過程中所得的資料,按業(yè)務(wù)實際處理過程,用規(guī)定的符號將它們繪制在同一張圖上。它的繪制無嚴(yán)格的規(guī)則,只需簡明扼要地如實反映實際業(yè)務(wù)過程。在繪制過程中一般也遵循“自頂向下”的原則。
數(shù)據(jù)流程圖的繪制方法較為復(fù)雜,它是按照“自頂向下,逐層求精”的方法進(jìn)行的,也就是將整個系統(tǒng)當(dāng)成一個處理功能,畫出它和周圍實體的數(shù)據(jù)聯(lián)系過程,即一個粗略的數(shù)據(jù)流程圖(頂層數(shù)據(jù)流程圖),然后逐層向下分析,直到把系統(tǒng)分解為詳細(xì)的低層次的數(shù)據(jù)流程圖。
業(yè)務(wù)流程圖和數(shù)據(jù)流程圖的聯(lián)系
1.業(yè)務(wù)流程圖和數(shù)據(jù)流程圖都是從流程的角度動態(tài)地去考察分析對象,都是用圖形符號抽象地表示調(diào)查結(jié)果。
2.數(shù)據(jù)和業(yè)務(wù)的聯(lián)系具體表現(xiàn)在:數(shù)據(jù)流是伴隨著業(yè)務(wù)過程而產(chǎn)生的,它是業(yè)務(wù)過程的衍生物;數(shù)據(jù)資料基本上也是按組織結(jié)構(gòu)或業(yè)務(wù)過程收集的;在數(shù)據(jù)匯總時,我們也是以業(yè)務(wù)流程為單位,將同一業(yè)務(wù)的不同處理步驟中的數(shù)據(jù)加以集中;數(shù)據(jù)流程圖的繪制遵照業(yè)務(wù)處理的全過程。
3.數(shù)據(jù)流程圖和業(yè)務(wù)流程圖存在一定的對應(yīng)關(guān)系。由業(yè)務(wù)流程圖可以導(dǎo)出相應(yīng)的數(shù)據(jù)流程圖。有兩種思路:一種是先按業(yè)務(wù)流程圖理出的業(yè)務(wù)流程順序,然后將相應(yīng)調(diào)查過程中所掌握的數(shù)據(jù)、表單分離出來,接下來考查數(shù)據(jù)的流向,加工處理過程和存儲,把它們串起來就繪制成一完整的數(shù)據(jù)流程圖;另一種是從業(yè)務(wù)流程中分離出處理過程,再考查每一個處理過程的輸入數(shù)據(jù)與輸出數(shù)據(jù),將業(yè)務(wù)過程中所有的處理過程的輸入、輸出數(shù)據(jù)流進(jìn)行有機(jī)的集成就形成了一個完整的數(shù)據(jù)流程圖。
參考文獻(xiàn)
http://www.jianshu.com/p/52f671846f26
http://blogread.cn/it/article/5417?f=sr
http://blogread.cn/it/article/5770
原文地址:https://blog.csdn.net/ennaymonkey/article/details/74644324
總結(jié)
以上是生活随笔為你收集整理的关于系统设计中的流程图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用windows上的VMware安装C
- 下一篇: 水哥:用好泳道图,轻松化解复杂系统的业务