軟體工程(第三版)

軟體工程(第三版)

《軟體工程(第三版)》是2013年清華大學出版社出版的圖書。

圖書簡介

軟體工程是指導計算機軟體開發的工程科學技術,本書是在《軟體工程》第2版的基礎上,根據使用該教材的教師和讀者的意見,對原書在結構和內容上做了很多調整和修改,第3版增強了結構化和面向對象方法的理論基礎。全書共分為4個部分,第一部分(第1~3章)是基礎理論,第二部分(第4~6章)是結構化方法,第三部分(第7~16章)是面向對象方法與實現,第四部分(第17~20章)是質量與工程管理。本書對每章概念都進行了嚴格的論述,每個概念都有相應的例子解釋,同時每章都配有習題,使讀者鞏固所學知識。

目錄

第1部分基礎理論

第1章緒論

1.1軟體概述

1.1.1什麼是計算機軟體

1.1.2軟體的特點

1.1.3軟體的分類

1.1.4軟體的發展

1.1.5軟體危機

1.2軟體工程

1.2.1軟體工程與方法學

1.2.2軟體工程的基本原理

1.2.3軟體工程的目標

1.2.4軟體工程的內容

1.2.5軟體工程的原則

1.2.6軟體工程面臨的問題

小結

綜合練習一

第2章基本理論

2.1軟體工程過程

2.2軟體生命周期

2.2.1軟體分析時期

2.2.2軟體設計時期

2.2.3編碼與測試時期

2.2.4運行與維護時期

2.3軟體生命周期模型

2.3.1軟體生命周期模型的概念

2.3.2瀑布模型

2.3.3原型模型

2.3.4增量模型

2.3.5螺旋模型

2.3.6噴泉模型

2.3.7基於知識的模型

2.3.8變換模型

2.4軟體開發方法

2.4.1結構化方法

2.4.2Jackson方法

2.4.3維也納開發方法

2.4.4面向對象的開發方法

2.5軟體工具與開發

2.5.1軟體工具箱

2.5.2軟體開發環境

2.5.3計算機輔助軟體工程

小結

綜合練習二

第3章可行性研究

3.1可行性研究任務與步驟

3.1.1研究任務

3.1.2研究步驟

3.2系統分析

3.2.1系統分析員

3.2...

3.2.2面臨的問題域

3.2.3通信技術

3.3分析原理

3.3.1信息域

3.3.2建立模型

3.3.3分解

3.4系統模型與模擬

3.4.1系統模型

3.4.2系統建模和模擬

3.5成本效益分析

3.6可行性研究的文檔

3.7項目開發計畫

3.7.1方案選擇

3.7.2制定項目開發計畫

小結

綜合練習三

第2部分結構化方法

第4章需求分析與體系結構

4.1需求分析

4.1.1需求分析的特點

4.1.2需求分析的原則

4.1.3需求分析的任務

4.1.4需求分析的方法

4.2結構化分析

4.2.1自頂向下逐層分解

4.2.2結構化分析步驟

4.3系統流程圖

4.4數據流圖

4.4.1基本圖形符號

4.4.2畫數據流圖

4.4.3結構化分析方法的套用

4.5數據字典

4.5.1內容及格式

4.5.2數據字典的實現

*4.6從需求到體系結構

*4.7RTRSM的基本元素

4.7.1狀態轉換圖

4.7.2模板

4.7.3規則集

*4.8RTRSM到體系結構的轉換步驟

4.8.1描述系統的功能單元(組件)

4.8.2描述連線件

4.8.3描述軟體的配置

*4.9基於軟體體系結構開發方法

4.9.1軟體體系結構的開發過程

4.9.2分散式對象技術

4.9.3體系結構與分散式對象結合方法

*4.10軟體體系結構求精方法

4.10.1行為替代的體系結構求精方法

4.10.2基於風格的體系結構求精方法

4.10.3構件體系結構求精方法

4.10.4形式化方法與Z語言

4.10.5UML和Z結合的求精方法

*4.11一種新的軟體體系結構設計方法

4.11.1體系結構需求和軟體體系結構

4.11.2新的軟體體系結構設計過程

小結

綜合練習四

