軟體工程導論(第6版)

軟體工程導論(第6版)

《軟體工程導論(第6版)》是2013年8月1日清華大學出版社出版的圖書,作者是張海藩、牟永敏。本書主要講述了軟體工程的概念、原理和典型的方法學,並介紹了軟體項目的管理技術。

內容簡介

本書正文共13章,第1章是概述,第2~8章順序講述軟體生命周期各階段的任務、過程、結構化方法和工具,第9~12章分別講述面向對象方法學引論、面向對象分析、面向對象設計和面向對象實現,第13章介紹軟體項目管理。附錄講述了用面向對象方法開發軟體的過程,對讀者深入理解軟體工程學很有幫助,也是上機實習的好材料。

目錄

第1章軟體工程學概述1

1.1軟體危機11.1.1軟體危機的介紹11.1.2產生軟體危機的原因31.1.3消除軟體危機的途徑4

1.2軟體工程51.2.1軟體工程的介紹51.2.2軟體工程的基本原理71.2.3軟體工程方法學9

1.3軟體生命周期11

1.4軟體過程141.4.1瀑布模型151.4.2快速原型模型161.4.3增量模型171.4.4螺旋模型191.4.5噴泉模型211.4.6Rational統一過程221.4.7敏捷過程與極限編程251.4.8微軟過程29

1.5小結31

習題132第2章可行性研究35

2.1可行性研究的任務35

2.2可行性研究過程36

2.3系統流程圖382.3.1符號382.3.2例子382.3.3分層40

2.4數據流圖40[][]軟體工程導論(第6版)[][]目錄[][]2.4.1符號402.4.2例子422.4.3命名442.4.4用途45

2.5數據字典472.5.1數據字典的內容472.5.2定義數據的方法472.5.3數據字典的用途482.5.4數據字典的實現49

2.6成本/效益分析492.6.1成本估計502.6.2成本/效益分析的方法51

2.7小結53

習題253第3章需求分析55

3.1需求分析的任務563.1.1確定對系統的綜合要求563.1.2分析系統的數據要求573.1.3導出系統的邏輯模型583.1.4修正系統開發計畫58

3.2與用戶溝通獲取需求的方法583.2.1訪談583.2.2面向數據流自頂向下求精593.2.3簡易的套用規格說明技術593.2.4快速建立軟體原型61

3.3分析建模與規格說明62

3.3.1分析建模62

3.3.2軟體需求規格說明62

3.4實體聯繫圖62

3.4.1數據對象63

3.4.2屬性63

3.4.3聯繫63

3.4.4實體聯繫圖的符號64

3.5數據規範化64

3.6狀態轉換圖65

3.6.1狀態653.6.2事件65

3.6.3符號66

3.6.4例子66

3.7其他圖形工具67

3.7.1層次方框圖68

3.7.2Warnier圖68

3.7.3IPO圖69

3.8驗證軟體需求70

3.8.1從哪些方面驗證軟體需求的正確性70

3.8.2驗證軟體需求的方法70

3.8.3用於需求分析的軟體工具71

3.9小結72

習題373

第4章形式化說明技術75

4.1概述75

4.1.1非形式化方法的缺點75

4.1.2形式化方法的優點76

4.1.3套用形式化方法的準則76

4.2有窮狀態機77

4.2.1概念77

4.2.2例子794.2.3評價82

4.3Petri網824.3.1概念82

4.3.2例子84

4.4Z語言854.4.1簡介85

4.4.2評價88

4.5小結88

習題489

第5章總體設計91

5.1設計過程91

5.2設計原理94

5.2.1模組化94

5.2.2抽象955.2.3逐步求精95

5.2.4信息隱藏和局部化96

5.2.5模組獨立97

5.3啟發規則99

5.4描繪軟體結構的圖形工具102

5.4.1層次圖和HIPO圖102

5.4.2結構圖103

5.5面向數據流的設計方法104

5.5.1概念104

5.5.2變換分析105

5.5.3事務分析111

5.5.4設計最佳化112

5.6小結113

習題5114

第6章詳細設計117

6.1結構程式設計117

6.2人機界面設計119

6.2.1設計問題119

6.2.2設計過程121

6.2.3人機界面設計指南122

6.3過程設計的工具124

6.3.1程式流程圖124

6.3.2盒圖125

6.3.3PAD圖126

6.3.4判定表127

6.3.5判定樹128

6.3.6過程設計語言128

6.4面向數據結構的設計方法129

6.4.1Jackson圖130

6.4.2改進的Jackson圖131

6.4.3Jackson方法132

6.5程式複雜程度的定量度量136

6.5.1McCabe方法137

6.5.2Halstead方法139

6.6小結140

習題6140

第7章實現145

7.1編碼146

7.1.1選擇程式設計語言146

7.1.2編碼風格147

7.2軟體測試基礎149

7.2.1軟體測試的目標150

7.2.2軟體測試準則150

7.2.3測試方法151

7.2.4測試步驟151

7.2.5測試階段的信息流152

7.3單元測試153

7.3.1測試重點153

7.3.2代碼審查154

7.3.3計算機測試155

7.4集成測試156

