軟體工程導論期末複習——概念彙總(背就完了!哭哭QAQ
阿新 • • 發佈:2021-12-02
1.軟體工程的7條本質特徵:
- 軟體工程關注於大型程式的構造
- 軟體工程的中心課題是控制複雜性
- 軟體經常變化
- 開發軟體的效率非常重要
- 和諧的合作是開發軟體的關鍵
- 軟體必須有效的支援他的使用者
- 在軟體工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產品
2.軟體工程生命週期:
問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試、維護
3.瀑布模型:
- 傳統的瀑布模型和實際的瀑布模型(15頁&16頁圖)
- 傳統瀑布模型特點:
- 階段間具有順序性和依賴性
- 推遲實現的觀點
- 質量保證的觀點
- 每個階段都必須完成規定的文件
- 每個階段結束前都要對所完成的文件進行評審
- 實際的瀑布模型增加了“反饋環”,因為在設計階段可能發現規格說明文當中的錯誤,而設計上的缺陷或錯誤可能在實現的過程中顯現出來,在綜合測試階段將發現需求分析、設計或編碼階段的很多錯誤。
- 優點:
- 可強迫開發人員採用規範的方法
- 嚴格規定了每個階段必須提交文件
- 要求每個階段交出的所有產品必須經過質量保證小組的仔細驗證。
- 缺點:
- 使用者只能通過文件瞭解產品,但僅通過紙上的靜態規格說明很難全面的動態認識軟體產品。
4.總體設計的原理:
- 原理包括:模組化、抽象、模組獨立
- 模組化:
- 把程式劃分成獨立命名且可獨立訪問的模組,每個模組完成一個子功能,把這些模組整合起來構成一個整體,可以完成指定的功能滿足使用者需求。
- 總成本曲線:把複雜問題分解能減小成本,但模組過多導致介面設計成本增加;故每個程式都相應的有一個最適當的模組數目使得開發成本最小,依據總成本開發曲線估計。
- 抽象:
- 抽象:一定事物、狀態或過程之間總存在某些相似的方面(共性),把這些共性集中和概括起來,暫時忽略他們之間的差異,這就是抽象。
- 求精:為了能集中精力解決主要問題而儘量推遲對細節的考慮。是一種自頂向下策略。
5.內聚和耦合:
- 耦合:
- 耦合是對一個軟體內不同模組之間互連程度的度量。
- 耦合強弱取決於模組間介面的複雜程度,進入或訪問一個模組的點,以及通過介面的資料。
- 在軟體設計中應該追求儘可能鬆散耦合的系統。
- 分類:
- 資料耦合:兩個模組彼此只交換資料(低耦合,必須存在,一個系統可以只有資料耦合
- 控制耦合:模組間交換的資訊中有控制資訊(中等程度的耦合,往往多餘,可以分解後用資料耦合代替
- 特徵耦合:把整個資料結構作為引數傳遞而被呼叫的模組只需要其中一部分元素
- 公共環境耦合:兩個或多個模組通過一個公共資料環境相互作用。(如果只有兩個模組有公共環境:①一個模組往公共環境送資料,另一個取,為資料耦合;②兩個都既傳又取,介於資料耦合和控制耦合之間
- 內容耦合:
- 一個模組訪問了另一個模組的內部資料
- 一個模組不通過正常入口而轉到另一個模組內部
- 兩個模組有一部分程式程式碼重疊(只可能出現在彙編程式中
- 一個模組有多個入口
- 出現以上之一則為內容耦合
- 內容耦合程度最高,應該堅決避免
- 內聚:
- 內聚標誌著一個模組內各個元素彼此結合的緊密程度,它是資訊隱藏和區域性化概念的自然擴充套件。
- 設計是力求高內聚。
- 分類:
- 低內聚
- 偶然內聚:任務之間即使有關係也很鬆散(出現修改錯誤的概率高
- 邏輯內聚:一個模組完成的任務在邏輯上屬於相同或相似的一類
- 時間內聚:一個模組包含的任務必須在同一段時間內執行
- 中內聚:
- 過程內聚:一個模組內的處理元素是相關的,而且必須以特定次序執行(程式流程圖得到的往往是過程內聚的
- 通訊內聚:模組中所有元素都使用同一個輸入資料和(或)產生同一個輸出資料
- 高內聚:
- 順序內聚:一個模組內的處理元素同一個功能密切相關,且這些處理必須順序執行(資料流圖得到的是順序內聚
- 功能內聚:模組內所有處理元素屬於一個整體,完成一個單一的功能(程度最高
- 低內聚
後續補充大概率出題的大題