關(guān)于我們
書單推薦
新書推薦
|
軟件工程(第4版 英文版)
本書是軟件工程領(lǐng)域的優(yōu)質(zhì)作品,國(guó)際上眾多名校采用本書作為教材。本書注重從實(shí)踐出發(fā)選擇和安排素材,同時(shí)在理論上進(jìn)行全面深入的探討。
本書分為3個(gè)部分。第一部分解釋為什么軟件工程知識(shí)對(duì)實(shí)踐者和研究者同樣重要,并討論理解過程模型的必要性,利用敏捷方法的必要性,以及精細(xì)地進(jìn)行項(xiàng)目計(jì)劃的必要性;第二部分論述軟件開發(fā)和維護(hù)的主要步驟;第三部分講述如何對(duì)軟件進(jìn)行評(píng)估和改進(jìn)。
本書適合作為計(jì)算機(jī)相關(guān)專業(yè)軟件工程課程的本科教材,也適用于介紹軟件工程的概念與實(shí)踐的研究生課程。本書還適合期望進(jìn)一步學(xué)習(xí)該領(lǐng)域相關(guān)知識(shí)的專業(yè)人員閱讀。
1.軟件工程領(lǐng)域公認(rèn)的優(yōu)質(zhì)作品,業(yè)界的高引文獻(xiàn),被國(guó)內(nèi)外眾多名校廣泛用作教材。
2.從實(shí)踐出發(fā)選擇和安排素材,同時(shí)從理論上進(jìn)行全面深入的探討。
3.通過大量實(shí)例和工程實(shí)踐深化和豐富理論知識(shí),善于揭示各知識(shí)點(diǎn)之間的內(nèi)在聯(lián)系。
4.通過貫穿全書的兩個(gè)研究案例——信息系統(tǒng)案例和實(shí)時(shí)系統(tǒng)案例,以及一個(gè)學(xué)期項(xiàng)目——住房抵押處理系統(tǒng)軟件,引導(dǎo)讀者將概念有機(jī)地應(yīng)用到實(shí)際項(xiàng)目中。
5.為教師提供配套的教學(xué)PPT和習(xí)題答案等資源。
莎麗·勞倫斯·弗里格(Shari Lawrence Pfleeger),世界范圍內(nèi)享有盛譽(yù)的軟件工程學(xué)者,在軟件開發(fā)領(lǐng)域有數(shù)十年的豐富經(jīng)驗(yàn),主要從事軟件工程和信息技術(shù)的教學(xué)、咨詢和研究工作,在軟件質(zhì)量保證、度量和軟件工程實(shí)踐研究方面有較大影響力,F(xiàn)任美國(guó)智庫蘭德公司的高級(jí)研究員。她曾經(jīng)執(zhí)教于倫敦城市大學(xué)和馬里蘭大學(xué),并擔(dān)任IEEE Software和IEEE Transactions on SoftwareEngineering等專業(yè)期刊的副主編多年。
喬安妮·M. 阿特利(Joanne M. Atlee),世界杰出的軟件工程學(xué)者,在軟件需求和軟件工程教育方面有著杰出貢獻(xiàn)。她是IEEE計(jì)算機(jī)學(xué)會(huì)和ACM聯(lián)合發(fā)起的軟件工程課程項(xiàng)目指導(dǎo)委員會(huì)的成員,也是國(guó)際信息處理聯(lián)合會(huì)(IFIP)軟件需求工程工作組成員。她是滑鐵盧大學(xué)副教授,創(chuàng)立了該校的軟件工程學(xué)位項(xiàng)目并擔(dān)任項(xiàng)目主任。
1 Why Software Engineering / 軟件工程概述 1
1.1 What Is Software Engineering / 什么是軟件工程? 2
Solving Problems / 問題求解 2
Where Does the Software Engineer Fit In / 軟件工程師的角色是什么? 4
1.2 How Successful Have We Been / 軟件工程取得了哪些進(jìn)展? 5
1.3 What Is Good Software / 什么是好的軟件? 9
The Quality of the Product / 產(chǎn)品的質(zhì)量 10
The Quality of the Process / 過程的質(zhì)量 11
Quality in the Context of the Business Environment / 商業(yè)環(huán)境背景下的質(zhì)量 12
1.4 Who Does Software Engineering / 軟件工程涉及哪些人員? 14
1.5 A Systems Approach / 系統(tǒng)的方法 16
The Elements of a System / 系統(tǒng)的要素 16
Interrelated Systems / 相互聯(lián)系的系統(tǒng) 18
1.6 An Engineering Approach / 工程的方法 21
Building a House / 蓋房子 21
Building a System / 構(gòu)建系統(tǒng) 23
1.7 Members of the Development Team / 開發(fā)團(tuán)隊(duì)的成員 25
1.8 How Has Software Engineering Changed / 軟件工程發(fā)生了多大的變化? 27
The Nature of the Change / 變化的本質(zhì) 28
Wasserman’s Discipline of Software Engineering / 軟件工程的 Wasserman 規(guī)范 30
1.9 Information Systems Example / 信息系統(tǒng)的例子 35
1.10 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 37
1.11 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 39
1.12 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 39
1.13 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 40
1.14 Term Project / 學(xué)期項(xiàng)目 40
1.15 Key References / 主要參考文獻(xiàn) 42
1.16 Exercises / 練習(xí) 42
2 Modeling the Process and Life Cycle / 過程和生命周期的建模 45
2.1 The Meaning of Process / 過程的含義 45
2.2 Software Process Models / 軟件過程模型 48
Waterfall Model / 瀑布模型 48
V Model / V 模型 52
Prototyping Model / 原型化模型 53
Operational Specification / 可操作規(guī)格說明 54
Transformational Model / 可轉(zhuǎn)換模型 54
Phased Development: Increments and Iterations / 階段化開發(fā):增量和迭代 55
Spiral Model / 螺旋模型 58
Agile Methods / 敏捷方法 59
2.3 Tools and Techniques for Process Modeling / 過程建模工具和技術(shù) 63
Static Modeling: Lai Notation / 靜態(tài)建模:Lai 表示法 64
Dynamic Modeling: System Dynamics / 動(dòng)態(tài)建模:系統(tǒng)動(dòng)力學(xué) 67
2.4 Practical Process Modeling / 實(shí)際的過程建模 70
Marvel Case Studies / Marvel 的案例研究 70
Desirable Properties of Process Modeling Tools and Techniques / 過程建模工具和技術(shù)應(yīng)該具有的特性 72
2.5 Information Systems Example / 信息系統(tǒng)的例子 73
2.6 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 75
2.7 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 76
2.8 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 76
2.9 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 77
2.10 Term Project / 學(xué)期項(xiàng)目 77
2.11 Key References / 主要參考文獻(xiàn) 77
2.12 Exercises / 練習(xí) 81
3 Planning and Managing the Project / 計(jì)劃和管理項(xiàng)目 82
3.1 Tracking Progress / 跟蹤項(xiàng)目進(jìn)展 82
Work Breakdown and Activity Graphs / 工作分解和活動(dòng)圖 84
Estimating Completion / 估算完成時(shí)間 87
Tools to Track Progress / 跟蹤進(jìn)展的工具 92
3.2 Project Personnel / 項(xiàng)目人員 95
Staff Roles and Characteristics / 人員角色和特性 95
Work Styles / 工作風(fēng)格 99
Project Organization / 項(xiàng)目組織 101
3.3 Effort Estimation / 工作量估算 104
Expert Judgment / 專家判斷 106
Algorithmic Methods / 算法方法 108
Machine-Learning Methods / 機(jī)器學(xué)習(xí)方法 115
Finding the Model for Your Situation / 找出適合具體情形的模型 117
3.4 Risk Management / 風(fēng)險(xiǎn)管理 119
What Is a Risk / 什么是風(fēng)險(xiǎn)? 119
Risk Management Activities / 風(fēng)險(xiǎn)管理活動(dòng) 120
3.5 The Project Plan / 項(xiàng)目計(jì)劃 123
3.6 Process Models and Project Management / 過程模型和項(xiàng)目管理 125
Enrollment Management / 注冊(cè)管理 125
Accountability Modeling / 責(zé)任建模 128
Anchoring Milestones / 緊密結(jié)合里程碑 131
3.7 Information Systems Example / 信息系統(tǒng)的例子 133
3.8 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 135
3.9 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 136
3.10 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 136
3.11 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 137
3.12 Term Project / 學(xué)期項(xiàng)目 137
3.13 Key References / 主要參考文獻(xiàn) 137
3.14 Exercises / 練習(xí) 138
4 Capturing the Requirements / 獲取需求 141
4.1 The Requirements Process / 需求過程 142
4.2 Requirements Elicitation / 需求引發(fā) 144
4.3 Types of Requirements / 需求的類型 148
Resolving Conflicts / 解決沖突 149
Two Kinds of Requirements Documents / 兩種需求文檔 153
4.4 Characteristics of Requirements / 需求的特性 155
4.5 Modeling Notations / 建模表示法 156
Entity-Relationship Diagrams / 實(shí)體 - 聯(lián)系圖 157
Example: UML Class Diagrams / 例子:UML 類圖 159
Event Traces / 事件蹤跡 162
Example: Message Sequence Chart / 例子:消息時(shí)序圖 163
State Machines / 狀態(tài)機(jī) 164
Example: UML Statechart Diagrams / 例子:UML 狀態(tài)圖 165
Example: Petri Nets / 例子:Petri 網(wǎng) 169
Data-Flow Diagrams / 數(shù)據(jù)流圖 172
Example: Use Cases / 例子:用例 173
Functions and Relations / 函數(shù)和關(guān)系 175
Example: Decision Tables / 例子:判定表 176
Example: Parnas Tables / 例子:Parnas 表 177
Logic / 邏輯 178
Example: Object Constraint Language (OCL) / 例子:對(duì)象約束語言(OCL) 180
Example: Z / 例子:Z 181
Algebraic Specifications / 代數(shù)規(guī)格說明 183
Example: SDL Data / 例子:SDL 數(shù)據(jù) 184
4.6 Requirements and Specification Languages / 需求和規(guī)格說明語言 187
Unified Modeling Language (UML) / 統(tǒng)一建模語言(UML) 188
Specification and Description Language (SDL) / 規(guī)格說明和描述語言(SDL) 189
Software Cost Reduction (SCR) / 軟件成本降低(SCR) 190
Other Features of Requirements Notations / 需求表示法的其他特征 191
4.7 Prototyping Requirements / 原型化需求 191
4.8 Requirements Documentation / 需求文檔 193
Requirements Definition / 需求定義 193
Requirements Specification / 需求規(guī)格說明 195
Process Management and Requirements Traceability / 過程管理和需求的可跟蹤性 197
4.9 Validation and Verification / 確認(rèn)和驗(yàn)證 198
Requirements Validation / 需求確認(rèn) 199
Verification / 驗(yàn)證 202
4.10 Measuring Requirements / 測(cè)量需求 204
4.11 Choosing a Specification Technique / 選擇規(guī)格說明技術(shù) 206
4.12 Information Systems Example / 信息系統(tǒng)的例子 209
4.13 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 211
4.14 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 213
4.15 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 214
4.16 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 214
4.17 Term Project / 學(xué)期項(xiàng)目 215
Preconditions and Assumptions / 前提和假設(shè) 215
High-Level Description of Functionality / 功能的高層描述 215
Functional Requirements / 功能需求 216
Data Constraints / 數(shù)據(jù)約束 217
Design and Interface Constraints / 設(shè)計(jì)和接口約束 218
Quality Requirements / 質(zhì)量需求 218
4.18 Key References / 主要參考文獻(xiàn) 218
4.19 Exercises / 練習(xí) 219
5 Designing the Architecture / 設(shè)計(jì)體系結(jié)構(gòu) 223
5.1 The Design Process / 設(shè)計(jì)過程 223
Design Is a Creative Process / 設(shè)計(jì)是一種創(chuàng)造性過程 225
Design Process Model / 設(shè)計(jì)過程模型 228
5.2 Modeling Architectures / 體系結(jié)構(gòu)建模 231
5.3 Decomposition and Views / 分解和視圖 231
Architectural Views / 體系結(jié)構(gòu)視圖 234
5.4 Architectural Styles and Strategies / 體系結(jié)構(gòu)風(fēng)格和策略 235
Pipe-and-Filter / 管道和過濾器 236
Client-Server / 客戶端 - 服務(wù)器 237
Peer-to-Peer / 對(duì)等網(wǎng)絡(luò) 238
Publish-Subscribe / 發(fā)布 - 訂閱 240
Repositories / 信息庫 241
Layering / 分層 242
Combining Architectural Styles / 組合體系結(jié)構(gòu)風(fēng)格 243
5.5 Achieving Quality Attributes / 滿足質(zhì)量屬性 245
Modifiability / 可修改性 245
Performance / 性能 247
Security / 安全性 248
Reliability / 可靠性 250
Robustness / 穩(wěn)健性 254
Usability / 易使用性 254
Business Goals / 商業(yè)目標(biāo) 255
5.6 Collaborative Design / 協(xié)作設(shè)計(jì) 256
Outsourcing / 外包 257
5.7 Architecture Evaluation and Refinement / 體系結(jié)構(gòu)的評(píng)估和改進(jìn) 258
Measuring Design Quality / 測(cè)量設(shè)計(jì)質(zhì)量 258
Fault-Tree Analysis / 故障樹分析 259
Security Analysis / 安全性分析 262
Trade-off Analysis / 權(quán)衡分析 263
Cost-Benefit Analysis / 成本效益分析 268
Prototyping / 原型化 272
5.8 Documenting Software Architectures / 文檔化軟件體系結(jié)構(gòu) 273
Mappings among Views / 視圖間的映射 275
Documenting Rationale / 文檔化設(shè)計(jì)合理性 276
5.9 Architecture Design Review / 體系結(jié)構(gòu)設(shè)計(jì)評(píng)審 276
Validation / 確認(rèn) 276
Verification / 驗(yàn)證 278
5.10 Software Product Lines / 軟件產(chǎn)品線 279
Strategic Scoping / 戰(zhàn)略范圍 280
Advantages of Product-Line Architecture / 產(chǎn)品線體系結(jié)構(gòu)的優(yōu)勢(shì) 282
Product-Line Evolution / 產(chǎn)品線的演化 283
5.11 Information Systems Example / 信息系統(tǒng)的例子 284
5.12 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 286
5.13 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 287
5.14 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 288
5.15 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 288
5.16 Term Project / 學(xué)期項(xiàng)目 289
5.17 Key References / 主要參考文獻(xiàn) 290
5.18 Exercises / 練習(xí) 290
6 Designing the Modules / 設(shè)計(jì)模塊 293
6.1 Design Methodology / 設(shè)計(jì)方法 294
6.2 Design Principles / 設(shè)計(jì)原則 295
Modularity / 模塊化 297
Interfaces / 接口 302
Information Hiding / 信息隱藏 304
Incremental Development / 增量式開發(fā) 306
Abstraction / 抽象 307
Generality / 通用性 308
6.3 OO Design / 面向?qū)ο笤O(shè)計(jì) 310
Terminology / 術(shù)語 311
Inheritance vs. Object Composition / 繼承與對(duì)象組合 315
Substitutability / 可替換性 317
Law of Demeter / 德米特法則 318
Dependency Inversion / 依賴倒置 320
6.4 Representing OO Designs in the UML / 在 UML 中體現(xiàn)面向?qū)ο笤O(shè)計(jì) 321
UML in the Process / 過程中的 UML 321
UML Class Diagram / UML 類圖 324
Other UML Diagrams / 其他 UML 圖 330
6.5 OO Design Patterns / 面向?qū)ο笤O(shè)計(jì)模式 338
Template Method Pattern / 模板方法模式 340
Factory Method Pattern / 工廠方法模式 341
Strategy Pattern / 策略模式 342
Decorator Pattern / 裝飾者模式 343
Observer Pattern / 觀察者模式 344
Composite Pattern / 組合模式 345
Visitor Pattern / 訪問者模式 346
6.6 Other Design Considerations / 設(shè)計(jì)中其他方面的考慮 348
Data Management / 數(shù)據(jù)管理 348
Exception Handling / 異常處理 349
Designing User Interfaces / 用戶界面設(shè)計(jì) 351
Frameworks / 框架 351
6.7 OO Measurement / 面向?qū)ο蠖攘?353
OO Size Measures / 面向?qū)ο笙到y(tǒng)規(guī)模的度量 353
OO Design Quality Measures / 面向?qū)ο笙到y(tǒng)設(shè)計(jì)質(zhì)量的度量 355
Where to Do OO Measurement / 在何處進(jìn)行面向?qū)ο鬁y(cè)量 362
6.8 Design Documentation / 設(shè)計(jì)文檔 363
6.9 Information Systems Example / 信息系統(tǒng)的例子 366
6.10 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 367
6.11 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 367
6.12 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 369
6.13 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 369
6.14 Term Project / 學(xué)期項(xiàng)目 369
6.15 Key References / 主要參考文獻(xiàn) 370
6.16 Exercises / 練習(xí) 370
7 Writing the Programs / 編寫程序 373
7.1 Programming Standards and Procedures / 編程標(biāo)準(zhǔn)和過程 373
Standards for You / 對(duì)開發(fā)人員的標(biāo)準(zhǔn) 374
Standards for Others / 對(duì)其他人員的標(biāo)準(zhǔn) 375
Matching Design with Implementation / 設(shè)計(jì)和實(shí)現(xiàn)的匹配 376
7.2 Programming Guidelines / 編程的指導(dǎo)原則 376
Control Structures / 控制結(jié)構(gòu) 377
Algorithms / 算法 378
Data Structures / 數(shù)據(jù)結(jié)構(gòu) 379
General Guidelines / 通用性指導(dǎo)原則 382
7.3 Documentation / 文檔 387
Internal Documentation / 內(nèi)部文檔 387
External Documentation / 外部文檔 390
7.4 The Programming Process / 編程過程 391
Programming as Problem Solving / 將編程作為問題求解 392
Extreme Programming / 極限編程 393
Pair Programming / 結(jié)對(duì)編程 393
Whither Programming / 編程向何處去? 394
7.5 Information Systems Example / 信息系統(tǒng)的例子 395
7.6 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 396
7.7 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 397
7.8 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 398
7.9 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 398
7.10 Term Project / 學(xué)期項(xiàng)目 398
7.11 Key References / 主要參考文獻(xiàn) 399
7.12 Exercises / 練習(xí) 399
8 Testing the Programs / 測(cè)試程序 401
8.1 Software Faults and Failures / 軟件故障和失效 401
Types of Faults / 故障的類型 403
Orthogonal Defect Classification / 正交缺陷分類 405
8.2 Testing Issues / 測(cè)試的相關(guān)問題 407
Test Organization / 測(cè)試的組織 407
Attitudes Toward Testing / 對(duì)測(cè)試的態(tài)度 409
Who Performs the Tests / 誰執(zhí)行測(cè)試? 409
Views of the Test Objects / 測(cè)試對(duì)象的視圖 410
8.3 Unit Testing / 單元測(cè)試 412
Examining the Code / 檢查代碼 412
Proving Code Correct / 證明代碼正確性 416
Testing Program Components / 測(cè)試程序構(gòu)件 420
Comparing Techniques / 技術(shù)比較 425
8.4 Integration Testing / 集成測(cè)試 426
Bottom-Up Integration / 自底向上集成 426
Top-Down Integration / 自頂向下集成 428
Big-Bang Integration / 一次性集成 429
Sandwich Integration / 三明治集成 430
Comparison of Integration Strategies / 集成策略的比較 430
8.5 Testing Object-Oriented Systems / 測(cè)試面向?qū)ο笙到y(tǒng) 433
Testing the Code / 代碼測(cè)試 433
Differences between Object-Oriented and Traditional Testing / 面向?qū)ο鬁y(cè)試和傳統(tǒng)測(cè)試之間的區(qū)別 434
8.6 Test Planning / 測(cè)試計(jì)劃 436
Purpose of the Plan / 計(jì)劃的目的 436
Contents of the Plan / 計(jì)劃的內(nèi)容 437
8.7 Automated Testing Tools / 自動(dòng)測(cè)試工具 438
Code Analysis Tools / 代碼分析工具 438
Test Execution Tools / 測(cè)試執(zhí)行工具 440
Test Case Generators / 測(cè)試用例生成器 441
8.8 When to Stop Testing / 什么時(shí)候停止測(cè)試 441
Fault Seeding / 故障播種 442
Confidence in the Software / 軟件中的可信度 443
Other Stopping Criteria / 其他的停止測(cè)試的標(biāo)準(zhǔn) 444
Identifying Fault-Prone Code / 識(shí)別易出故障的代碼 445
8.9 Information Systems Example / 信息系統(tǒng)的例子 446
8.10 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 447
8.11 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 448
8.12 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 448
8.13 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 449
8.14 Term Project / 學(xué)期項(xiàng)目 449
8.15 Key References / 主要參考文獻(xiàn) 449
8.16 Exercises / 練習(xí) 450
9 Testing the System / 測(cè)試系統(tǒng) 453
9.1 Principles of System Testing / 系統(tǒng)測(cè)試的原則 453
Sources of Software Faults / 軟件故障根源 453
System Testing Process / 系統(tǒng)測(cè)試過程 455
Configuration Management / 配置管理 459
Test Team / 測(cè)試小組 465
9.2 Function Testing / 功能測(cè)試 466
Purpose and Roles / 目的與職責(zé) 466
Cause-and-Effect Graphs / 因果圖 468
9.3 Performance Testing / 性能測(cè)試 472
Purpose and Roles / 目的和職責(zé) 472
Types of Performance Tests / 性能測(cè)試的類型 472
9.4 Reliability, Availability, and Maintainability / 可靠性、可用性以及可維護(hù)性 474
Definitions / 定義 474
Failure Data / 失效數(shù)據(jù) 475
Measuring Reliability, Availability, and Maintainability / 測(cè)量可靠性、可用性和可維護(hù)性 477
Reliability Stability and Growth / 可靠性的穩(wěn)定性和可靠性增長(zhǎng) 478
Reliability Prediction / 可靠性預(yù)測(cè) 479
Importance of the Operational Environment / 操作環(huán)境的重要性 482
9.5 Acceptance Testing / 驗(yàn)收測(cè)試 483
Purpose and Roles / 目的和職責(zé) 483
Types of Acceptance Tests / 驗(yàn)收測(cè)試的種類 484
Results of Acceptance Tests / 驗(yàn)收測(cè)試的結(jié)果 484
9.6 Installation Testing / 安裝測(cè)試 486
9.7 Automated System Testing / 自動(dòng)化系統(tǒng)測(cè)試 486
9.8 Test Documentation / 測(cè)試文檔 487
Test Plans / 測(cè)試計(jì)劃 488
Test Specification and Evaluation / 測(cè)試規(guī)格說明和評(píng)估 491
Test Description / 測(cè)試描述 492
Test Analysis Report / 測(cè)試分析報(bào)告 495
Problem Report Forms / 問題報(bào)告表 496
9.9 Testing Safety-Critical Systems / 測(cè)試安全攸關(guān)的系統(tǒng) 498
Design Diversity / 設(shè)計(jì)多樣性 500
Software Safety Cases / 軟件安全性案例 502
Cleanroom / 凈室方法 505
9.10 Information Systems Example / 信息系統(tǒng)的例子 509
9.11 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 511
9.12 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 513
9.13 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 513
9.14 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 513
9.15 Term Project / 學(xué)期項(xiàng)目 514
9.16 Key References / 主要參考文獻(xiàn) 514
9.17 Exercises / 練習(xí) 515
10 Delivering the System / 交付系統(tǒng) 519
10.1 Training / 培訓(xùn) 519
Types of Training / 培訓(xùn)的種類 520
Training Aids / 培訓(xùn)助手 522
Guidelines for Training / 培訓(xùn)的指導(dǎo)原則 523
10.2 Documentation / 文檔 524
Types of Documentation / 文檔的種類 524
User Help and Troubleshooting / 用戶幫助和疑難解答 529
10.3 Information Systems Example / 信息系統(tǒng)的例子 531
10.4 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 532
10.5 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 532
10.6 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 532
10.7 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 533
10.8 Term Project / 學(xué)期項(xiàng)目 533
10.9 Key References / 主要參考文獻(xiàn) 533
10.10 Exercises / 練習(xí) 533
11 Maintaining the System / 維護(hù)系統(tǒng) 535
11.1 The Changing System / 變化的系統(tǒng) 535
Types of Systems / 系統(tǒng)的類型 536
Changes During the System Life Cycle / 在系統(tǒng)生命周期過程中發(fā)生的變化 539
The System Life Span / 系統(tǒng)生命周期跨度 539
11.2 The Nature of Maintenance / 維護(hù)的本質(zhì) 543
Maintenance Activities and Roles / 維護(hù)活動(dòng)及其角色 543
11.3 Maintenance Problems / 維護(hù)問題 546
Staff Problems / 人員問題 546
Technical Problems / 技術(shù)問題 548
The Need to Compromise / 必要的妥協(xié) 549
Maintenance Cost / 維護(hù)成本 550
11.4 Measuring Maintenance Characteristics / 測(cè)量維護(hù)特性 554
External View of Maintainability / 可維護(hù)性的外部視圖 555
Internal Attributes Affecting Maintainability / 影響可維護(hù)性的內(nèi)部屬性 556
Other Product Measures / 其他的產(chǎn)品測(cè)量 558
11.5 Maintenance Techniques and Tools / 維護(hù)技術(shù)和工具 560
Configuration Management / 配置管理 560
Impact Analysis / 影響分析 562
Automated Maintenance Tools / 自動(dòng)化維護(hù)工具 566
11.6 Software Rejuvenation / 軟件再生 568
Redocumentation / 文檔重構(gòu) 569
Restructuring / 重組 570
Reverse Engineering / 逆向工程 571
Reengineering / 工程再造 572
The Future of Rejuvenation / 軟件再生的前景 574
11.7 Information Systems Example / 信息系統(tǒng)的例子 574
11.8 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 575
11.9 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 576
11.10 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 576
11.11 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 577
11.12 Term Project / 學(xué)期項(xiàng)目 577
11.13 Key References / 主要參考文獻(xiàn) 577
11.14 Exercises / 練習(xí) 578
12 Evaluating Products, Processes, and Resources / 評(píng)估產(chǎn)品、過程和資源 580
12.1 Approaches to Evaluation / 評(píng)估的方法 580
Feature Analysis / 特征分析 581
Surveys / 調(diào)查 582
Case Studies / 案例研究 582
Formal Experiments / 正式試驗(yàn) 583
Preparing for an Evaluation / 準(zhǔn)備評(píng)估 584
12.2 Selecting an Evaluation Technique / 選擇評(píng)估技術(shù) 585
Key Selection Factors / 關(guān)鍵選擇因素 585
What to Believe / 相信什么 586
12.3 Assessment vs. Prediction / 評(píng)價(jià)與預(yù)測(cè) 589
Validating Prediction Systems / 確認(rèn)預(yù)測(cè)系統(tǒng) 590
Validating Measures / 確認(rèn)測(cè)量 593
A Stringent Requirement for Validation / 對(duì)確認(rèn)的緊迫需求 593
12.4 Evaluating Products / 評(píng)估產(chǎn)品 595
Product Quality Models / 產(chǎn)品質(zhì)量模型 595
Establishing Baselines and Targets / 建立基線和設(shè)定目標(biāo) 599
Software Reusability / 軟件可復(fù)用性 601
12.5 Evaluating Processes / 評(píng)估過程 610
Postmortem Analysis / 事后分析 611
Process Maturity Models / 過程成熟度模型 617
12.6 Evaluating Resources / 評(píng)估資源 626
People Maturity Model / 人員成熟度模型 627
Return on Investment / 投資回報(bào) 629
12.7 Information Systems Example / 信息系統(tǒng)的例子 631
12.8 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 632
12.9 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 632
12.10 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 633
12.11 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 633
12.12 Term Project / 學(xué)期項(xiàng)目 633
12.13 Key References / 主要參考文獻(xiàn) 634
12.14 Exercises / 練習(xí) 634
13 Improving Predictions, Products, Processes, and Resources / 改進(jìn)預(yù)測(cè)、產(chǎn)品、過程和資源 636
13.1 Improving Predictions / 改進(jìn)預(yù)測(cè) 636
Predictive Accuracy / 預(yù)測(cè)的精確性 637
Dealing with Bias: The u-Plot / 處理偏誤:u 曲線 638
Dealing with Noise: Prequential Likelihood / 處理噪聲:prequential 似然度 640
Recalibrating Predictions / 重新校準(zhǔn)預(yù)測(cè) 642
13.2 Improving Products / 改進(jìn)產(chǎn)品 645
Inspections / 審查 645
Reuse / 復(fù)用 648
13.3 Improving Processes / 改進(jìn)過程 649
Process and Capability Maturity / 過程和能力成熟度 649
Maintenance / 維護(hù) 653
Cleanroom / 凈室方法 654
13.4 Improving Resources / 改進(jìn)資源 657
Work Environment / 工作環(huán)境 657
Cost and Schedule Trade-Offs / 成本和進(jìn)度的權(quán)衡 658
13.5 General Improvement Guidelines / 總體改進(jìn)指導(dǎo)原則 660
13.6 Information Systems Example / 信息系統(tǒng)的例子 661
13.7 Real-Time Example / 實(shí)時(shí)系統(tǒng)的例子 662
13.8 What This Chapter Means for You / 本章對(duì)單個(gè)開發(fā)人員的意義 662
13.9 What This Chapter Means for Your Development Team / 本章對(duì)開發(fā)團(tuán)隊(duì)的意義 662
13.10 What This Chapter Means for Researchers / 本章對(duì)研究人員的意義 663
13.11 Term Project / 學(xué)期項(xiàng)目 663
13.12 Key References / 主要參考文獻(xiàn) 663
13.13 Exercises / 練習(xí) 664
14 The Future of Software Engineering / 軟件工程的未來 665
14.1 How Have We Done / 目前取得了哪些進(jìn)展? 665
Wasserman’s Steps to Maturity / Wasserman 的獲得成熟度的措施 666
What Now / 當(dāng)前要做哪些工作? 668
14.2 Technology Transfer / 技術(shù)轉(zhuǎn)移 668
How We Make Technology Transfer Decisions Now / 現(xiàn)在我們?cè)鯓幼龀黾夹g(shù)轉(zhuǎn)移的決策 669
Using Evidence in Technology Decision-Making / 在技術(shù)決策中使用證據(jù) 670
Evidence Supporting Technology Decisions / 支持技術(shù)決策的證據(jù) 671
A Closer Look at the Evidence / 對(duì)證據(jù)的進(jìn)一步討論 672
New Models of Technology Transfer / 技術(shù)轉(zhuǎn)移的新模型 674
Next Steps in Improving Technology Transfer / 改進(jìn)技術(shù)轉(zhuǎn)移的下一步 676
14.3 Decision-Making in Software Engineering / 軟件工程中的決策 676
Lots of Decisions / 大量的決策 677
Group Decision-Making / 群體決策 679
How We Really Decide / 我們實(shí)際上如何決策 680
How Groups Really Make Decisions / 群體實(shí)際上如何決策 683
A Modest Observational Study / 一個(gè)適度的觀察研究 685
Lessons Learned / 獲得的經(jīng)驗(yàn)教訓(xùn) 688
14.4 The Professionalization of Software Engineering: Licensing, Certification, and Ethics / 軟件工程的職業(yè)化:執(zhí)照發(fā)放、認(rèn)證和倫理 689
Focus on the People / 將重點(diǎn)放在人員上 689
Software Engineering Education / 軟件工程教育 690
Software Engineering Body of Knowledge / 軟件工程知識(shí)體系 692
Licensing Software Engineers / 給軟件工程師頒發(fā)執(zhí)照 694
Certification / 認(rèn)證 700
Code of Ethics / 倫理守則 702
Professional Development / 職業(yè)發(fā)展 704
Next Steps in Research and Practice / 研究和實(shí)踐的進(jìn)一步發(fā)展 705
14.5 Term Project / 學(xué)期項(xiàng)目 706
14.6 Key References / 主要參考文獻(xiàn) 706
14.7 Exercises / 練習(xí) 708
Annotated Bibliography / 參考文獻(xiàn)及注解 709
你還可能感興趣
我要評(píng)論
|