《软件工程 实践者的研究方法 a practitioner's approach》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)Roger S.Pressman著;郑人杰,马素霞,白晓颖等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2007
  • ISBN:7111194004
  • 页数:702 页
图书介绍:本书是全面介绍了软件工程概念、方法的计算机科学书。

第1章 软件工程介绍 1

1.1 软件角色的演化 2

1.2 软件 4

1.3 软件特性的变化 6

1.4 遗留软件 7

1.4.1 遗留软件的质量 8

1.4.2 软件演化 8

1.5 软件神话 9

1.6 这一切是如何开始的 11

1.7 小结 12

参考文献 12

习题与思考题 13

推荐读物与阅读信息 13

第一部分 软件过程 16

第2章 过程综述 16

2.1 软件工程:一种层次化技术 17

2.2 过程框架 18

2.3 能力成熟度模型集成 22

2.4 过程模式 25

2.5 过程评估 27

2.6 个人过程模型和团队过程模型 29

2.6.1 个人软件过程 29

2.6.2 团队软件过程 30

2.7 过程技术 31

2.8 产品与过程 32

2.9 小结 33

参考文献 33

习题与思考题 34

推荐读物与阅读信息 34

第3章 过程模型 36

3.1 惯例过程模型 37

3.2 瀑布模型 37

3.3 增量过程模型 38

3.3.1 增量模型 38

3.3.2 RAD模型 39

3.4 演化过程模型 40

3.4.1 原型开发 41

3.4.2 螺旋模型 43

3.4.3 协同开发模型 44

3.4.4 演化过程模型的最终评述 45

3.5 专用过程模型 46

3.5.1 基于构件的开发 46

3.5.2 形式化方法模型 47

3.5.3 面向方面的软件开发 47

3.6 统一过程 49

3.6.1 简史 49

3.6.2 统一过程的阶段 50

3.6.3 统一过程工作产品 51

3.7 小结 52

参考文献 53

习题与思考题 54

推荐读物与阅读信息 54

第4章 敏捷视角下的过程 56

4.1 敏捷是什么 57

4.2 敏捷过程是什么 58

4.2.1 敏捷开发的立场 59

4.2.2 人的因素 59

4.3 敏捷过程模型 60

4.3.1 极限编程 61

4.3.2 自适应软件开发 64

4.3.3 动态系统开发方法 66

4.3.4 Scrum 66

4.3.5 Crystal 68

4.3.6 特征驱动开发 68

4.3.7 敏捷建模 69

4.4 小结 71

参考文献 71

习题与思考题 72

推荐读物与阅读信息 73

第二部分 软件工程实践 76

第5章 软件工程实践综述 76

5.1 概念 77

5.1.1 实践的精髓 77

5.1.2 核心原则 78

5.2 沟通实践 79

5.3 策划实践 82

5.4 建模实践 84

5.4.1 分析建模原则 85

5.4.2 设计建模原则 86

5.5 构造实践 89

5.5.1 编码原则和概念 89

5.5.2 测试原则 90

5.6 部署 92

5.7 小结 93

参考文献 94

习题与思考题 95

推荐读物与阅读信息 95

第6章 系统工程 97

6.1 基于计算机的系统 98

6.2 系统工程层次结构 99

6.2.1 系统建模 100

6.2.2 系统仿真 101

6.3 业务过程工程概述 102

6.4 产品工程概述 103

6.5 系统建模 105

6.5.1 Hatley-Pirbhai建模 105

6.5.2 UML系统建模 107

6.6 小结 109

参考文献 110

习题与思考题 110

推荐读物与阅读信息 111

第7章 需求工程 112

7.1 连接设计和构造的桥梁 113

7.2 需求工程任务 113

7.2.1 起始 114

7.2.2 导出 114

7.2.3 精化 115

7.2.4 协商 115

7.2.5 规格说明 115

7.2.6 确认 116

7.2.7 需求管理 116

7.3 启动需求工程过程 118

7.3.1 确认共利益者 118

7.3.2 识别多种观点 118

7.3.3 协同合作 119

7.3.4 首次提问 119

7.4 导出需求 120

7.4.1 协同需求收集 120

7.4.2 质量功能部署 123

7.4.3 用户场景 124

7.4.4 导出工作产品 125

7.5 开发用例 125

7.6 构建分析模型 129

7.6.1 分析模型的元素 129

7.6.2 分析模式 132

7.7 协商需求 133

7.8 确认需求 134

7.9 小结 135

参考文献 135

习题与思考题 136