第5章總體設計

5.1軟體設計的重要性

5.2設計過程

5.3軟體總體設計

5.4設計基本原理

5.4.1抽象

5.4.2細化

5.4.3模組化

5.4.4軟體體系結構

5.4.5程式結構

5.4.6數據結構

5.4.7軟體過程

5.5體系結構設計

5.5.1軟體結構圖

5.5.2模組的大小

5.5.3扇出和扇入與深度和寬度

5.5.4模組的耦合

5.5.5模組的內聚

5.5.6結構設計的一般準則

5.5.7模組的作用域與控制域

5.6結構化設計

5.6.1數據流的類型

5.6.2過程步驟

5.6.3變換分析設計

5.6.4事務分析設計

5.6.5混合流設計

5.6.6結構化設計方法套用示例

5.6.7設計的後期處理

5.7軟體結構最佳化

5.7.1軟體結構設計最佳化準則

5.7.2軟體結構的HIPO圖

小結

綜合練習五

第6章軟體詳細設計

6.1詳細設計的任務與方法

6.1.1詳細設計的基本任務

6.1.2詳細設計方法

6.2設計表示法

6.2.1結構化語言

6.2.2判定表

6.2.3判定樹

6.3結構化程式設計

6.3.1流程圖程式

6.3.2三種基本控制結構

6.3.3常用符號

*6.3.4正規程式

*6.3.5基本程式

*6.3.6結構化程式

*6.4結構化定理

6.4.1程式函式

6.4.2基本定理

6.4.3非結構化轉換為結構化

6.4.4常見錯誤

6.5過程設計語言

小結

綜合練習六

第3部分面向對象方法與實現

第7章面向對象方法概論

7.1面向對象簡介

7.1.1什麼是面向對象

7.1.2面向對象方法的歷史及現狀

7.2面向對象的相關概念

7.2.1對象

7.2.2類

7.2.3對象圖

7.2.4屬性

7.2.5服務

7.2.6封裝

7.2.7繼承

7.2.8多重繼承

7.2.9訊息

7.2.10結構與連線

7.2.11多態性

7.2.12永久對象

7.2.13主動對象

7.2.14對象類的表示方法

7.3連結與關聯

7.3.1一般概念

7.3.2重數

7.3.3關聯的重要性

7.3.4三元關聯

7.3.5關聯的候選關鍵字

7.3.6異或關聯

7.3.7資格關聯

7.3.8連結屬性

7.3.9用關聯模型化為類

7.3.10角色名

7.3.11排序

7.3.12資格符

7.4構造分組

7.4.1模組

7.4.2表

小結

綜合練習七

第8章模型

8.1統一建模語言

8.1.1模型的建立

8.1.2UML的基本圖示

8.1.3UML語義

8.1.4UML的基本元素

8.1.5UML的詞別

8.2UML的評價

8.2.1UML成功的因素

8.2.2UML的積極作用

8.2.3UML不能起到的作用

8.2.4UML的缺點

8.2.5UML的未來

8.3對象模型

8.3.1表示方法

8.3.2表示結構

8.3.3例子

8.4動態模型

8.4.1事件和狀態

8.4.2操作

8.4.3嵌套狀態圖

8.4.4實踐技巧

8.5功能模型

8.5.1數據流圖

8.5.2指定的操作

8.5.3約束

8.5.4功能模型的實例

8.5.5三種模型的關係

小結

綜合練習八

第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.3.4審查和篩選

9.3.5識別主動對象

9.4對象分類,建立類圖的對象層

9.4.1異常情況的檢查和調整

9.4.2類的命名

9.4.3建立類圖的對象層

9.5對象的屬性和服務

9.6定義屬性

9.6.1策略與啟發

9.6.2審查與篩選

9.6.3推遲到OOD考慮的問題

9.6.4屬性的命名和定位

9.6.5屬性的詳細說明

9.7定義服務

9.7.1對象的狀態與狀態轉換圖

9.7.2行為分類

9.7.3發現服務的策略與啟發

9.7.4審查與調整

9.7.5認識對象的主動行為

9.7.6服務的命名和定位

9.7.7服務的詳細說明

9.8套用實例

