一、軟件工程概述
-
軟件工程的定義
- 軟件工程是應用系統化、規范化、可量化的方法開發、運行和維護軟件。
-
軟件工程的目標
- 提高軟件質量、降低開發成本、縮短開發周期。
-
軟件生命周期
- 瀑布模型:需求分析→設計→編碼→測試→維護。
- 迭代模型:分階段迭代開發。
- 敏捷開發:快速響應需求變化,強調團隊協作。
二、需求工程
-
需求獲取
- 方法:訪談、問卷調查、觀察、原型法。
-
需求分析
- 功能需求:系統應實現的功能。
- 非功能需求:性能、安全性、可用性等。
-
需求規格說明書(SRS)
- 描述系統需求,作為設計和開發的依據。
-
需求驗證
- 方法:評審、原型測試。
三、軟件設計
-
設計原則
- 模塊化:將系統分解為獨立模塊。
- 高內聚低耦合:模塊內部緊密相關,模塊之間依賴少。
- 抽象:隱藏細節,關注核心問題。
-
設計方法
- 結構化設計:自頂向下分解系統。
- 面向對象設計(OOD):基于對象、類、繼承、多態等概念。
-
設計模式
- 創建型模式:工廠模式、單例模式。
- 結構型模式:適配器模式、裝飾器模式。
- 行為型模式:觀察者模式、策略模式。
-
架構設計
- 分層架構:表現層、業務邏輯層、數據訪問層。
- MVC架構:模型(Model)、視圖(View)、控制器(Controller)。
- 微服務架構:將系統拆分為多個獨立服務。
四、軟件實現
-
編程語言選擇
- 根據需求選擇適合的語言,如Java、Python、C++等。
-
編碼規范
- 命名規范、注釋規范、代碼風格。
-
代碼復用
- 使用庫、框架、設計模式提高代碼復用性。
-
版本控制
- 工具:Git、SVN。
五、軟件測試
-
測試類型
- 單元測試:測試單個模塊。
- 集成測試:測試模塊之間的交互。
- 系統測試:測試整個系統。
- 驗收測試:用戶驗證系統是否符合需求。
-
測試方法
- 黑盒測試:關注輸入輸出,不關注內部實現。
- 白盒測試:關注內部邏輯和代碼結構。
-
測試工具
- JUnit(單元測試)、Selenium(自動化測試)、LoadRunner(性能測試)。
六、軟件維護
-
維護類型
- 糾錯性維護:修復軟件中的錯誤。
- 適應性維護:適應環境變化。
- 完善性維護:增加新功能。
- 預防性維護:防止未來可能出現的問題。
-
維護過程
- 問題報告→問題分析→修改→測試→發布。
七、軟件項目管理
-
項目計劃
- 制定項目目標、進度、資源分配。
-
進度管理
- 工具:甘特圖、關鍵路徑法(CPM)。
-
風險管理
- 識別風險、評估風險、制定應對策略。
-
質量管理
- 質量標準、質量保證、質量控制。
-
配置管理
- 管理軟件版本、變更和發布。
八、軟件工程標準與文檔
-
標準
- ISO/IEC 12207(軟件生命周期過程)。
- CMMI(能力成熟度模型集成)。
-
文檔
- 需求文檔:需求規格說明書。
- 設計文檔:系統設計說明書。
- 測試文檔:測試計劃、測試用例。
- 用戶手冊:幫助用戶使用系統。
九、常見考點與題型
- 選擇題:
- 考察基本概念,如軟件生命周期、設計原則。
- 設計題:
- 設計系統架構或模塊。
- 分析題:
- 分析項目風險、測試用例。
十、備考建議
- 掌握核心概念:
- 理解軟件工程的基本原理和方法。
- 熟悉設計模式:
- 掌握常見設計模式的應用場景。
- 結合實際案例:
- 通過實際項目理解軟件工程的應用。
- 多做真題:
- 通過歷年真題熟悉考試題型和難度。