推荐读物与阅读信息 137

第8章 构建分析模型 139

8.1 需求分析 140

8.1.1 整体目标和原理 140

8.1.2 分析的经验原则 141

8.1.3 域分析 141

8.2 分析建模的方法 142

8.3 数据建模概念 143

8.3.1 数据对象 143

8.3.2 数据属性 143

8.3.3 关系 144

8.3.4 基数和形态 145

8.4 面向对象的分析 146

8.5 基于场景建模 147

8.5.1 编写用例 147

8.5.2 开发活动图 152

8.5.3 泳道图 153

8.6 面向流的建模 153

8.6.1 创建数据流模型 154

8.6.2 创建控制流模型 156

8.6.3 控制规格说明 157

8.6.4 处理规格说明 158

8.7 基于类的建模 159

8.7.1 识别分析类 160

8.7.2 描述属性 162

8.7.3 定义操作 162

8.7.4 CRC建模 164

8.7.5 关联和依赖 169

8.7.6 分析包 170

8.8 生成行为模型 171

8.8.1 识别用例事件 171

8.8.2 状态表现 171

8.9 小结 174

参考文献 175

习题与思考题 175

推荐读物与阅读信息 176

第9章 设计工程 178

9.1 软件工程中的设计 179

9.2 设计过程和设计质量 180

9.3 设计概念 183

9.3.1 抽象 183

9.3.2 体系结构 183

9.3.3 模式 184

9.3.4 模块化 184

9.3.5 信息隐蔽 185

9.3.6 功能独立 186

9.3.7 求精 186

9.3.8 重构 187

9.3.9 设计类 188

9.4 设计模型 190

9.4.1 数据设计元素 190

9.4.2 体系结构设计元素 191

9.4.3 接口设计元素 191

9.4.4 构件级设计元素 192

9.4.5 部署级设计元素 193

9.5 基于模式的软件设计 194

9.5.1 描述设计模式 194

9.5.2 在设计中使用模式 195

9.5.3 框架 195

9.6 小结 196

参考文献 196

习题与思考题 197

推荐读物与阅读信息 197

第10章 进行体系结构设计 199

10.1 软件体系结构 200

10.1.1 什么是体系结构 200

10.1.2 为什么体系结构如此重要 201

10.2 数据设计 201

10.2.1 体系结构级的数据设计 201

10.2.2 构件级的数据设计 202

10.3 体系结构风格和模式 203

10.3.1 体系结构风格的简单分类 203

10.3.2 体系结构模式 206

10.3.3 组织和求精 207

10.4 体系结构设计 208

10.4.1 系统的环境表示 208

10.4.2 定义原始模型 209

10.4.3 将体系结构精化为构件 210

10.4.4 描述系统实例 211

10.5 评估可选的体系结构设计 212

10.5.1 体系结构权衡分析方法 212

10.5.2 体系结构复杂性 214

10.5.3 体系结构描述语言 214

10.6 映射数据流到软件体系结构 215

10.6.1 变换流 215

10.6.2 事务流 215

10.6.3 变换映射 215

10.6.4 事务映射 221

10.6.5 精化体系结构设计 224

10.7 小结 224

参考文献 225

习题与思考题 225

推荐读物与阅读信息 226

第11章 构件级设计建模 228

11.1 什么是构件 229

11.1.1 面向对象的观点 229

11.1.2 传统观点 230

11.1.3 过程相关的观点 232

11.2 设计基于类的构件 233

11.2.1 基本设计原则 233

11.2.2 构件级设计指导方针 236

11.2.3 内聚性 236

11.2.4 耦合性 238

11.3 实施构件级设计 240

11.4 对象约束语言 244

11.5 设计传统构件 246

11.5.1 图形化设计表示 246

11.5.2 表格式设计表示 247

11.5.3 程序设计语言 248

11.5.4 设计表示方法的比较 249

11.6 小结 250

参考文献 250

习题与思考题 251

推荐读物与阅读信息 251

第12章 完成用户界面设计 253

12.1 黄金规则 254

12.1.1 置用户于控制之下 254

12.1.2 减轻用户的记忆负担 255

12.1.3 保持界面一致 256

12.2 用户界面的分析与设计 257

12.2.1 用户界面分析和设计模型 257

12.2.2 用户界面分析和设计过程 258

12.3 界面分析 260

12.3.1 用户分析 260

12.3.2 任务分析和建模 261

12.3.3 显示内容分析 265

12.3.4 工作环境分析 265

12.4 界面设计步骤 266

