《软件工程 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:李伟波,刘永祥,王庆春主编
  • 出 版 社:武汉:武汉大学出版社
  • 出版年份:2010
  • ISBN:9787307079823
  • 页数:334 页
图书介绍:本书以软件件生存周期为主线,遵循软件开发“工程化思想”,主要讲述软件工程各个知识领域的基础内容,系统地介绍了软件工程学的概念、原理和方法,重点介绍应用技术。内容包括:软件工程的基本概念、软件过程和软件开发模型、软件需求分析、软件设计、软件编码、软件测试、软件维护、软件质量和软件工程标准化、软件项目管理等。

第1章 软件工程概述 1

1.1 计算机软件 1

1.1.1 软件的概念 1

1.1.2 软件的特点 1

1.1.3 软件的分类 2

1.1.4 软件的发展历程 3

1.1.5 软件危机及其解决危机的途径 3

1.2 软件工程 5

1.2.1 软件工程的概念 5

1.2.2 软件工程的基本原理和原则 6

1.2.3 软件工程学研究的内容 7

1.2.4 软件开发方法简述 7

1.2.5 软件工具与环境 9

本章小结 10

习题 10

第2章 软件过程和模型 12

2.1 软件过程与软件生存周期 12

2.1.1 软件过程 12

2.1.2 软件生存周期 13

2.2 典型软件过程模型 14

2.2.1 瀑布模型 14

2.2.2 快速原型模型 15

2.2.3 螺旋模型 18

2.2.4 增量模型 19

2.3 面向对象的软件过程模型 20

2.3.1 构件复用模型 20

2.3.2 统一过程模型RUP 22

2.4 统一建模语言UML 25

2.4.1 UML的结构 25

2.4.2 UML建模机制 28

2.4.3 UML图形示例 29

本章小结 36

习题 37

第3章 需求分析与建模 38

3.1 需求分析 38

3.1.1 需求分析的任务和原则 38

3.1.2 获取需求的方法 39

3.1.3 需求分析的模型和方法 40

3.1.4 需求分析的主要过程 40

3.2 结构化分析方法 42

3.2.1 基本思想和分析过程 42

3.2.2 系统流程图 43

3.2.3 数据流图 45

3.2.4 数据字典 49

3.2.5 加工逻辑说明 51

3.3 功能建模 52

3.3.1 IDEF0模型 52

3.3.2 IDEF0建模方法 52

3.3.3 IDEF0建模步骤 57

3.4 数据建模与ER图 57

3.4.1 实体、属性与联系 57

3.4.2 实体-联系图 58

3.4.3 扩充实体联系图 61

3.4.4 数据建模步骤 62

3.5 行为建模与STD图 62

3.5.1 处理模型和控制模型之间的关系 63

3.5.2 控制流图 63

3.5.3 状态转换图 63

3.6 需求规格说明与验证 65

3.6.1 需求规格说明书的主要内容 65

3.6.2 软件需求的验证 69

本章小结 70

习题 70

第4章 软件设计与编码 71

4.1 软件设计的基本概念和原则 71

4.1.1 模块化 71

4.1.2 抽象 72

4.1.3 求精 73

4.1.4 信息隐藏 73

4.1.5 体系结构 73

4.1.6 设计模式 74

4.1.7 重构 74

4.1.8 功能独立性 74

4.2 概要设计 76

4.2.1 概要设计的任务和过程 76

4.2.2 概要设计的原则 78

4.2.3 常见的软件体系结构 80

4.2.4 体系结构设计 84

4.2.5 数据库的概念结构设计 85

4.2.6 概要设计中常用的图形工具 87

4.3 结构化设计方法 91

4.3.1 数据流的类型 92

4.3.2 变换分析 92

4.3.3 事务分析 94

4.3.4 设计过程和原则 95

4.4 详细设计 96

4.4.1 详细设计的目标与任务 96

4.4.2 过程设计的常用工具 97

4.4.3 数据库逻辑结构设计和物理设计 101

4.4.4 人机界面设计 104

4.5 面向数据结构的设计方法 107

4.5.1 Jackson方法 107

4.5.2 Wamier方法 113

4.6 编码 115

4.6.1 选择程序设计语言 115

4.6.2 编码的准则 116

本章小结 117

习题 118

第5章 面向对象的分析与建模 120

5.1 面向对象方法学概述 120

5.1.1 面向对象方法学的概念 120

5.1.2 面向对象方法学的基本特点 122

5.1.3 面向对象的软件工程及开发模型 123

5.1.4 常用的面向对象的开发方法 124

5.2 面向对象的分析 128

5.2.1 面向对象分析的任务和模型 128

5.2.2 面向对象分析的过程 129

5.3 用例分析建立功能模型 129

5.3.1 用例分析的步骤 130

5.3.2 确定系统边界和参与者 130

5.3.3 建立场景和用例 132

5.3.4 定义关系和建立用例图 133

5.3.5 用户界面草案 136

5.3.6 系统用例的优先级处理 137

5.4 建立对象模型 138

5.4.1 确定类与对象 138

5.4.2 定义属性与服务 139

5.4.3 定义关系和建立类图 141

5.5 建立动态模型 145

5.5.1 画顺序图 145

5.5.2 画协作图 147

5.5.3 画状态图 147

5.5.4 画活动图 150

本章小结 153

习题 153

第6章 面向对象的软件设计与实现 155

6.1 面向对象软件设计概述 155

6.1.1 面向对象设计的目标 155

6.1.2 面向对象设计的模型 156

6.2 系统设计 156

6.2.1 系统设计的主要内容 156

6.2.2 系统顶层架构的选择 157

6.2.3 系统设计的分层模式 159

6.3 详细设计 162

6.3.1 详细设计的主要内容 162

6.3.2 问题域子系统设计 162

6.3.3 人机交互子系统设计 164

6.3.4 任务管理子系统设计 165

6.3.5 数据管理子系统设计 167

6.3.6 设计优化 168

6.4 面向对象的编码 170

6.4.1 程序设计语言的特点 170

6.4.2 程序设计语言的选择 173

6.4.3 编码的风格与准则 173

6.4.4 类的实现 175

6.4.5 泛化和聚合关系的实现 176

6.4.6 关联关系的实现 177

6.4.7 依赖关系的实现 179

本章小结 181

习题 181

第7章 软件测试技术 183

7.1 软件测试概述 183

7.1.1 基本定义 183

7.1.2 软件测试的必要性 184

7.1.3 通过维恩图理解测试 184

7.1.4 软件测试的目的 185

7.1.5 软件测试的原则 186

7.1.6 软件测试的方法和步骤 188

7.2 白盒测试技术 188

7.2.1 静态测试 189

7.2.2 程序插桩 190

7.2.3 逻辑覆盖 191

7.2.4 测试覆盖准则 195

7.2.5 基本路径测试 196

7.2.6 域测试 198

7.2.7 符号测试 199

7.2.8 Z路径覆盖 199

7.3 黑盒测试技术 200

7.3.1 等价类划分法 200

7.3.2 边界值分析法 203

7.3.3 因果图法 204

7.3.4 错误推测法 207

7.3.5 场景法 207

7.3.6 判定表驱动法 209

7.4 灰盒测试技术 210

7.5 软件测试过程 211

7.5.1 单元测试 212

7.5.2 集成测试 214

7.5.3 系统测试 218

7.5.4 验收测试 219

7.6 面向对象的软件测试 220

7.6.1 面向对象软件的测试策略 220

7.6.2 面向对象软件的测试方法 221

7.7 测试工具的分类和选择 226

7.7.1 测试工具分类 226

7.7.2 测试工具的选择 229

7.8 测试计划与测试报告 229

7.8.1 测试计划 230

7.8.2 测试报告 232

本章小结 234

习题 234

第8章 软件配置与软件维护 236

8.1 软件配置活动 236

8.1.1 软件配置活动的意义 236

8.1.2 主要软件配置管理活动 236

8.1.3 配置管理流程 238

8.2 版本管理与变更管理 239

8.2.1 版本管理的必要性 239

8.2.2 早期的版本管理 240

8.2.3 元素、分支的版本管理 240

8.2.4 构件、基线的版本管理 240

8.2.5 现代版本管理 241

8.2.6 基于基线的变更管理 243

8.2.7 变更请求管理过程 243

8.3 配置审核与状态报告 248

8.3.1 配置审核 248

8.3.2 配置状态报告 248

8.4 软件维护的概念 249

8.4.1 软件维护的类型及策略 249

8.4.2 软件维护的内容及方法 251

8.4.3 软件维护的特点 252

8.5 软件维护的实施 254

8.5.1 软件维护机构 254

8.5.2 维护实施 254

8.5.3 维护文档 257

8.5.4 评价维护活动 258

8.6 软件可维护性 258

8.6.1 影响可维护性的因素 258

8.6.2 软件可维护性的定量度量 259

8.6.3 提高可维护性的方法 259

8.6.4 可维护性复审 260

8.7 软件再工程技术 261

8.7.1 软件再工程过程 261

8.7.2 软件再工程分析 264

本章小结 264

习题 265

第9章 质量保证与软件工程标准化 266

9.1 软件质量概念 266

9.1.1 软件质量及特征指标 266

9.1.2 质量评价模型 267

9.1.3 质量控制与质量保证 272

9.1.4 质量保证体系 273

9.2 软件可靠性与复杂性 276

9.2.1 可靠性 276

9.2.2 可靠性的评价指标 277

9.2.3 系统的稳态可用性计算 278

9.2.4 平均无故障运行时间的估算 279

9.2.5 复杂性 280

9.2.6 提高软件可靠性的方法 282

9.3 软件工程标准化 283

9.3.1 软件工程标准化的意义 283

9.3.2 软件工程标准化的层次 283

9.3.3 我国的软件工程标准化工作 284

9.3.4 ISO 9000标准简介 285

9.3.5 质量认证 286

9.4 软件能力成熟度模型CMM 287

9.4.1 CMM级别 287

9.4.2 CMM的内部结构和进化过程 289

9.4.3 利用CMM进行成熟度评估 291

9.4.4 CMM与ISO9000系列标准 292

9.4.5 我国的软件评估体系SPCA 292

本章小结 293

习题 294

第10章 软件项目管理 295

10.1 软件项目管理概念 295

10.1.1 软件项目的特点 295

10.1.2 软件项目管理的内容 295

10.2 风险管理 296

10.2.1 风险类型 296

10.2.2 风险识别 297

10.2.3 风险评估 300

10.2.4 风险应对策略 302

10.3 人员组织管理 304

10.3.1 项目组织结构 305

10.3.2 人员配置 306

10.3.3 激励与考核 308

10.4 软件规模估算 308

10.4.1 常用估算技术 309

10.4.2 IBM模型 312

10.4.3 Putnam模型 312

10.4.4 COCOMO模型 313

10.5 计划与进度管理 315

10.5.1 软件项目计划 315

10.5.2 工期估算 315

10.5.3 项目任务分解 316

10.5.4 进度安排 318

10.5.5 进度跟踪与控制 326

10.6 成本管理 327

10.6.1 资源计划 327

10.6.2 成本估算 328

10.6.3 成本控制 328

10.7 文档管理 329

10.7.1 文档编制目的 329

10.7.2 文档编制内容 329

10.7.3 提高文档编制的质量 330

10.7.4 文档的管理和维护 330

本章小结 331

习题 331

参考文献 333