《软件工程:实践者的研究方法》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)Roger S. Pressman著;梅宏译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2003
  • ISBN:7111104374
  • 页数:618 页
图书介绍:

第一部分 产品和过程 2

第1章 产品 2

1.1 软件角色的演化 3

1.2 软件 4

1.2.1 软件特征 4

1.2.2 软件应用 6

1.3 软件:地平线上的危机 7

1.4 软件神话 8

1.5 小结 10

参考文献 11

习题与思考题 11

推荐读物及其他信息源 12

第2章 过程 13

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

2.1.1 过程、方法和工具 14

2.1.2 软件工程的一般视图 15

2.2 软件过程 16

2.3 软件过程模型 18

2.4 线性顺序模型 20

2.5 原型实现模型 21

2.6 RAD模型 22

2.7 演化软件过程模型 24

2.7.1 增量模型 24

2.7.2 螺旋模型 25

2.7.3 WINWIN螺旋模型 27

2.7.4 并发开发模型 28

2.8 基于构件的开发 29

2.9 形式化方法模型 30

2.10 第四代技术 31

2.11 过程技术 32

2.12 产品和过程 32

2.13 小结 33

参考文献 33

习题与思考题 35

推荐读物及其他信息源 36

第二部分 管理软件项目 38

第3章 项目管理的概念 38

3.1 管理的谱系 39

3.1.1 人员 39

3.1.2 产品 39

3.1.3 过程 40

3.1.4 项目 40

3.2 人员 40

3.2.1 项目参与者 40

3.2.2 项目组负责人 41

3.2.3 软件项目组 41

3.2.4 协调和通信问题 45

3.3 产品 46

3.3.1 软件范围 46

3.3.2 问题分解 47

3.4 过程 47

3.4.1 合并产品和过程 48

3.4.2 过程分解 49

3.5 项目 50

3.6 W5HH原则 51

3.7 关键实践 51

3.8 小结 52

参考文献 52

习题与思考题 53

推荐读物及其他信息源 54

第4章 软件过程和项目度量 56

4.1 测量、度量和指标 57

4.2 过程和项目领域中的度量 58

4.2.1 过程度量和软件过程改善 58

4.2.2 项目度量 61

4.3 软件测度 62

4.3.1 面向规模的度量 62

4.3.2 面向功能的度量 63

4.3.3 扩展的功能点度量 65

4.4 调和不同的度量方法 66

4.5 软件质量度量 67

4.5.1 影响质量的因素概述 68

4.5.2 测量质量 68

4.5.3 缺陷排除效率 69

4.6 在软件工程过程中集成度量 70

4.6.1 支持软件度量的论点 70

4.6.2 建立基线 71

4.6.3 度量收集、计算和评估 71

4.7 管理变化:统计过程控制 72

4.8 小型组织的度量 74

4.9 建立软件度量计划 75

4.10 小结 76

参考文献 77

习题与思考题 78

推荐读物及其他信息源 79

第5章 软件项目计划 81

5.1 对估算的观察 82

5.2 项目计划目标 83

5.3 软件范围 83

5.3.1 获取定义软件范围所需的信息 83

5.3.2 可行性 84

5.3.3 一个范围定义的例子 85

5.4 资源 87

5.4.1 人力资源 87

5.4.2 可复用软件资源 87

5.4.3 环境资源 88

5.5 软件项目估算 88

5.6 分解技术 89

5.6.1 软件规模估算 90

5.6.2 基于问题的估算 90

5.6.3 一个基于LOC估算的例子 92

5.6.4 一个基于FP估算的例子 94

5.6.5 基于过程的估算 94

5.6.6 一个基于过程估算的例子 95

5.7 经验估算模型 96

5.7.1 估算模型的结构 96

5.7.2 COCOMO模型 97

5.7.3 软件方程式 98

5.8 自行开发或购买的决策 99

5.8.1 创建决策树 99

5.8.2 外包 101

5.9 自动估算工具 101

5.10 小结 102

参考文献 102

习题与思考题 103

推荐读物及其他信息源 104

第6章 风险分析和管理 105

6.1 被动和主动的风险策略 106

6.2 软件风险 106

6.3 风险识别 107

6.3.1 评估整体项目风险 108