7.4.1自頂向下集成157

7.4.2自底向上集成158

7.4.3不同集成測試策略的比較159

7.4.4回歸測試160

7.5確認測試160

7.5.1確認測試的範圍160

7.5.2軟體配置複查161

7.5.3Alpha和Beta測試161

7.6白盒測試技術162

7.6.1邏輯覆蓋162

7.6.2控制結構測試165

7.7黑盒測試技術171

7.7.1等價劃分172

7.7.2邊界值分析175

7.7.3錯誤推測175

7.8調試176

7.8.1調試過程176

7.8.2調試途徑178

7.9軟體可靠性179

7.9.1基本概念179

7.9.2估算平均無故障時間的方法180

7.10小結182

習題7183第8章維護189

8.1軟體維護的定義189

8.2軟體維護的特點190

8.2.1結構化維護與非結構化維護差別巨大190

8.2.2維護的代價高昂1908.2.3維護的問題很多191

8.3軟體維護過程192

8.4軟體的可維護性194

8.4.1決定軟體可維護性的因素194

8.4.2文檔1958.4.3可維護性複審196

8.5預防性維護197

8.6軟體再工程過程198

8.7小結200

習題8201第9章面向對象方法學引論203

9.1面向對象方法學概述203

9.1.1面向對象方法學的要點203

9.1.2面向對象方法學的優點205

9.2面向對象的概念2099.2.1對象209

9.2.2其他概念211

9.3面向對象建模215

9.4對象模型216

9.4.1類圖的基本符號217

9.4.2表示關係的符號218

9.5動態模型223

9.6功能模型224

9.6.1用例圖224

9.6.2用例建模227

9.73種模型之間的關係228

9.8小結229

習題9229第10章面向對象分析231

10.1面向對象分析的基本過程231

10.1.1概述231

10.1.23個子模型與5個層次232

10.2需求陳述23310.2.1書寫要點233

10.2.2例子234

10.3建立對象模型235

10.3.1確定類與對象236

10.3.2確定關聯238

10.3.3劃分主題241

10.3.4確定屬性241

10.3.5識別繼承關係244

10.3.6反覆修改244

10.4建立動態模型247

10.4.1編寫腳本247

10.4.2構想用戶界面248

10.4.3畫事件跟蹤圖249

10.4.4畫狀態圖250

10.4.5審查動態模型251

10.5建立功能模型253

10.5.1畫出基本系統模型圖253

10.5.2畫出功能級數據流圖254

10.5.3描述處理框功能254

10.6定義服務255

10.7小結256

習題10256第11章面向對象設計259

11.1面向對象設計的準則259

11.2啟發規則261

11.3軟體重用263

11.3.1概述263

11.3.2類構件265

11.3.3軟體重用的效益266

11.4系統分解267

11.5設計問題域子系統270

11.6設計人機互動子系統273

11.7設計任務管理子系統275

11.8設計數據管理子系統277

11.8.1選擇數據存儲管理模式277

11.8.2設計數據管理子系統278

11.8.3例子280

11.9設計類中的服務280

11.9.1確定類中應有的服務280

11.9.2設計實現服務的方法281

11.10設計關聯282

11.11設計最佳化283

11.11.1確定優先權283

11.11.2提高效率的幾項技術284

11.11.3調整繼承關係285

11.12小結287

習題11288

第12章面向對象實現289

12.1程式設計語言289

12.1.1面向對象語言的優點289

12.1.2面向對象語言的技術特點290

12.1.3選擇面向對象語言294

12.2程式設計風格294

12.2.1提高可重用性295

12.2.2提高可擴充性297

12.2.3提高健壯性297

12.3測試策略298

12.3.1面向對象的單元測試298

12.3.2面向對象的集成測試299

12.3.3面向對象的確認測試299

12.4設計測試用例299

12.4.1測試類的方法300

12.4.2集成測試方法301

12.5小結303

習題12304

第13章軟體項目管理305

13.1估算軟體規模305

13.1.1代碼行技術305

13.1.2功能點技術306

13.2工作量估算308

13.2.1靜態單變數模型308

13.2.2動態多變數模型308

13.2.3COCOMO2模型309

13.3進度計畫312

13.3.1估算開發時間312

13.3.2Gantt圖314

13.3.3工程網路315

13.3.4估算工程進度316

13.3.5關鍵路徑318

13.3.6機動時間318

13.4人員組織320

13.4.1民主製程序員組320

13.4.2主程式設計師組321

13.4.3現代程式設計師組322

13.5質量保證324

13.5.1軟體質量324

13.5.2軟體質量保證措施326

13.6軟體配置管理328

13.6.1軟體配置329

13.6.2軟體配置管理過程329

13.7能力成熟度模型331

13.8小結334

習題13335

附錄AC++類庫管理系統的分析與設計337

A.1面向對象分析337

A.1.1需求337

A.1.2建立對象模型338

A.2面向對象設計339

A.2.1設計類庫結構339

A.2.2設計問題域子系統340

A.2.3設計人機互動子系統341

A.2.4設計其他類344

參考文獻347

相關詞條

熱門詞條

聯絡我們