在寫文檔的過程中遇到了很多圖,這些圖有的在自考的時候接觸過:比如:E-R圖,數據流圖,程序流程圖。也有的是軟工視頻中講過的,在寫文檔的過程中,有多地方都要求畫圖,只好又返回去看看。
下面是軟件工程中我整理的一些圖的,如有遺漏,歡迎補充。

一,需求分析中的圖
1,數據流圖(DFD)
它從數據傳遞和加工角度,以圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化分析方法的主要表達工具及用於表示軟件模型的一種圖示方法。
數據流圖中的圖例:

范例:

另外,在大型的系統中,為了能夠更細節的表現數據在系統中流動情況,還將數據流圖進行分層,此時,用分層的數據流圖來表現數據。
2,判定表
當程序中,如果數據流圖的加工需要依賴於多個邏輯條件的取值,此時,使用判定表來描述更加合適。
描述方法:

示例:

雖然判定表可以清楚的表現出多個邏輯條件,但是,不能表示不確定的加工處理,也不能表示重復循環的加工方式。
3,判定樹
判定樹也是用來表達加工邏輯的一種工具,它是判定表的變種,但是有時候比判定表更加直觀。
例如:

注意:在畫判定樹的時候,要盡量把樹葉畫在右端,這樣看起來更舒服。
從直觀上看,判定樹比判定表要好,但是從邏輯上看,判定表又比較好。
4,狀態遷移圖
狀態遷移圖是描述系統的運行狀態如何相應外部的信號進行推移的一種圖形表示.
圓圈"○"表示可得到的系統狀態。
箭頭“→”表示從一種狀態到另一種狀態的遷移。


狀態遷移圖優點:1,狀態之間的關系能夠直觀的捕捉到;2,由於狀態遷移圖的單純性,能夠機械的分析許多情況,可很容易的建立分析工具。
5,Petri圖
它有兩種結點:
位置:符號為"○",它用來表示系統的狀態
轉移:符號為"?",它用來表示系統中的事件.
示例:

二,設計中的圖
1,程序流程圖
程序流程是對程序控制流程的描述,它運用工序圖示符號對生產現場的整個制造程序做詳細的記錄。
程序流程圖的畫法:



示例,下面是我以前畫的一個登陸的流程圖:

2,N-S圖
流程圖由一些特定意義的圖形、流程線及簡要的文字說明構成,它能清晰明確地表示程序的運行過程。在使用過程中,人們發現流程線不一定是必需的,為此,人們設計了一種新的流程圖,它把整個程序寫在一個大框圖內,這個大框圖由若干個小的基本框圖構成,這種流程圖簡稱N-S圖,從中可以看出,盒圖是對流程圖簡化。
用盒圖表示5種控制結構:

盒圖示例:

3,PAD圖
一種主要用於描述軟件詳細設計的圖形表示工具。與方框圖一樣,PAD圖也只能描述結構化程序允許使用的幾種基本結果。
pad圖5中基本控制結構的圖示:

示例:

4,判定表
判定表用於表示程序的靜態邏輯
在判定表中的條件部分給出所有的兩分支判斷的列表,動作部分給出相應的處理
要求將程序流程圖中的多分支判斷都改成兩分支判斷
建立判定表的過程:
1,列出一個具體過程(或模塊)有關的所有處理;
2,列出過程執行期間的所有條件(或所有判斷)
3,將特定條件取值組合與特定的處理相匹配
4,將右部每一縱列規定為一個處理規則,即對於某一條件取值組合將有什么動作.
判定表示例:


5,IPO圖
IPO圖是對每個模塊進行詳細設計的工具,是用來說明每個模塊的輸入、輸出數據和數據加工的。
例如:

說到IPO圖,還得順便說一下HIPO圖,從名字看,HIPO圖比IPO圖多一個H,從圖上看,HIPO圖比IPO圖多的就是一個H圖,有興趣的可以查一查。
6,E-R圖
在所有的圖里面,我最熟悉的,畫的最多的還是E-R圖,在當初設計機房收費系統的數據庫時(這里有個概述:http://liuhuichaodeboke.blog.163.com/blog/static/21109319620138288429163/),E-R圖可是必備的工具。
在本篇博客里面,所描述圖中,只有E-R圖是用來設計數據庫的。
E-R圖也稱實體-聯系圖(Entity Relationship Diagram),提供了表示實體類型、屬性和聯系的方法,用來描述現實世界的概念模型。


三,程序編碼階段的圖
1,魚骨刺圖
第一次看到魚骨圖還不是在學計算機的時候看到的,是在學習英語的時候。如圖:

在暑假剛開始接觸SB英語的時候,師姐講學習英語的內容的時候,用的就是魚骨圖。
魚骨圖是一種發現問題“根本原因”的方法,它也可以稱之為“Ishikawa”或者“因果圖”。其特點是簡捷實用,深入直觀。它看上去有些象魚骨,問題或缺陷(即后果)標在"魚頭"外。在魚骨上長出魚刺,上面按出現機會多寡列出產生生產問題的可能原因。魚骨圖有助於說明各個原因之間如何相互影響。它也能表現出各個可能的原因是如何隨時間而依次出現的。這有助於着手解決問題。
四,測試階段的圖
1,因果圖
如果在測試時必須考慮輸入條件的各種組合,可使用一種適合於描述對於多種條件的組合,相應產生多個動作的形式來設計測試用例,這就需要利用因果圖。
因果圖的畫法:


因果圖示例:

五,配置管理階段的圖
1,演變圖
與前面那些描述程序內部構造的圖相比,記敘對象的變更歷史的演變圖,貌似比較簡單,一眼就能看明白是怎么回事。
例如:

