軟體工程中的圖情結

發表於2011-07-03

我們通常都是對圖形化的東西情有獨鍾,我們小時候的啟蒙教育基本上也都是從圖形化開始的,我們曾經看過的連環畫、漫畫、看圖識字等等。因為圖形能將 一個抽象的東西具體化、形象化,圖形化地表述出來,能將一個用文字語言無法表達清楚或很難表達的觀點、事物、科學概念等清晰的呈現出來。這就是為什麼我們相比晦澀難懂文字更喜歡形象生動的圖形的原因。

軟體工程導論作為軟體工程中非常重要的一門課程,通常因為其偏文科性、理論性、概念性而得不到人們的重視,但幸運的是在軟體工程導論中有我們非常易於接受、理解的東西——圖,否則我們自己會把自己害得很慘(軟體工程導論真的很重要哦!)。

軟體工程導論中一般把軟體的開發分為八個階段:1.問題定義 2.可行性研究 3.需求分析 4.總體設計(概要設計) 5.詳細設計 6.編碼和單元測試 7.綜合測試 8.軟體維護。下面我們就說說各個階段中與圖的難解難分。

1.問題定義

問題定義階段主要是根據使用者的需求來定義使用者需要解決的問題,使用者要實現哪些功能。

2.可行性研究

可行性研究階段就是看是否有一種使其在最小的代價,儘可能短的時間內,利益最大化的情況下解決問題的方案。這個階段的分析主要涉及以下幾個圖形工具。

2.1系統流程圖

系統流程圖是描述系統物理模型的一種傳統工具。它是表達資料在系統各部件之間流動的情況,而不是對資料加工處理的控制過程,它是物理資料流圖而不是 程式流程圖。系統流程圖形象的呈現了軟體的功能,即使不懂軟體的人也可以輕鬆的看懂,可以說它是軟體設計師與使用者之間溝通、交流的有效工具。

system process flowchart 系統流程圖

2.2資料流圖

資料流圖是從資料傳遞和加工角度,以圖形方式來表達系統的邏輯功能、資料在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具 及用於表示軟體模型的一種圖示方法。如果說系統流程圖能讓使用者更好的明白系統的功能,那麼資料流圖則讓使用者更加明白系統的工作原理。

data flowchart 資料流圖


2.3資料字典

資料字典就是資料的資訊的集合,也可以說就是對上面提到的資料流圖中的所有元素的定義的集合。資料字典的主要作用就是在軟體的分析與設計階段方便我們查閱不甚瞭解的資料的描述資訊。

資料字典 data dictionary


3.
需求分析

需求分析階段主要確定系統必須做什麼。比如使用者對系統的要求,確定目標系統所有的功能,確定系統執行的硬體和軟體環境,系統效能要求,出錯處理要求,介面需求,驗證軟體需求等等。

3.1E-r圖

E-r圖的主要作用就是把使用者的資料要求用視覺化的圖形呈現出來。

E-r圖 E-R diagram


3.2狀態轉換圖

狀態轉換圖說白了就是系統的行為建模,就是通過描述系統的狀態以及引起狀態變化的事件來表示系統的行為,將系統執行時詳細的狀態變化呈現給使用者。

狀態轉換圖 state transition diagram


3.3層次方框圖

層次方框影像使用者呈現的是資料的層次結構。

層次方框圖 level block diagram


3.4Warnier圖

Warnier圖的作用和層次方框圖的作用基本相同,只不過Warnier圖的描述手段更多。

warnier diagram


3.5IPO圖

IPO圖是輸入、處理和輸出圖的簡稱,它清楚的描述了輸入資料、處理資料、輸出資料之間的關係。

IPO diagram


4.
總體設計

需求分析階段已經確定了系統要做什麼的問題,而總體設計就是要弄明白怎麼做的問題,總體設計的目的就是從巨集觀上概括的說系統應該怎樣實現,具體一點就是要明確系統有哪些模組組成,以及這些模組之間的關係是怎樣的。

4.1層次圖

層次圖是用來描述軟體的層次結構的。

層次圖 level diagram


4.2HIPO圖

HIPO圖 = 層次圖+輸入+處理+輸出

HIPO圖 HIPO diagram


4.3結構圖

結構圖和層次圖類似,都是描述軟體結構的圖形工具。

結構圖 stucture diagram


5.
詳細設計

詳細設計階段就是在總體設計的基礎上要確定怎樣具體的詳細的實現系統所要求的功能,要對系統進行精確的描述。

5.1程式流程圖

程式流程圖是對程式控制流程的直觀描述。

程式流程圖 program process flowchart


5.2盒圖

出於要有種不允許違背結構設計精神圖形工具考慮Nassi和shneiderman提出了盒圖又稱為N—S圖。

盒圖 box diagram


5.3問題分析PAD圖

PAD圖就是用二維樹形結構圖來表示程式的控制流。

問題分析PAD圖 PAD diagram


6.
編碼和單元測試

編碼和單元測試階段主要是對詳細設計階段的詳細描述給以具體的實現和模組的測試。

7.綜合測試

綜合測試包括對系統的各個元件和功能的測試,要求覆蓋軟體系統的各個功能點,並根據被測軟體的需求測試軟體的效能、易用性等方面的內容,達到對軟體全方面測試的目的。

8.軟體維護

軟體維護階段是軟體生命週期中最後的一個階段,也是最長的一個階段,軟體維護主要任務是指根據需求變化或硬體環境的變化對應用程式進行部分或全部的修改,修改時應充分利用源程式。修改後要填寫程式改登記表,並在程式變更通知書上寫明新舊程式的不同之處。

原文:極致書生

投稿:極致書生

 

相關文章