12.4.1 应用界面设计步骤 266

12.4.2 用户界面设计模式 268

12.4.3 设计问题 269

12.5 设计评估 272

12.6 小结 273

参考文献 274

习题与思考题 274

推荐读物与阅读信息 275

第13章 软件测试策略 276

13.1 软件测试的策略性方法 277

13.1.1 验证与确认 277

13.1.2 软件测试的组织 278

13.1.3 传统软件体系结构的测试策略 279

13.1.4 面向对象软件体系结构的测试策略 280

13.1.5 测试完成的标准 281

13.2 策略问题 281

13.3 传统软件的测试策略 282

13.3.1 单元测试 282

13.3.2 集成测试 284

13.4 面向对象软件的测试策略 289

13.4.1 面向对象环境中的单元测试 289

13.4.2 面向对象环境中的集成测试 289

13.5 确认测试 290

13.5.1 确认测试准则 290

13.5.2 配置评审 290

13.5.3 α测试与β测试 290

13.6 系统测试 292

13.6.1 恢复测试 292

13.6.2 安全测试 292

13.6.3 压力测试 293

13.6.4 性能测试 293

13.7 调试技巧 294

13.7.1 调试过程 294

13.7.2 心理因素 295

13.7.3 调试策略 296

13.7.4 错误改正 298

13.8 小结 298

参考文献 299

习题与思考题 299

推荐读物与阅读信息 300

第14章 测试战术 302

14.1 软件测试基础 303

14.2 黑盒测试与白盒测试 304

14.3 白盒测试 305

14.4 基本路径测试 305

14.4.1 流图表示 305

14.4.2 独立程序路径 307

14.4.3 导出测试用例 308

14.4.4 图矩阵 310

14.5 控制结构测试 310

14.5.1 条件测试 311

14.5.2 数据流测试 311

14.5.3 循环测试 311

14.6 黑盒测试 312

14.6.1 基于图的测试方法 313

14.6.2 等价划分 314

14.6.3 边界值分析 315

14.6.4 正交数组测试 315

14.7 面向对象测试方法 317

14.7.1 面向对象概念的测试用例设计的含义 318

14.7.2 传统测试用例设计方法的可应用性 318

14.7.3 基于故障的测试 318

14.7.4 测试用例与类层次 319

14.7.5 基于场景的测试 319

14.7.6 表层结构和深层结构的测试 320

14.8 类级可应用的测试方法 321

14.8.1 面向对象的随机测试 321

14.8.2 类级的划分测试 322

14.9 类间测试用例设计 323

14.9.1 多类测试 323

14.9.2 从行为模型中导出的测试 324

14.10 针对特定环境、体系结构和应用系统的测试 325

14.10.1 图形用户界面测试 325

14.10.2 客户/服务器体系结构测试 325

14.10.3 测试文档和帮助设施 326

14.10.4 实时系统的测试 327

14.11 测试模式 328

14.12 小结 329

参考文献 329

习题与思考题 330

推荐读物与阅读信息 331

第15章 产品度量 333

15.1 软件质量 334

15.1.1 McCall的质量因素 334

15.1.2 ISO 9126质量因素 335

15.1.3 向量化视图变迁 336

15.2 产品度量框架 336

15.2.1 测度、度量和指标 336

15.2.2 产品度量的挑战 337

15.2.3 测量原则 338

15.2.4 面向目标的软件测量 338

15.2.5 有效软件度量的属性 339

15.2.6 产品度量全景 339

15.3 分析模型的度量 341

15.3.1 基于功能的度量 341

15.3.2 规格说明质量的度量 344

15.4 设计模型的度量 344

15.4.1 体系结构设计度量 345

15.4.2 面向对象设计的度量 346

15.4.3 面向类的度量——CK度量集 347

15.4.4 面向类的度量——MOOD度量集 350

15.4.5 Lorenz与Kidd提出的面向对象度量 350

15.4.6 构件级设计度量 351

15.4.7 面向操作的度量 352

15.4.8 用户界面设计度量 353

15.5 源代码的度量 353

15.6 测试的度量 354

15.6.1 应用于测试的Halstead度量 355

15.6.2 面向对象测试的度量 355

15.7 维护的度量 356

15.8 小结 357

参考文献 357

习题与思考题 359

推荐读物与阅读信息 359

第三部分 应用Web工程 362

第16章 Web工程 362

16.1 基于Web的系统及应用的特点 363

16.2 WebApp工程的层次 365

16.2.1 过程 365

16.2.2 方法 366