6.3.2 风险因素和驱动因子 108

6.4 风险预测 108

6.4.1 建立风险表 109

6.4.2 评估风险影响 111

6.4.3 风险评估 111

6.5 风险求精 112

6.6 风险缓解、监控和管理 113

6.7 安全性风险和危险 114

6.8 RMMM计划 115

6.9 小结 116

参考文献 116

习题与思考题 117

推荐读物及其他信息源 117

第7章 项目进度安排及跟踪 119

7.1 基本概念 120

7.1.1 关于“延迟”的评注 120

7.1.2 基本原则 121

7.2 人员与工作量之间的关系 123

7.2.1 一个例子 123

7.2.2 一个经验关系 124

7.2.3 工作量分配 124

7.3 为软件项目定义任务集合 125

7.3.1 严格度 125

7.3.2 定义适应准则 126

7.3.3 计算任务集合选择因子的值 126

7.3.4 解释TSS值并选择任务集合 127

7.4 选择软件工程任务 128

7.5 主要任务的求精 130

7.6 定义任务网络 131

7.7 进度安排 132

7.7.1 时间表 133

7.7.2 跟踪进度 133

7.8 获得值分析 136

7.9 错误跟踪 137

7.10 项目计划 138

7.11 小结 139

参考文献 139

习题与思考题 139

推荐读物及其他信息源 141

第8章 软件质量保证 142

8.1 质量概念 143

8.1.1 质量 143

8.1.2 质量控制 144

8.1.3 质量保证 144

8.1.4 质量成本 144

8.2 质量运动 146

8.3 软件质量保证 147

8.3.1 背景 147

8.3.2 SQA活动 148

8.4 软件评审 149

8.4.1 软件缺陷对成本的影响 149

8.4.2 缺陷的放大和消除 150

8.5 正式技术评审 151

8.5.1 评审会议 152

8.5.2 评审报告和记录保存 152

8.5.3 评审指导原则 153

8.6 SQA的形式化方法 154

8.7 统计软件质量保证 154

8.8 软件可靠性 156

8.8.1 可靠性和可用性的测量 157

8.8.2 软件安全性 157

8.9 软件的错误防范 158

8.10 ISO 9000质量标准 160

8.10.1 质量保证系统的ISO方法 161

8.10.2 ISO 9001标准 161

8.11 SQA计划 161

8.12 小结 162

参考文献 162

习题与思考题 164

推荐读物及其他信息源 165

第9章 软件配置管理 167

9.1 软件配置管理 168

9.1.1 基线 168

9.1.2 软件配置项 169

9.2 SCM过程 170

9.3 软件配置中对象的标识 171

9.4 版本控制 172

9.5 变更控制 173

9.6 配置审计 176

9.7 状态报告 176

9.8 SCM标准 177

9.9 小结 177

参考文献 177

习题与思考题 178

推荐读物及其他信息源 179

第三部分 传统软件工程方法 181

第10章 系统工程 181

10.1 基于计算机的系统 182

10.2 系统工程层次结构 183

10.2.1 系统建模 184

10.2.2 系统仿真 185

10.3 业务过程工程:概述 185

10.4 产品工程:概述 188

10.5 需求工程 189

10.5.1 需求诱导 189

10.5.2 需求分析和谈判 190

10.5.3 需求规约 191

10.5.4 系统建模 191

10.5.5 需求确认 191

10.5.6 需求管理 192

10.6 系统建模 193

10.7 小结 196

参考文献 196

习题与思考题 197

推荐读物及其他信息源 198

第11章 分析的概念和原则 199

11.1 需求分析 200

11.2 软件的需求诱导 201

11.2.1 过程的启动 201

11.2.2 便利的应用规约技术 202

11.2.3 质量功能部署 204

11.2.4 use-case 205

11.3 分析原则 207

11.3.1 信息域 208

11.3.2 建模 209

11.3.3 划分 210

11.3.4 要素视图和实现视图 211

11.4 软件原型实现 212

11.4.1 选择原型实现方法 212

11.4.2 原型实现方法和工具 213

11.5 规约 213

11.5.1 规约原则 213

11.5.2 表示 214

11.5.3 软件需求规约 214

11.6 规约评审 215

