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