現(xiàn)代軟件工程
定 價(jià):69.8 元
叢書(shū)名:高等學(xué)校計(jì)算機(jī)專(zhuān)業(yè)核心課名師精品系列教材
本書(shū)是面向軟件工程入門(mén)者和實(shí)踐者的基礎(chǔ)性教材,針對(duì)軟件工程的工程化特點(diǎn) 和實(shí)踐性要求,結(jié)合軟件工程學(xué)科的發(fā)展以及軟件產(chǎn)業(yè)界的實(shí)踐,以實(shí)用性軟件工程 為主線,構(gòu)建軟件工程的知識(shí)體系。全書(shū)共十二章,涵蓋軟件工程的過(guò)程、方法和工具三 方面要素,包括軟件和軟件工程、軟件過(guò)程與方法、軟件項(xiàng)目管理、需求獲取與分析、軟 件設(shè)計(jì)、編碼與部署、軟件測(cè)試、軟件維護(hù)等章節(jié)。
(1)內(nèi)容新:教材內(nèi)容反映了軟件工程的最新發(fā)現(xiàn)以及軟件產(chǎn)業(yè)界的主流技術(shù),如基于大模型的智能化開(kāi)發(fā)、DevOps、開(kāi)源軟件等; (2)突出現(xiàn)代工具應(yīng)用:教材介紹了一系列的CASE工具和平臺(tái),以支持軟件的工程化開(kāi)發(fā),如ChatGPT、CodeArts Modeling等; (3)案例引導(dǎo):教材以大量身邊的軟件系統(tǒng)為案例,設(shè)計(jì)了完整Mini-12306軟件系統(tǒng)案例,深入淺出地講解知識(shí)點(diǎn); (4)強(qiáng)化實(shí)踐:強(qiáng)化了軟件開(kāi)發(fā)的實(shí)踐,設(shè)計(jì)了二項(xiàng)實(shí)踐任務(wù),貫穿全書(shū)各個(gè)章節(jié); (5)資源豐富:教材配套了豐富的教學(xué)生態(tài),提供了課件、視頻、教案、試卷、線上實(shí)訓(xùn)和實(shí)踐、學(xué)習(xí)社區(qū)和群智知識(shí),為教師教和學(xué)生學(xué)提供了全方位的支持。
毛新軍 國(guó)防科技大學(xué)首席教授,全國(guó)高校計(jì)算機(jī)專(zhuān)業(yè)優(yōu)秀教師,首屆霍英東教育教學(xué)獎(jiǎng)獲得者,入選新世紀(jì)優(yōu)秀人才,計(jì)算機(jī)領(lǐng)域本科教育教學(xué)改革試點(diǎn)工作計(jì)劃(101計(jì)劃)軟件工程課程建設(shè)及虛擬教研室的負(fù)責(zé)人,CCF教育專(zhuān)委副主任,信息技術(shù)新工科產(chǎn)學(xué)研聯(lián)盟實(shí)踐教學(xué)工委主任。
目錄 第 1章 深入認(rèn)識(shí)軟件 1 1.1 問(wèn)題引入 1 1.2 何為軟件 1 1.2.1 軟件概念 1 1.2.2 軟件特點(diǎn) 5 1.2.3 軟件分類(lèi) 6 1.3 軟件特征變化 8 1.4 軟件生命周期 10 1.5 軟件質(zhì)量 12 1.5.1 軟件質(zhì)量概念及模型 12 1.5.2 軟件的內(nèi)部質(zhì)量和外部質(zhì)量 12 1.6 開(kāi)源軟件 14 1.6.1 何為開(kāi)源軟件 14 1.6.2 開(kāi)源軟件的優(yōu)勢(shì) 15 1.6.3 開(kāi)源軟件許可證 16 1.6.4 開(kāi)源軟件的利用 17 1.7 本書(shū)的軟件案例 18 1.7.1 小米便簽軟件 18 1.7.2 Mini-12306軟件 19 1.8 本章小結(jié)和思維導(dǎo)圖 19 1.9 閱讀推薦 20 1.10 知識(shí)測(cè)驗(yàn) 20 1.11 工程實(shí)訓(xùn) 20 1.12 綜合實(shí)踐 21 第 2章 走進(jìn)軟件工程 23 2.1 問(wèn)題引入 23 2.2 為什么會(huì)產(chǎn)生軟件工程 23 2.2.1 軟件危機(jī)的表現(xiàn) 23 2.2.2 缺乏理論支持和方法指導(dǎo) 25 2.3 何為軟件工程 26 2.3.1 軟件工程概念 27 2.3.2 軟件工程目標(biāo) 27 2.4 軟件工程如何解決軟件危機(jī) 28 2.4.1 軟件工程三要素 28 2.4.2 軟件工程基本原則 30 2.4.3 計(jì)算機(jī)輔助軟件工程 32 2.5 軟件工程發(fā)展 35 2.5.1 軟件工程發(fā)展歷程 35 2.5.2 軟件工程發(fā)展特點(diǎn) 38 2.6 軟件工程教育 40 2.6.1 軟件工程師及其類(lèi)別 41 2.6.2 軟件工程師的職業(yè)道德 41 2.7 本章小結(jié)和思維導(dǎo)圖 42 2.8 閱讀推薦 44 2.9 知識(shí)測(cè)驗(yàn) 44 2.10 工程實(shí)訓(xùn) 45 2.11 綜合實(shí)踐 45 第3章 軟件開(kāi)發(fā)過(guò)程及方法 46 3.1 問(wèn)題引入 46 3.2 何為軟件開(kāi)發(fā)過(guò)程 46 3.3 重型軟件開(kāi)發(fā)方法 47 3.3.1 重型軟件開(kāi)發(fā)方法的思想 47 3.3.2 典型的重型軟件開(kāi)發(fā)方法 48 3.4 敏捷軟件開(kāi)發(fā)方法 52 3.4.1 敏捷軟件開(kāi)發(fā)方法的思想 52 3.4.2 Scrum方法 55 3.4.3 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)方法 55 3.4.4 DevOps方法 56 3.4.5 支持敏捷開(kāi)發(fā)的CASE工具 59 3.5 軟件開(kāi)發(fā)方法的選擇和應(yīng)用 62 3.6 本章小結(jié)和思維導(dǎo)圖 63 3.7 閱讀推薦 64 3.8 知識(shí)測(cè)驗(yàn) 64 3.9 工程實(shí)訓(xùn) 65 3.10 綜合實(shí)踐 65 第4章 軟件項(xiàng)目管理 67 4.1 問(wèn)題引入 67 4.2 何為軟件項(xiàng)目管理 67 4.2.1 何為項(xiàng)目 67 4.2.2 何為軟件項(xiàng)目 68 4.2.3 軟件項(xiàng)目管理的對(duì)象 68 4.2.4 軟件項(xiàng)目管理的內(nèi)容 69 4.3 如何管理軟件項(xiàng)目 71 4.3.1 軟件度量、測(cè)量和估算 71 4.3.2 制定軟件項(xiàng)目計(jì)劃 73 4.3.3 軟件項(xiàng)目跟蹤 76 4.3.4 軟件配置管理 78 4.3.5 軟件風(fēng)險(xiǎn)管理 81 4.3.6 軟件質(zhì)量保證 84 4.3.7 軟件項(xiàng)目團(tuán)隊(duì)管理 86 4.3.8 軟件項(xiàng)目管理示例 87 4.4 與軟件項(xiàng)目管理相關(guān)的規(guī)范和標(biāo)準(zhǔn) 87 4.4.1 ISO9001系列標(biāo)準(zhǔn) 87 4.4.2 GJB9001系列標(biāo)準(zhǔn) 87 4.4.3 CMM和CMMI系列標(biāo)準(zhǔn) 88 4.4.4 GJB 5000系列標(biāo)準(zhǔn) 90 4.5 支持軟件項(xiàng)目管理的CASE工具 90 4.5.1 Git工具 90 4.5.2 Project工具 91 4.6 軟件項(xiàng)目經(jīng)理 91 4.7 本章小結(jié)和思維導(dǎo)圖 92 4.8 推薦閱讀 93 4.9 知識(shí)測(cè)驗(yàn) 93 4.10 工程實(shí)訓(xùn) 94 4.11 綜合實(shí)踐 94 第5章 獲取軟件需求 96 5.1 問(wèn)題引入 96 5.2 何為軟件需求 96 5.2.1 軟件需求概念 96 5.2.2 軟件需求類(lèi)別 97 5.2.3 軟件需求特點(diǎn) 99 5.2.4 軟件需求的重要性 99 5.3 軟件需求獲取的方式和方法 100 5.3.1 獲取軟件需求的方式 100 5.3.2 獲取軟件需求的方法 102 5.3.3 獲取軟件需求的過(guò)程 103 5.4 描述初步的軟件需求 108 5.4.1 自然語(yǔ)言描述 108 5.4.2 軟件原型描述 108 5.4.3 用例圖描述 108 5.5 軟件需求文檔化和評(píng)審 113 5.5.1 撰寫(xiě)軟件需求文檔 113 5.5.2 評(píng)審初步軟件需求 113 5.5.3 軟件需求變更管理 114 5.5.4 輸出的軟件制品 114 5.6 軟件可行性分析 114 5.7 支持需求獲取的CASE工具 115 5.8 軟件需求工程師 116 5.9 本章小結(jié)和思維導(dǎo)圖 116 5.10 閱讀推薦 117 5.11 知識(shí)測(cè)驗(yàn) 118 5.12 工程實(shí)訓(xùn) 118 5.13 綜合實(shí)踐 119 第6章 軟件需求分析 120 6.1 問(wèn)題引入 120 6.2 為何要分析軟件需求 120 6.3 如何分析軟件需求 121 6.3.1 軟件需求分析的任務(wù) 121 6.3.2 軟件需求分析的過(guò)程 123 6.4 分析和確定軟件需求的優(yōu)先級(jí) 123 6.4.1 分析軟件需求的重要程度 123 6.4.2 分析軟件需求的優(yōu)先級(jí) 124 6.4.3 確定用例分析和實(shí)現(xiàn)的次序 124 6.5 結(jié)構(gòu)化軟件需求分析方法 125 6.5.1 數(shù)據(jù)流圖及軟件需求模型 125 6.5.2 面向數(shù)據(jù)流的軟件需求分析步驟和策略 126 6.5.3 步驟1: 建立頂級(jí)數(shù)據(jù)流圖 126 6.5.4 步驟2: 精化數(shù)據(jù)流圖中的轉(zhuǎn)換 127 6.5.5 步驟3: 建立數(shù)據(jù)字典 130 6.6 面向?qū)ο笮枨蠓治龇椒ā?30 6.6.1 面向?qū)ο蠼5幕靖拍睢?30 6.6.2 統(tǒng)一建模語(yǔ)言UML及支持需求建模的圖 131 6.6.3 面向?qū)ο蟮能浖枨蠓治霾襟E和策略 139 6.6.4 步驟1: 構(gòu)建和分析用例的交互模型 139 6.6.5 步驟2: 構(gòu)建和分析系統(tǒng)的分析類(lèi)模型 143 6.6.6 步驟3:構(gòu)建和分析立對(duì)象的狀態(tài)模型 146 6.7 支持需求建模和分析的CASE工具 146 6.8 軟件需求文檔化和評(píng)審 147 6.8.1 撰寫(xiě)軟件需求規(guī)格說(shuō)明書(shū) 147 6.8.2 軟件需求評(píng)審 147 6.8.3 輸出的軟件制品 149 6.9 本章小結(jié)和思維導(dǎo)圖 149 6.10 閱讀推薦 150 6.11 知識(shí)測(cè)驗(yàn) 150 6.12 工程實(shí)訓(xùn) 151 6.13 綜合實(shí)踐 151 第7章 軟件體系結(jié)構(gòu)設(shè)計(jì) 152 7.1 問(wèn)題引入和思考 152 7.2 何為軟件設(shè)計(jì) 152 7.2.1 軟件設(shè)計(jì)概念 152 7.2.2 軟件設(shè)計(jì)元素 153 7.2.3 軟件設(shè)計(jì)過(guò)程 154 7.2.4 軟件設(shè)計(jì)質(zhì)量要求 155 7.2.5 軟件設(shè)計(jì)原則 156 7.3 何為軟件體系結(jié)構(gòu) 157 7.3.1 軟件體系結(jié)構(gòu)概念 157 7.3.2 軟件體系結(jié)構(gòu)風(fēng)格 158 7.3.3 軟件體系結(jié)構(gòu)設(shè)計(jì)的重要性 161 7.4 軟件體系結(jié)構(gòu)設(shè)計(jì)的任務(wù)和策略 161 7.5 結(jié)構(gòu)化的軟件體系結(jié)構(gòu)設(shè)計(jì)方法 162 7.5.1 基本思想 163 7.5.2 步驟1:變換型數(shù)據(jù)流圖的設(shè)計(jì)方法 164 7.5.3 步驟2:事務(wù)型數(shù)據(jù)流圖的設(shè)計(jì)方法 166 7.6 面向?qū)ο蟮能浖w系結(jié)構(gòu)設(shè)計(jì) 168 7.6.1 軟件體系結(jié)構(gòu)的面向?qū)ο蠼!?68 7.6.2 步驟1:設(shè)計(jì)初步的軟件體系結(jié)構(gòu) 170 7.6.3 步驟2:精化軟件體系結(jié)構(gòu)設(shè)計(jì) 172 7.6.4 步驟3:設(shè)計(jì)軟件部署模型 174 7.7 基于大模型的智能化軟件體系結(jié)構(gòu)設(shè)計(jì) 175 7.8 軟件體系結(jié)構(gòu)設(shè)計(jì)的文檔化和評(píng)審 176 7.7.1 軟件體系結(jié)構(gòu)設(shè)計(jì)文檔化 176 7.7.2 軟件體系結(jié)構(gòu)設(shè)計(jì)評(píng)審 177 7.7.3 軟件體系結(jié)構(gòu)設(shè)計(jì)輸出 177 7.9 支持軟件設(shè)計(jì)的CASE工具 177 7.10 軟件設(shè)計(jì)工程師和軟件架構(gòu)師 178 7.11 本章小結(jié)和思維導(dǎo)圖 178 7.12 閱讀推薦 179 7.13 知識(shí)測(cè)驗(yàn) 180 7.14 工程實(shí)訓(xùn) 180 7.15 綜合實(shí)踐 181 第8章 軟件用戶界面設(shè)計(jì) 183 8.1 問(wèn)題引入 183 8.2 何為用戶界面 183 8.2.1 用戶界面的組成 183 8.2.2 用戶界面的表示 184 8.3 如何設(shè)計(jì)用戶界面 185 8.3.1 用戶界面設(shè)計(jì)的過(guò)程 185 8.3.2 用戶界面設(shè)計(jì)的原則 186 8.3.3 初步設(shè)計(jì)用戶界面 187 8.3.4 建立用戶界面間的跳轉(zhuǎn)關(guān)系 188 8.3.5 精化用戶界面設(shè)計(jì) 189 8.5 用戶界面設(shè)計(jì)的文檔化和原型化及評(píng)審 190 8.5.1 用戶界面設(shè)計(jì)的文檔化和原型化 190 8.5.2 用戶界面設(shè)計(jì)的評(píng)審 190 8.6 本章小結(jié)和思維導(dǎo)圖 191 8.7 閱讀推薦 192 8.8 知識(shí)測(cè)驗(yàn) 192 8.9 工程實(shí)訓(xùn) 192 8.10 綜合實(shí)踐 193 第9章 軟件詳細(xì)設(shè)計(jì) 194 9.1 問(wèn)題引入 194 9.2 何為詳細(xì)設(shè)計(jì) 194 9.2.1 軟件詳細(xì)設(shè)計(jì)的概念 194 9.2.2 軟件詳細(xì)設(shè)計(jì)任務(wù) 195 9.2.3 軟件詳細(xì)設(shè)計(jì)的原則 195 9.3 結(jié)構(gòu)化詳細(xì)設(shè)計(jì)方法 196 9.4 面向?qū)ο笤敿?xì)設(shè)計(jì)方法 197 9.4.1 面向?qū)ο笤敿?xì)設(shè)計(jì)過(guò)程 197 9.4.2 用例設(shè)計(jì) 198 9.4.3 類(lèi)設(shè)計(jì) 203 9.4.4 數(shù)據(jù)設(shè)計(jì) 206 9.5 基于大模型的智能化軟件詳細(xì)設(shè)計(jì) 208 9.6 支持詳細(xì)設(shè)計(jì)的CASE工具 209 9.7 軟件詳細(xì)設(shè)計(jì)的文檔化和評(píng)審 209 9.8 本章小結(jié)和思維導(dǎo)圖 211 9.9 閱讀推薦 211 9.10 知識(shí)測(cè)驗(yàn) 212 9.11 工程實(shí)訓(xùn) 212 9.12 綜合實(shí)踐 212 第 10章 代碼編寫(xiě)與部署 214 10.1 問(wèn)題引入 214 10.2 何為編寫(xiě)代碼 214 10.2.1 編寫(xiě)代碼的任務(wù) 214 10.2.2 編程語(yǔ)言選擇 214 10.3 如何編寫(xiě)代碼 215 10.3.1 編寫(xiě)代碼的依據(jù)和過(guò)程 215 10.3.2 編寫(xiě)代碼的原則 216 10.3.3 結(jié)構(gòu)化編程與面向?qū)ο缶幊獭?16 10.3.4 基于大模型的智能化代碼生成和推薦 217 10.3.5 基于代碼片段的重用來(lái)編寫(xiě)代碼 218 示例10.2 軟件開(kāi)發(fā)知識(shí)分享社區(qū)中的代碼片段及其重用 218 10.4 代碼缺陷和調(diào)試 218 10.4.1 軟件缺陷、錯(cuò)誤和失效的概念 218 10.4.2 軟件缺陷的描述 219 10.4.3 程序調(diào)試 219 10.4.4 基于群智知識(shí)來(lái)解決代碼調(diào)試和糾錯(cuò)問(wèn)題 220 10.5 代碼質(zhì)量保證 221 10.5.1 程序內(nèi)部質(zhì)量和外部質(zhì)量 221 10.5.2 程序編碼風(fēng)格 222 10.5.3 模塊化程序設(shè)計(jì) 223 10.5.4 代碼重用 224 10.5.5 程序質(zhì)量分析 225 10.6 軟件部署 226 10.6.1 軟件運(yùn)行環(huán)境 226 10.6.2 軟件部署的概念和原則 227 10.6.3 軟件部署方式 227 10.7 支持代碼編寫(xiě)和部署的CASE工具 228 10.8 程序員 229 10.9 本章小結(jié)和思維導(dǎo)圖 230 10.10 閱讀推薦 231 10.11 知識(shí)測(cè)驗(yàn) 231 10.12 工程實(shí)訓(xùn) 232 10.13 綜合實(shí)踐 232 第 11章 軟件測(cè)試 233 11.1 問(wèn)題引入 233 11.2 何為軟件測(cè)試 233 11.2.1 軟件測(cè)試的概念 233 11.2.2 軟件測(cè)試的機(jī)理 234 11.2.3 軟件測(cè)試面臨的挑戰(zhàn) 234 11.3 如何進(jìn)行軟件測(cè)試 235 11.3.1 軟件測(cè)試用例的描述 235 11.3.2 軟件測(cè)試用例的設(shè)計(jì)-白盒測(cè)試技術(shù) 236 11.3.3 軟件測(cè)試用例的設(shè)計(jì)-黑盒測(cè)試技術(shù) 238 11.3.4 非功能測(cè)試技術(shù) 240 11.3.5 軟件測(cè)試的實(shí)施 240 11.3.6 智能化軟件測(cè)試 241 示例11. 6 借助智能化軟件開(kāi)發(fā)工具來(lái)自動(dòng)生成軟件測(cè)試用例 242 11.4 軟件測(cè)試的過(guò)程和活動(dòng) 242 11.4.1 軟件測(cè)試的步驟 242 11.4.2 軟件測(cè)試的活動(dòng) 243 11.5 支持軟件測(cè)試的CASE工具 244 11.6 軟件測(cè)試工程師 244 11.7 本章小結(jié)和思維導(dǎo)圖 245 11.8 閱讀推薦 246 11.9 知識(shí)測(cè)驗(yàn) 246 11.10 工程實(shí)訓(xùn) 247 11.11 綜合實(shí)踐 247 第 12章 軟件維護(hù) 248 12.1 問(wèn)題引入 248 12.2 何為軟件維護(hù) 248 12.2.1 軟件維護(hù)概念 248 12.2.2 軟件維護(hù)的特點(diǎn) 249 12.2.3 軟件的可維護(hù)性 250 12.3 為什么要對(duì)軟件進(jìn)行維護(hù) 250 12.3.1 軟件邏輯老化問(wèn)題 250 12.3.2 產(chǎn)生軟件邏輯老化的原因 251 12.3.3 處理軟件邏輯老化問(wèn)題的策略 252 12.4 如何進(jìn)行軟件維護(hù) 252 12.4.1 軟件維護(hù)面臨的問(wèn)題 252 12.4.2 軟件維護(hù)的過(guò)程 253 12.4.3 軟件維護(hù)技術(shù) 254 12.5 支持軟件維護(hù)的CASE工具 256 12.6 軟件維護(hù)工程師 256 12.7 本章小結(jié)和思維導(dǎo)圖 257 12.8 閱讀推薦 258 12.9 知識(shí)測(cè)驗(yàn) 258 12.10 工程實(shí)訓(xùn) 258 12.11 綜合實(shí)踐 258