《软件工程 实践者的研究方法 原书第7版 本科教学版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)普雷斯曼著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2011
  • ISBN:9787111353508
  • 页数:394 页
图书介绍:本书全面而系统地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。第7版在结构和内容上均有调整、更新和充实,更加突出软件过程,强调普遍使用的软件工程方法。本版基于原书第7版进行改编,保留其中的基本内容,压缩或删除了一些高级内容,更加适合作为国内高校计算机、软件工程及相关专业本科生的软件工程课程教材。

第1章 软件和软件工程 1

1.1 软件的本质 2

1.1.1 定义软件 3

1.1.2 软件应用领域 5

1.1.3 遗留软件 6

1.2 软件工程 7

1.3 软件过程 8

1.4 软件工程实践 10

1.4.1 实践的精髓 10

1.4.2 一般原则 11

1.5 软件神话 13

1.6 小结 14

习题与思考题 15

推荐读物与阅读信息 15

第一部分 软件过程第2章 过程模型 18

2.1 通用过程模型 19

2.1.1 定义框架活动 20

2.1.2 明确任务集 21

2.1.3 过程模式 21

2.2 惯用过程模型 23

2.2.1 瀑布模型 24

2.2.2 增量过程模型 25

2.2.3 演化过程模型 26

2.2.4 协同模型 30

2.2.5 演化模型的最终评述 31

2.3 专用过程模型 31

2.3.1 基于构件的开发 32

2.3.2 形式化方法模型 32

2.3.3 面向方面的软件开发 32

2.4 统一过程 34

2.4.1 简史 34

2.4.2 统一过程的阶段 34

2.5 过程技术 35

2.6 产品与过程 36

2.7 小结 37

习题与思考题 37

推荐读物与阅读信息 38

第3章 敏捷开发 39

3.1 什么是敏捷 40

3.2 敏捷及变更的成本费用 41

3.3 敏捷过程是什么 41

3.3.1 敏捷原则 42

3.3.2 敏捷开发的战略 42

3.3.3 人的因素 43

3.4 极限编程 44

3.4.1 极限编程的权值 44

3.4.2 极限编程过程 45

3.4.3 工业极限编程 47

3.4.4 关于XP的争论 48

3.5 其他敏捷过程模型 49

3.5.1 自适应软件开发 50

3.5.2 Scrum 51

3.5.3 动态系统开发方法 52

3.5.4 Crystal 53

3.5.5 特征驱动开发 53

3.5.6 精益软件开发 54

3.5.7 敏捷建模 54

3.5.8 敏捷统一过程 55

3.6 敏捷过程工具集 56

3.7 小结 57

习题与思考题 57

推荐读物与阅读信息 58

第二部分 建模 62

第4章 理解需求 62

4.1 需求工程 63

4.2 建立根基 67

4.2.1 确认利益相关者 67

4.2.2 识别多重观点 67

4.2.3 协同合作 67

4.2.4 首次提问 68

4.3 导出需求 68

4.3.1 协作收集需求 69

4.3.2 质量功能部署 71

4.3.3 用户场景 71

4.3.4 导出工作产品 72

4.4 开发用例 73

4.5 构建需求模型 76

4.5.1 需求模型的元素 77

4.5.2 分析模式 79

4.6 协商需求 79

4.7 确认需求 80

4.8 小结 81

习题与思考题 81

推荐读物与阅读信息 82

第5章 需求建模:场景、信息与类分析 84

5.1 需求分析 85

5.1.1 总体目标和原理 85

5.1.2 分析的经验原则 86

5.1.3 域分析 86

5.1.4 需求建模的方法 88

5.2 基于场景建模 89

5.2.1 新建初始用例 89

5.2.2 细化初始用例 91

5.2.3 编写正规的用例 92

5.3 补充用例的UML模型 94

5.3.1 开发活动图 94

5.3.2 泳道图 94

5.4 数据建模概念 95

5.4.1 数据对象 96

5.4.2 数据属性 96

5.4.3 关系 97

5.5 基于类的建模 98

5.5.1 识别分析类 98

5.5.2 描述属性 100

5.5.3 定义操作 101

5.5.4 类—职责—协作者建模 103

5.5.5 关联和依赖 107

5.5.6 分析包 108

5.6 小结 109

习题与思考题 109

推荐读物与阅读信息 110

第6章 需求建模:流程、行为和模式 111

6.1 需求建模策略 111

6.2 面向流程建模 112