9.8.1功能需求

9.8.2發現對象

9.8.3對象層表示

9.8.4電梯系統的屬性描述

9.8.5電梯系統的服務定義

9.8.6電梯系統的特徵層

小結

綜合練習九

第10章關係分析

10.1一般特殊結構

10.1.1一般特殊結構及其用途

10.1.2如何發現一般特殊結構

10.1.3審查與調整

10.1.4多繼承及多態性問題

10.1.5一般特殊結構的簡化

10.1.6調整對象層和特徵層

10.2整體部分結構

10.2.1整體部分結構及其用途

10.2.2如何發現整體部分結構

10.2.3審查與篩選

10.2.4簡化對象的定義

10.2.5支持軟體復用

10.2.6整體部分結構的進一步運用

10.2.7調整對象層和屬性層

10.3實例連線

10.3.1簡單的實例連線

10.3.2複雜的實例連線及其表示

10.3.3三元關聯問題

10.3.4如何建立實例連線

10.3.5對象層、特徵層的增補及實例連線說明

10.4訊息連線

10.4.1訊息的定義

10.4.2順序系統中的訊息

10.4.3並發系統中的訊息

10.4.4訊息對OOA的意義

10.4.5表示訊息連線

10.5如何建立訊息連線

10.5.1建立控制執行緒內部的訊息連線

10.5.2建立控制執行緒之間的訊息連線

10.5.3對象分布問題及其訊息的影響

10.6訊息的詳細說明

10.7電梯例子

10.7.1一般特殊關係

10.7.2整體部分關係

10.7.3連線

10.7.4電梯控制系統的關係層

小結

綜合練習十

第11章控制驅動的設計

11.1設計原則

11.1.1類型一致性與閉合行為

11.1.2其他主要原則

11.1.3類的狀態空間和行為

11.2相關技術問題

11.2.1系統總體方案

11.2.2軟體體系結構

11.2.3分散式系統的體系結構風格

11.2.4系統的並發性

11.3如何設計控制驅動

11.3.1選擇軟體體系結構

11.3.2確定系統分布方案

11.3.3識別控制流

11.3.4用主動對象表示控制流

11.3.5把控制驅動部分看做一個主題

11.4控制實現

11.4.1在程式內進行狀態設定

11.4.2狀態機器引擎

11.4.3控制作為並發任務

小結

綜合練習十一

第12章問題域的設計

12.1問題域部分設計環境

12.1.1為適應編成環境的調整

12.1.2從分析和系統結構著手

12.1.3對象設計的步驟

12.1.4對象模型工具

12.2完善對象的細節

12.3設計算法

12.3.1選擇算法

12.3.2選擇數據結構

12.3.3定義內部類和操作

12.3.4指定操作的職責

12.4繼承的調整

12.4.1重新安排類和操作

12.4.2抽象出公共的行為

12.4.3使用授權共享實現

12.5關聯設計

12.5.1分析關聯遍歷

12.5.2單向關聯

12.5.3雙向關聯

12.5.4連結屬性

12.6設計最佳化

12.6.1性能的影響因素

12.6.2改進性能的設計策略

12.6.3重新安排執行次序以獲得效率

12.6.4保存導出屬性避免重複計算

12.7物理打包

12.7.1信息隱藏

12.7.2實體的相關性

12.7.3構造模組

12.8設計決策文檔

小結

綜合練習十二

第13章用戶界面設計

13.1人的因素

13.1.1分析活動者

13.1.2從UseCase分析人機互動

13.1.3分析處理異常事件的人機互動

13.1.4命令的組織

13.1.5輸出信息的組織結構

13.2界面設計風格

13.2.1選單

13.2.2對話框

13.2.3視窗

13.3人機界面設計準則

13.4人機界面設計過程

13.4.1界面模型

13.4.2界面支持系統

13.4.3界面元素

13.4.4界面設計形式

13.5描述方法與技術

13.5.1靈境技術

13.5.2多通道人機互動技術

小結

綜合練習十三

第14章資料庫及其接口設計

14.1數據管理系統及其選擇

14.2技術整合

14.3數據接口

14.4對象存儲方案和數據接口的設計策略

