1. 程式人生 > >軟體工程(四)

軟體工程(四)

總體設計

設計過程

  1. 設想供選擇的方案
  2. 選取合理的方案
  3. 推薦最佳方案
  4. 功能分解
    • 結構設計
    • 過程設計
  5. 設計軟體結構
  6. 設計資料庫
  7. 制定測試計劃
  8. 書寫文件
    • 系統說明文件
    • 使用者手冊
    • 測試計劃
    • 詳細的實現計劃
    • 資料庫設計結果
  9. 審查和複審

設計原理

  • 模組化

    模組化是把程式劃分成一個獨立命名且可獨立訪問的模組,每個模組完成一個子功能,把這些模組整合起來構成一個整體,可以完成指定的功能滿足使用者的需求
    模組成本和介面成本共同決定系統開發成本,模組數目分隔的越小越多,模組成本越低,但是系統將所有模組整合起來的介面成本隨之增加,因此存在介面成本和模組數目的最小成本區

  • 抽象

一個複雜的動態系統首先可以用一些高階的抽象概念構造和理解,這些高階概念又可以用一些低階的概念構造和理解。

  • 逐步求精

先指定系統打框架,然後再往框架裡面填充細節

  • 資訊隱藏和區域性化

區域性化:把一些模組內包含的資訊(過程和資料)對於不需要這些資訊的模組來說,是不能訪問的
隱藏:有效的模組化可以通過定義一組獨立的模組二實現,這些獨立的模組彼此之間僅僅交換哪些為了完成系統功能二必須交換的資訊。

  • 模組獨立

模組獨立是模組化、抽象、資訊隱藏和區域性化的直接結果
獨立程度定性標準
耦合:一個軟體結構內不同模組之間互連程度的度量
非直接耦合

:如果兩個模組中的每一個都能獨立地工作而不需
要另一個模組的存在,那麼它們完全獨立。
資料耦合:兩個模組彼此間通過引數交換資訊,而
且交換的資訊僅僅是資料
特徵耦合:把整個資料結構作為引數傳遞而被呼叫的模組只需要使用其中一部分資料元素
控制耦合:如果兩個模組彼此間傳遞的資訊中有控制資訊
外部耦合:模組與外部環境(作業系統函式、資料庫、通訊功能等)連線在一起
公共耦合:兩個或多個模組通過一個公共資料環境相互作用
內容耦合
這裡寫圖片描述
內聚:標誌一個模組內各個元素彼此結合的緊密程度
偶然內聚:一個模組完成一組任務,這些任務彼此間即使有關係,關係也是很鬆散的,就叫做偶然內聚
邏輯內聚
:一個模組完成的任務在邏輯上屬於相同或
相似的一類
時間內聚:一個模組包含的任務必須在同一段時間內執行
過程內聚:一個模組內的處理元素是相關的,而且必須以特定次序執行
通訊內聚:模組中所有元素都使用同一個輸入資料和(或)產生同一個輸出資料
順序內聚:果一個模組內的處理元素和同一個功能密切相關,而且這些處理必須順序執行
功能內聚:模組內所有處理元素屬於一個整體,完成一個單一的功能

高內聚:功能內聚 10分
順序內聚 9分
中內聚:通訊內聚 7分
過程內聚 5分
低內聚:時間內聚 3分
邏輯內聚 1分
偶然內聚 0分

啟發規則

  1. 改進軟體結構提高模組獨立性
  2. 模組規模應該適中
  3. 深度、寬度、扇出和扇入都應適當
  4. 模組的作用域應該控制在控制域中
  5. 力爭降低模組介面的複雜程度
  6. 設計單入口單出口模組
  7. 模組功能應該可以預測