6.2.1 创建数据流模型 112

6.2.2 创建控制流模型 114

6.2.3 控制规格说明 114

6.2.4 处理规格说明 116

6.3 生成行为模型 117

6.3.1 识别用例事件 118

6.3.2 状态表现 118

6.4 需求建模的模式 120

6.4.1 发现分析模式 121

6.4.2 需求模式举例:执行器—传感器 121

6.5 小结 124

习题与思考题 124

推荐读物与阅读信息 125

第7章 设计概念 126

7.1 软件工程中的设计 127

7.2 设计过程 129

7.2.1 软件质量指导原则和属性 129

7.2.2 软件设计的演化 130

7.3 设计概念 131

7.3.1 抽象 132

7.3.2 体系结构 132

7.3.3 模式 133

7.3.4 关注点分离 133

7.3.5 模块化 133

7.3.6 信息隐蔽 134

7.3.7 功能独立 134

7.3.8 求精 135

7.3.9 方面 135

7.3.10 重构 136

7.3.11 面向对象的设计概念 137

7.3.12 设计类 137

7.4 设计模型 139

7.4.1 数据设计元素 140

7.4.2 体系结构设计元素 140

7.4.3 接口设计元素 140

7.4.4 构件级设计元素 142

7.4.5 部署级设计元素 142

7.5 小结 143

习题与思考题 143

推荐读物与阅读信息 144

第8章 体系结构设计 145

8.1 软件体系结构 145

8.1.1 什么是体系结构 146

8.1.2 体系结构为什么重要 147

8.1.3 体系结构描述 147

8.1.4 体系结构决策 148

8.2 体系结构类型 148

8.3 体系结构风格 150

8.3.1 体系结构风格的简单分类 151

8.3.2 体系结构模式 153

8.3.3 组织和求精 154

8.4 体系结构设计 154

8.4.1 系统环境的表示 154

8.4.2 定义原型 155

8.4.3 将体系结构精化为构件 156

8.4.4 描述系统实例 157

8.5 评估可选的体系结构设计 158

8.5.1 体系结构权衡分析方法 158

8.5.2 体系结构复杂性 160

8.5.3 体系结构描述语言 160

8.6 使用数据流进行体系结构映射 161

8.6.1 变换映射 161

8.6.2 精化体系结构设计 166

8.7 小结 167

习题与思考题 167

推荐读物与阅读信息 167

第9章 构件级设计 169

9.1 什么是构件 170

9.1.1 面向对象的观点 170

9.1.2 传统观点 171

9.1.3 过程相关的观点 172

9.2 设计基于类的构件 173

9.2.1 基本设计原则 173

9.2.2 构件级设计指导方针 176

9.2.3 内聚性 176

9.2.4 耦合性 178

9.3 实施构件级设计 179

9.4 设计传统构件 183

9.4.1 图形化设计表示 183

9.4.2 表格式设计表示 184

9.4.3 程序设计语言 185

9.5 基于构件的开发 186

9.5.1 领域工程 187

9.5.2 构件合格性检验、适应性修改与组合 187

9.5.3 复用的分析与设计 189

9.5.4 构件分类与检索 189

9.6 小结 190

习题与思考题 191

推荐读物与阅读信息 191

第10章 用户界面设计 193

10.1 黄金规则 194

10.1.1 用户操纵控制 194

10.1.2 减轻用户记忆负担 195

10.1.3 保持界面一致 196

10.2 用户界面的分析与设计 197

10.2.1 用户界面分析和设计模型 197

10.2.2 过程 198

10.3 界面分析 199

10.3.1 用户分析 199

10.3.2 任务分析和建模 200

10.3.3 显示内容分析 204

10.3.4 工作环境分析 204

10.4 界面设计步骤 205

10.4.1 应用界面设计步骤 205

10.4.2 用户界面设计模式 207

10.4.3 设计问题 207

10.5 设计评估 209

10.6 小结 210

习题与思考题 211

推荐读物与阅读信息 211

第三部分 质量管理第11章 质量概念 214

11.1 什么是质量 215

11.2 软件质量 215

11.2.1 Garvin的质量维度 216

11.2.2 McCall的质量因素 217

11.2.3 ISO 9126质量因素 217

11.2.4 定向质量因素 218

11.2.5 过渡到量化观点 219

11.3 软件质量困境 219

11.3.1 “足够好”的软件 219

11.3.2 质量成本 220

11.3.3 风险 221