11.7 小结 215

参考文献 215

习题与思考题 216

推荐读物及其他信息源 217

第12章 分析建模 219

12.1 简史 220

12.2 分析模型的元素 220

12.3 数据建模 221

12.3.1 数据对象、属性和关系 221

12.3.2 基数和形态 223

12.3.3 实体-关系图 224

12.4 功能建模和信息流 226

12.4.1 数据流图 227

12.4.2 针对实时系统的扩展 228

12.4.3 Ward和Mellor扩展 229

12.4.4 Hatley和Pirbhai扩展 230

12.5 行为建模 231

12.6 结构化分析的技巧 233

12.6.1 创建实体-关系图 233

12.6.2 创建数据流模型 235

12.6.3 创建控制流模型 238

12.6.4 控制规约 239

12.6.5 加工规约 239

12.7 数据字典 240

12.8 其他传统分析方法的概述 242

12.9 小结 242

参考文献 242

习题与思考题 243

推荐读物及其他信息源 244

第13章 设计的概念和原则 246

13.1 软件设计和软件工程 247

13.2 设计过程 248

13.2.1 设计和软件质量 248

13.2.2 软件设计的演化 249

13.3 设计原则 249

13.4 设计概念 250

13.4.1 抽象 250

13.4.2 求精 251

13.4.3 模块化 252

13.4.4 软件体系结构 253

13.4.5 控制层次 254

13.4.6 结构划分 255

13.4.7 数据结构 256

13.4.8 软件过程 257

13.4.9 信息隐蔽 257

13.5 有效的模块设计 258

13.5.1 功能独立性 258

13.5.2 内聚 258

13.5.3 耦合 259

13.6 针对有效模块化的设计启发 260

13.7 设计模型 261

13.8 设计文档 262

13.9 小结 262

参考文献 263

习题与思考题 264

推荐读物及其他信息源 265

第14章 体系结构设计 267

14.1 软件体系结构 267

14.1.1 什么是体系结构 268

14.1.2 为什么体系结构重要 268

14.2 数据设计 269

14.2.1 数据建模、数据结构、数据库和数据仓库 269

14.2.2 构件级的数据设计 270

14.3 体系结构风格 271

14.3.1 风格和模式的简略分类 271

14.3.2 组织和精化 273

14.4 分析可选的体系结构设计 274

14.4.1 一种体系结构权衡分析方法 274

14.4.2 体系结构设计的定量指导 275

14.4.3 体系结构复杂性 276

14.5 映射需求到软件体系结构 276

14.5.1 变换流 277

14.5.2 事务流 277

14.6 变换映射 278

14.6.1 一个例子 278

14.6.2 设计步骤 278

14.7 事务映射 284

14.7.1 一个例子 284

14.7.2 设计步骤 285

14.8 精化体系结构设计 287

14.9 小结 288

参考文献 289

习题与思考题 290

推荐读物及其他信息源 291

第15章 用户界面设计 293

15.1 黄金规则 294

15.1.1 置用户于控制之下 294

15.1.2 减少用户的记忆负担 295

15.1.3 保持界面一致 295

15.2 用户界面设计 296

15.2.1 界面设计模型 296

15.2.2 用户界面设计过程 297

15.3 任务分析和建模 298

15.4 界面设计活动 299

15.4.1 定义界面对象和动作 299

15.4.2 设计问题 301

15.5 实现工具 303

15.6 设计评估 303

15.7 小结 305

参考文献 305

习题与思考题 305

推荐读物及其他信息源 306

第16章 构件级设计 308

16.1 结构化程序设计 309

16.1.1 图形设计符号 309

16.1.2 表格设计符号 311

16.1.3 程序设计语言 313

16.1.4 一个PDL的例子 313

16.2 设计符号的比较 314

16.3 小结 315

参考文献 316

习题与思考题 316

推荐读物及其他信息源 317

第17章 软件测试技术 318

17.1 软件测试基础 319

17.1.1 测试目标 319

17.1.2 测试原则 319

17.1.3 可测试性 320

17.2 测试案例设计 322

17.3 白盒测试 323

17.4 基本路径测试 323

17.4.1 流图符号 323

17.4.2 环复杂度 325

17.4.3 导出测试案例 326

