第三篇——軟件工程之結構化設計方法

   軟件工程有很大的一個章節介紹結構化分析方法。對於結構化分析,我認爲它是總體和細節的橋樑,把一個軟件總體分紅幾個塊,不一樣的塊負責不一樣的內容,好比數據輸入,數據處理,數據輸出;而後在塊的基礎上敲定細節,須要讀入哪些數據,數據的類型,怎麼讀入數據,數據輸入後的計算、查詢、添加、刪除、修改,數據輸出的格式等等。一個軟件多是一個很大的工程,可是它也是由許多小部件搭建起來的,如何肯定這些小部件,這時候就須要用到結構化分析方法。對於結構化的具體知識,結合書上的內容,作了一個整理。可能不完善,可是對於基本概念的掌握頗有幫助。編程

  結構化分析方法是在模塊化,自頂向下逐步細化及結構化程序設計基礎之上發展起來的,能夠分爲兩類:一類是根據系統系統的數據流進行設計,還有一類是根據系統的數據結構進行設計。數據結構

   軟件設計的5個原則:模塊化

1 分而治之:將大型複雜的問題分解成許多容易的小問題,軟件的體系設計,模塊化設計都是分而治之的具體策略。函數

2 模塊獨立性:指軟件系統中每一個模塊只設計軟件要求的具體子功能,與軟件系統中其餘模塊的藉口是簡單的。耦合性越高,模塊獨立性越若弱。設計

3 提升抽象層次:抽象是指護士一個主題中與當前目標無關的方面,以便更注意與當前目標有關的方面。軟件設計時,儘可能提升軟件的抽象層次,按抽象級別從高到低進行軟件設計,將軟件的體系結構,按自頂向下方式,對各個層次的過程細節和數據細節逐層細化,直到用程序設計的語句可以實現爲止。固然實現這個過程須要咱們對軟件的接口,模塊的運行等等有足夠的熟悉。接口

4 複用性設計:指在構造新的軟件的時候,沒必要從零作起,能夠直接使用已有的軟構件便可組裝成新的系統。程序設計

5 靈活性設計:引入靈活性的方法有,下降耦合並提升內聚(易於提升替換功能);創建抽象(建立有多態操做的接口和父類);不要將代碼寫死(消除代碼中的常數);拋出異常(由操做的調用者處理異常);使用並建立可複用的代碼。基礎

   模塊結構及表示:軟件

   一個軟件系統須要不少模塊(包括程序設計中的函數和子程序)組成,稱不能再分解的模塊爲原子模塊。若是一個軟件系統的所有實際加工(數據處理或計算)都有原子模塊來完成,而其餘全部非原子模塊僅僅執行控制或協調功能,這樣的系統就是徹底因子分解的系統,可是大多數系統作不到徹底因子分解。軟件工程

模塊通常分爲四類:傳入模塊、傳出模塊、變換模塊(從上級調用模塊取得數據,進行特定的處理,轉換成其餘形式,再將加工結果返回給調用模塊)、協調模塊。

   傳入模塊:取得輸入數據,通過某些處理,再將其傳送給其餘模塊;

 傳出模塊:輸出數據,在輸出以前可能進行某些處理,數據可能被傳輸到系統的外部,也可能會輸出到其餘模塊進行進一步的處理,但最終目的是輸出到系統的外部;

 變換模塊:也叫加工模塊,從上級調用模塊取得數據,進行特定的數據處理,轉換成其餘形式,再將加工結果返回給調用模塊;

 協調模塊:經過調用,協調和管理其餘模塊來完成特定的功能;

模塊的結構有樹狀結構和網狀結構。

 在樹狀結構中,位於最上層的根部是頂層模塊,它是程序的主模塊,與其聯繫的有若干下屬模塊,各下屬模塊還能夠進一步引出更下一層的下屬模塊;

 網狀結構則徹底不一樣,在網狀結構中,任意兩個模塊之間均可以有調用關係,任何兩個模塊都是平等的,沒有從屬關係;

結構圖(SC):清楚地反映軟件模塊之間的層次調用關係和聯繫,它不只嚴格地定義了各個模塊的名字,功能和接口,並且還集中地反映了設計思想。

 在結構圖中,兩個模塊之間用單向箭頭聯結。箭頭從調用模塊指向被調用模塊,表示調用模塊調用了被調用模塊,可是被調用模塊執行完成後,控制又返回到調用模塊;爲了表示在模塊之間傳遞的數據或者控制信息,在聯合模塊的箭頭旁邊給出短箭頭,而且用尾端帶有空心圓的短箭頭表示數據信息,用尾端帶有實心圓的短箭頭表示控制信息。一般在短箭頭的附近應注有信息的名字。當模塊A有條件地調用另外一個模塊B時,在模塊A的箭頭尾部標以一個菱形符號。當一個模塊A反覆地調用模塊C和模塊D時,在調用箭頭尾部則標以一個弧形符號。

 在多層次的結構圖中,模塊結構的層次數成爲結構圖的深度。結構圖的深度在必定意義上反映了程序結構的規模和複雜程度。對於中等規模程度的程序,其結構圖的深度約爲10左右。結構圖中同一層模塊的最大模塊數稱爲結構圖的寬度。模塊的扇入和扇出:扇出表示一個模塊直接調用或控制下屬模塊的數目,扇入則定義爲調用或控制一個給定模塊的調用模塊的數目。多扇入的模塊一般是公用模塊。

 在軟件工程這門課程中,結構化是比較實用的一章,掌握結構化設計的方法,對於咱們在軟件編程中有流程指導做用。

相關文章
相關標籤/搜索