軟件工程基礎(題庫+微課視頻版)(第2版)
呂雲翔
相關主題
商品描述
本書系統闡述軟件工程全流程知識。第一部分介紹軟件工程概述,涵蓋相關知識(軟件概念、危機及應對、開發方法等)簡述,軟件過程(包括軟件生命周期與多種過程模型)和敏捷軟件開發(包括極限編程、Scrum等方法及DevOps等相關內容)的詳細闡述。第二部分介紹軟件需求與設計,涉及可行性研究與項目開發計劃、軟件需求、軟件設計等。第三部分介紹面向對象分析與設計,涉及相關方法、UML建模等。第四部分介紹編碼實現、測試、運營與維護,涉及編碼實現、軟件測試、軟件運營與維護等知識。第五部分介紹軟件工程管理,涉及軟件項目管理、估算等內容。 本書是高等學校計算機科學與技術、軟件工程及相關專業“軟件工程”課程的理想教材。
作者簡介
呂雲翔,北京航空航天大學軟件學院副教授。具有多年的軟件開發、項目管理、計算機教學經驗,對IT行業具有較全面的認識,出版教材多部。目前研究領域包括:軟件工程、人工智能、大數據。
目錄大綱
目錄
第一部分軟件工程概述
第1章緒論
1.1軟件的概念及特點
1.2軟件危機
1.2.1軟件危機的表現與產生原因
1.2.2軟件危機的啟示
1.3軟件工程
1.3.1軟件工程的概念
1.3.2軟件工程的基本目標和原則
1.3.3軟件工程的發展
1.4軟件開發方法
1.5計算機輔助軟件工程及其工具
1.6軟件工程人員的職業道德
1.6.1軟件工程人員的職業道德概述
1.6.2軟件工程人員的職業道德實例
1.7“小型網上書店系統”案例介紹
拓展閱讀: 青鳥工程——以科技報國詮釋愛國與奉獻精神
本章小結
習題
第2章軟件過程
2.1軟件生命周期與軟件過程
2.1.1軟件生命周期
2.1.2軟件過程
2.2典型的軟件過程模型
2.2.1瀑布模型
2.2.2快速原型模型
2.2.3增量模型
2.2.4螺旋模型
2.2.5噴泉模型
2.2.6基於組件的開發模型
2.2.7統一軟件開發過程模型
2.2.8幾種過程模型的對比
2.2.9幾種過程模型之間的關系
2.2.10選擇軟件過程模型
2.3軟件過程模型實例
拓展閱讀: 微信——以極致創新重構數字生活
本章小結
習題
第3章敏捷軟件開發
3.1敏捷方法
3.2Scrum
3.2.1Scrum概述
3.2.2Sprint
3.2.3每日站會
3.2.4用戶故事
3.2.5Backlog
3.2.6結對編程
3.3極限編程
3.3.1XP方法的4個價值觀
3.3.2XP方法的12個核心實踐
3.4看板
3.4.1看板概述
3.4.2看板與Scrum的區別
3.53種敏捷方法的對比
3.6CI/CD
3.6.1CI/CD概述
3.6.2CI/CD的優勢
3.7DevOps
3.7.1DevOps概述
3.7.2DevOps的特點
3.8敏捷軟件開發、CI/CD和DevOps
3.9測試驅動開發
3.9.1測試驅動開發概述
3.9.2測試驅動開發與敏捷軟件開發
3.10敏捷軟件開發實例(1)
3.11敏捷軟件開發實例(2): 大語言模型如何賦能敏捷軟件開發
拓展閱讀: 釘釘軟件——以求實精神深耕企業數字化
本章小結
習題
第二部分軟件需求與設計
第4章可行性研究與項目開發計劃
4.1項目立項概述
4.2可行性研究的任務
4.2.1技術可行性
4.2.2操作可行性
4.2.3經濟可行性
4.3可行性研究的步驟
4.4可行性研究實例
4.5制訂項目開發計劃
4.6案例: “小型網上書店系統”的軟件開發計劃書
拓展閱讀: 漢字激光照排系統——以創新與奉獻精神鑄就印刷革命
本章小結
習題
第5章軟件需求
5.1什麼是軟件需求
5.1.1軟件需求的本質
5.1.2軟件需求的特點與重要性
5.1.3軟件需求的分類與層次
5.1.4軟件需求與需求工程
5.2需求工程的過程
5.2.1需求工程的一般步驟
5.2.2軟件需求獲取
5.2.3軟件需求分析
5.2.4軟件需求文檔化
5.2.5軟件需求確認和驗證
5.2.6軟件需求管理
5.3敏捷軟件開發中的軟件需求
5.4軟件需求實例(1)
5.5軟件需求實例(2): 大語言模型如何賦能軟件需求
拓展閱讀: 高斯數據庫——以工匠精神鑄就國產數據庫標桿
本章小結
習題
第6章軟件設計
6.1軟件設計的基本概念
6.1.1軟件設計的意義和目標
6.1.2軟件設計的過程
6.1.3軟件設計的原則
6.1.4軟件設計的分類
6.1.5軟件設計的質量要求
6.2軟件體系結構
6.2.1什麼是軟件體系結構
6.2.2軟件體系結構與軟件體系結構風格
6.2.3典型的軟件體系結構風格
6.2.4分層體系結構風格
6.2.5客戶端/服務器體系結構風格
6.2.6MVC體系結構風格
6.2.73種體系結構風格的對比
6.3軟件體系結構設計
6.3.1軟件體系結構設計的目的
6.3.2軟件體系結構多視圖的設計
6.3.3軟件體系結構設計的一般步驟
6.4用戶界面設計
6.5軟件詳細設計
6.5.1什麼是軟件詳細設計
6.5.2數據設計
6.6軟件設計規約與評審
6.7軟件設計實例(1)
6.8軟件設計實例(2): 大語言模型如何賦能軟件設計
拓展閱讀: 鴻蒙操作系統——以奮鬥精神鑄就國之重器
本章小結
習題
第7章結構化分析與設計
7.1結構化分析
7.1.1結構化分析概述
7.1.2結構化分析建模
7.2結構化設計
7.2.1結構化設計概述
7.2.2結構化設計與結構化分析
7.2.3結構化設計的啟發規則
7.2.4結構化概要設計
7.2.5結構化詳細設計
7.3結構化分析與設計實例
拓展閱讀: DeepSeek——以民族精神領跑中國AI
本章小結
習題
第三部分面向對象分析與設計
第8章面向對象方法與UML
8.1面向對象方法
8.1.1面向對象的基本概念
8.1.2面向對象方法的優勢
8.1.3面向對象方法的實施步驟
8.2UML
8.2.1UML簡述
8.2.2UML圖
8.3靜態建模機制
8.3.1用例圖
8.3.2類圖與對象圖
8.3.3包圖
8.4動態建模機制
8.4.1順序圖
8.4.2協作圖
8.4.3狀態圖
8.4.4活動圖
8.5描述物理架構的機制
8.5.1組件圖
8.5.2部署圖
8.6面向對象方法與UML實例
拓展閱讀: 抖音——以包容精神連接萬千世界
本章小結
習題
第9章面向對象分析
9.1面向對象分析方法
9.1.1面向對象分析的過程
9.1.2面向對象分析的原則
9.2面向對象建模
9.2.1建立用例模型
9.2.2建立對象模型
9.2.3建立動態模型
9.2.4建立功能模型
9.2.54種模型之間的關系
9.3面向對象分析實例(1)
9.4面向對象分析實例(2): 大語言模型如何賦能面向對象分析
9.5案例: “小型網上書店系統”的需求規格說明書
拓展閱讀: 北鬥衛星導航系統——群星閃耀的中國精神
本章小結
習題
第10章面向對象設計
10.1面向對象設計與面向對象分析的關系
10.2面向對象設計的過程與原則
10.2.1面向對象設計的過程
10.2.2面向對象設計的原則
10.3面向對象設計的啟發規則
10.4軟件設計模式
10.4.1工廠模式
10.4.2橋接模式
10.4.3策略模式
10.4.4其他模式
10.5系統設計
10.5.1系統物理架構設計
10.5.2系統軟件架構設計——子系統設計
10.5.3問題域子系統的設計
10.5.4人機交互子系統的設計
10.5.5任務管理子系統的設計
10.5.6數據管理子系統的設計
10.6用戶界面設計
10.7對象設計
10.7.1用例設計
10.7.2類設計
10.7.3數據設計
10.7.4對象設計優化
10.8面向對象設計實例(1)
10.9面向對象設計實例(2): 大語言模型如何賦能面向對象設計
10.10案例: “小型網上書店系統”的軟件設計說明書
拓展閱讀: 銀河麒麟——以砥礪前行精神鑄牢國產系統根基
本章小結
習題
第四部分編碼實現、測試、運營與維護
第11章編碼實現
11.1選擇編程語言需考慮的因素
11.2編碼風格與規範
11.3面向對象實現
11.3.1提高可重用性
11.3.2提高可擴展性
11.3.3提高健壯性
11.4代碼重用
11.5分析和評價代碼的質量
11.6智能時代的編碼實現
11.7編碼實現實例(1)
11.8編碼實現實例(2): 大語言模型如何賦能編碼實現
11.9案例: 使用Visual Studio Code、Vue和Django實現“小型網上書店
系統”的“用戶登錄”模塊
11.10案例: “小型網上書店系統”的源代碼和部署文檔
拓展閱讀: 大疆科技——以實幹擔當書寫中國智造傳奇
本章小結
習題
第12章軟件測試
12.1軟件測試的基本概念
12.1.1軟件測試的目標
12.1.2軟件測試的原則
12.1.3軟件測試的分類
12.2測試用例
12.2.1測試用例的編寫
12.2.2測試用例的設計
12.3軟件測試方法
12.3.1白盒測試
12.3.2黑盒測試
12.3.3灰盒測試
12.4軟件測試的一般步驟
12.4.1單元測試
12.4.2集成測試
12.4.3系統測試
12.4.4驗收測試
12.5回歸測試
12.6面向對象測試
12.7自動化測試
12.8敏捷測試
12.9軟件調試
12.10軟件測試實例(1)
12.11軟件測試實例(2): 大語言模型如何賦能軟件測試
12.12案例: 使用Visual Studio Code和unittest對“小型網上書店系統”的
“用戶登錄”模塊進行單元測試
12.13案例: “小型網上書店系統”的測試分析報告
拓展閱讀: 飛槳PaddlePaddle——以技術自強精神鑄牢中國AI根基
本章小結
習題
第13章軟件運營與維護
13.1軟件交付、部署與運營
13.2軟件維護的傳統方法
13.2.1軟件維護的過程
13.2.2軟件維護的分類
13.2.3軟件的可維護性
13.2.4軟件維護的副作用
13.3軟件維護的現代方法
13.4軟件再工程——重構、正向工程、逆向工程
13.5軟件運營與維護實例(1)
13.6軟件運營與維護實例(2): 大語言模型如何賦能軟件運營與維護
拓展閱讀: 宇樹科技——敢為人先,拓荒機器人新藍海
本章小結
習題
第五部分軟件工程管理
第14章軟件工程管理
14.1軟件項目管理
14.1.1軟件項目管理概述
14.1.2軟件項目管理與軟件工程的關系
14.2軟件估算
14.2.1軟件估算的概念
14.2.2軟件估算的方法
14.2.3軟件估算的原則與技巧
14.3軟件開發進度計劃
14.3.1甘特圖
14.3.2PERT圖
14.4軟件開發人員組織
14.5軟件開發風險與風險管理
14.5.1軟件開發風險
14.5.2軟件開發風險管理
14.6軟件質量保證
14.6.1軟件質量的基本概念
14.6.2軟件質量保證的措施
14.7軟件配置管理
14.8軟件過程能力成熟度模型
14.9軟件工程管理實例(1)
14.10軟件工程管理實例(2): 大語言模型如何賦能軟件工程管理
14.11案例: 使用Project管理“小型網上書店系統”的開發過程
14.12案例: “小型網上書店系統”的用戶使用說明書
拓展閱讀: WPS Office——以亮劍精神守護民族軟件之光
本章小結
附錄A軟件工程常用工具及其應用
附錄B基於“小型網上書店系統”的實驗
附錄C軟件開發項目綜合實踐詳解(機票預訂系統)
附錄D綜合案例
附錄E本書配套微課視頻清單
參考文獻







