軟體工程[宋雨主編書籍]

《軟體工程》是2012年9月1日清華大學出版社出版的圖書,作者是宋雨。

內容簡介

《軟體工程》以軟體開發過程為主線,系統地介紹了軟體工程的基本原理、概念和技術方法。全書分16章,包括基本概念、軟體計畫、軟體需求分析、軟體設計、程式編碼、軟體測試、軟體維護、軟體復用、面向對象的軟體工程、軟體質量保證、軟體的技術度量、軟體開發工具與環境、軟體工程管理、軟體過程管理、基於構件的軟體工程(CBSE)和套用Web工程,每章後面都附有習題供讀者練習之用。本書的編寫基於中國軟體工程學科教程的要求,結合作者多年的教學和科研實踐並參考了同類文獻,包含了軟體工程學科的重要分支。本書體系完整,可作為本科生或研究生軟體工程課程的教材或參考書,也可供對該學科感興趣的讀者閱讀

圖書目錄

第1章概述1

1.1計算機系統的開發過程1

1.2軟體及其分類3

1.3軟體工程的由來和發展4

1.4軟體的生命周期6

1.5軟體生存期模型7

1.6小結13

第2章軟體計畫15

2.1確定軟體範圍15

2.2軟體開發中的資源需求15

2.3軟體成本估算17

2.3.3面向對象項目的估算30

2.3.4自行開發或購買的決策31

2.4軟體開發進度的安排32

2.4.1甘特圖32

2.4.2PERT圖33

2.4.3兩種圖的結合34

2.5小結36

第3章軟體需求分析41

3.1需求分析的任務41

3.2需求規約說明書42

3.3結構化需求分析方法44

3.3.1數據流圖44

3.3.2數據詞典50

3.3.3功能說明52

3.4原型化需求分析方法55

3.4.1原型開發的分類56

3.4.2快速原型技術58

3.4.3用戶界面開發61

3.5面向對象方法62

3.5.1Coad/Yourdon方法62

3.5.2Booch方法63

3.5.3Rumbaugh的OMT方法63

3.5.4Jacobson方法63

3.5.5UML方法64

3.6小結67

第4章軟體設計70

4.1軟體設計的任務70

4.1.1概要設計70

4.1.2詳細設計71

4.1.3軟體設計的目標和準則71

4.2軟體設計的概念和原則71

4.2.1軟體體系結構71

4.2.2軟體結構中的若干概念72

4.2.3軟體的模組化73

4.3軟體概要設計76

4.3.1充分理解SRS,確定設計策略76

4.3.2模組化準則77

4.3.3模組設計中的具體方法77

4.3.4概要設計文檔80

4.4軟體詳細設計81

4.4.1圖示工具81

4.4.2表格工具85

4.4.3語言工具85

4.4.4工具的比較85

4.4.5程式複雜性的度量87

4.4.6詳細設計文檔89

4.5結構化設計方法91

4.5.1軟體結構圖92

4.5.2從DFD導出軟體結構圖92

4.5.3軟體設計的評判98

4.6面向數據結構的設計方法100

4.6.1Jackson方法101

4.6.2LCP方法105

4.7面向對象的設計方法107

4.7.1OOD基本概念108

4.7.2OOD任務110

4.7.3Coad與Yourdon的OOD方法113

4.7.4層次化OOD方法114

4.8其他設計方法116

4.8.1面向方面程式設計116

4.8.2面向Agent的設計方法117

4.8.3泛型程式設計117

4.8.4面向構件的技術118

4.8.5敏捷方法118

4.8.6Rational統一過程118

4.8.7功能驅動開發模式118

4.8.8極端編程119

4.9小結119

第5章程式編碼124

5.1程式設計語言的分類124

5.1.1第一代語言--機器語言時代124

5.1.2第二代語言--彙編語言時代124

5.1.3第三代語言--高級語言時代124

5.1.4第四代語言--非過程語言時代125

5.2編碼風格125

5.2.1語句結構125

5.2.2源程式文檔化127

5.2.3數據說明128

5.2.4輸入和輸出129

5.3面向對象的程式語言130

5.3.1Smalltalk130

5.3.2Eiffel130

5.3.3SDL130

5.3.4C++131

5.3.5面向對象的Pascal131

5.3.6Java131

5.3.7C#131

5.4小結132

第6章軟體測試133

6.1軟體測試基礎133

6.1.1測試目標133

6.1.2測試原則133

6.1.3可測試性134

6.2測試步驟和策略134

6.2.1軟體測試過程與開發過程的對應關係134

6.2.2測試信息流135

6.2.3單元測試135

6.2.4集成測試136

6.2.5確認測試141

6.2.6系統測試142

6.3測試用例設計143

6.3.1概述143

6.3.2邏輯覆蓋144

6.3.3等價類劃分147

6.3.4邊界值分析148

