本書(shū)按照典型的軟件開(kāi)發(fā)過(guò)程來(lái)組織內(nèi)容,旨在培養(yǎng)讀者具備軟件工程思想及實(shí)際軟件開(kāi)發(fā)的能力。本書(shū)共13章, 內(nèi)容涉及軟件工程概述、軟件過(guò)程、敏捷軟件開(kāi)發(fā)、可行性研究與項(xiàng)目開(kāi)發(fā)計(jì)劃、結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、面向?qū)ο蠓椒ㄅcUML、面向?qū)ο蠓治、軟件體系結(jié)構(gòu)與設(shè)計(jì)模式、面向?qū)ο笤O(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試、軟件維護(hù)與軟件工程管理。本書(shū)理論與實(shí)踐相結(jié)合,內(nèi)容翔實(shí),可操作性強(qiáng)。
本書(shū)適合作為高等院校計(jì)算機(jī)科學(xué)、軟件工程及相關(guān)專(zhuān)業(yè)“軟件工程”課程的教材。
第2版前言
第1版前言
第1章軟件工程概述
11軟件
111軟件的概念及特點(diǎn)
112軟件的分類(lèi)
12軟件危機(jī)
121軟件危機(jī)的表現(xiàn)與原因
122軟件危機(jī)的啟示
13軟件工程
131軟件工程的概念
132軟件工程研究的內(nèi)容
133軟件工程目標(biāo)和原則
134軟件工程知識(shí)體系
135軟件工程的發(fā)展
14軟件開(kāi)發(fā)方法
141基本的軟件開(kāi)發(fā)方法
142開(kāi)源軟件開(kāi)發(fā)方法
143群體化軟件開(kāi)發(fā)方法
15軟件工程工具
16軟件工程人員的職業(yè)道德
17軟件學(xué)院“‘墨韻’讀書(shū)會(huì)圖書(shū)共享平臺(tái)”案例介紹習(xí)題
第2章軟件過(guò)程
21軟件過(guò)程概述
22軟件生命周期
221軟件生命周期的概念
222傳統(tǒng)軟件生命周期的各個(gè)階段
23軟件過(guò)程模型
231瀑布模型
232快速原型模型
233增量模型
234螺旋模型
235噴泉模型
236基于組件的開(kāi)發(fā)模型
237統(tǒng)一軟件開(kāi)發(fā)過(guò)程模型
238幾種模型之間的關(guān)系
239選擇軟件過(guò)程模型
24 軟件過(guò)程實(shí)例
習(xí)題
第3章敏捷軟件開(kāi)發(fā)
31敏捷軟件開(kāi)發(fā)方法
32Scrum
321Scrum概述
322Sprint
323每日站會(huì)
324用戶(hù)故事
325Backlog
326結(jié)對(duì)編程
33看板
331看板概述
332看板與Scrum的區(qū)別
34極限編程
341XP的4個(gè)價(jià)值觀
342XP的12個(gè)核心實(shí)踐
35CI/CD
351CI/CD概述
352CI/CD管道
353CI/CD的優(yōu)勢(shì)
36DevOps
361DevOps生命周期
362DevOps文化
363DevOps工具
37敏捷軟件開(kāi)發(fā)、CI/CD和DevOps
38敏捷軟件開(kāi)發(fā)實(shí)例
習(xí)題
第4章可行性研究與項(xiàng)目開(kāi)發(fā)計(jì)劃
41項(xiàng)目立項(xiàng)概述
42可行性研究的任務(wù)
421技術(shù)可行性
422操作可行性
423經(jīng)濟(jì)可行性
43可行性研究的步驟
44可行性研究實(shí)例
45制訂項(xiàng)目開(kāi)發(fā)計(jì)劃
習(xí)題
第5章結(jié)構(gòu)化分析
51需求分析
511需求分析的任務(wù)和原則
512需求分析的步驟
513需求管理
514需求分析的常用方法
515原型設(shè)計(jì)
52結(jié)構(gòu)化分析概述
53結(jié)構(gòu)化分析的方法
531功能建模
532數(shù)據(jù)建模
533行為建模
534數(shù)據(jù)字典
535加工規(guī)格說(shuō)明
54結(jié)構(gòu)化分析的圖形工具
541層次方框圖
542Warnier圖
543IPO圖
55結(jié)構(gòu)化分析實(shí)例
習(xí)題
第6章結(jié)構(gòu)化設(shè)計(jì)
61軟件設(shè)計(jì)的基本概念
611軟件設(shè)計(jì)的意義和目標(biāo)
612軟件設(shè)計(jì)的原則
613軟件設(shè)計(jì)的分類(lèi)
62數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)
63用戶(hù)界面設(shè)計(jì)
631設(shè)計(jì)驅(qū)動(dòng)開(kāi)發(fā)
632目標(biāo)用戶(hù)群體
633簡(jiǎn)潔與清晰
634實(shí)現(xiàn)模型與心智模型
635設(shè)計(jì)的規(guī)范性
636設(shè)計(jì)的可用性和易用性
637設(shè)計(jì)的一致性
638設(shè)計(jì)的容錯(cuò)性
64結(jié)構(gòu)化軟件設(shè)計(jì)概述
65結(jié)構(gòu)化設(shè)計(jì)與結(jié)構(gòu)化分析的關(guān)系
66體系結(jié)構(gòu)設(shè)計(jì)
661表示軟件結(jié)構(gòu)的圖形工具
662面向數(shù)據(jù)流的設(shè)計(jì)方法
663面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法
67接口設(shè)計(jì)
671接口設(shè)計(jì)概述
672界面設(shè)計(jì)
673UX設(shè)計(jì)與UI設(shè)計(jì)的區(qū)別
68數(shù)據(jù)設(shè)計(jì)
69過(guò)程設(shè)計(jì)
691程序流程圖
692N-S圖
693PAD圖
694過(guò)程設(shè)計(jì)語(yǔ)言
610軟件設(shè)計(jì)評(píng)審
611結(jié)構(gòu)化設(shè)計(jì)實(shí)例
習(xí)題
第7章面向?qū)ο蠓椒ㄅcUML
71面向?qū)ο蟮能浖こ谭椒?br>711面向?qū)ο蟮幕靖拍?br>712面向?qū)ο蟮能浖こ谭椒ǖ奶卣髋c優(yōu)勢(shì)
713面向?qū)ο蟮膶?shí)施步驟
72統(tǒng)一建模語(yǔ)言
721UML簡(jiǎn)述
722UML的應(yīng)用范圍
723UML的圖
724UML“4+1”視圖
73靜態(tài)建模機(jī)制
731用例圖
732類(lèi)圖和對(duì)象圖
733包圖
74動(dòng)態(tài)建模機(jī)制
741順序圖
742協(xié)作圖
743狀態(tài)圖
744活動(dòng)圖
75描述物理架構(gòu)的機(jī)制
751構(gòu)件圖
752部署圖
76面向?qū)ο蠓椒ㄅcUML實(shí)例
習(xí)題
第8章面向?qū)ο蠓治?br>81面向?qū)ο蠓治龇椒?br>811面向?qū)ο蠓治鲞^(guò)程
812面向?qū)ο蠓治鲈瓌t
82面向?qū)ο蠼?br>821建立對(duì)象模型
822建立動(dòng)態(tài)模型
823建立功能模型
8243種模型之間的關(guān)系
83面向?qū)ο蠓治鰧?shí)例
習(xí)題
第9章軟件體系結(jié)構(gòu)與設(shè)計(jì)模式
91軟件體系結(jié)構(gòu)概述
911軟件體系結(jié)構(gòu)的概念
912軟件體系結(jié)構(gòu)建模
913軟件體系結(jié)構(gòu)的分層模型
914軟件體系結(jié)構(gòu)的作用
92典型的軟件體系結(jié)構(gòu)風(fēng)格
921數(shù)據(jù)流風(fēng)格
922調(diào)用返回風(fēng)格
923獨(dú)立構(gòu)件風(fēng)格
924虛擬機(jī)風(fēng)格
925倉(cāng)庫(kù)風(fēng)格
93軟件質(zhì)量屬性
94分布式系統(tǒng)結(jié)構(gòu)
941多處理器體系結(jié)構(gòu)
942客戶(hù)機(jī)/服務(wù)器體系結(jié)構(gòu)
943分布式對(duì)象體系結(jié)構(gòu)
944對(duì)等端體系結(jié)構(gòu)
945代理
95體系結(jié)構(gòu)框架
951模型-視圖-控制器
952模型-視圖-表示器
953J2EE體系結(jié)構(gòu)框架
954PCMEF框架
955PCBMER框架
96軟件系統(tǒng)的設(shè)計(jì)模式
961工廠模式
962橋接模式
963策略模式
964其他模式
97軟件體系結(jié)構(gòu)與設(shè)計(jì)模式實(shí)例
習(xí)題
第10章面向?qū)ο笤O(shè)計(jì)
101面向?qū)ο笤O(shè)計(jì)與結(jié)構(gòu)化設(shè)計(jì)
102面向?qū)ο笤O(shè)計(jì)與面向?qū)ο蠓治龅年P(guān)系
103面向?qū)ο笤O(shè)計(jì)的過(guò)程與原則
1031面向?qū)ο笤O(shè)計(jì)的過(guò)程
1032 面向?qū)ο笤O(shè)計(jì)的原則
104面向?qū)ο笤O(shè)計(jì)的啟發(fā)規(guī)則
105系統(tǒng)設(shè)計(jì)
1051系統(tǒng)分解
1052問(wèn)題域子系統(tǒng)的設(shè)計(jì)
1053人機(jī)交互子系統(tǒng)的設(shè)計(jì)
1054任務(wù)管理子系統(tǒng)的設(shè)計(jì)
1055數(shù)據(jù)管理子系統(tǒng)的設(shè)計(jì)
106 對(duì)象設(shè)計(jì)
1061設(shè)計(jì)類(lèi)中的服務(wù)
1062設(shè)計(jì)類(lèi)的關(guān)聯(lián)
1063對(duì)象設(shè)計(jì)優(yōu)化
107面向?qū)ο笤O(shè)計(jì)實(shí)例
習(xí)題
第11章軟件實(shí)現(xiàn)
111編程語(yǔ)言
1111編程語(yǔ)言的發(fā)展與分類(lèi)
1112選擇編程語(yǔ)言需考慮的因素
112編程風(fēng)格與規(guī)范
113面向?qū)ο髮?shí)現(xiàn)
114代碼重用
115分析和評(píng)價(jià)代碼的質(zhì)量
116軟件實(shí)現(xiàn)實(shí)例
117案例實(shí)踐:使用WebStorm和PyCharm實(shí)現(xiàn)軟件學(xué)院“‘墨韻’讀書(shū)會(huì)圖書(shū)共享平臺(tái)”的“用戶(hù)登錄”模塊
習(xí)題
第12章軟件測(cè)試
121軟件測(cè)試的基本概念
1211軟件測(cè)試的原則
1212軟件測(cè)試模型
122軟件測(cè)試的分類(lèi)
123測(cè)試用例
124軟件測(cè)試方法
125黑盒測(cè)試
1251等價(jià)類(lèi)劃分法
1252邊界值分析法
1253錯(cuò)誤推測(cè)法
1254因果圖法
1255決策表法
1256場(chǎng)景法
1257黑盒測(cè)試方法的選擇
126白盒測(cè)試
1261代碼檢查法
1262靜態(tài)結(jié)構(gòu)分析法
1263程序插樁技術(shù)
1264邏輯覆蓋法
1265基本路徑法
1266白盒測(cè)試方法的選擇
1267白盒測(cè)試與黑盒測(cè)試的比較
127軟件測(cè)試的一般步驟
128單元測(cè)試
1281單元測(cè)試概述
1282單元測(cè)試內(nèi)容
1283單元測(cè)試方法
129集成測(cè)試
1291集成測(cè)試概述
1292集成測(cè)試分析
1293集成測(cè)試策略
1210系統(tǒng)測(cè)試
12101系統(tǒng)測(cè)試概述
12102系統(tǒng)測(cè)試類(lèi)型
1211驗(yàn)收測(cè)試
12111驗(yàn)收測(cè)試概述
12112驗(yàn)收測(cè)試內(nèi)容
12113α測(cè)試和β測(cè)試
1212回歸測(cè)試
1213面向?qū)ο蟮能浖䴗y(cè)試
1214自動(dòng)化測(cè)試
12141手工測(cè)試與自動(dòng)化測(cè)試
12142自動(dòng)化測(cè)試的優(yōu)缺點(diǎn)
12143自動(dòng)化測(cè)試工具
1215軟件調(diào)試
1216軟件測(cè)試實(shí)例
1217案例實(shí)踐:使用PyCharm對(duì)軟件學(xué)院“‘墨韻’讀書(shū)會(huì)圖書(shū)共享平臺(tái)”的“用戶(hù)登錄”模塊進(jìn)行單元測(cè)試
習(xí)題
第13章軟件維護(hù)與軟件工程管理
131軟件維護(hù)
1311軟件部署與軟件交付
1312軟件維護(hù)的過(guò)程
1313軟件維護(hù)的分類(lèi)
1314軟件的可維護(hù)性
1315軟件維護(hù)的副作用
1316自動(dòng)化運(yùn)維
1317軟件再工程——重構(gòu)、正向工程、逆向工程
132軟件估算
1321軟件估算的概念
1322軟件估算的方法
1323軟件估算的原則與技巧
133軟件開(kāi)發(fā)進(jìn)度計(jì)劃
1331Gantt圖
1332PERT圖
134軟件開(kāi)發(fā)人員組織
1341民主制程序員組
1342主程序員組
1343現(xiàn)代程序員組
135軟件開(kāi)發(fā)風(fēng)險(xiǎn)及其管理
1351軟件開(kāi)發(fā)風(fēng)險(xiǎn)
1352軟件開(kāi)發(fā)風(fēng)險(xiǎn)管理
136軟件質(zhì)量保證
1361軟件質(zhì)量的基本概念
1362軟件質(zhì)量保證的措施
137軟件配置管理
1371軟件配置管理術(shù)語(yǔ)
1372配置管理的過(guò)程
1373配置管理的角色劃分
138軟件工程標(biāo)準(zhǔn)與軟件文檔
1381軟件工程標(biāo)準(zhǔn)
1382軟件文檔
139軟件過(guò)程能力成熟度模型
1310軟件項(xiàng)目管理
13101軟件項(xiàng)目管理概述
13102軟件項(xiàng)目管理與軟件工程的關(guān)系
習(xí)題
參考文獻(xiàn)