11.3.4 疏忽和责任 222

11.3.5 质量和安全 222

11.3.6 管理活动的影响 222

11.4 实现软件质量 223

11.4.1 软件工程方法 223

11.4.2 项目管理技术 223

11.4.3 质量控制 224

11.4.4 质量保证 224

11.5 小结 224

习题与思考题 224

推荐读物与阅读信息 225

第12章 评审技术 226

12.1 软件缺陷对成本的影响 227

12.2 缺陷放大和消除 227

12.3 评审度量及其应用 229

12.3.1 分析度量数据 229

12.3.2 评审的成本效益 230

12.4 评审:正式程度 231

12.5 非正式评审 231

12.6 正式技术评审 233

12.6.1 评审会议 233

12.6.2 评审报告和记录保存 234

12.6.3 评审指导原则 234

12.6.4 样本驱动评审 235

12.7 小结 236

习题与思考题 236

推荐读物与阅读信息 237

第13章 软件质量保证 238

13.1 背景问题 239

13.2 软件质量保证的要素 239

13.3 软件质量保证的任务、目标和度量 241

13.3.1 软件质量保证任务 241

13.3.2 目标、属性和度量 241

13.4 软件质量保证的形式化方法 242

13.5 统计软件质量保证 243

13.5.1 一个普通的例子 243

13.5.2 软件工程中的六西格玛 244

13.6 软件可靠性 244

13.6.1 可靠性和可用性的测量 245

13.6.2 软件安全 246

13.7 ISO 9000质量标准 246

13.8 SQA计划 247

13.9 产品度量框架 248

13.9.1 测度、度量和指标 249

13.9.2 产品度量的挑战 249

13.9.3 测量原则 250

13.9.4 面向目标的软件测量 250

13.9.5 有效软件度量的属性 251

13.10 基于功能的度量 251

13.11 小结 254

习题与思考题 254

推荐读物与阅读信息 255

第14章 软件测试策略 256

14.1 软件测试的策略性方法 257

14.1.1 验证与确认 257

14.1.2 软件测试的组织 258

14.1.3 软件测试策略——宏观 258

14.1.4 测试完成的标准 260

14.2 策略问题 260

14.3 传统软件的测试策略 261

14.3.1 单元测试 261

14.3.2 集成测试 263

14.4 面向对象软件的测试策略 267

14.4.1 面向对象环境中的单元测试 267

14.4.2 面向对象环境中的集成测试 268

14.5 确认测试 268

14.5.1 确认测试准则 268

14.5.2 配置评审 269

14.5.3 α测试与β测试 269

14.6 系统测试 270

14.6.1 恢复测试 270

14.6.2 安全测试 270

14.6.3 压力测试 271

14.6.4 性能测试 271

14.6.5 部署测试 271

14.7 调试技巧 272

14.7.1 调试过程 272

14.7.2 心理因素 273

14.7.3 调试策略 274

14.7.4 纠正错误 275

14.8 小结 275

习题与思考题 276

推荐读物与阅读信息 276

第15章 测试传统的应用系统 278

15.1 软件测试基础 279

15.2 测试的内部视角和外部视角 280

15.3 白盒测试 281

15.4 基本路径测试 281

15.4.1 流图表示 281

15.4.2 独立程序路径 282

15.4.3 导出测试用例 284

15.5 控制结构测试 285

15.5.1 条件测试 285

15.5.2 数据流测试 286

15.5.3 循环测试 286

15.6 黑盒测试 287

15.6.1 等价类划分 287

15.6.2 边界值分析 288

15.7 小结 289

习题与思考题 289

推荐读物与阅读信息 289

第16章 测试面向对象的应用系统 291

16.1 扩展测试的视野 291

16.2 测试OOA和OOD模型 292

16.2.1 OOA和OOD模型的正确性 292

16.2.2 面向对象模型的一致性 293

16.3 面向对象测试策略 294

16.3.1 面向对象环境中的单元测试 294

16.3.2 面向对象环境中的集成测试 295

16.3.3 面向对象环境中的确认测试 295

16.4 面向对象测试方法 295

16.4.1 面向对象概念的测试用例设计的含义 296

16.4.2 传统测试用例设计方法的可应用性 296

16.4.3 基于故障的测试 296

16.4.4 测试用例与类层次 297

16.4.5 基于场景的测试设计 297

16.4.6 表层结构和深层结构的测试 298

16.5 类级可应用的测试方法 299

