本書帶領(lǐng)讀者了解軟件的生命周期,包括需求分析、設(shè)計、實現(xiàn)、測試與維護(hù)等階段;學(xué)習(xí)如何使用工程化的方法解決軟件開發(fā)中遇到的問題,從而提高軟件開發(fā)的效率和質(zhì)量。本書還深入探討軟件工程的理論基礎(chǔ),包括面向?qū)ο笏枷搿⒔y(tǒng)一建模語言、面向?qū)ο蠓治雠c設(shè)計及其在實際項目中的應(yīng)用。
本書既強調(diào)軟件工程原理,又提供豐富的實例分析。本書講解理論的各章配有習(xí)題和實例,本書還完整的項目實例和設(shè)計性實驗,設(shè)計性實驗將金融系統(tǒng)項目背景與軟件開發(fā)階段相結(jié)合,并使用統(tǒng)一建模語言完成。此外,本書緊跟國際視野,將前沿知識和技能納入其中。
本書可作為高等院校軟件工程相關(guān)課程的教材或教學(xué)參考書,也適合軟件開發(fā)人員、軟件測試工程師、軟件項目經(jīng)理等相關(guān)人員閱讀參考。
1.側(cè)重基礎(chǔ)內(nèi)容,適應(yīng)少學(xué)時教學(xué)。重點講解面向?qū)ο蠓椒ê凸ぞ?br />2.理論與實踐相結(jié)合,將企業(yè)實踐項目為參考案例
3.配套資源豐富,包含完整實踐案例和實驗資源
1.側(cè)重基礎(chǔ)內(nèi)容,適應(yīng)少學(xué)時教學(xué)。重點講解面向?qū)ο蠓椒ê凸ぞ?2.理論與實踐相結(jié)合,將企業(yè)實踐項目為參考案例
3.配套資源豐富,包含完整實踐案例和實驗資源
代紅,碩士生導(dǎo)師,教授,主要從事計算機網(wǎng)絡(luò)、網(wǎng)絡(luò)安全、機器學(xué)習(xí)等方面的研究。作為主持人,榮獲遼寧省高等學(xué)校本科教學(xué)成果獎、遼寧省研究生教學(xué)成果獎,同時主講的《計算機網(wǎng)絡(luò)》榮獲遼寧省線上線下混合式一流課程,同時榮獲遼寧省科技進(jìn)步獎。參編過《計算機類畢業(yè)設(shè)計指導(dǎo)與項目案例實踐》(清華大學(xué)出版社,2023年)教材。
第 一章 軟件工程學(xué)概述1
1.1軟件工程概述 1
1.1.1 軟件的概念 1
1.1.2 軟件開發(fā)歷史與演進(jìn) 2
1.1.3 軟件危機的含義和表現(xiàn) 3
1.1.4 產(chǎn)生軟件危機的原因 3
1.1.5 消除軟件危機的途徑 5
1.2 軟件工程 5
1.2.1軟件工程的概念 5
1.2.2軟件工程的基本原理 5
1.2.3軟件工程的目標(biāo)和原則 7
1.3 軟件工程方法學(xué) 8
1.3.1 傳統(tǒng)方法學(xué) 8
1.3.2 面向?qū)ο蠓椒▽W(xué) 9
1.4 軟件工程的重要性與作用 9
1.5 軟件生命周期 10
1.6 軟件工程方法論 11
1.6.1 瀑布模型 12
1.6.2 快速原型模型 13
1.6.3 增量模型 14
1.6.4 螺旋模型 15
1.6.5 噴泉模型 16
1.6.6 Rational統(tǒng)一過程 17
1.7 能力成熟度模型 20
第 一章 習(xí)題 21
第二章 可行性研究與軟件需求分析 24
2.1可行性研究的任務(wù) 24
2.2 可行性研究三個主要方面 24
2.2.1技術(shù)可行性 24
2.2.2經(jīng)濟(jì)可行性 25
2.2.3法律可行性 26
2.2.4 其他可行性 27
2.3 可行性研究過程 27
2.4 軟件需求分析概述 27
2.5 需求建模技術(shù) 29
2.5.1數(shù)據(jù)模型 30
2.5.2功能模型 32
2.5.3數(shù)據(jù)字典 34
2.5.4行為模型 36
2.6 需求規(guī)格與文檔化 39
2.7 需求驗證與確認(rèn) 40
第二章 習(xí)題 40
第三章 軟件設(shè)計 43
3.1 軟件設(shè)計的概念和原理 43
3.1.1 模塊化 43
3.1.2 模塊獨立 43
3.1.3 抽象 50
3.1.4 封裝 51
3.1.5 逐步求精 51
3.2 人機界面設(shè)計 51
3.2.1 人機界面設(shè)計問題 51
3.2.2人機界面實現(xiàn)的原則與標(biāo)準(zhǔn) 52
3.3 表示軟件結(jié)構(gòu)的圖形工具 54
3.3.1層次圖 54
3.3.2 HIPO圖 54
3.4 過程設(shè)計工具 56
3.4.1 程序流程圖 56
3.4.2 盒圖(N-S圖) 57
3.4.3 問題分析圖(PAD圖) 58
3.4.4 判定表 60
3.4.5 判定樹 61
3.4.6 偽代碼(過程設(shè)計語言) 62
3.5面向數(shù)據(jù)流的設(shè)計和面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計 63
3.5.1面向數(shù)據(jù)流的設(shè)計方法 63
3.5.2面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法 66
3.5.3兩種設(shè)計方法的區(qū)別 68
第三章 習(xí)題 68
第四章 面向?qū)ο笏枷?91
4.1面向?qū)ο缶幊谈攀?91
4.2 類和對象 92
4.2.1類與對象的概念 92
4.2.2 類與對象的關(guān)系與區(qū)別 92
4.2.3 類的屬性和方法 93
4.3 封裝 95
4.4繼承與多態(tài) 97
4.5抽象類與接口 101
4.5.1 抽象類的定義與特點 101
4.5.2 接口的概念與用途 103
第四章 習(xí)題 106
第五章 UML 107
5.1 UML建模語言與圖形化建模 107
5.1.1 UML簡介與發(fā)展歷程 107
5.1.2 UML建模視圖 108
5.2用例圖(Use Case Diagram) 109
5.2.1用例圖的基本元素 109
5.2.2用例圖的建模步驟與實例 113
5.3 類圖(Class Diagram) 115
5.3.1 類圖的基本元素 115
5.3.2 類圖的抽象層次 126
5.3.3 類圖的建模步驟與實例 127
5.4 對象圖(Object Diagram) 128
5.4.1 對象圖的基本元素 128
5.4.2 對象圖的用途 129
5.4.3 對象圖的表示和命名 129
5.4.4 對象圖的建模步驟與實例 130
5.5 時序圖(Sequence Diagram) 131
5.5.1 時序圖的基本元素 131
5.5.2 時序圖的主要用途 135
5.5.3 時序圖的建模步驟與實例 135
5.6 協(xié)作圖(Collaboration Diagrams) 138
5.6.1 協(xié)作圖的基本元素 138
5.6.2 協(xié)作圖的主要用途 139
5.6.3 協(xié)作圖的的建模步驟與實例 139
5.6.4 時序圖與協(xié)作圖的異同 140
5.7 活動圖(Activity Diagram) 142
5.7.1活動圖的基本元素 142
5.7.2 活動圖的主要用途 145
5.7.3 活動圖的建模步驟與實例 147
5.8 狀態(tài)圖(State Diagram) 151
5.8.1 狀態(tài)圖的基本元素 151
5.8.2 狀態(tài)圖的主要用途 152
5.8.3 狀態(tài)圖的建模步驟與實例 153
5.9 組件圖(Component Diagram) 154
5.9.1 組件圖的基本元素 155
5.9.2 組件圖的主要用途 156
5.9.3 組件的類型 156
5.9.4 組件圖的建模步驟與實例 157
5.10包圖 158
5.10.1包圖的基本元素 158
5.10.2 包圖的用途 159
5.11 部署圖(Deployment Diagram) 159
5.11.1 部署圖的基本元素 160
5.11.2 部署圖的主要用途 161
第五章 習(xí)題 163
第六章 面向?qū)ο蠓治雠c設(shè)計 168
6.1面向?qū)ο蠓治?168
6.1.2 建立對象模型 169
6.1.3 建立動態(tài)模型 171
6.1.4 建立功能模型 173
6.2 面向?qū)ο笤O(shè)計 176
6.2.1 面向?qū)ο笤O(shè)計的基本步驟和過程 176
6.2.2 面向?qū)ο蟮膶ο笤O(shè)計 177
6.2.3 面向?qū)ο蟮捏w系結(jié)構(gòu)設(shè)計 178
6.2.4 面向?qū)ο蟮慕涌谠O(shè)計 180
6.2.5 面向?qū)ο蟮臉?gòu)件級設(shè)計 180
第六章 習(xí)題 181
第七章 軟件的實現(xiàn)、測試與維護(hù)
7.1編碼
7.1.1 編程語言的發(fā)展和分類
7.1.2 編程語言的選擇
7.2 軟件測試
7.2.1軟件測試目標(biāo)
7.2.2 黑盒測試和白盒測試
7.2.3 軟件測試主要流程
7.3 白盒測試法
7.3.1邏輯覆蓋
7.3.2 基本路徑法
7.3.3 代碼檢查法
7.4 黑盒測試法
7.4.1 等價類劃分法
7.4.2邊界值分析法
7.4.3錯誤推測法
7.5 調(diào)試
7.6軟件部署和交付
7.7 軟件維護(hù)
第七章 習(xí)題
第八章 軟件項目管理
8.1 軟件項目管理概述
8.2項目計劃與資源調(diào)度
8.2.1項目計劃的編制
8.2.2項目資源分配和調(diào)度
8.3軟件項目質(zhì)量保證
第九章 項目實例基于Web的在線學(xué)習(xí)系統(tǒng)的設(shè)計與實現(xiàn)
9.1緒論
9.1.1 項目背景
9.1.2 項目的目的和意義
9.1.3 相關(guān)技術(shù)介紹
9.2 系統(tǒng)可行性分析和需求分析
9.2.1 可行性分析
9.2.2 系統(tǒng)需求分析
9.3系統(tǒng)總體設(shè)計
9.3.1 數(shù)據(jù)庫設(shè)計
9.3.2 系統(tǒng)分層架構(gòu)設(shè)計
9.4 類的代碼框架
9.5 界面設(shè)計
附錄A 設(shè)計性實驗:人民幣流通管理系統(tǒng)實驗
實驗一 結(jié)構(gòu)化需求分析
實驗一 UML分析與設(shè)計用例圖
實驗三 UML分析與設(shè)計活動圖與類圖
實驗四 UML分析與設(shè)計狀態(tài)圖、順序圖與協(xié)作圖
附錄B 課后習(xí)題答案
第 一章 習(xí)題答案
第二章 習(xí)題答案
第三章 習(xí)題答案
第四章 習(xí)題答案
第五章 習(xí)題答案
第六章 習(xí)題答案
第七章 習(xí)題答案
附錄C 模擬套題
模擬套題答案