軟件設計
軟件設計基本原則:
1、信息隱蔽:每個模塊的實現細節(jié)對于其他模塊來說是隱蔽的,模塊中所包含的信息不允許其他模塊使用。信息隱蔽技術提高了軟件的可維護性,改善了軟件的可靠性。
2、模塊獨立性:是指軟件系統中每個模塊只涉及軟件要求的具體子功能,和其他的模塊接口是簡單的,一般采用兩個準則度量模塊獨立性:模塊間耦合和模塊內聚。
耦合是程序結構中模塊間相互關聯緊密程度的度量,耦合程度取決于各個模塊間接口的復雜程度、調用模塊的方式,以及接口的信息量。耦合分為七種:
1、非直接耦合:兩個模塊之間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的,非直接耦合的模塊獨立性最強
2、數據耦合:一個模塊訪問另一個模塊時,彼此之間是通過簡單變量(不是控制參數、公共數據結構和外部變量)來交換輸入、輸出信息的,這種耦合為數據耦合
3、標記耦合:一組模塊通過參數表傳遞記錄信息,就是標記耦合,這個記錄是某一數據結構的子結構,而不是簡單變更。
4、控制耦合:一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,稱為控制耦合
5、外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳遞該全局變量的信息,則稱為外部耦合。
6、公共耦合:若一組模塊都訪問同一個公共數據環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數據環(huán)境可以是全局數據結構、共享的通信區(qū)、內存的公共覆蓋區(qū)。
7、內容耦合:一個模塊直接訪問另一個模塊的內部數據;一個模塊不通過正常入口轉到另一模塊內部;兩個模塊有一部分程序代碼重疊;一個模塊有多個入口。
內聚是一個模塊內部各個元素彼此結合的緊密程度的度量,各元素之間的聯系越緊密,內聚性越高,與其他模塊間的耦合性就越低,而模塊獨立性就越強。
在設計模塊時應盡量爭取高內聚,內聚性分為七種:
1、功能內聚:實現一個功能,內聚性最強
2、信息內聚:完成多個功能,各個功能在同一數據結構上操作
3、通信內聚:模塊內各功能部分使用了相同的輸入數據或產生相同的輸出數據
4、過程內聚:把流程圖中某一部分劃出組成模塊,即過程內聚,如循環(huán)部分、判定部分、計算部分分成三個模塊
5、時間內聚:又稱為經典內聚,大多為多功能模塊,模塊的各個功能的執(zhí)行與時間有關,如初始化模塊和終止模塊
6、邏輯內聚:把幾種相關的功能組合在一起,由傳送給模塊的判定參數來確定執(zhí)行哪一種功能。
7、巧合內聚:模塊內各部分之間沒有聯系,或即使有聯系,也很松散,是內聚程序最低的模塊。
結構化設計方法
四種模塊:傳入模塊、傳出模塊、變換模塊、協調模塊
結構圖著重反映模塊間的隸屬關系,著眼于軟件系統的總體結構,即模塊間的調用關系和層次關系。程序流程圖著重表達程序執(zhí)行的順序,以及執(zhí)行順序所依賴的條件。
常用的系統結構圖包括:變換型系統結構圖、事務型系統結構圖、混合型事務結構圖
用戶界面設計
好的用戶界面應具有如下特點:
1、可使用性:使用簡單、術語標準化、響應快、具有容錯能力、具有HELP功能
2、靈活性:能夠滿足不同用戶的要求、可根據需要制定和修改界面方式
3、復雜性和可靠性:無故障使用的間隔時間。
設計評審
在開發(fā)時期的每個階段,特別是設計階段結束時要進行嚴格的技術評審,盡量不讓錯誤傳播到下一個階段,設計評審一般采用評審會議的形式來進行。
設計評審一般涉及到的人員包括:設計負責人、高級管理人員(確定主審員、審批評審記錄)、主審員、評審組