17.4.4 图矩阵 328

17.5 控制结构测试 329

17.5.1 条件测试 329

17.5.2 数据流测试 331

17.5.3 循环测试 332

17.6 黑盒测试 333

17.6.1 基于图的测试方法 334

17.6.2 等价划分 335

17.6.3 边界值分析 336

17.6.4 比较测试 337

17.6.5 正交数组测试 337

17.7 针对专门的环境、体系结构和应用的测试 339

17.7.1 测试GUI 339

17.7.2 客户/服务器体系结构的测试 339

17.7.3 测试文档和帮助设施 339

17.7.4 实时系统测试 340

17.8 小结 341

参考文献 341

习题与思考题 342

推荐读物及其他信息源 343

第18章 软件测试策略 345

18.1 软件测试的策略途径 346

18.1.1 验证和确认 346

18.1.2 软件测试的组织 347

18.1.3 一种软件测试策略 347

18.1.4 测试完成的标准 349

18.2 策略问题 350

18.3 单元测试 350

18.3.1 单元测试考虑 350

18.3.2 单元测试规程 352

18.4 集成测试 352

18.4.1 自顶向下集成 353

18.4.2 自底向上集成 354

18.4.3 回归测试 355

18.4.4 烟幕测试 355

18.4.5 关于集成测试的讨论 356

18.4.6 集成测试文档 357

18.5 确认测试 357

18.5.1 确认测试的标准 358

18.5.2 配置评审 358

18.5.3 α和β测试 358

18.6 系统测试 358

18.6.1 恢复测试 359

18.6.2 安全测试 359

18.6.3 应力测试 360

18.6.4 性能测试 360

18.7 调试的艺术 360

18.7.1 调试过程 360

18.7.2 心理因素 361

18.7.3 调试方法 362

18.8 小结 363

参考文献 363

习题与思考题 364

推荐读物及其他信息源 365

第19章 软件的技术度量 366

19.1 软件质量 367

19.1.1 McCall的质量因素 367

19.1.2 FURPS 369

19.1.3 ISO 9126质量因素 370

19.1.4 到量化视图的变迁 370

19.2 软件技术度量框架 371

19.2.1 技术度量的挑战 371

19.2.2 测度原则 372

19.2.3 有效软件度量的属性 372

19.3 分析模型的度量 373

19.3.1 基于功能的度量 373

19.3.2 bang度量 375

19.3.3 规约质量的度量 376

19.4 设计模型的度量 377

19.4.1 体系结构设计度量 377

19.4.2 构件级设计度量 379

19.4.3 界面设计度量 381

19.5 源代码度量 382

19.6 对测试的度量 383

19.7 对维护的度量 384

19.8 小结 384

参考文献 385

习题与思考题 386

推荐读物及其他信息源 387

第四部分 面向对象软件工程 389

第20章 面向对象的概念和原理 389

20.1 面向对象范型 390

20.2 面向对象概念 391

20.2.1 类和对象 392

20.2.2 属性 393

20.2.3 操作、方法和服务 393

20.2.4 消息 394

20.2.5 封装、继承和多态 395

20.3 标识对象模型的元素 396

20.3.1 标识类和对象 397

20.3.2 刻画属性 399

20.3.3 定义操作 399

20.3.4 完成对象定义 400

20.4 面向对象软件项目的管理 401

20.4.1 OO的公共过程框架 401

20.4.2 面向对象项目度量和估算 402

20.4.3 一种OO估算和进度安排方法 403

20.4.4 跟踪面向对象项目的进展 404

20.5 小结 405

参考文献 405

习题与思考题 405

推荐读物及其他信息源 406

第21章 面向对象分析 408

21.1 面向对象分析 409

21.1.1 传统方法和OO方法 409

21.1.2 OOA概述 410

21.1.3 统一的OOA方法 411

21.2 领域分析 412

21.2.1 复用和领域分析 412

21.2.2 领域分析过程 412

21.3 OO分析模型的类属成分 414

21.4 OOA过程 415

21.4.1 use-case 415

21.4.2 类-责任-协作者建模 416

21.4.3 定义结构和层次 420

21.4.4 定义主题和子系统 421

21.5 对象-关系模型 422

21.6 对象-行为模型 424

