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