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