16.2.3 工具与技术 366

16.3 Web工程过程 366

16.3.1 定义框架 367

16.3.2 精化框架 369

16.4 Web工程的最佳实践 369

16.5 小结 371

参考文献 371

习题与思考题 371

推荐读物与阅读信息 372

第17章 开始一个WebAPP项目 373

17.1 表达基于Web的系统 374

17.1.1 表达问题 374

17.1.2 WebApp的需求收集 375

17.1.3 分析模型的过渡 379

17.2 策划Web工程项目 379

17.3 Web工程团队 380

17.3.1 人员 380

17.3.2 组建团队 381

17.4 Web工程的项目管理问题 382

17.4.1 WebApp策划——外包 382

17.4.2 WebApp策划——内部Web工程 385

17.5 Web工程与WebApp的度量 387

17.5.1 Web工程工作量的度量 387

17.5.2 评估商业价值的度量 388

17.6 WebApp项目的“最坏实践” 389

17.7 小结 390

参考文献 390

习题与思考题 391

推荐读物与阅读信息 392

第18章 WebApp分析 393

18.1 WebApp的需求分析 394

18.1.1 用户层次 394

18.1.2 开发用例 395

18.1.3 精化用例模型 397

18.2 WebApp的分析模型 397

18.3 内容模型 398

18.3.1 定义内容对象 398

18.3.2 内容关系与层次 399

18.3.3 WebApp的分析类 399

18.4 交互模型 400

18.5 功能模型 402

18.6 配置模型 403

18.7 关系导航分析 404

18.7.1 关系分析——关键问题 404

18.7.2 导航分析 405

18.8 小结 406

参考文献 406

习题与思考题 407

推荐读物与阅读信息 407

第19章 WebApp设计 409

19.1 Web工程的设计问题 410

19.1.1 设计与WebApp质量 410

19.1.2 设计目标 412

19.2 WebE设计金字塔 413

19.3 WebApp界面设计 414

19.3.1 界面设计原则与指导方针 414

19.3.2 界面控制机制 418

19.3.3 界面设计工作流 418

19.4 美学设计 420

19.4.1 布局问题 420

19.4.2 美术设计问题 421

19.5 内容设计 421

19.5.1 内容对象 421

19.5.2 内容设计问题 422

19.6 体系结构设计 423

19.6.1 内容体系结构 423

19.6.2 WebApp体系结构 425

19.7 导航设计 426

19.7.1 导航语义 426

19.7.2 导航语法 427

19.8 构件级设计 428

19.9 超媒体设计模式 428

19.10 面向对象的超媒体设计方法 429

19.10.1 OOHDM的概念设计 430

19.10.2 OOHDM的导航设计 431

19.10.3 抽象界面设计与实现 431

19.11 WebApp的设计度量 431

19.12 小结 432

参考文献 433

习题与思考题 434

推荐读物与阅读信息 435

第20章 WebApp测试 436

20.1 WebApp的测试概念 436

20.1.1 质量维度 437

20.1.2 WebApp环境中的错误 438

20.1.3 测试策略 438

20.1.4 测试策划 438

20.2 测试过程概述 439

20.3 内容测试 442

20.3.1 内容测试的目标 442

20.3.2 数据库测试 443

20.4 用户界面测试 444

20.4.1 界面测试策略 444

20.4.2 测试界面机制 445

20.4.3 测试界面语义 446

20.4.4 可用性测试 447

20.4.5 兼容性测试 448

20.5 构件级测试 449

20.6 导航测试 451

20.6.1 测试导航语法 451

20.6.2 测试导航语义 451

20.7 配置测试 452

20.7.1 服务器端问题 453

20.7.2 客户端问题 453

20.8 安全性测试 453

20.9 性能测试 455

20.9.1 性能测试的目标 455

20.9.2 负载测试 455

20.9.3 压力测试 456

20.10 小结 458

参考文献 458

习题与思考题 459

推荐读物与阅读信息 460

第四部分 管理软件项目 462

第21章 项目管理 462

21.1 管理涉及的范围 463

21.1.1 人员 463

21.1.2 产品 463

21.1.3 过程 464

21.1.4 项目 464

21.2 人员 464

21.2.1 共利益者 465

21.2.2 团队负责人 465

21.2.3 软件团队 466

21.2.4 敏捷团队 468

21.2.5 协调和通信问题 469

21.3 产品 470

21.3.1 软件范围 470

21.3.2 问题分解 470

21.4 过程 471

21.4.1 合并产品和过程 471

21.4.2 过程分解 472