6.3.5劃分測試與隨機測試148

6.3.6錯誤推測法148

6.3.7因果圖法149

6.3.8人工測試149

6.3.9調試150

6.4軟體可靠性151

6.4.1可靠性和可用性152

6.4.2影響軟體可靠性的因素152

6.4.3軟體可靠性模型153

6.4.4軟體可靠性工程155

6.5面向對象的測試155

6.5.1OO軟體測試策略155

6.5.2OO類測試方法156

6.5.3繼承層次的測試158

6.6小結160

第7章軟體維護163

7.1軟體維護的概念163

7.1.1改正性維護164

7.1.2適應性維護164

7.1.3完善性維護164

7.1.4預防性維護164

7.2軟體的可維護性164

7.2.1可理解性165

7.2.2可測試性165

7.2.3可修改性165

7.2.4可靠性166

7.2.5可移植性166

7.2.6可使用性166

7.2.7效率166

7.3提高可維護性的方法166

7.3.1提供完整和一致的文檔167

7.3.2建立明確的軟體質量目標和優先權167

7.3.3使用現代化的開發技術和工具168

7.3.4進行明確的質量保證審查168

7.3.5選擇可維護性好的程式設計語言169

7.3.6採用軟體維護的新方法169

7.4軟體再工程170

7.4.1業務過程再工程170

7.4.2軟體再工程過程模型171

7.4.3逆向工程172

7.4.4軟體重構173

7.4.5正向工程174

7.4.6再工程經濟學174

7.5小結175

習題7175第8章軟體復用177

8.1軟體復用概念177

8.1.1軟體復用的類型177

8.1.2軟體復用的粒度178

8.1.3軟體復用機會的識別179

8.2領域工程181

8.2.1領域分析181

8.2.2領域特徵182

8.3可復用構件的建造及復用183

8.3.1構件應具有的特徵183

8.3.2領域構件的設計框架184

8.3.3幾種流行的構件技術184

8.3.4建立可復用的構件庫186

8.3.5軟體構件的復用187

8.3.6基於Agent的軟體復用188

8.3.7基於復用的數據挖掘系統189

8.4面向對象的軟體復用技術190

8.4.1復用技術對OO方法的支持190

8.4.2OO軟體復用技術191

8.5小結192

習題8193第9章面向對象的軟體工程194

9.1面向對象的基本概念194

9.1.1對象195

9.1.2類196

9.1.3訊息、方法和變數197

9.1.4面向對象的基本特徵198

9.2面向對象建模及統一建模語言UML203

9.2.1面向對象建模203

9.2.2統一建模語言UML204

9.2.3UML模型208

9.2.4UML的擴展機制216

9.2.5UML建模工具219

9.3面向對象的軟體需求分析及設計220

9.3.1常用的面向對象軟體工程方法220

9.3.2基於UML的軟體分析與設計222

9.4面向對象的軟體需求分析方法及其在圖書館系統的套用223

9.4.1系統需求224

9.4.2用面向對象方法進行系統需求分析224

9.5基於UML的網路管理平台的分析與設計228

9.5.1系統開發過程228

9.5.2系統的實現231

9.6小結232

習題9233第10章軟體質量保證235

10.1軟體質量的概念235

10.2軟體質量保證236

10.2.1SQA活動236

10.2.2軟體可靠性與軟體質量保證237

10.2.3軟體質量檢驗與軟體質量保證238

10.3軟體複審238

10.3.1軟體錯誤的危害性238

10.3.2軟體複審與審核計畫239

10.3.3正式技術複審239

10.4統計質量保證240

10.5ISO9000質量標準242

10.5.1ISO9000簡介242

10.5.2ISO9000認證標準243

10.5.3我國對ISO9000標準的使用246

10.6軟體質量預測模型及套用247

10.6.1軟體質量度量和質量預測模型的關係247

10.6.2廣義回歸神經網路結構及特點248

10.6.3軟體質量預測模型的套用249

10.7小結250

習題10251第11章軟體的技術度量252

11.1軟體技術度量概述252

11.1.1軟體技術度量要解決的問題252

11.1.2軟體技術度量考慮的軟體質量因素252

11.1.3軟體技術度量的原則256

11.2軟體分析模型的度量256

11.2.1基於功能點的度量256

11.2.2基於原語的度量--Bang度量258

11.2.3SRS質量的度量259

11.3軟體設計模型的度量259

11.3.1體系結構設計度量259

11.3.2構件級度量262

11.3.3界面設計度量265

11.4原始碼度量266

11.4.1Halstead度量方法266

11.4.2Thayer複雜性度量266

11.5軟體測試的度量267

11.5.1測試過程S曲線267

11.5.2缺陷追蹤和管理268

11.5.3外包軟體驗收測試中的度量268

11.6軟體維護的度量269

11.6.1UKSMA和NESMA標準269

11.6.2軟體維護的度量269

