定 價:59 元
叢書名:面向CS2013計算機(jī)專業(yè)規(guī)劃教材
- 作者:鄭人杰 馬素霞 等
- 出版時間:2019/12/1
- ISBN:9787111642572
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.5
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書作者針對軟件工程的學(xué)科特點,注重結(jié)合實例講解軟件工程的理論與方法,避免抽象和枯燥的論述,在兼顧傳統(tǒng)的結(jié)構(gòu)化方法的同時,注重當(dāng)前廣為采用的面向?qū)ο蠛兔艚蓍_發(fā)方法,新版加入了新型的軟件開發(fā)方法,例如開源軟件、智能化軟件、微服務(wù)。強(qiáng)調(diào)軟件質(zhì)量、軟件安全和軟件從業(yè)人員的職業(yè)道德和專業(yè)素質(zhì)。
當(dāng)今,軟件業(yè)是社會經(jīng)濟(jì)發(fā)展的先導(dǎo)性和戰(zhàn)略性產(chǎn)業(yè),它已成為信息產(chǎn)業(yè)和國民經(jīng)濟(jì)新的增長點和重要支柱。軟件工程在軟件開發(fā)中起著重要的作用,對軟件產(chǎn)業(yè)的形成及發(fā)展起著決定性的推動作用。采用先進(jìn)的工程化方法進(jìn)行軟件開發(fā)和生產(chǎn)是實現(xiàn)軟件產(chǎn)業(yè)化的關(guān)鍵技術(shù)手段。與其他產(chǎn)業(yè)相比,軟件產(chǎn)業(yè)具有自己的特殊性。軟件產(chǎn)業(yè)的發(fā)展更加依賴于人力資源,因此軟件產(chǎn)業(yè)的競爭越來越集中到對人才的競爭。然而,剛畢業(yè)的大學(xué)生往往要經(jīng)過半年到一年的培訓(xùn)才能適應(yīng)軟件企業(yè)的工作。長期以來,我國軟件人才的現(xiàn)狀遠(yuǎn)遠(yuǎn)不能滿足軟件產(chǎn)業(yè)發(fā)展的要求。因此,軟件工程人員隊伍的成長,特別是高層軟件工程人員隊伍的成長顯得更為緊迫。
自從軟件工程概念誕生以來,學(xué)術(shù)界和工業(yè)界做了大量的研究與實踐工作,也取得了許多重要成果。尤其是20世紀(jì)90年代以后,隨著網(wǎng)絡(luò)技術(shù)及面向?qū)ο蠹夹g(shù)的廣泛應(yīng)用,軟件工程取得了突飛猛進(jìn)的發(fā)展。軟件工程已從計算機(jī)科學(xué)與技術(shù)中脫離出來,逐漸形成了一門獨立的學(xué)科。軟件工程教育所處的地位也越來越重要,軟件工程課程已成為軟件工程、計算機(jī)科學(xué)與技術(shù)等專業(yè)的必修課程。
軟件工程課程實踐性比較強(qiáng),如果學(xué)生沒有實踐經(jīng)驗,則很難理解相關(guān)的理論知識。因此,教師普遍感到軟件工程課程難教,而學(xué)生則普遍感到難學(xué)。近年來,軟件工程學(xué)科的發(fā)展非常迅速,新的理論、方法和工具層出不窮,其中很多已經(jīng)應(yīng)用到企業(yè)的實際工作中。軟件工程的教學(xué)面臨越來越大的壓力。我們認(rèn)為,除了需要在教學(xué)內(nèi)容、教學(xué)方法方面進(jìn)行改革之外,實踐能力的培養(yǎng)對建設(shè)一支企業(yè)需要的合格軟件工程人才隊伍尤為關(guān)鍵。
本書在編寫中力圖遵循以下原則:
(1)既要強(qiáng)調(diào)和突出基本概念、基本方法,又要盡可能使材料內(nèi)容的組織符合讀者的認(rèn)識規(guī)律,在講解概念、方法的過程中盡量結(jié)合實例,并且注重軟件工程方法、技術(shù)和工具的綜合應(yīng)用,避免只是抽象和枯燥地講解。
(2)在介紹傳統(tǒng)的結(jié)構(gòu)化方法和面向?qū)ο蠓椒ǖ耐瑫r,兼顧當(dāng)前廣為采用的流行方法,如面向服務(wù)的方法和面向數(shù)據(jù)的方法,以突出教材的實用性以及學(xué)科當(dāng)前的發(fā)展。
(3)既要充分重視技術(shù)性內(nèi)容,使初學(xué)者掌握必要的工程知識和方法,同時也應(yīng)兼顧軟件工程實踐中必不可少的管理知識,例如項目管理、質(zhì)量管理、人員管理等內(nèi)容。
本書在第2版的基礎(chǔ)上進(jìn)一步對內(nèi)容做了調(diào)整和充實,所做改動概述如下:
(1)更新了第1章,在13節(jié)“軟件工程的目標(biāo)”中提供了國際標(biāo)準(zhǔn)的軟件質(zhì)量特性及其子特性作為軟件產(chǎn)品的質(zhì)量目標(biāo)。在15節(jié)“軟件工程方法概述”中增加了面向服務(wù)的方法和面向數(shù)據(jù)的方法。在164節(jié)“常用軟件工具介紹”中對代表性的軟件工具進(jìn)行了修訂。
(2)第10章“軟件測試方法”中增加了107節(jié)“自動化測試”,原107節(jié)“調(diào)試”后移為108節(jié)。
(3)第11章“軟件維護(hù)”中增加了113節(jié)“逆向工程”和114節(jié)“重構(gòu)”,原113~115節(jié)依次后移為115~117節(jié)。
(4)第13章“軟件項目管理”中增加了137節(jié)“質(zhì)量管理”。
(5)本書最后增加了第15章“軟件人員的職業(yè)道德和社會責(zé)任”。
(6)新增加了一個附錄,其中列舉了近年國內(nèi)外軟件引起的系統(tǒng)重大事故,目的是讓讀者從實際案例中吸取教訓(xùn),提高對軟件質(zhì)量的重視。
總之,本書力爭做到結(jié)構(gòu)合理、內(nèi)容豐富,講解由淺入深,既體現(xiàn)知識點的連貫性、完整性,又體現(xiàn)其在實際中的應(yīng)用。
前言
教學(xué)建議
第一部分軟件工程概述
第1章軟件與軟件工程的概念
11軟件的概念、特性和分類
111軟件的概念及特性
112軟件的分類
12軟件危機(jī)與軟件工程
121軟件危機(jī)
122軟件工程
13軟件工程的目標(biāo)
14軟件生存期
15軟件工程方法概述
151傳統(tǒng)方法
152面向?qū)ο蠓椒?br>153面向服務(wù)方法
154面向數(shù)據(jù)方法
155形式化方法
16軟件工具概述
161軟件工具的概念
162軟件工具的發(fā)展
163軟件工具的分類
164常用軟件工具介紹
17軟件工程知識體系及知識域
習(xí)題
第2章軟件生存期模型
21瀑布模型
22快速原型模型
23增量模型
24螺旋模型
25噴泉模型
26統(tǒng)一過程
27基于構(gòu)件的開發(fā)模型
28敏捷過程
習(xí)題
第二部分結(jié)構(gòu)化分析與設(shè)計方法
第3章軟件需求獲取與結(jié)構(gòu)化分析方法
31需求獲取與需求分析階段的任務(wù)
311需求獲取的任務(wù)和原則
312需求獲取的過程
313軟件需求分析階段的任務(wù)
32結(jié)構(gòu)化分析方法
321功能建模
322數(shù)據(jù)建模
323行為建模
324數(shù)據(jù)字典
325加工規(guī)格說明
33系統(tǒng)需求規(guī)格說明
331軟件需求規(guī)格說明模板
332SRS和DRD的質(zhì)量要求
34需求評審
341正式的需求評審
342需求評審中的常見風(fēng)險
35需求管理
351需求跟蹤
352需求變更管理
習(xí)題
第4章結(jié)構(gòu)化設(shè)計方法
41軟件設(shè)計的概念及原則
411軟件設(shè)計的概念
412軟件設(shè)計的原則
42結(jié)構(gòu)化設(shè)計
421結(jié)構(gòu)化軟件設(shè)計的任務(wù)
422結(jié)構(gòu)化設(shè)計與結(jié)構(gòu)化分析的關(guān)系
423模塊結(jié)構(gòu)及表示
424數(shù)據(jù)結(jié)構(gòu)及表示
43體系結(jié)構(gòu)設(shè)計
431基于數(shù)據(jù)流方法的設(shè)計過程
432典型的數(shù)據(jù)流類型和系統(tǒng)結(jié)構(gòu)
433變換型映射方法
434事務(wù)型映射方法
435模塊間的耦合與內(nèi)聚
436軟件模塊結(jié)構(gòu)的改進(jìn)方法
44接口設(shè)計
441接口設(shè)計概述
442人機(jī)交互界面
45數(shù)據(jù)設(shè)計
451文件設(shè)計
452數(shù)據(jù)庫設(shè)計
46過程設(shè)計
461結(jié)構(gòu)化程序設(shè)計
462程序流程圖
463NS圖
464PAD圖
465偽代碼
466自頂向下、逐步細(xì)化的設(shè)計過程
47軟件設(shè)計規(guī)格說明
48軟件設(shè)計評審
481概要設(shè)計評審的檢查內(nèi)容
482詳細(xì)設(shè)計評審的檢查內(nèi)容
習(xí)題
第三部分面向?qū)ο蠓治雠c設(shè)計方法
第5章面向?qū)ο蠓椒ㄅcUML
51面向?qū)ο蟮母拍钆c開發(fā)方法
511對象
512類與封裝
513繼承
514多態(tài)
515消息通信
516面向?qū)ο蟮能浖_發(fā)方法
52UML簡介
521UML的產(chǎn)生和發(fā)展
522UML的特點
523UML的基本模型
53UML的事物
531結(jié)構(gòu)事物
532行為事物
533分組事物
534注釋事物
54UML的關(guān)系
541依賴關(guān)系
542關(guān)聯(lián)關(guān)系
543泛化關(guān)系
544實現(xiàn)關(guān)系
55UML的圖
551用例圖
552類圖
553順序圖與通信圖
554狀態(tài)圖
555活動圖
556構(gòu)件圖與部署圖
習(xí)題
第6章面向?qū)ο蠓治?br>61面向?qū)ο蠓治龈攀?br>611確定系統(tǒng)邊界
612面向?qū)ο蠓治龅?種模型
62建立用例模型
621確定業(yè)務(wù)參與者
622確定業(yè)務(wù)需求用例
623創(chuàng)建用例圖
63建立對象模型
631對象模型的5個層次
632劃分主題
633確定類與對象
634確定結(jié)構(gòu)
635確定屬性
636確定服務(wù)
637建立類圖
64建立動態(tài)模型
641順序圖
642通信圖
643狀態(tài)圖
習(xí)題
第7章軟件體系結(jié)構(gòu)與設(shè)計模式
71軟件體系結(jié)構(gòu)的基本概念
711什么是體系結(jié)構(gòu)
712體系結(jié)構(gòu)模式、風(fēng)格和框架的概念
713體系結(jié)構(gòu)的重要作用
72典型的體系結(jié)構(gòu)風(fēng)格
721數(shù)據(jù)流風(fēng)格
722調(diào)用∕返回風(fēng)格
723倉庫風(fēng)格
73特定領(lǐng)域的軟件體系結(jié)構(gòu)
731類屬模型
732參考模型
74分布式系統(tǒng)結(jié)構(gòu)
741多處理器體系結(jié)構(gòu)
742客戶機(jī)∕服務(wù)器體系結(jié)構(gòu)
743分布式對象體系結(jié)構(gòu)
744代理
75體系結(jié)構(gòu)框架
751模型視圖控制器
752J2EE體系結(jié)構(gòu)框架
753PCMEF與PCBMER框架
76設(shè)計模式
761抽象工廠
762單件
763外觀
764適配器
765職責(zé)鏈
766中介者
767觀察者
習(xí)題
第8章面向?qū)ο笤O(shè)計
81面向?qū)ο笤O(shè)計過程與準(zhǔn)則
811面向?qū)ο笤O(shè)計過程
812面向?qū)ο笤O(shè)計準(zhǔn)則
82體系結(jié)構(gòu)模塊及依賴性
821類及其依賴性
822接口及其依賴性
823包及其依賴性
824構(gòu)件及其依賴性
83系統(tǒng)分解
831子系統(tǒng)和類
832服務(wù)和子系統(tǒng)接口
833子系統(tǒng)分層和劃分
834Coad & Yourdon的面向?qū)ο笤O(shè)計模型
835子系統(tǒng)之間的兩種交互方式
836組織系統(tǒng)的兩種方案
84問題域部分的設(shè)計
85人機(jī)交互部分的設(shè)計
851用戶界面設(shè)計步驟
852Web應(yīng)用系統(tǒng)的界面設(shè)計
86任務(wù)管理部分的設(shè)計
87數(shù)據(jù)管理部分的設(shè)計
88對象設(shè)計
881使用模式設(shè)計對象
882接口規(guī)格說明設(shè)計
883重構(gòu)對象設(shè)計模型
89優(yōu)化對象設(shè)計模型
習(xí)題
第四部分軟件實現(xiàn)與測試
第9章軟件實現(xiàn)
91程序設(shè)計語言
911程序設(shè)計語言的性能
912程序設(shè)計語言的分類
913程序設(shè)計語言的選擇
92程序設(shè)計風(fēng)格
921源程序文檔化
922數(shù)據(jù)說明標(biāo)準(zhǔn)化
923語句結(jié)構(gòu)簡單化
924輸入/輸出規(guī)范化
93編碼規(guī)范
94程序效率與性能分析
941算法對效率的影響
942影響存儲器效率的因素
943影響輸入/輸出的因素
習(xí)題
第10章軟件測試方法
101軟件測試的基本概念
1011什么是軟件測試
1012軟件測試的目的和原則
1013軟件測試的對象
1014測試信息流
1015測試與軟件開發(fā)各階段的關(guān)系
1016白盒測試與黑盒測試
102白盒測試的測試用例設(shè)計
1021邏輯覆蓋
1022語句覆蓋
1023判定覆蓋
1024條件覆蓋
1025判定條件覆蓋
1026條件組合覆蓋
1027路徑覆蓋
103基本路徑覆蓋
104黑盒測試的測試用例設(shè)計
1041等價類劃分
1042邊界值分析
105軟件測試的策略
1051單元測試
1052組裝測試
1053確認(rèn)測試
1054系統(tǒng)測試
1055測試的類型
106人工測試
1061靜態(tài)分析
1062人工測試方法
107自動化測試
1071自動化測試與手工測試
1072腳本技術(shù)
1073自動化測試框架及測試流程
108調(diào)試
習(xí)題
第五部分軟件維護(hù)與軟件管理
第11章軟件維護(hù)
111軟件維護(hù)的概念
1111軟件維護(hù)的定義
1112影響維護(hù)工作量的因素
1113軟件維護(hù)的策略
112軟件維護(hù)活動
1121軟件維護(hù)申請報告
1122軟件維護(hù)工作流程
1123維護(hù)檔案記錄
1124維護(hù)評價
113逆向工程
114重構(gòu)
115程序修改的步驟和修改的副作用
1151分析和理解程序
1152修改程序
1153修改程序的副作用及其控制
1154重新驗證程序
116軟件的維護(hù)性
1161軟件維護(hù)性定義
1162軟件維護(hù)性度量
117提高軟件維護(hù)性的方法
1171使用提高軟件維護(hù)性的開發(fā)技術(shù)和工具
1172實施開發(fā)階段產(chǎn)品的維護(hù)性審查
1173改進(jìn)文檔
習(xí)題
第12章軟件過程與軟件過程改進(jìn)
121軟件過程概述
122軟件生存期過程國際標(biāo)準(zhǔn)
123軟件過程成熟度
1231什么是軟件過程成熟度
1232過程制度化
124軟件能力成熟度模型
1241CMM與SEI
1242CMM的演化
1243CMM族和CMMI
1244CMMI 13簡介
1245CMMI評估
125軟件過程改進(jìn)
1251軟件過程改進(jìn)的IDEAL模型
1252軟件過程改進(jìn)框架
1253有效的軟件過程
習(xí)題
第13章軟件項目管理
131軟件項目管理概述
1311軟件項目管理的目標(biāo)
1312軟件項目管理涉及的幾個方面
132項目估算
1321項目策劃與項目估算
1322軟件規(guī)模估算的功能點方法
1323軟件開發(fā)成本估算
133風(fēng)險管理
1331什么是軟件風(fēng)險
1332風(fēng)險管理的任務(wù)
1333風(fēng)險評估
1334風(fēng)險控制
1335做好風(fēng)險管理的建議
134進(jìn)度管理
1341進(jìn)度控制問題
1342甘特圖
1343時標(biāo)網(wǎng)狀圖
1344PERT圖
135需求管理
1351系統(tǒng)需求與軟件需求
1352需求工程
1353需求變更
1354需求變更控制
1355可追溯性管理
136配置管理
1361什么是軟件配置管理
1362軟件配置標(biāo)識
1363變更管理
1364版本控制
1365系統(tǒng)建立
1366配置審核
1367配置狀態(tài)報告
137質(zhì)量管理
習(xí)題
第14章軟件工程標(biāo)準(zhǔn)及軟件文檔
141軟件工程標(biāo)準(zhǔn)
1411標(biāo)準(zhǔn)的概念
1412軟件標(biāo)準(zhǔn)化的意義
1413標(biāo)準(zhǔn)的分類與分級
1414軟件工程標(biāo)準(zhǔn)的制定與實施
1415軟件組織內(nèi)的標(biāo)準(zhǔn)化工作
142軟件文檔
1421軟件文檔的作用和分類
1422軟件基本文檔的內(nèi)容要求
1423對文檔編制的質(zhì)量要求
1424文檔的管理和維護(hù)
習(xí)題
第15章軟件人員的職業(yè)道德和社會責(zé)任
151當(dāng)前軟件產(chǎn)品和軟件產(chǎn)業(yè)的社會地位
152軟件人員不良行為表現(xiàn)的實例
153軟件工程人員的職業(yè)道德修養(yǎng)
1531職業(yè)道德和社會責(zé)任
1532軟件工程人員職業(yè)道德修養(yǎng)的若干方面
154在軟件業(yè)中組織職業(yè)道德規(guī)范的貫徹實施
附錄近年國內(nèi)外軟件引起的系統(tǒng)重大事故
參考文獻(xiàn)