21.6.1 通过use-case标识事件 424

21.6.2 状态表示 425

21.7 小结 427

参考文献 427

习题与思考题 428

推荐读物及其他信息源 429

第22章 面向对象设计 431

22.1 面向对象系统的设计 432

22.1.1 传统方法和OO方法 432

22.1.2 设计问题 433

22.1.3 OOD概述 434

22.1.4 统一的OOD方法 435

22.2 系统设计过程 437

22.2.1 划分分析模型 437

22.2.2 并发性和子系统分配 438

22.2.3 任务管理构件 438

22.2.4 用户界面构件 439

22.2.5 数据管理构件 439

22.2.6 资源管理构件 440

22.2.7 子系统间通信 440

22.3 对象设计过程 441

22.3.1 对象描述 441

22.3.2 设计算法和数据结构 442

22.3.3 程序构件和接口 443

22.4 设计模式 445

22.4.1 描述设计模式 446

22.4.2 在设计中使用设计模式 446

22.5 面向对象程序设计 447

22.6 小结 447

参考文献 447

习题与思考题 448

推荐读物及其他信息源 449

第23章 面向对象测试 451

23.1 扩大测试的视角 451

23.2 测试OOA和OOD模型 452

23.2.1 OOA和OOD模型的正确性 452

23.2.2 OOA和OOD模型的一致性 453

23.3 面向对象测试策略 454

23.3.1 OO语境中的单元测试 454

23.3.2 OO语境中的集成测试 455

23.3.3 OO语境中的确认测试 455

23.4 OO软件的测试案例设计 455

23.4.1 OO概念的测试案例设计的含义 456

23.4.2 传统测试案例设计方法的可用性 456

23.4.3 基于故障的测试 456

23.4.4 OO程序设计对测试的影响 457

23.4.5 测试案例和类层次 458

23.4.6 基于场景的测试设计 458

23.4.7 测试表层结构和深层结构 459

23.5 在类级别可用的测试方法 460

23.5.1 对OO类的随机测试 460

23.5.2 在类级别的划分测试 460

23.6 类间测试案例设计 461

23.6.1 多个类测试 462

23.6.2 从行为模型导出的测试 462

23.7 小结 463

参考文献 464

习题与思考题 464

推荐读物及其他信息源 465

第24章 面向对象系统的技术度量 466

24.1 面向对象度量的目的 466

24.2 面向对象度量的识别特征 467

24.2.1 局部化 467

24.2.2 封装 467

24.2.3 信息隐蔽 467

24.2.4 继承 468

24.2.5 抽象 468

24.3 对OO设计模型的度量 468

24.4 面向类的度量 469

24.4.1 CK度量套件 469

24.4.2 Lorenz和Kidd建议的度量 471

24.4.3 MOOD度量套件 472

24.5 面向操作的度量 473

24.6 对面向对象测试的度量 473

24.7 对面向对象项目的度量 474

24.8 小结 475

参考文献 475

习题与思考题 476

推荐读物及其他信息源 476

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

第25章 形式化方法 479

25.1 基本概念 479

25.1.1 欠形式化方法的不足 480

25.1.2 软件开发中的数学 481

25.1.3 形式化方法概念 482

25.2 数学预备知识 485

25.2.1 集合和构造性规约 485

25.2.2 集合运算符 486

25.2.3 逻辑运算符 487

25.2.4 序列 488

25.3 应用数学符号描述形式规约 488

25.4 形式规约语言 490

25.5 用Z表示一个软件构件的例子 490

25.6 形式化方法的十条戒律 492

25.7 形式化方法——未来之路 493

25.8 小结 493

参考文献 494

习题与思考题 495

推荐读物及其他信息源 495

第26章 净室软件工程 497

26.1 净室方法 498

26.1.1 净室策略 498

26.1.2 什么使得净室独特 499

26.2 功能规约 500

26.2.1 黑盒规约 501

26.2.2 状态盒规约 501

26.2.3 清晰盒规约 502

26.3 净室设计 502

26.3.1 设计求精和验证 502

26.3.2 设计验证的优点 505

26.4 净室测试 506

26.4.1 统计使用测试 506

26.4.2 认证 507

26.5 小结 507

参考文献 508

