軟體工程[鄂大偉、尤志寧、葉文來等編著書籍]

《軟體工程》是2010年8月清華大學出版社出版的圖書,作者是鄂大偉、尤志寧、葉文來。

內容簡介

本書以面向對象程式設計技術的本質屬性為主線,以C++語言為基礎,全面地闡述了面向對象程式設計的基本原理。全書共分13章,前5章介紹C++語言的基本編程技術,包括C++的數據類型、常用的運算符、結構化控制語句和函式; 第6章~第9章介紹面向對象程式設計方法的核心內容,包括類和對象、類的繼承和多態; 第10章介紹C++的程式結構、編譯預處理指令和命名空間等內容; 第11章介紹C++語言標準庫中的輸入/輸出流類; 第12章以C++語言為基礎,介紹面向對象的異常處理機制; 第13章簡要介紹使用C++語言和面向對象的程式設計方法設計Windows應用程式的方法。本書語言簡潔流暢,通俗易懂,內容全面,重點突出,對核心和重點內容都佐以大量的例證。

圖書目錄

第1篇軟體工程與項目管理

第1章軟體工程概述

1.1軟體的定義與特點

1.1.1什麼是軟體

1.1.2軟體的特點與本質

1.1.3“沒有銀彈”——複雜性是“軟體危機”的本質原因

1.2軟體工程的定義及研究的內容

1.2.1科學、工程與技術的界定

1.2.2軟體工程的定義與原理

1.2.3軟體工程的3個要素

1.2.4軟體開發方法——對客觀世界的認知觀

1.2.5軟體工程與相關科學的關係

1.3軟體工程的教育與知識體系

1.3.1軟體工程的教育體系

1.3.2CC2005的4個方向專業規範

1.3.3軟體工程的知識體系——SWEBOK

1.4軟體工程的標準

1.4.1軟體工程標準化的意義

1.4.2軟體工程的國際標準與體系

1.4.3國家標準

1.5計算機輔助軟體工程

1.6軟體工程人員的職業道德與行為準則

本章小結

思考與練習

第2章軟體過程

2.1軟體過程

2.1.1過程及其特徵

2.1.2軟體過程的公共框架

2.2軟體過程模型

2.2.1理解軟體過程模型

2.2.2瀑布模型

2.2.3演化軟體過程模型

2.2.4快速原型開發方法

2.2.5統一軟體過程

2.2.6核心工作流

2.2.7形式化方法模型

2.2.8軟體復用——基於構件的開發方法

2.2.9第4代技術

2.2.10微軟公司的軟體過程模型

2.3軟體過程改進

2.3.1軟體能力成熟度模型——CMM與CMMI

2.3.2CMM/CMMI的套用及面臨的問題

2.3.3個體軟體過程

2.3.4團隊軟體過程

2.3.5CMM、TSP、PSP三者的關係

本章小結

思考與練習

第3章軟體工程領域下的項目管理

3.1項目管理的歷史實踐

3.1.1遠古的偉大工程實踐

3.1.2溝通的故事——巴比倫塔的倒塌

3.2軟體項目管理的範圍與內容

3.2.1什麼是項目管理

3.2.2軟體項目管理的範圍

3.2.3人員

3.2.4產品

3.2.5過程

3.2.6項目

3.3軟體項目管理的活動——從這裡開始

3.3.1軟體項目管理的活動概述

3.3.2項目溝通與需求管理

3.3.3軟體項目計畫的制定

3.3.4項目範圍與管理

3.3.5工作分解結構

3.3.6軟體項目的組織

3.4項目進度管理

3.4.1項目里程碑

3.4.2人員與工作量分配

3.4.3項目進度管理的可視化工具

3.4.4項目管理軟體及其功能

本章小結

思考與練習

第4章軟體項目估算

4.1軟體項目估算概述

4.1.1什麼是估算

4.1.2軟體項目估算的特點

4.1.3軟體項目估算的複雜性分析

4.1.4軟體項目估算的相關內容

4.2項目規模估算

4.2.1基於代碼行的規模估算

4.2.2功能點估算

4.2.3基於計畫評審技術的規模估算

4.3工作量估算

4.3.1用代碼行與功能點估算工作量的例子

4.3.2基於數學模型的工作量估算

4.3.3COCOMO模型

4.3.4COCOMO Ⅱ模型

4.3.5Putnam模型

4.4軟體成本估算

4.4.1軟體項目成本的組成

4.4.2軟體成本的估算方法

