|
我們通常都是對圖形化的東西情有獨鐘,我們小時候的啟蒙教育基本上也都是從圖形化開始的,我們曾經看過的連環畫、漫畫、看圖識字等等。因為圖形能將一個抽象的東西具體化、形象化,圖形化的表述能將一個用文字語言無法表達清楚或很難表達的觀點、事物、科學概念等清晰的呈現出來。這就是為什么我們相比晦澀難懂文字更喜歡形象生動的圖形的原因。
軟件工程導論作為軟件工程中非常重要的一門課程,通常因為其偏文科性、理論性、概念性而得不到人們的重視,但幸運的是在軟件工程導論中有我們非常易于接受、理解的東西——圖,否則我們自己會把自己害得很慘(軟件工程導論真的很重要哦!)。
軟件工程導論中一般把軟件的開發分為八個階段:1.問題定義 2.可行性研究 3.需求分析 4.總體設計(概要設計) 5.詳細設計 6.編碼和單元測試 7.綜合測試 8.軟件維護。下面我們就說說各個階段中與圖的難解難分。
1. 問題定義
問題定義階段主要是根據用戶的需求來定義用戶需要解決的問題,用戶要實現哪些功能。
2. 可行性研究
可行性研究階段就是看是否有一種使其在最小的代價,盡可能短的時間內,利益最大化的情況下解決問題的方案。這個階段的分析主要涉及以下幾個圖形工具。
2.1 系統流程圖
系統流程圖是描述系統物理模型的一種傳統工具。它是表達數據在系統各部件之間流動的情況,而不是對數據加工處理的控制過程,它是物理數據流圖而不是程序流程圖。系統流程圖形象的呈現了軟件的功能,即使不懂軟件的人也可以輕松的看懂,可以說它是軟件設計師與用戶之間溝通、交流的有效工具。
2.2 數據流圖
數據流圖是從數據傳遞和加工角度,以圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。如果說系統流程圖能讓用戶更好的明白系統的功能,那么數據流圖則讓用戶更加明白系統的工作原理。
2.3 數據字典
數據字典就是數據的信息的集合,也可以說就是對上面提到的數據流圖中的所有元素的定義的集合。數據字典的主要作用就是在軟件的分析與設計階段方便我們查閱不甚了解的數據的描述信息。
3. 需求分析
需求分析階段主要確定系統必須做什么。比如用戶對系統的要求,確定目標系統所有的功能,確定系統運行的硬件和軟件環境,系統性能要求,出錯處理要求,接口需求,驗證軟件需求等等。
3.1 E-r圖
E-r圖的主要作用就是把用戶的數據要求用可視化的圖形呈現出來。
3.2 狀態轉換圖
狀態轉換圖說白了就是系統的行為建模,就是通過描述系統的狀態以及引起狀態變化的事件來表示系統的行為,將系統運行時詳細的狀態變化呈現給用戶。
3.3 層次方框圖
層次方框圖像用戶呈現的是數據的層次結構。
3.4 Warnier圖
Warnier圖的作用和層次方框圖的作用基本相同,只不過Warnier圖的描述手段更多。
3.5 IPO圖
IPO圖是輸入、處理和輸出圖的簡稱,它清楚的描述了輸入數據、處理數據、輸出數據之間的關系。
4. 總體設計
需求分析階段已經確定了系統要做什么的問題,而總體設計就是要弄明白怎么做的問題,總體設計的目的就是從宏觀上概括的說系統應該怎樣實現,具體一點就是要明確系統有哪些模塊組成,以及這些模塊之間的關系是怎樣的。
4.1 層次圖
層次圖是用來描述軟件的層次結構的。
4.2 HIPO圖
HIPO圖 = 層次圖+輸入+處理+輸出
4.3 結構圖
結構圖和層次圖類似,都是描述軟件結構的圖形工具。
5. 詳細設計
詳細設計階段就是在總體設計的基礎上要確定怎樣具體的詳細的實現系統所要求的功能,要對系統進行精確的描述。
5.1 程序流程圖
程序流程圖是對程序控制流程的直觀描述。
5.2 盒圖
出于要有種不允許違背結構設計精神圖形工具考慮Nassi和shneiderman提出了盒圖又稱為N—S圖。
5.3 問題分析PAD圖
PAD圖就是用二維樹形結構圖來表示程序的控制流。
6. 編碼和單元測試
編碼和單元測試階段主要是對詳細設計階段的詳細描述給以具體的實現和模塊的測試。
7. 綜合測試
綜合測試包括對系統的各個組件和功能的測試,要求覆蓋軟件系統的各個功能點,并根據被測軟件的需求測試軟件的性能、易用性等方面的內容,達到對軟件全方面測試的目的。
8. 軟件維護
軟件維護階段是軟件生命周期中最后的一個階段,也是最長的一個階段,軟件維護主要任務是指根據需求變化或硬件環境的變化對應用程序進行部分或全部的修改,修改時應充分利用源程序。修改后要填寫程序改登記表,并在程序變更通知書上寫明新舊程序的不同之處。
參考文獻:
1. 文中的部分定義參考于百度百科http://baike.baidu.com/。
2. 文中的一部分圖片來源于《軟件工程導論》第五版(張海藩 編著),一部分來源于互聯網。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。