21.5 项目 473

21.6 W5HH原则 474

21.7 关键实践 475

21.8 小结 475

参考文献 476

习题与思考题 476

推荐读物与阅读信息 477

第22章 过程和项目度量 479

22.1 过程领域和项目领域中的度量 480

22.1.1 过程度量和软件过程改进 480

22.1.2 项目度量 481

22.2 软件测量 483

22.2.1 面向规模的度量 483

22.2.2 面向功能的度量 484

22.2.3 调和代码行和功能点的度量方法 485

22.2.4 面向对象的度量 486

22.2.5 面向用例的度量 487

22.2.6 Web工程项目度量 487

22.3 软件质量度量 489

22.3.1 测量质量 489

22.3.2 缺陷排除效率 490

22.4 在软件过程中集成度量 491

22.4.1 支持软件度量的论点 492

22.4.2 建立基线 492

22.4.3 度量收集、计算和评估 492

22.5 小型组织的度量 493

22.6 制定软件度量大纲 494

22.7 小结 496

参考文献 496

习题与思考题 497

推荐读物与阅读信息 498

第23章 估算 500

23.1 对估算的观察 501

23.2 项目策划过程 501

23.3 软件范围和可行性 502

23.4 资源 503

23.4.1 人力资源 503

23.4.2 可复用软件资源 504

23.4.3 环境资源 504

23.5 软件项目估算 505

23.6 分解技术 505

23.6.1 软件规模估算 506

23.6.2 基于问题的估算 506

23.6.3 基于LOC估算的实例 507

23.6.4 基于FP估算的实例 509

23.6.5 基于过程的估算 510

23.6.6 基于过程估算的实例 511

23.6.7 基于用例的估算 511

23.6.8 基于用例的估算实例 512

23.6.9 调和不同的估算方法 513

23.7 经验估算模型 514

23.7.1 估算模型的结构 514

23.7.2 COCOMOⅡ模型 515

23.7.3 软件方程式 516

23.8 面向对象项目的估算 517

23.9 特殊的估算技术 517

23.9.1 敏捷开发的估算 518

23.9.2 Web工程项目的估算 518

23.10 自行开发或购买的决策 519

23.10.1 创建决策树 520

23.10.2 外包 521

23.11 小结 522

参考文献 523

习题与思考题 523

推荐读物与阅读信息 524

第24章 项目进度安排 525

24.1 基本概念 526

24.2 项目进度安排 527

24.2.1 基本原则 528

24.2.2 人员与工作量之间的关系 529

24.2.3 工作量分配 530

24.3 为软件项目定义任务集 531

24.3.1 任务集举例 531

24.3.2 主要任务的求精 532

24.4 定义任务网络 533

24.5 进度安排 533

24.5.1 时序图 535

24.5.2 跟踪进度 536

24.5.3 跟踪OO项目的进展 537

24.6 获得值分析 538

24.7 小结 539

参考文献 540

习题与思考题 540

推荐读物与阅读信息 541

第25章 风险管理 543

25.1 被动风险策略和主动风险策略 544

25.2 软件风险 544

25.3 风险识别 545

25.3.1 评估整体项目风险 546

25.3.2 风险因素和驱动因子 547

25.4 风险预测 548

25.4.1 建立风险表 548

25.4.2 评估风险影响 549

25.5 风险求精 551

25.6 风险缓解、监测和管理 552

25.7 RMMM计划 553

25.8 小结 555

参考文献 555

习题与思考题 555

推荐读物与阅读信息 556

第26章 质量管理 558

26.1 质量概念 559

26.1.1 质量 559

26.1.2 质量控制 560

26.1.3 质量保证 560

26.1.4 质量成本 560

26.2 软件质量保证 561

26.2.1 背景 562

26.2.2 SQA活动 562

26.3 软件评审 563

26.3.1 软件缺陷对成本的影响 564

26.3.2 缺陷放大和消除 564

26.4 正式技术评审 566

26.4.1 评审会议 566

26.4.2 评审报告和记录保存 567

26.4.3 评审指导原则 567

26.4.4 样本驱动评审 568

26.5 SQA的形式化方法 570

26.6 基于统计的软件质量保证 570

26.6.1 一个普通的例子 570

26.6.2 软件工程中的六西格玛 571

26.7 软件可靠性 572

26.7.1 可靠性和可用性的测量 572

26.7.2 软件安全 573

26.8 ISO 9000质量标准 574

26.9 SQA计划 575

26.10 小结 576

参考文献 577