4.4.3估算技術的套用與評價

4.5項目進度估算

4.5.1三點估算方法

4.5.2項目進度獲取值分析——項目計畫與實際進展的定量比較

4.6軟體工程經濟學

4.6.1經濟學與工程經濟學

4.6.2軟體工程經濟學研究的基本問題

4.6.3資金的時間價值

4.6.4軟體工程經濟學中的成本效益評價技術

本章小結

思考與練習

第5章軟體質量管理

5.1軟體質量及其特性

5.1.1難以定義和度量的軟體質量

5.1.2軟體質量特性

5.1.3軟體質量保證及其活動

5.2軟體配置管理

5.2.1制定項目的配置計畫

5.2.2軟體配置項及其標識

5.2.3版本控制

5.2.4變更控制

5.2.5正式技術複審

本章小結

思考與練習

第6章軟體風險管理

6.1軟體項目的風險管理

6.1.1風險與項目風險

6.1.2軟體項目風險與管理

6.1.3軟體風險的定義

6.1.4軟體風險的類型

6.2軟體風險管理的體系框架

6.2.1常見風險管理過程框架

6.2.2軟體風險管理的一般過程

6.3風險識別

6.3.1風險識別過程

6.3.2風險識別的方法與工具

6.4風險分析

6.4.1風險分析過程

6.4.2風險分析的技術與工具

6.5風險規劃

6.5.1風險規划過程

6.5.2風險規劃的工具與技術

6.6風險監控

6.6.1風險監控過程

6.6.2風險監控的技術與方法

6.6.3風險監控與管理計畫——RMMM計畫

本章小結

思考與練習

第2篇結構化開發方法

第7章面向過程的結構化分析

7.1系統工程

7.1.1系統論

7.1.2系統工程

7.1.3系統工程層次結構

7.1.4業務過程工程

7.1.5產品工程

7.2需求分析

7.2.1需求分析概述和特點

7.2.2軟體需求分析的目標

7.2.3需求分析的過程

7.2.4需求獲取技術

7.3結構化分析方法

7.3.1數據流圖

7.3.2狀態圖

7.3.3實體關係圖(ER圖)

本章小結

思考與練習

第8章面向過程的結構化設計

8.1軟體設計的基本概念和原理

8.1.1抽象

8.1.2信息隱蔽

8.1.3模組化設計

8.1.4模組獨立

8.1.5耦合

8.1.6內聚

8.1.7結構圖

8.2軟體總體設計的任務和目標

8.3結構化軟體設計

8.3.1基本概念

8.3.2變換分析

8.3.3事務分析

8.4過程設計

8.4.1程式流程圖

8.4.2盒式(NS)圖

8.4.3PAD

8.4.4PDL

8.4.5判定表

8.4.6判定樹

8.5Jackson設計方法

本章小結

思考與練習

第9章面向過程的結構化實現

9.1概述

9.2編碼

9.2.1軟體編碼的基本概念

9.2.2程式設計語言的選擇

9.2.3編碼風格

9.3軟體測試

9.3.1軟體測試的概述

9.3.2軟體測試方法

9.3.3軟體測試步驟

9.4調試

9.5軟體測試文檔

本章小結

思考與練習

第10章軟體的技術度量

10.1軟體度量的基本概念

10.1.1測量、測度、度量、指標和估算

10.1.2軟體度量的分類

10.1.3軟體度量的目的

10.1.4有效軟體度量的屬性

10.2分析模型的度量

10.2.1基於功能點的度量

10.2.2bang度量

10.2.3規格說明質量的度量

10.3設計模型的度量

10.3.1體系結構設計度量

10.3.2構件級設計度量

10.4原始碼度量

10.5對測試的度量

10.6對維護的度量

10.7軟體質量的度量

本章小結

思考與練習

第3篇面向對象的開發方法

第11章面向對象概述

11.1面向對象的基本思想

11.2面向對象軟體開發方法的優缺點

11.3面向對象的基本概念

11.3.1對象

11.3.2類

11.3.3屬性和方法

11.3.4抽象、封裝和信息隱藏

11.3.5繼承

11.3.6多態

11.3.7關聯

11.3.8協作

11.3.9聚合

11.3.10持久性

11.4統一建模語言:UML概述

11.4.1UML的發展歷程

11.4.2UML的特點

11.5UML的視圖

11.5.1用例圖

11.5.2類圖

11.5.3對象圖

11.5.4順序圖

11.5.5協作圖

