软件工程(第4版 英文版)计算机软件工程程序设计软件开发测试评估敏捷开发计算机科学教材书籍
¥119.90
运费: | ¥ 0.00-20.00 |
商品详情
书名:软件工程:第4版:英文
定价:159.8
ISBN:9787115627018
作者:[美] 莎丽·劳伦斯·弗里格(Shari Lawrence Pfleeger),[加]乔安妮·M.阿特利(Joanne M.Atlee)
版次:第1版
出版时间:2024-01
内容提要:
本书是软件工程领域的优质作品,国际上众多名校采用本书作为教材。本书注重从实践出发选择和安排素材,同时在理论上进行*深入的探讨。 本书分为3个部分。*部分解释为什么软件工程知识对实践者和研究者同样重要,并讨论理解过程模型的*要性,利用敏捷方法的*要性,以及精细地进行项目计划的*要性;*部分论述软件开发和维护的主要步骤;第三部分讲述如何对软件进行评估和改进。 本书适合作为计算机相关专业软件工程课程的本科教材,也适用于介绍软件工程的概念与实践的研究生课程。本书还适合期望进一步学习该领域相关知识的专业人员阅读。
作者简介:
莎丽·劳伦斯·弗里格(Shari Lawrence Pfleeger),世界范围内享有盛誉的软件工程学者,在软件开发领域有数十年的丰富经验,主要从事软件工程和信息技术的教学、咨询和研究工作,在软件质量保证、度量和软件工程实践研究方面有较大影响力。现任美国智库兰德公司的*研究员。她曾经执教于伦敦城市大学和马里兰大学,并担任IEEE Software和IEEE Transactions on SoftwareEngineering等专业期刊的副主编多年。 乔安妮·M. 阿特利(Joanne M. Atlee),世界杰出的软件工程学者,在软件需求和软件工程教育方面有着杰出贡献。她是IEEE计算机学会和ACM联合发起的软件工程课程项目指导委员会的成员,也是国际信息处理联合会(IFIP)软件需求工程工作组成员。她是滑铁卢大学副教授,创立了该校的软件工程学位项目并担任项目主任。
目录:
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 / 软件工程取得了哪些进展? 5
1.3 What Is Good Software / 什么是好的软件? 9
The Quality of the Product / 产品的质量 10
The Quality of the Process / 过程的质量 11
Quality in the Context of the Business Environment / 商业环境背景下的质量 12
1.4 Who Does Software Engineering / 软件工程涉及哪些人员? 14
1.5 A Systems Approach / 系统的方法 16
The Elements of a System / 系统的要素 16
Interrelated Systems / 相互联系的系统 18
1.6 An Engineering Approach / 工程的方法 21
Building a House / 盖房子 21
Building a System / 构建系统 23
1.7 Members of the Development Team / 开发团队的成员 25
1.8 How Has Software Engineering Changed / 软件工程发生了多大的变化? 27
The Nature of the Change / 变化的本质 28
Wasserman’s Discipline of Software Engineering / 软件工程的 Wasserman 规范 30
1.9 Information Systems Example / 信息系统的例子 35
1.10 Real-Time Example / 实时系统的例子 37
1.11 What This Chapter Means for You / 本章对单个开发人员的意义 39
1.12 What This Chapter Means for Your Development Team / 本章对开发团队的意义 39
1.13 What This Chapter Means for Researchers / 本章对研究人员的意义 40
1.14 Term Project / 学期项目 40
1.15 Key References / 主要参考文献 42
1.16 Exercises / 练习 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 / 可操作规格说明 54
Transformational Model / 可转换模型 54
Phased Development: Increments and Iterations / 阶段化开发:增量和迭代 55
Spiral Model / 螺旋模型 58
Agile Methods / 敏捷方法 59
2.3 Tools and Techniques for Process Modeling / 过程建模工具和技术 63
Static Modeling: Lai Notation / 静态建模:Lai 表示法 64
Dynamic Modeling: System Dynamics / 动态建模:系统动力学 67
2.4 Practical Process Modeling / 实际的过程建模 70
Marvel Case Studies / Marvel 的案例研究 70
Desirable Properties of Process Modeling Tools and Techniques / 过程建模工具和技术应该具有的特性 72
2.5 Information Systems Example / 信息系统的例子 73
2.6 Real-Time Example / 实时系统的例子 75
2.7 What This Chapter Means for You / 本章对单个开发人员的意义 76
2.8 What This Chapter Means for Your Development Team / 本章对开发团队的意义 76
2.9 What This Chapter Means for Researchers / 本章对研究人员的意义 77
2.10 Term Project / 学期项目 77
2.11 Key References / 主要参考文献 77
2.12 Exercises / 练习 81
3 Planning and Managing the Project / 计划和管理项目 82
3.1 Tracking Progress / 跟踪项目进展 82
Work Breakdown and Activity Graphs / 工作分解和活动图 84
Estimating Completion / 估算完成时间 87
Tools to Track Progress / 跟踪进展的工具 92
3.2 Project Personnel / 项目人员 95
Staff Roles and Characteristics / 人员角色和特性 95
Work Styles / 工作风格 99
Project Organization / 项目组织 101
3.3 Effort Estimation / 工作量估算 104
Expert Judgment / *判断 106
Algorithmic Methods / 算法方法 108
Machine-Learning Methods / 机器学习方法 115
Finding the Model for Your Situation / 找出适合具体情形的模型 117
3.4 Risk Management / 风险管理 119
What Is a Risk / 什么是风险? 119
Risk Management Activities / 风险管理活动 120
3.5 The Project Plan / 项目计划 123
3.6 Process Models and Project Management / 过程模型和项目管理 125
Enrollment Management / 注册管理 125
Accountability Modeling / 责任建模 128
Anchoring Milestones / 紧密结合里程碑 131
3.7 Information Systems Example / 信息系统的例子 133
3.8 Real-Time Example / 实时系统的例子 135
3.9 What This Chapter Means for You / 本章对单个开发人员的意义 136
3.10 What This Chapter Means for Your Development Team / 本章对开发团队的意义 136
3.11 What This Chapter Means for Researchers / 本章对研究人员的意义 137
3.12 Term Project / 学期项目 137
3.13 Key References / 主要参考文献 137
3.14 Exercises / 练习 138
4 Capturing the Requirements / 获取需求 141
4.1 The Requirements Process / 需求过程 142
4.2 Requirements Elicitation / 需求引发 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 / 实体 - 联系图 157
Example: UML Class Diagrams / 例子:UML 类图 159
Event Traces / 事件踪迹 162
Example: Message Sequence Chart / 例子:消息时序图 163
State Machines / 状态机 164
Example: UML Statechart Diagrams / 例子:UML 状态图 165
Example: Petri Nets / 例子:Petri 网 169
Data-Flow Diagrams / 数据流图 172
Example: Use Cases / 例子:用例 173
Functions and Relations / 函数和关系 175
Example: Decision Tables / 例子:判定表 176
Example: Parnas Tables / 例子:Parnas 表 177
Logic / 逻辑 178
Example: Object Constraint Language (OCL) / 例子:对象约束语言(OCL) 180
Example: Z / 例子:Z 181
Algebraic Specifications / 代数规格说明 183
Example: SDL Data / 例子:SDL 数据 184
4.6 Requirements and Specification Languages / 需求和规格说明语言 187
Unified Modeling Language (UML) / 统一建模语言(UML) 188
Specification and Description Language (SDL) / 规格说明和描述语言(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 / 需求规格说明 195
Process Management and Requirements Traceability / 过程管理和需求的可跟踪性 197
4.9 Validation and Verification / 确认和验证 198
Requirements Validation / 需求确认 199
Verification / 验证 202
4.10 Measuring Requirements / 测量需求 204
4.11 Choosing a Specification Technique / 选择规格说明技术 206
4.12 Information Systems Example / 信息系统的例子 209
4.13 Real-Time Example / 实时系统的例子 211
4.14 What This Chapter Means for You / 本章对单个开发人员的意义 213
4.15 What This Chapter Means for Your Development Team / 本章对开发团队的意义 214
4.16 What This Chapter Means for Researchers / 本章对研究人员的意义 214
4.17 Term Project / 学期项目 215
Preconditions and Assumptions / 前提和假设 215
High-Level Description of Functionality / 功能的高层描述 215
Functional Requirements / 功能需求 216
Data Constraints / 数据约束 217
Design and Interface Constraints / 设计和接口约束 218
Quality Requirements / 质量需求 218
4.18 Key References / 主要参考文献 218
4.19 Exercises / 练习 219
5 Designing the Architecture / 设计体系结构 223
5.1 The Design Process / 设计过程 223
Design Is a Creative Process / 设计是一种创造性过程 225
Design Process Model / 设计过程模型 228
5.2 Modeling Architectures / 体系结构建模 231
5.3 Decomposition and Views / 分解和视图 231
Architectural Views / 体系结构视图 234
5.4 Architectural Styles and Strategies / 体系结构风格和策略 235
Pipe-and-Filter / 管道和过滤器 236
Client-Server / 客户端 - 服务器 237
Peer-to-Peer / 对等网络 238
Publish-Subscribe / 发布 - 订阅 240
Repositories / 信息库 241
Layering / 分层 242
Combining Architectural Styles / 组合体系结构风格 243
5.5 Achieving Quality Attributes / 满足质量属性 245
Modifiability / 可修改性 245
Performance / 性能 247
Security / *性 248
Reliability / 可靠性 250
Robustness / 稳健性 254
Usability / 易使用性 254
Business Goals / 商业目标 255
5.6 Collaborative Design / 协作设计 256
Outsourcing / 外包 257
5.7 Architecture Evaluation and Refinement / 体系结构的评估和改进 258
Measuring Design Quality / 测量设计质量 258
Fault-Tree Analysis / 故障树分析 259
Security Analysis / *性分析 262
Trade-off Analysis / 权衡分析 263
Cost-Benefit Analysis / 成本效益分析 268
Prototyping / 原型化 272
5.8 Documenting Software Architectures / 文档化软件体系结构 273
Mappings among Views / 视图间的映射 275
Documenting Rationale / 文档化设计合理性 276
5.9 Architecture Design Review / 体系结构设计评审 276
Validation / 确认 276
Verification / 验证 278
5.10 Software Product Lines / 软件产品线 279
Strategic Scoping / 战略范围 280
Advantages of Product-Line Architecture / 产品线体系结构的优势 282
Product-Line Evolution / 产品线的演化 283
5.11 Information Systems Example / 信息系统的例子 284
5.12 Real-Time Example / 实时系统的例子 286
5.13 What This Chapter Means for You / 本章对单个开发人员的意义 287
5.14 What This Chapter Means for Your Development Team / 本章对开发团队的意义 288
5.15 What This Chapter Means for Researchers / 本章对研究人员的意义 288
5.16 Term Project / 学期项目 289
5.17 Key References / 主要参考文献 290
5.18 Exercises / 练习 290
6 Designing the Modules / 设计模块 293
6.1 Design Methodology / 设计方法 294
6.2 Design Principles / 设计原则 295
Modularity / 模块化 297
Interfaces / 接口 302
Information Hiding / 信息隐藏 304
Incremental Development / 增量式开发 306
Abstraction / 抽象 307
Generality / 通用性 308
6.3 OO Design / 面向对象设计 310
Terminology / 术语 311
Inheritance vs. Object Composition / 继承与对象组合 315
Substitutability / 可替换性 317
Law of Demeter / 德米特法则 318
Dependency Inversion / 依赖倒置 320
6.4 Representing OO Designs in the UML / 在 UML 中体现面向对象设计 321
UML in the Process / 过程中的 UML 321
UML Class Diagram / UML 类图 324
Other UML Diagrams / 其他 UML 图 330
6.5 OO Design Patterns / 面向对象设计模式 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 / 设计中其他方面的考虑 348
Data Management / 数据管理 348
Exception Handling / 异常处理 349
Designing User Interfaces / 用户界面设计 351
Frameworks / 框架 351
6.7 OO Measurement / 面向对象度量 353
OO Size Measures / 面向对象系统规模的度量 353
OO Design Quality Measures / 面向对象系统设计质量的度量 355
Where to Do OO Measurement / 在何处进行面向对象测量 362
6.8 Design Documentation / 设计文档 363
6.9 Information Systems Example / 信息系统的例子 366
6.10 Real-Time Example / 实时系统的例子 367
6.11 What This Chapter Means for You / 本章对单个开发人员的意义 367
6.12 What This Chapter Means for Your Development Team / 本章对开发团队的意义 369
6.13 What This Chapter Means for Researchers / 本章对研究人员的意义 369
6.14 Term Project / 学期项目 369
6.15 Key References / 主要参考文献 370
6.16 Exercises / 练习 370
7 Writing the Programs / 编写程序 373
7.1 Programming Standards and Procedures / 编程标准和过程 373
Standards for You / 对开发人员的标准 374
Standards for Others / 对其他人员的标准 375
Matching Design with Implementation / 设计和实现的匹配 376
7.2 Programming Guidelines / 编程的指导原则 376
Control Structures / 控制结构 377
Algorithms / 算法 378
Data Structures / 数据结构 379
General Guidelines / 通用性指导原则 382
7.3 Documentation / 文档 387
Internal Documentation / 内部文档 387
External Documentation / 外部文档 390
7.4 The Programming Process / 编程过程 391
Programming as Problem Solving / 将编程作为问题求解 392
Extreme Programming / 极限编程 393
Pair Programming / 结对编程 393
Whither Programming / 编程向何处去? 394
7.5 Information Systems Example / 信息系统的例子 395
7.6 Real-Time Example / 实时系统的例子 396
7.7 What This Chapter Means for You / 本章对单个开发人员的意义 397
7.8 What This Chapter Means for Your Development Team / 本章对开发团队的意义 398
7.9 What This Chapter Means for Researchers / 本章对研究人员的意义 398
7.10 Term Project / 学期项目 398
7.11 Key References / 主要参考文献 399
7.12 Exercises / 练习 399
8 Testing the Programs / 测试程序 401
8.1 Software Faults and Failures / 软件故障和失效 401
Types of Faults / 故障的类型 403
Orthogonal Defect Classification / 正交缺陷分类 405
8.2 Testing Issues / 测试的相关问题 407
Test Organization / 测试的组织 407
Attitudes Toward Testing / 对测试的态度 409
Who Performs the Tests / 谁执行测试? 409
Views of the Test Objects / 测试对象的视图 410
8.3 Unit Testing / 单元测试 412
Examining the Code / 检查代码 412
Proving Code Correct / 证明代码正确性 416
Testing Program Components / 测试程序构件 420
Comparing Techniques / 技术比较 425
8.4 Integration Testing / 集成测试 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 / 测试面向对象系统 433
Testing the Code / 代码测试 433
Differences between Object-Oriented and Traditional Testing / 面向对象测试和传统测试之间的区别 434
8.6 Test Planning / 测试计划 436
Purpose of the Plan / 计划的目的 436
Contents of the Plan / 计划的内容 437
8.7 Automated Testing Tools / 自动测试工具 438
Code Analysis Tools / 代码分析工具 438
Test Execution Tools / 测试执行工具 440
Test Case Generators / 测试用例生成器 441
8.8 When to Stop Testing / 什么时候停止测试 441
Fault Seeding / 故障播种 442
Confidence in the Software / 软件中的可信度 443
Other Stopping Criteria / 其他的停止测试的标准 444
Identifying Fault-Prone Code / 识别易出故障的代码 445
8.9 Information Systems Example / 信息系统的例子 446
8.10 Real-Time Example / 实时系统的例子 447
8.11 What This Chapter Means for You / 本章对单个开发人员的意义 448
8.12 What This Chapter Means for Your Development Team / 本章对开发团队的意义 448
8.13 What This Chapter Means for Researchers / 本章对研究人员的意义 449
8.14 Term Project / 学期项目 449
8.15 Key References / 主要参考文献 449
8.16 Exercises / 练习 450
9 Testing the System / 测试系统 453
9.1 Principles of System Testing / 系统测试的原则 453
Sources of Software Faults / 软件故障根源 453
System Testing Process / 系统测试过程 455
Configuration Management / 配置管理 459
Test Team / 测试小组 465
9.2 Function Testing / 功能测试 466
Purpose and Roles / 目的与职责 466
Cause-and-Effect Graphs / 因果图 468
9.3 Performance Testing / 性能测试 472
Purpose and Roles / 目的和职责 472
Types of Performance Tests / 性能测试的类型 472
9.4 Reliability, Availability, and Maintainability / 可靠性、可用性以及可维护性 474
Definitions / 定义 474
Failure Data / 失效数据 475
Measuring Reliability, Availability, and Maintainability / 测量可靠性、可用性和可维护性 477
Reliability Stability and Growth / 可靠性的稳定性和可靠性增长 478
Reliability Prediction / 可靠性预测 479
Importance of the Operational Environment / 操作环境的重要性 482
9.5 Acceptance Testing / 验收测试 483
Purpose and Roles / 目的和职责 483
Types of Acceptance Tests / 验收测试的种类 484
Results of Acceptance Tests / 验收测试的结果 484
9.6 Installation Testing / 安装测试 486
9.7 Automated System Testing / 自动化系统测试 486
9.8 Test Documentation / 测试文档 487
Test Plans / 测试计划 488
Test Specification and Evaluation / 测试规格说明和评估 491
Test Description / 测试描述 492
Test Analysis Report / 测试分析报告 495
Problem Report Forms / 问题报告表 496
9.9 Testing Safety-Critical Systems / 测试*攸关的系统 498
Design Diversity / 设计多样性 500
Software Safety Cases / 软件*性案例 502
Cleanroom / 净室方法 505
9.10 Information Systems Example / 信息系统的例子 509
9.11 Real-Time Example / 实时系统的例子 511
9.12 What This Chapter Means for You / 本章对单个开发人员的意义 513
9.13 What This Chapter Means for Your Development Team / 本章对开发团队的意义 513
9.14 What This Chapter Means for Researchers / 本章对研究人员的意义 513
9.15 Term Project / 学期项目 514
9.16 Key References / 主要参考文献 514
9.17 Exercises / 练习 515
10 Delivering the System / 交付系统 519
10.1 Training / 培训 519
Types of Training / 培训的种类 520
Training Aids / 培训助手 522
Guidelines for Training / 培训的指导原则 523
10.2 Documentation / 文档 524
Types of Documentation / 文档的种类 524
User Help and Troubleshooting / 用户帮助和疑难解答 529
10.3 Information Systems Example / 信息系统的例子 531
10.4 Real-Time Example / 实时系统的例子 532
10.5 What This Chapter Means for You / 本章对单个开发人员的意义 532
10.6 What This Chapter Means for Your Development Team / 本章对开发团队的意义 532
10.7 What This Chapter Means for Researchers / 本章对研究人员的意义 533
10.8 Term Project / 学期项目 533
10.9 Key References / 主要参考文献 533
10.10 Exercises / 练习 533
11 Maintaining the System / 维护系统 535
11.1 The Changing System / 变化的系统 535
Types of Systems / 系统的类型 536
Changes During the System Life Cycle / 在系统生命周期过程中发生的变化 539
The System Life Span / 系统生命周期跨度 539
11.2 The Nature of Maintenance / 维护的本质 543
Maintenance Activities and Roles / 维护活动及其角色 543
11.3 Maintenance Problems / 维护问题 546
Staff Problems / 人员问题 546
Technical Problems / 技术问题 548
The Need to Compromise / *要的妥协 549
Maintenance Cost / 维护成本 550
11.4 Measuring Maintenance Characteristics / 测量维护特性 554
External View of Maintainability / 可维护性的外部视图 555
Internal Attributes Affecting Maintainability / 影响可维护性的内部属性 556
Other Product Measures / 其他的产品测量 558
11.5 Maintenance Techniques and Tools / 维护技术和工具 560
Configuration Management / 配置管理 560
Impact Analysis / 影响分析 562
Automated Maintenance Tools / 自动化维护工具 566
11.6 Software Rejuvenation / 软件再生 568
Redocumentation / 文档重构 569
Restructuring / 重组 570
Reverse Engineering / 逆向工程 571
Reengineering / 工程再造 572
The Future of Rejuvenation / 软件再生的前景 574
11.7 Information Systems Example / 信息系统的例子 574
11.8 Real-Time Example / 实时系统的例子 575
11.9 What This Chapter Means for You / 本章对单个开发人员的意义 576
11.10 What This Chapter Means for Your Development Team / 本章对开发团队的意义 576
11.11 What This Chapter Means for Researchers / 本章对研究人员的意义 577
11.12 Term Project / 学期项目 577
11.13 Key References / 主要参考文献 577
11.14 Exercises / 练习 578
12 Evaluating Products, Processes, and Resources / 评估产品、过程和资源 580
12.1 Approaches to Evaluation / 评估的方法 580
Feature Analysis / 特征分析 581
Surveys / 调查 582
Case Studies / 案例研究 582
Formal Experiments / 正式试验 583
Preparing for an Evaluation / 准备评估 584
12.2 Selecting an Evaluation Technique / 选择评估技术 585
Key Selection Factors / 关键选择因素 585
What to Believe / 相信什么 586
12.3 Assessment vs. Prediction / 评价与预测 589
Validating Prediction Systems / 确认预测系统 590
Validating Measures / 确认测量 593
A Stringent Requirement for Validation / 对确认的紧迫需求 593
12.4 Evaluating Products / 评估产品 595
Product Quality Models / 产品质量模型 595
Establishing Baselines and Targets / 建立基线和设定目标 599
Software Reusability / 软件可复用性 601
12.5 Evaluating Processes / 评估过程 610
Postmortem Analysis / 事后分析 611
Process Maturity Models / 过程成熟度模型 617
12.6 Evaluating Resources / 评估资源 626
People Maturity Model / 人员成熟度模型 627
Return on Investment / * 629
12.7 Information Systems Example / 信息系统的例子 631
12.8 Real-Time Example / 实时系统的例子 632
12.9 What This Chapter Means for You / 本章对单个开发人员的意义 632
12.10 What This Chapter Means for Your Development Team / 本章对开发团队的意义 633
12.11 What This Chapter Means for Researchers / 本章对研究人员的意义 633
12.12 Term Project / 学期项目 633
12.13 Key References / 主要参考文献 634
12.14 Exercises / 练习 634
13 Improving Predictions, Products, Processes, and Resources / 改进预测、产品、过程和资源 636
13.1 Improving Predictions / 改进预测 636
Predictive Accuracy / 预测的*性 637
Dealing with Bias: The u-Plot / 处理偏误:u 曲线 638
Dealing with Noise: Prequential Likelihood / 处理噪声:prequential 似然度 640
Recalibrating Predictions / 重新校准预测 642
13.2 Improving Products / 改进产品 645
Inspections / 审查 645
Reuse / 复用 648
13.3 Improving Processes / 改进过程 649
Process and Capability Maturity / 过程和能力成熟度 649
Maintenance / 维护 653
Cleanroom / 净室方法 654
13.4 Improving Resources / 改进资源 657
Work Environment / 工作环境 657
Cost and Schedule Trade-Offs / 成本和进度的权衡 658
13.5 General Improvement Guidelines / 总体改进指导原则 660
13.6 Information Systems Example / 信息系统的例子 661
13.7 Real-Time Example / 实时系统的例子 662
13.8 What This Chapter Means for You / 本章对单个开发人员的意义 662
13.9 What This Chapter Means for Your Development Team / 本章对开发团队的意义 662
13.10 What This Chapter Means for Researchers / 本章对研究人员的意义 663
13.11 Term Project / 学期项目 663
13.12 Key References / 主要参考文献 663
13.13 Exercises / 练习 664
14 The Future of Software Engineering / 软件工程的未来 665
14.1 How Have We Done / 目前取得了哪些进展? 665
Wasserman’s Steps to Maturity / Wasserman 的获得成熟度的措施 666
What Now / 当前要做哪些工作? 668
14.2 Technology Transfer / 技术转移 668
How We Make Technology Transfer Decisions Now / 现在我们怎样做出技术转移的决策 669
Using Evidence in Technology Decision-Making / 在技术决策中使用证据 670
Evidence Supporting Technology Decisions / 支持技术决策的证据 671
A Closer Look at the Evidence / 对证据的进一步讨论 672
New Models of Technology Transfer / 技术转移的新模型 674
Next Steps in Improving Technology Transfer / 改进技术转移的下一步 676
14.3 Decision-Making in Software Engineering / 软件工程中的决策 676
Lots of Decisions / 大量的决策 677
Group Decision-Making / 群体决策 679
How We Really Decide / 我们实际上如何决策 680
How Groups Really Make Decisions / 群体实际上如何决策 683
A Modest Observational Study / 一个适度的观察研究 685
Lessons Learned / 获得的经验教训 688
14.4 The Professionalization of Software Engineering: Licensing, Certification, and Ethics / 软件工程的职业化:执照发放、认证和伦理 689
Focus on the People / 将重点放在人员上 689
Software Engineering Education / 软件工程教育 690
Software Engineering Body of Knowledge / 软件工程知识体系 692
Licensing Software Engineers / 给软件工程师颁发执照 694
Certification / 认证 700
Code of Ethics / 伦理守则 702
Professional Development / 职业发展 704
Next Steps in Research and Practice / 研究和实践的进一步发展 705
14.5 Term Project / 学期项目 706
14.6 Key References / 主要参考文献 706
14.7 Exercises / 练习 708
Annotated Bibliography / 参考文献及注解 709
定价:159.8
ISBN:9787115627018
作者:[美] 莎丽·劳伦斯·弗里格(Shari Lawrence Pfleeger),[加]乔安妮·M.阿特利(Joanne M.Atlee)
版次:第1版
出版时间:2024-01
内容提要:
本书是软件工程领域的优质作品,国际上众多名校采用本书作为教材。本书注重从实践出发选择和安排素材,同时在理论上进行*深入的探讨。 本书分为3个部分。*部分解释为什么软件工程知识对实践者和研究者同样重要,并讨论理解过程模型的*要性,利用敏捷方法的*要性,以及精细地进行项目计划的*要性;*部分论述软件开发和维护的主要步骤;第三部分讲述如何对软件进行评估和改进。 本书适合作为计算机相关专业软件工程课程的本科教材,也适用于介绍软件工程的概念与实践的研究生课程。本书还适合期望进一步学习该领域相关知识的专业人员阅读。
作者简介:
莎丽·劳伦斯·弗里格(Shari Lawrence Pfleeger),世界范围内享有盛誉的软件工程学者,在软件开发领域有数十年的丰富经验,主要从事软件工程和信息技术的教学、咨询和研究工作,在软件质量保证、度量和软件工程实践研究方面有较大影响力。现任美国智库兰德公司的*研究员。她曾经执教于伦敦城市大学和马里兰大学,并担任IEEE Software和IEEE Transactions on SoftwareEngineering等专业期刊的副主编多年。 乔安妮·M. 阿特利(Joanne M. Atlee),世界杰出的软件工程学者,在软件需求和软件工程教育方面有着杰出贡献。她是IEEE计算机学会和ACM联合发起的软件工程课程项目指导委员会的成员,也是国际信息处理联合会(IFIP)软件需求工程工作组成员。她是滑铁卢大学副教授,创立了该校的软件工程学位项目并担任项目主任。
目录:
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 / 软件工程取得了哪些进展? 5
1.3 What Is Good Software / 什么是好的软件? 9
The Quality of the Product / 产品的质量 10
The Quality of the Process / 过程的质量 11
Quality in the Context of the Business Environment / 商业环境背景下的质量 12
1.4 Who Does Software Engineering / 软件工程涉及哪些人员? 14
1.5 A Systems Approach / 系统的方法 16
The Elements of a System / 系统的要素 16
Interrelated Systems / 相互联系的系统 18
1.6 An Engineering Approach / 工程的方法 21
Building a House / 盖房子 21
Building a System / 构建系统 23
1.7 Members of the Development Team / 开发团队的成员 25
1.8 How Has Software Engineering Changed / 软件工程发生了多大的变化? 27
The Nature of the Change / 变化的本质 28
Wasserman’s Discipline of Software Engineering / 软件工程的 Wasserman 规范 30
1.9 Information Systems Example / 信息系统的例子 35
1.10 Real-Time Example / 实时系统的例子 37
1.11 What This Chapter Means for You / 本章对单个开发人员的意义 39
1.12 What This Chapter Means for Your Development Team / 本章对开发团队的意义 39
1.13 What This Chapter Means for Researchers / 本章对研究人员的意义 40
1.14 Term Project / 学期项目 40
1.15 Key References / 主要参考文献 42
1.16 Exercises / 练习 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 / 可操作规格说明 54
Transformational Model / 可转换模型 54
Phased Development: Increments and Iterations / 阶段化开发:增量和迭代 55
Spiral Model / 螺旋模型 58
Agile Methods / 敏捷方法 59
2.3 Tools and Techniques for Process Modeling / 过程建模工具和技术 63
Static Modeling: Lai Notation / 静态建模:Lai 表示法 64
Dynamic Modeling: System Dynamics / 动态建模:系统动力学 67
2.4 Practical Process Modeling / 实际的过程建模 70
Marvel Case Studies / Marvel 的案例研究 70
Desirable Properties of Process Modeling Tools and Techniques / 过程建模工具和技术应该具有的特性 72
2.5 Information Systems Example / 信息系统的例子 73
2.6 Real-Time Example / 实时系统的例子 75
2.7 What This Chapter Means for You / 本章对单个开发人员的意义 76
2.8 What This Chapter Means for Your Development Team / 本章对开发团队的意义 76
2.9 What This Chapter Means for Researchers / 本章对研究人员的意义 77
2.10 Term Project / 学期项目 77
2.11 Key References / 主要参考文献 77
2.12 Exercises / 练习 81
3 Planning and Managing the Project / 计划和管理项目 82
3.1 Tracking Progress / 跟踪项目进展 82
Work Breakdown and Activity Graphs / 工作分解和活动图 84
Estimating Completion / 估算完成时间 87
Tools to Track Progress / 跟踪进展的工具 92
3.2 Project Personnel / 项目人员 95
Staff Roles and Characteristics / 人员角色和特性 95
Work Styles / 工作风格 99
Project Organization / 项目组织 101
3.3 Effort Estimation / 工作量估算 104
Expert Judgment / *判断 106
Algorithmic Methods / 算法方法 108
Machine-Learning Methods / 机器学习方法 115
Finding the Model for Your Situation / 找出适合具体情形的模型 117
3.4 Risk Management / 风险管理 119
What Is a Risk / 什么是风险? 119
Risk Management Activities / 风险管理活动 120
3.5 The Project Plan / 项目计划 123
3.6 Process Models and Project Management / 过程模型和项目管理 125
Enrollment Management / 注册管理 125
Accountability Modeling / 责任建模 128
Anchoring Milestones / 紧密结合里程碑 131
3.7 Information Systems Example / 信息系统的例子 133
3.8 Real-Time Example / 实时系统的例子 135
3.9 What This Chapter Means for You / 本章对单个开发人员的意义 136
3.10 What This Chapter Means for Your Development Team / 本章对开发团队的意义 136
3.11 What This Chapter Means for Researchers / 本章对研究人员的意义 137
3.12 Term Project / 学期项目 137
3.13 Key References / 主要参考文献 137
3.14 Exercises / 练习 138
4 Capturing the Requirements / 获取需求 141
4.1 The Requirements Process / 需求过程 142
4.2 Requirements Elicitation / 需求引发 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 / 实体 - 联系图 157
Example: UML Class Diagrams / 例子:UML 类图 159
Event Traces / 事件踪迹 162
Example: Message Sequence Chart / 例子:消息时序图 163
State Machines / 状态机 164
Example: UML Statechart Diagrams / 例子:UML 状态图 165
Example: Petri Nets / 例子:Petri 网 169
Data-Flow Diagrams / 数据流图 172
Example: Use Cases / 例子:用例 173
Functions and Relations / 函数和关系 175
Example: Decision Tables / 例子:判定表 176
Example: Parnas Tables / 例子:Parnas 表 177
Logic / 逻辑 178
Example: Object Constraint Language (OCL) / 例子:对象约束语言(OCL) 180
Example: Z / 例子:Z 181
Algebraic Specifications / 代数规格说明 183
Example: SDL Data / 例子:SDL 数据 184
4.6 Requirements and Specification Languages / 需求和规格说明语言 187
Unified Modeling Language (UML) / 统一建模语言(UML) 188
Specification and Description Language (SDL) / 规格说明和描述语言(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 / 需求规格说明 195
Process Management and Requirements Traceability / 过程管理和需求的可跟踪性 197
4.9 Validation and Verification / 确认和验证 198
Requirements Validation / 需求确认 199
Verification / 验证 202
4.10 Measuring Requirements / 测量需求 204
4.11 Choosing a Specification Technique / 选择规格说明技术 206
4.12 Information Systems Example / 信息系统的例子 209
4.13 Real-Time Example / 实时系统的例子 211
4.14 What This Chapter Means for You / 本章对单个开发人员的意义 213
4.15 What This Chapter Means for Your Development Team / 本章对开发团队的意义 214
4.16 What This Chapter Means for Researchers / 本章对研究人员的意义 214
4.17 Term Project / 学期项目 215
Preconditions and Assumptions / 前提和假设 215
High-Level Description of Functionality / 功能的高层描述 215
Functional Requirements / 功能需求 216
Data Constraints / 数据约束 217
Design and Interface Constraints / 设计和接口约束 218
Quality Requirements / 质量需求 218
4.18 Key References / 主要参考文献 218
4.19 Exercises / 练习 219
5 Designing the Architecture / 设计体系结构 223
5.1 The Design Process / 设计过程 223
Design Is a Creative Process / 设计是一种创造性过程 225
Design Process Model / 设计过程模型 228
5.2 Modeling Architectures / 体系结构建模 231
5.3 Decomposition and Views / 分解和视图 231
Architectural Views / 体系结构视图 234
5.4 Architectural Styles and Strategies / 体系结构风格和策略 235
Pipe-and-Filter / 管道和过滤器 236
Client-Server / 客户端 - 服务器 237
Peer-to-Peer / 对等网络 238
Publish-Subscribe / 发布 - 订阅 240
Repositories / 信息库 241
Layering / 分层 242
Combining Architectural Styles / 组合体系结构风格 243
5.5 Achieving Quality Attributes / 满足质量属性 245
Modifiability / 可修改性 245
Performance / 性能 247
Security / *性 248
Reliability / 可靠性 250
Robustness / 稳健性 254
Usability / 易使用性 254
Business Goals / 商业目标 255
5.6 Collaborative Design / 协作设计 256
Outsourcing / 外包 257
5.7 Architecture Evaluation and Refinement / 体系结构的评估和改进 258
Measuring Design Quality / 测量设计质量 258
Fault-Tree Analysis / 故障树分析 259
Security Analysis / *性分析 262
Trade-off Analysis / 权衡分析 263
Cost-Benefit Analysis / 成本效益分析 268
Prototyping / 原型化 272
5.8 Documenting Software Architectures / 文档化软件体系结构 273
Mappings among Views / 视图间的映射 275
Documenting Rationale / 文档化设计合理性 276
5.9 Architecture Design Review / 体系结构设计评审 276
Validation / 确认 276
Verification / 验证 278
5.10 Software Product Lines / 软件产品线 279
Strategic Scoping / 战略范围 280
Advantages of Product-Line Architecture / 产品线体系结构的优势 282
Product-Line Evolution / 产品线的演化 283
5.11 Information Systems Example / 信息系统的例子 284
5.12 Real-Time Example / 实时系统的例子 286
5.13 What This Chapter Means for You / 本章对单个开发人员的意义 287
5.14 What This Chapter Means for Your Development Team / 本章对开发团队的意义 288
5.15 What This Chapter Means for Researchers / 本章对研究人员的意义 288
5.16 Term Project / 学期项目 289
5.17 Key References / 主要参考文献 290
5.18 Exercises / 练习 290
6 Designing the Modules / 设计模块 293
6.1 Design Methodology / 设计方法 294
6.2 Design Principles / 设计原则 295
Modularity / 模块化 297
Interfaces / 接口 302
Information Hiding / 信息隐藏 304
Incremental Development / 增量式开发 306
Abstraction / 抽象 307
Generality / 通用性 308
6.3 OO Design / 面向对象设计 310
Terminology / 术语 311
Inheritance vs. Object Composition / 继承与对象组合 315
Substitutability / 可替换性 317
Law of Demeter / 德米特法则 318
Dependency Inversion / 依赖倒置 320
6.4 Representing OO Designs in the UML / 在 UML 中体现面向对象设计 321
UML in the Process / 过程中的 UML 321
UML Class Diagram / UML 类图 324
Other UML Diagrams / 其他 UML 图 330
6.5 OO Design Patterns / 面向对象设计模式 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 / 设计中其他方面的考虑 348
Data Management / 数据管理 348
Exception Handling / 异常处理 349
Designing User Interfaces / 用户界面设计 351
Frameworks / 框架 351
6.7 OO Measurement / 面向对象度量 353
OO Size Measures / 面向对象系统规模的度量 353
OO Design Quality Measures / 面向对象系统设计质量的度量 355
Where to Do OO Measurement / 在何处进行面向对象测量 362
6.8 Design Documentation / 设计文档 363
6.9 Information Systems Example / 信息系统的例子 366
6.10 Real-Time Example / 实时系统的例子 367
6.11 What This Chapter Means for You / 本章对单个开发人员的意义 367
6.12 What This Chapter Means for Your Development Team / 本章对开发团队的意义 369
6.13 What This Chapter Means for Researchers / 本章对研究人员的意义 369
6.14 Term Project / 学期项目 369
6.15 Key References / 主要参考文献 370
6.16 Exercises / 练习 370
7 Writing the Programs / 编写程序 373
7.1 Programming Standards and Procedures / 编程标准和过程 373
Standards for You / 对开发人员的标准 374
Standards for Others / 对其他人员的标准 375
Matching Design with Implementation / 设计和实现的匹配 376
7.2 Programming Guidelines / 编程的指导原则 376
Control Structures / 控制结构 377
Algorithms / 算法 378
Data Structures / 数据结构 379
General Guidelines / 通用性指导原则 382
7.3 Documentation / 文档 387
Internal Documentation / 内部文档 387
External Documentation / 外部文档 390
7.4 The Programming Process / 编程过程 391
Programming as Problem Solving / 将编程作为问题求解 392
Extreme Programming / 极限编程 393
Pair Programming / 结对编程 393
Whither Programming / 编程向何处去? 394
7.5 Information Systems Example / 信息系统的例子 395
7.6 Real-Time Example / 实时系统的例子 396
7.7 What This Chapter Means for You / 本章对单个开发人员的意义 397
7.8 What This Chapter Means for Your Development Team / 本章对开发团队的意义 398
7.9 What This Chapter Means for Researchers / 本章对研究人员的意义 398
7.10 Term Project / 学期项目 398
7.11 Key References / 主要参考文献 399
7.12 Exercises / 练习 399
8 Testing the Programs / 测试程序 401
8.1 Software Faults and Failures / 软件故障和失效 401
Types of Faults / 故障的类型 403
Orthogonal Defect Classification / 正交缺陷分类 405
8.2 Testing Issues / 测试的相关问题 407
Test Organization / 测试的组织 407
Attitudes Toward Testing / 对测试的态度 409
Who Performs the Tests / 谁执行测试? 409
Views of the Test Objects / 测试对象的视图 410
8.3 Unit Testing / 单元测试 412
Examining the Code / 检查代码 412
Proving Code Correct / 证明代码正确性 416
Testing Program Components / 测试程序构件 420
Comparing Techniques / 技术比较 425
8.4 Integration Testing / 集成测试 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 / 测试面向对象系统 433
Testing the Code / 代码测试 433
Differences between Object-Oriented and Traditional Testing / 面向对象测试和传统测试之间的区别 434
8.6 Test Planning / 测试计划 436
Purpose of the Plan / 计划的目的 436
Contents of the Plan / 计划的内容 437
8.7 Automated Testing Tools / 自动测试工具 438
Code Analysis Tools / 代码分析工具 438
Test Execution Tools / 测试执行工具 440
Test Case Generators / 测试用例生成器 441
8.8 When to Stop Testing / 什么时候停止测试 441
Fault Seeding / 故障播种 442
Confidence in the Software / 软件中的可信度 443
Other Stopping Criteria / 其他的停止测试的标准 444
Identifying Fault-Prone Code / 识别易出故障的代码 445
8.9 Information Systems Example / 信息系统的例子 446
8.10 Real-Time Example / 实时系统的例子 447
8.11 What This Chapter Means for You / 本章对单个开发人员的意义 448
8.12 What This Chapter Means for Your Development Team / 本章对开发团队的意义 448
8.13 What This Chapter Means for Researchers / 本章对研究人员的意义 449
8.14 Term Project / 学期项目 449
8.15 Key References / 主要参考文献 449
8.16 Exercises / 练习 450
9 Testing the System / 测试系统 453
9.1 Principles of System Testing / 系统测试的原则 453
Sources of Software Faults / 软件故障根源 453
System Testing Process / 系统测试过程 455
Configuration Management / 配置管理 459
Test Team / 测试小组 465
9.2 Function Testing / 功能测试 466
Purpose and Roles / 目的与职责 466
Cause-and-Effect Graphs / 因果图 468
9.3 Performance Testing / 性能测试 472
Purpose and Roles / 目的和职责 472
Types of Performance Tests / 性能测试的类型 472
9.4 Reliability, Availability, and Maintainability / 可靠性、可用性以及可维护性 474
Definitions / 定义 474
Failure Data / 失效数据 475
Measuring Reliability, Availability, and Maintainability / 测量可靠性、可用性和可维护性 477
Reliability Stability and Growth / 可靠性的稳定性和可靠性增长 478
Reliability Prediction / 可靠性预测 479
Importance of the Operational Environment / 操作环境的重要性 482
9.5 Acceptance Testing / 验收测试 483
Purpose and Roles / 目的和职责 483
Types of Acceptance Tests / 验收测试的种类 484
Results of Acceptance Tests / 验收测试的结果 484
9.6 Installation Testing / 安装测试 486
9.7 Automated System Testing / 自动化系统测试 486
9.8 Test Documentation / 测试文档 487
Test Plans / 测试计划 488
Test Specification and Evaluation / 测试规格说明和评估 491
Test Description / 测试描述 492
Test Analysis Report / 测试分析报告 495
Problem Report Forms / 问题报告表 496
9.9 Testing Safety-Critical Systems / 测试*攸关的系统 498
Design Diversity / 设计多样性 500
Software Safety Cases / 软件*性案例 502
Cleanroom / 净室方法 505
9.10 Information Systems Example / 信息系统的例子 509
9.11 Real-Time Example / 实时系统的例子 511
9.12 What This Chapter Means for You / 本章对单个开发人员的意义 513
9.13 What This Chapter Means for Your Development Team / 本章对开发团队的意义 513
9.14 What This Chapter Means for Researchers / 本章对研究人员的意义 513
9.15 Term Project / 学期项目 514
9.16 Key References / 主要参考文献 514
9.17 Exercises / 练习 515
10 Delivering the System / 交付系统 519
10.1 Training / 培训 519
Types of Training / 培训的种类 520
Training Aids / 培训助手 522
Guidelines for Training / 培训的指导原则 523
10.2 Documentation / 文档 524
Types of Documentation / 文档的种类 524
User Help and Troubleshooting / 用户帮助和疑难解答 529
10.3 Information Systems Example / 信息系统的例子 531
10.4 Real-Time Example / 实时系统的例子 532
10.5 What This Chapter Means for You / 本章对单个开发人员的意义 532
10.6 What This Chapter Means for Your Development Team / 本章对开发团队的意义 532
10.7 What This Chapter Means for Researchers / 本章对研究人员的意义 533
10.8 Term Project / 学期项目 533
10.9 Key References / 主要参考文献 533
10.10 Exercises / 练习 533
11 Maintaining the System / 维护系统 535
11.1 The Changing System / 变化的系统 535
Types of Systems / 系统的类型 536
Changes During the System Life Cycle / 在系统生命周期过程中发生的变化 539
The System Life Span / 系统生命周期跨度 539
11.2 The Nature of Maintenance / 维护的本质 543
Maintenance Activities and Roles / 维护活动及其角色 543
11.3 Maintenance Problems / 维护问题 546
Staff Problems / 人员问题 546
Technical Problems / 技术问题 548
The Need to Compromise / *要的妥协 549
Maintenance Cost / 维护成本 550
11.4 Measuring Maintenance Characteristics / 测量维护特性 554
External View of Maintainability / 可维护性的外部视图 555
Internal Attributes Affecting Maintainability / 影响可维护性的内部属性 556
Other Product Measures / 其他的产品测量 558
11.5 Maintenance Techniques and Tools / 维护技术和工具 560
Configuration Management / 配置管理 560
Impact Analysis / 影响分析 562
Automated Maintenance Tools / 自动化维护工具 566
11.6 Software Rejuvenation / 软件再生 568
Redocumentation / 文档重构 569
Restructuring / 重组 570
Reverse Engineering / 逆向工程 571
Reengineering / 工程再造 572
The Future of Rejuvenation / 软件再生的前景 574
11.7 Information Systems Example / 信息系统的例子 574
11.8 Real-Time Example / 实时系统的例子 575
11.9 What This Chapter Means for You / 本章对单个开发人员的意义 576
11.10 What This Chapter Means for Your Development Team / 本章对开发团队的意义 576
11.11 What This Chapter Means for Researchers / 本章对研究人员的意义 577
11.12 Term Project / 学期项目 577
11.13 Key References / 主要参考文献 577
11.14 Exercises / 练习 578
12 Evaluating Products, Processes, and Resources / 评估产品、过程和资源 580
12.1 Approaches to Evaluation / 评估的方法 580
Feature Analysis / 特征分析 581
Surveys / 调查 582
Case Studies / 案例研究 582
Formal Experiments / 正式试验 583
Preparing for an Evaluation / 准备评估 584
12.2 Selecting an Evaluation Technique / 选择评估技术 585
Key Selection Factors / 关键选择因素 585
What to Believe / 相信什么 586
12.3 Assessment vs. Prediction / 评价与预测 589
Validating Prediction Systems / 确认预测系统 590
Validating Measures / 确认测量 593
A Stringent Requirement for Validation / 对确认的紧迫需求 593
12.4 Evaluating Products / 评估产品 595
Product Quality Models / 产品质量模型 595
Establishing Baselines and Targets / 建立基线和设定目标 599
Software Reusability / 软件可复用性 601
12.5 Evaluating Processes / 评估过程 610
Postmortem Analysis / 事后分析 611
Process Maturity Models / 过程成熟度模型 617
12.6 Evaluating Resources / 评估资源 626
People Maturity Model / 人员成熟度模型 627
Return on Investment / * 629
12.7 Information Systems Example / 信息系统的例子 631
12.8 Real-Time Example / 实时系统的例子 632
12.9 What This Chapter Means for You / 本章对单个开发人员的意义 632
12.10 What This Chapter Means for Your Development Team / 本章对开发团队的意义 633
12.11 What This Chapter Means for Researchers / 本章对研究人员的意义 633
12.12 Term Project / 学期项目 633
12.13 Key References / 主要参考文献 634
12.14 Exercises / 练习 634
13 Improving Predictions, Products, Processes, and Resources / 改进预测、产品、过程和资源 636
13.1 Improving Predictions / 改进预测 636
Predictive Accuracy / 预测的*性 637
Dealing with Bias: The u-Plot / 处理偏误:u 曲线 638
Dealing with Noise: Prequential Likelihood / 处理噪声:prequential 似然度 640
Recalibrating Predictions / 重新校准预测 642
13.2 Improving Products / 改进产品 645
Inspections / 审查 645
Reuse / 复用 648
13.3 Improving Processes / 改进过程 649
Process and Capability Maturity / 过程和能力成熟度 649
Maintenance / 维护 653
Cleanroom / 净室方法 654
13.4 Improving Resources / 改进资源 657
Work Environment / 工作环境 657
Cost and Schedule Trade-Offs / 成本和进度的权衡 658
13.5 General Improvement Guidelines / 总体改进指导原则 660
13.6 Information Systems Example / 信息系统的例子 661
13.7 Real-Time Example / 实时系统的例子 662
13.8 What This Chapter Means for You / 本章对单个开发人员的意义 662
13.9 What This Chapter Means for Your Development Team / 本章对开发团队的意义 662
13.10 What This Chapter Means for Researchers / 本章对研究人员的意义 663
13.11 Term Project / 学期项目 663
13.12 Key References / 主要参考文献 663
13.13 Exercises / 练习 664
14 The Future of Software Engineering / 软件工程的未来 665
14.1 How Have We Done / 目前取得了哪些进展? 665
Wasserman’s Steps to Maturity / Wasserman 的获得成熟度的措施 666
What Now / 当前要做哪些工作? 668
14.2 Technology Transfer / 技术转移 668
How We Make Technology Transfer Decisions Now / 现在我们怎样做出技术转移的决策 669
Using Evidence in Technology Decision-Making / 在技术决策中使用证据 670
Evidence Supporting Technology Decisions / 支持技术决策的证据 671
A Closer Look at the Evidence / 对证据的进一步讨论 672
New Models of Technology Transfer / 技术转移的新模型 674
Next Steps in Improving Technology Transfer / 改进技术转移的下一步 676
14.3 Decision-Making in Software Engineering / 软件工程中的决策 676
Lots of Decisions / 大量的决策 677
Group Decision-Making / 群体决策 679
How We Really Decide / 我们实际上如何决策 680
How Groups Really Make Decisions / 群体实际上如何决策 683
A Modest Observational Study / 一个适度的观察研究 685
Lessons Learned / 获得的经验教训 688
14.4 The Professionalization of Software Engineering: Licensing, Certification, and Ethics / 软件工程的职业化:执照发放、认证和伦理 689
Focus on the People / 将重点放在人员上 689
Software Engineering Education / 软件工程教育 690
Software Engineering Body of Knowledge / 软件工程知识体系 692
Licensing Software Engineers / 给软件工程师颁发执照 694
Certification / 认证 700
Code of Ethics / 伦理守则 702
Professional Development / 职业发展 704
Next Steps in Research and Practice / 研究和实践的进一步发展 705
14.5 Term Project / 学期项目 706
14.6 Key References / 主要参考文献 706
14.7 Exercises / 练习 708
Annotated Bibliography / 参考文献及注解 709
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...