16.5.1 面向对象类的随机测试 299

16.5.2 类级的划分测试 300

16.6 类间测试用例设计 300

16.6.1 多类测试 301

16.6.2 从行为模型导出的测试 301

16.7 小结 302

习题与思考题 303

推荐读物与阅读信息 303

第17章 软件配置管理 304

17.1 软件配置管理概述 305

17.1.1 SCM场景 305

17.1.2 配置管理系统元素 306

17.1.3 基线 306

17.1.4 软件配置项 307

17.2 SCM中心存储库 308

17.2.1 中心存储库的作用 308

17.2.2 一般特征和内容 308

17.2.3 SCM特征 309

17.3 SCM过程 310

17.3.1 软件配置中的对象标识 311

17.3.2 版本控制 311

17.3.3 变更控制 312

17.3.4 配置审核 315

17.3.5 状态报告 315

17.4 小结 316

习题与思考题 316

推荐读物与阅读信息 317

第四部分 软件项目管理第18章 项目管理概念 320

18.1 管理涉及的范围 321

18.1.1 人员 321

18.1.2 产品 321

18.1.3 过程 321

18.1.4 项目 322

18.2 人员 322

18.2.1 利益相关者 322

18.2.2 团队负责人 322

18.2.3 软件团队 323

18.2.4 敏捷团队 325

18.2.5 协调与沟通问题 326

18.3 产品 327

18.3.1 软件范围 327

18.3.2 问题分解 327

18.4 过程 328

18.4.1 合并产品和过程 328

18.4.2 过程分解 328

18.5 项目 329

18.6 W5HH原则 330

18.7 关键实践 331

18.8 小结 331

习题与思考题 332

推荐读物与阅读信息 332

第19章 过程度量和项目度量 334

19.1 过程领域和项目领域中的度量 335

19.1.1 过程度量和软件过程改进 335

19.1.2 项目度量 336

19.2 软件测量 337

19.2.1 面向规模的度量 338

19.2.2 面向功能的度量 339

19.2.3 调和代码行度量和功能点度量 339

19.2.4 面向对象的度量 341

19.2.5 面向用例的度量 342

19.3 软件质量度量 342

19.3.1 测量质量 343

19.3.2 缺陷排除效率 344

19.4 小结 345

习题与思考题 345

推荐读物与阅读信息 346

第20章 软件项目估算 347

20.1 对估算的观察 348

20.2 项目策划过程 349

20.3 软件范围和可行性 349

20.4 资源 350

20.4.1 人力资源 350

20.4.2 可复用软件资源 351

20.4.3 环境资源 351

20.5 软件项目估算 351

20.6 分解技术 352

20.6.1 软件规模估算 352

20.6.2 基于问题的估算 353

20.6.3 基于LOC估算的实例 354

20.6.4 基于FP估算的实例 356

20.6.5 基于过程的估算 356

20.6.6 基于过程估算的实例 357

20.6.7 基于用例的估算 358

20.6.8 基于用例的估算实例 359

20.6.9 协调不同的估算方法 359

20.7 经验估算模型 360

20.7.1 估算模型的结构 360

20.7.2 COCOMO Ⅱ模型 361

20.7.3 软件方程 362

20.8 面向对象项目的估算 363

20.9 小结 363

习题与思考题 364

推荐读物与阅读信息 365

第21章 项目进度安排 366

21.1 基本概念 367

21.2 项目进度的安排 368

21.2.1 基本原则 369

21.2.2 人员与工作量之间的关系 369

21.2.3 工作量分配 371

21.3 为软件项目定义任务集 371

21.3.1 任务集举例 372

21.3.2 软件工程活动求精 372

21.4 定义任务网络 373

21.5 进度安排 374

21.5.1 时序图 374

21.5.2 跟踪进度 376

21.5.3 跟踪OO项目的进展 377

21.6 挣值分析 378

21.7 小结 379

习题与思考题 379

推荐读物与阅读信息 380

第22章 风险管理 382

22.1 被动风险策略和主动风险策略 383

22.2 软件风险 383

22.3 风险识别 384

22.3.1 评估整体项目风险 385

22.3.2 风险因素和驱动因子 385

22.4 风险预测 386

22.4.1 建立风险表 387

22.4.2 评估风险影响 388

22.5 风险求精 390

22.6 风险缓解、监测和管理 390

22.7 RMMM计划 391

22.8 小结 393

习题与思考题 393

推荐读物与阅读信息 393