11.5.6狀態圖

11.5.7包圖

11.5.8部署圖

11.6面向對象軟體的開發過程

11.7UML建模工具

11.7.1商用建模工具

11.7.2開源UML建模工具

本章小結

思考與練習

第12章面向對象分析

12.1收集需求

12.1.1面向對象的軟體需求概述

12.1.2系統範圍

12.1.3參與者

12.1.4用例

12.1.5用例圖

12.1.6用例規約

12.1.7使用包組織用例

12.2基於類的建模

12.2.1識別類

12.2.2CRC建模

12.2.3分析類的職責

12.2.4尋找協作者

12.2.5通過場景驗證CRC模型

12.2.6CRC建模的優缺點

12.3類模型

12.3.1類、屬性和方法

12.3.2類的層次結構

12.3.3關聯

12.3.4聚合

12.3.5類圖

12.4動態互動建模

12.4.1順序圖

12.4.2協作圖

12.4.3活動圖

12.5基於控制行為建模

本章小結

思考與練習

第13章面向對象設計

13.1劃分分析模型

13.2系統邏輯架構

13.2.1經典3層架構

13.2.2多層架構

13.3類模型設計

13.3.1類的設計

13.3.2接口設計

13.3.3屬性、方法建模

13.3.4對象之間可見性設計

13.3.5用例疊代實現

13.3.6重構

13.4類的設計原則

13.4.1開閉原則

13.4.2Liskov替換原則

13.4.3依賴倒置原則

13.4.4接口分離原則

13.5設計模式

13.5.1單件模式

13.5.2抽象工廠模式

13.6對象持久性建模

13.6.1映射對象

13.6.2繼承關係映射

13.6.3關聯和聚合映射

13.6.4持久性框架

13.7部署建模

本章小結

思考與練習

第14章面向對象測試

14.1全生命周期面向對象測試

14.2面向對象測試策略

14.2.1面向對象的單元測試

14.2.2面向對象的集成測試

14.2.3面向對象的確認測試

14.3基於場景的模型測試

14.3.1場景設計

14.3.2測試用例設計

14.4類測試

14.4.1類的代碼檢查

14.4.2覆蓋和路徑測試

14.4.3類的隨機測試

14.4.4類的劃分測試

14.5類間測試

14.5.1多個類測試

14.5.2從類的行為模型導出的測試

本章小結

思考與練習

第15章面向對象系統的技術度量

15.1OO度量的識別特徵

15.1.1局部化

15.1.2封裝

15.1.3信息隱蔽

15.1.4繼承

15.1.5抽象

15.2分析、設計模型的度量

15.3OO項目的度量

15.4面向類的度量

15.4.1CK度量套件

15.4.2LK度量組

15.4.3MOOD度量套件

15.5面向操作的度量

15.6面向對象測試的度量

本章小結

思考與練習

第4篇軟體工程高級專題

第16章敏捷過程開發

16.1敏捷的定義

16.1.1什麼是敏捷

16.1.2什麼是敏捷過程

16.2敏捷過程模型

16.2.1極限編程

16.2.2自適應軟體開發

16.2.3動態系統開發方法

16.2.4Scrum

16.2.5Crystal

16.2.6特徵驅動開發

16.2.7精益開發

16.3設計自己的敏捷方法

本章小結

思考與練習

第17章Web工程

17.1基於Web的系統及套用

17.1.1Web套用的發展

17.1.2Web套用的特點和分類

17.1.3Web套用的開發團隊

17.2Web工程

17.3Web工程技術

17.3.1Web伺服器技術

17.3.2Web開發技術

17.3.3Web輔助技術

17.4Web工程的層次

17.4.1質量

17.4.2過程

17.4.3方法

17.4.4工具

17.5Web工程過程

17.5.1分析

17.5.2設計

17.5.3測試

17.5.4發布、維護

本章小結

思考與練習

第18章形式化方法

18.1形式化方法簡介

18.1.1形式化方法的引入

18.1.2形式化方法的分類

18.1.3形式化規格方法的主要思想

18.2Petri網

18.2.1基本概念

18.2.2Petri網的性質

18.2.3Petri網的分析

18.2.4實例:ATM系統

18.3Z語言

18.3.1基本概念

18.3.2模式運算

18.3.3操作模式

18.3.4實例:ATM系統

18.4形式化方法的優缺點

18.5形式化方法的發展

本章小結

思考與練習

附錄A軟體工程和知識可視化表征

熱門詞條

聯絡我們