11.7面向對象的度量270

11.7.1面向對象度量方法270

11.7.2面向對象系統中考慮結構因素的類的內聚度量274

11.8小結276

習題11276第12章軟體開發工具與環境279

12.1軟體開發工具279

12.2軟體開發環境280

12.2.1軟體開發環境的組成280

12.2.2軟體開發環境的分類281

12.3計算機輔助軟體工程282

12.3.1CASE環境283

12.3.2軟體開發CASE工具簡介283

12.4小結289

習題12289第13章軟體工程管理290

13.1軟體工程文化290

13.1.1軟體文化概念290

13.1.2軟體項目的五要素291

13.1.3肯定開發者的成就292

13.1.4不斷學習新知識292

13.1.5尋找卓越的需求293

13.1.6質量文化293

13.1.7方法、測量和工具294

13.2現代人件295

13.2.1團隊開發295

13.2.2程式設計師個人對軟體系統的影響296

13.2.3工作組織297

13.3軟體工程36計302

13.3.1方法篇302

13.3.2設計篇305

13.3.3實現篇306

13.3.4管理篇308

13.4軟體風險分析與管理309

13.4.1軟體風險及分類309

13.4.2風險預測310

13.4.3風險的緩解、監控和管理312

13.5軟體配置管理314

13.5.1軟體配置314

13.5.2配置標識315

13.5.3里程碑與變更控制315

13.5.4配置狀態登錄316

13.5.5配置審查316

13.6軟體工程標準化317

13.6.1軟體工程標準化的意義317

13.6.2軟體工程標準化的研究內容317

13.6.3軟體工程國家標準318

13.7軟體的智慧財產權保護319

13.7.1軟體智慧財產權的法律保護319

13.7.2計算機軟體是著作權法保護的客體320

13.7.3軟體著作權人享有的專有權利321

13.7.4軟體著作權的登記323

13.8小結323

習題13324第14章軟體過程管理326

14.1軟體能力成熟度模型326

14.1.1CMM的必要性326

14.1.2CMM的提出與發展327

14.1.3CMM的作用328

14.2CMM的主要內容329

14.2.1CMM的專業術語329

14.2.2CMM的內容330

14.2.3CMM的內部結構332

14.3CMM各級之間的關係336

14.3.1評估軟體企業的CMM級別337

14.3.2從初始級向可重複級過渡337

14.3.3從可重複級向已定義級過渡338

14.3.4向可管理級和最佳化級過渡338

14.4CMM實施的人員構成和組織機構的劃分339

14.4.1人員的構成339

14.4.2組織機構的劃分340

14.5個體軟體過程342

14.5.1PSP概述342

14.5.2PSP的設計原則343

14.5.3PSP進化的框架343

14.5.4PSP的套用345

14.5.5PSP的擴展--團隊軟體過程347

14.6小結349

習題14349第15章基於構件的軟體工程351

15.1基本概念351

15.1.1CBSE過程351

15.1.2領域工程352

15.1.3基於構件的開發352

15.1.4CBSE經濟學354

15.1.5軟構件的可測試性355

15.2可復用構件的分類與查詢357

15.2.1主要的分類方法357

15.2.2基於刻面的檢索358

15.3基於構件的軟體重用成熟度359

15.3.1重用成熟度359

15.3.2構件重用與軟體成熟度的關係360

15.4構件技術套用361

15.4.1CORBA構件模型CCM361

15.4.2基於構件技術的移動通信監控系統362

15.4.3構件技術在電力信息化中的套用363

15.4.4基於演化構件的軟體開發364

15.4.5基於復用技術的仿真系統軟體364

15.5小結367

習題15368第16章套用Web工程369

16.1Web工程369

16.1.1基於Web的系統及套用的特點369

16.1.2WebApp工程的層次371

16.1.3Web工程過程371

16.1.4Web工程的最佳實踐373

16.2WebApp項目計畫374

16.2.1表述WebApp項目374

16.2.2制定WebApp項目計畫376

16.2.3組建Web工程團隊377

16.2.4Web工程的項目管理378

16.3WebApp分析382

16.3.1WebApp的需求分析382

16.3.2WebApp的分析模型385

16.3.3內容模型385

16.3.4互動模型387

16.3.5功能模型388

16.3.6配置模型389

16.3.7關係導航分析390

16.4WebApp設計392

16.4.1Web工程設計392

16.4.2WebApp界面設計395

16.4.3美學設計399

16.4.4內容設計400

16.4.5體系結構設計400

16.4.6導航設計403

16.4.7構件級設計404

16.4.8超媒體設計模式404

16.4.9面向對象的超媒體設計方法405

16.5WebApp測試406

16.5.1WebApp測試概念406

16.5.2WebApp測試過程408

16.5.3WebApp測試策略409

16.6小結411

習題16413

參考文獻415

熱門詞條

聯絡我們