习题与思考题 509

推荐读物及其他信息源 509

第27章 基于构件的软件工程 512

27.1 基于构件的系统的开发 513

27.2 CBSE过程 514

27.3 领域工程 514

27.3.1 领域分析过程 515

27.3.2 特征化函数 516

27.3.3 结构建模和结构点 517

27.4 基于构件的开发 518

27.4.1 构件鉴定、适应性修改和组装 518

27.4.2 构件工程 520

27.4.3 为了复用的分析和设计 521

27.5 分类和检索构件 521

27.5.1 描述可复用构件 522

27.5.2 复用环境 524

27.6 CBSE经济学 524

27.6.1 对质量、生产率和成本的影响 524

27.6.2 使用结构点的成本分析 525

27.6.3 复用度量 526

27.7 小结 526

参考文献 527

习题与思考题 528

推荐读物及其他信息源 529

第28章 客户/服务器软件工程 531

28.1 客户/服务器系统的结构 532

28.1.1 C/S系统的软件构件 533

28.1.2 软件构件的分布 533

28.1.3 分布应用子系统的指导原则 534

28.1.4 连接C/S软件子系统 535

28.1.5 中间件和对象请求代理体系结构 535

28.2 C/S系统的软件工程 536

28.3 分析建模问题 536

28.4 C/S系统的设计 537

28.4.1 客户/服务器系统的体系结构设计 537

28.4.2 应用软件的传统设计方法 538

28.4.3 数据库设计 538

28.4.4 一种设计方法的概述 539

28.4.5 加工设计的迭代 540

28.5 测试问题 540

28.5.1 整体C/S测试策略 541

28.5.2 C/S测试策略 542

28.6 小结 542

参考文献 543

习题与思考题 543

推荐读物及其他信息源 544

第29章 Web工程 546

29.1 基于Web的应用的属性 547

29.1.1 质量属性 548

29.1.2 技术 549

29.2 WebE过程 550

29.3 WebE框架 550

29.4 表示/分析基于Web的系统 551

29.4.1 表示 551

29.4.2 分析 552

29.5 基于Web的应用的设计 553

29.5.1 体系结构设计 553

29.5.2 导航设计 556

29.5.3 界面设计 557

29.6 测试基于Web的应用 557

29.7 管理问题 558

29.7.1 WebE队伍 559

29.7.2 项目管理 560

29.7.3 针对WebE的SCM问题 561

29.8 小结 563

参考文献 563

习题与思考题 564

推荐读物及其他信息源 565

第30章 再工程 566

30.1 业务过程再工程 567

30.1.1 业务过程 567

30.1.2 业务过程再工程的原则 567

30.1.3 BPR模型 568

30.1.4 几句警告 569

30.2 软件再工程 569

30.2.1 软件维护 570

30.2.2 软件再工程过程模型 570

30.3 逆向工程 573

30.3.1 理解处理的逆向工程 574

30.3.2 理解数据的逆向工程 574

30.3.3 用户界面的逆向工程 575

30.4 重构 575

30.4.1 代码重构 576

30.4.2 数据重构 576

30.5 正向工程 576

30.5.1 客户/服务器体系结构的正向工程 577

30.5.2 面向对象体系结构的正向工程 578

30.5.3 用户界面的正向工程 579

30.6 再工程经济学 579

30.7 小结 580

参考文献 580

习题与思考题 581

推荐读物及其他信息源 582

第31章 计算机辅助软件工程 584

31.1 什么是CASE 584

31.2 CASE的构造积木块 585

31.3 CASE工具分类 586

31.4 集成CASE环境 589

31.5 集成体系结构 590

31.6 CASE中心存储库 591

31.6.1 在I-CASE中中心存储库的作用 591

31.6.2 特征和内容 592

31.7 小结 594

参考文献 595

习题与思考题 595

推荐读物及其他信息源 596

第32章 未来之路 597

32.1 重提软件的重要性 598

32.2 变化的范围 598

32.3 人以及他们建造系统的方式 598

32.4 “新”的软件工程过程 599

32.5 表示信息的新模式 600

32.6 技术作为推动力 601

32.7 结束语 601

参考文献 602

习题与思考题 602

推荐读物及其他信息源 603

索引 604