14.4.1針對檔案系統的設計

14.4.2針對RDBMS的設計

14.4.3使用OODBMS

小結

綜合練習十四

*第15章形式化方法

15.1基礎知識

15.1.1形式化方法概念

15.1.2形式化規約語言

15.2有限狀態機

15.3Petri網基本原理

15.3.1靜態結構

15.3.2動態特徵

15.3.3轉移啟動規則

15.3.4行為特性

15.3.5行為特性分析方法

15.3.6結構特性分析方法

15.3.7Petri網到程式結構的轉換

小結

綜合練習十五

第16章軟體實現

16.1程式設計語言的特性及選擇

16.1.1程式設計語言特性

16.1.2程式設計語言的選擇

16.2程式設計風格

16.3程式設計效率

16.3.1代碼效率

16.3.2記憶體效率

16.3.3I/O效率

16.4冗餘編程

16.5軟體容錯技術

16.5.1容錯軟體

16.5.2容錯的一般方法

16.5.3容錯軟體的設計過程

16.5.4軟體的容錯系統結構

小結

綜合練習十六

第4部分質量與工程管理

第17章軟體質量

17.1軟體質量概述

17.1.1軟體質量的定義

17.1.2軟體質量的特性

17.1.3軟體質量特性之間的競爭

17.2軟體質量的度量和評價

17.2.1軟體質量的度量

17.2.2軟體質量度量的分類

17.2.3軟體質量的評價

17.3軟體質量保證

17.3.1軟體質量保證概述

17.3.2軟體質量保證原則

17.3.3軟體質量保證計畫

17.3.4軟體質量保證措施

17.3.5軟體質量管理小組

17.4技術評審與審查

17.4.1評審過程

17.4.2選擇參加評審的成員

17.4.3評審的管理和組織

17.4.4評審的方法

17.4.5走查和審查

17.4.6開發過程的評審

17.4.7對評審的綜合評價

17.5軟體的可靠性

小結

綜合練習十七

第18章軟體測試

18.1軟體測試概述

18.1.1軟體測試的目的

18.1.2軟體測試的原則

18.2軟體測試方法

18.2.1靜態測試

18.2.2動態測試

18.3測試用例的設計

18.3.1白盒技術

18.3.2黑盒技術

18.4軟體測試過程

18.4.1軟體測試過程中的信息

18.4.2軟體測試的步驟與各開發階段的關係

18.4.3單元測試

18.4.4集成測試

18.4.5確認測試

18.5調試

小結

綜合練習十八

第19章軟體維護

19.1軟體維護概述

19.1.1軟體維護的定義

19.1.2影響維護工作的因素

19.1.3維護成本

19.2軟體可維護性

19.2.1軟體可維護性的定義

19.2.2可維護性的度量

19.3軟體維護的特點

19.3.1非結構化維護和結構化維護

19.3.2維護的困難性

19.3.3軟體維護的費用

19.4軟體維護的實施

19.4.1維護的組織

19.4.2維護的流程

19.4.3維護技術

19.4.4維護的副作用

19.5維護“老化代碼”

19.6逆向工程和再工程

19.6.1預防性維護

19.6.2逆向工程的元素

19.6.3再工程中的重構技術

小結

綜合練習十九

第20章軟體項目管理與計畫

20.1軟體項目管理概述

20.1.1軟體管理的對象

20.1.2軟體開發中的資源

20.1.3分解技術

20.2項目管理過程

20.3軟體開發成本估算

20.3.1軟體開發成本估算方法

20.3.2軟體開發成本估算的經驗模型

20.4風險分析

20.4.1風險識別

20.4.2風險估算

20.4.3風險評價

20.4.4風險駕馭和監控

20.5進度安排

20.5.1軟體開發小組人數與軟體生產率

20.5.2任務的確定與並行性

20.5.3制定開發進度計畫

20.5.4進度安排的圖形方法

20.5.5項目的追蹤和控制

20.6軟體項目的組織

20.6.1軟體項目管理的特點

20.6.2軟體項目組織的建立

20.6.3人員配備

小結

綜合練習二十

參考答案

參考文獻

相關詞條

熱門詞條

聯絡我們