习题与思考题 578

推荐读物与阅读信息 578

第27章 变更管理 580

27.1 软件配置管理 581

27.1.1 SCM场景 581

27.1.2 配置管理系统元素 582

27.1.3 基线 582

27.1.4 软件配置项 583

27.2 SCM中心存储库 584

27.2.1 中心存储库的作用 585

27.2.2 一般特征和内容 585

27.2.3 SCM特征 585

27.3 SCM过程 587

27.3.1 软件配置中对象的标识 587

27.3.2 版本控制 588

27.3.3 变更控制 589

27.3.4 配置审核 592

27.3.5 状态报告 593

27.4 Web工程的配置管理 593

27.4.1 WebApp的配置管理问题 594

27.4.2 WebApp的配置对象 595

27.4.3 内容管理 595

27.4.4 变更管理 597

27.4.5 版本控制 599

27.4.6 审核和报告 599

27.5 小结 600

参考文献 601

习题与思考题 602

推荐读物与阅读信息 602

第五部分 软件工程高级课题 606

第28章 形式化方法 606

28.1 基本概念 607

28.1.1 非形式化方法的缺陷 607

28.1.2 软件开发中的数学 608

28.1.3 形式化方法概念 608

28.2 数学预备知识 610

28.2.1 集合与构造性规格说明 610

28.2.2 集合运算符 611

28.2.3 逻辑运算符 613

28.2.4 序列 613

28.3 应用数学表示法描述形式化规格说明 614

28.4 形式化规格说明语言 615

28.5 对象约束语言 616

28.5.1 OCL语法及语义概述 616

28.5.2 使用OCL举例 617

28.6 Z规格说明语言 618

28.6.1 Z语法及语义概述 619

28.6.2 使用Z举例 620

28.7 形式化方法的十条戒律 621

28.8 形式化方法——未来之路 622

28.9 小结 622

参考文献 623

习题与思考题 623

推荐读物与阅读信息 624

第29章 净室软件工程 626

29.1 净室方法 627

29.1.1 净室策略 627

29.1.2 净室方法的特异之处 629

29.2 功能规格说明 629

29.2.1 黑盒规格说明 630

29.2.2 状态盒规格说明 631

29.2.3 清晰盒规格说明 631

29.3 净室设计 631

29.3.1 设计求精与验证 632

29.3.2 设计验证的优点 634

29.4 净室测试 635

29.4.1 统计使用测试 636

29.4.2 认证 636

29.5 小结 637

参考文献 638

习题与思考题 638

推荐读物与阅读信息 639

第30章 基于构件的开发 640

30.1 基于构件系统的工程 641

30.2 CBSE过程 642

30.3 领域工程 643

30.3.1 领域分析过程 643

30.3.2 特征化函数 643

30.3.3 结构化建模与结构点 644

30.4 基于构件的开发 645

30.4.1 构件合格性检验、适应性修改与组装 645

30.4.2 构件工程 648

30.4.3 复用的分析与设计 648

30.5 构件分类与检索 649

30.5.1 描述可复用构件 649

30.5.2 复用环境 650

30.6 CBSE经济学 651

30.6.1 对质量、生产率及成本的影响 651

30.6.2 运用结构点的成本分析 652

30.7 小结 653

参考文献 653

习题与思考题 654

推荐读物与阅读信息 655

第31章 再工程 657

31.1 业务过程再工程 658

31.1.1 业务过程 658

31.1.2 BPR模型 659

31.2 软件再工程 660

31.2.1 软件维护 660

31.2.2 软件再工程过程模型 661

31.3 逆向工程 663

31.3.1 数据的逆向工程 664

31.3.2 处理的逆向工程 665

31.3.3 用户界面的逆向工程 665

31.4 重构 666

31.4.1 代码重构 666

31.4.2 数据重构 667

31.5 正向工程 668

31.5.1 客户/服务器体系结构的正向工程 668

31.5.2 面向对象体系结构的正向工程 669

31.5.3 用户界面的正向工程 670

31.6 再工程经济学 670

31.7 小结 671

参考文献 671

习题与思考题 672

推荐读物与阅读信息 673

第32章 未来之路 675

32.1 再论软件的重要性 676

32.2 变化的范围 676

32.3 人及其构造系统的方式 677

32.4 新的软件工程过程 678

32.5 表示信息的新模式 679

32.6 技术作为推动力 680

32.7 软件工程师的责任 681

32.8 结束语 682

参考文献 683

习题与思考题 683

推荐读物与阅读信息 684

索引 687