《软件工程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:瞿中,宋琦,刘玲慧,王江涛编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2016
  • ISBN:9787115431035
  • 页数:398 页
图书介绍:本书分为面向过程的软件工程、面向对象的软件工程、软件工程管理三部分。前两部分从实用角度出发,讲述软件工程的基本原理、概念、技术和方法,主要内容有软件工程、软件开发过程、软件计划、需求分析、总体设计、详细设计、编码、软件测试、软件维护。第三部分讲述了软件工程标准化和软件文档、软件工程质量、软件工程项目管理、开发实例等知识。

第一篇 面向过程的软件工程 2

第1章 概论 2

1.1 软件 2

1.1.1 软件的定义及特点 2

1.1.2 软件的发展历程 3

1.1.3 软件的分类 3

1.1.4 软件的应用领域 4

1.2 软件危机 5

1.2.1 软件危机的定义 5

1.2.2 软件危机产生的原因 6

1.2.3 软件危机解决的途径 6

1.3 软件工程 7

1.3.1 软件工程的定义和研究对象 7

1.3.2 软件工程的基本原理 7

1.3.3 软件工程的基本目标 8

1.3.4 软件工程的基本原则 8

1.4 软件生存周期 9

1.5 软件开发过程模型 10

1.6 软件开发方法及工具 18

1.6.1 软件的开发方法 18

1.6.2 软件的开发工具 20

1.7 软件工程的最新发展动向 20

1.8 典型例题详解 21

小结 23

习题1 24

第2章 分析阶段 26

2.1 问题定义 26

2.2 可行性研究 26

2.2.1 可行性研究的任务 26

2.2.2 可行性研究的基本内容 27

2.2.3 可行性研究的步骤 27

2.3 系统流程图 29

2.3.1 系统流程图的符号 29

2.3.2 系统流程图举例 30

2.3.3 分层 30

2.4 软件计划的制订 31

2.4.1 确定软件计划 31

2.4.2 复审软件计划 32

2.4.3 开发方案的选择 32

2.5 成本/效益分析 33

2.5.1 成本估算 33

2.5.2 成本/效益分析的方法 36

2.6 需求分析 37

2.6.1 需求分析的概念 37

2.6.2 需求分析的层次 37

2.6.3 需求分析的目标和任务 38

2.6.4 需求分析的原则 38

2.6.5 需求分析的过程及方法 39

2.6.6 应用域 40

2.6.7 业务模型的建立 40

2.6.8 需求规格说明书 42

2.6.9 评审 42

2.7 传统的软件建模 44

2.7.1 分析建模 44

2.7.2 数据模型 44

2.7.3 功能模型 46

2.7.4 行为模型 46

2.7.5 数据字典 46

2.7.6 分析实例 47

2.8 典型例题详解 50

2.9 实验——音乐点播管理系统需求分析 52

小结 55

习题2 56

第3章 总体设计 58

3.1 总体设计的任务及过程 58

3.1.1 总体设计的任务 58

3.1.2 总体设计的过程 58

3.2 总体设计的原理 59

3.2.1 软件结构和过程 59

3.2.2 模块设计 60

3.2.3 结构设计 65

3.3 总体设计准则 67

3.4 总体设计的常用方法及工具 68

3.4.1 面向数据流的设计方法 68

3.4.2 总体设计中的工具 71

3.4.3 总体设计说明书编写规范 73

3.5 模块结构设计 73

3.6 数据存储设计 73

3.7 模型—视图—控制器框架 74

3.7.1 MVC模式 74

3.7.2 MVC中的模型类、视图类和控制类 74

3.7.3 MVC的实现 75

3.8 软件体系结构 75

3.8.1 软件体系结构的兴起 75

3.8.2 软件体系结构的概念 76

3.8.3 软件体系结构的现状 77

3.8.4 软件体系结构的描述方法 79

3.9 软件体系结构与操作系统 82

3.9.1 分层结构 82

3.9.2 微内核结构 83

3.10 典型例题详解 85

3.11 实验——音乐点播管理系统总体设计 88

小结 91

习题3 91

第4章 详细设计 94

4.1 详细设计的任务 94

4.2 详细设计的原则 95

4.3 详细设计的方法及工具 95

4.3.1 详细设计的方法 95

4.3.2 详细设计的工具 96

4.3.3 详细设计工具的选择 103

4.4 详细设计规格说明及复审 103

4.4.1 详细设计说明 103

4.4.2 详细设计复审 103

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

4.5.1 Jackson程序设计方法 104

4.5.2 Warnier程序设计方法 105

4.6 基于组件的设计方法 105

4.7 界面设计 106

4.7.1 用户界面设计 106

4.7.2 字符界面设计 107

4.7.3 菜单设计 108

4.7.4 对话框设计 109

4.7.5 多窗口界面设计 109

4.8 典型例题详解 110

4.9 实验——音乐点播管理系统详细设计 113

小结 114

习题4 114

第5章 编码及测试 116

5.1 程序设计语言 116

5.1.1 程序设计语言的发展及分类 116

5.1.2 程序设计语言的选择标准 118

5.2 程序设计风格 119

5.2.1 源程序文档化 120

5.2.2 数据说明 120

5.2.3 表达式和语句结构 121

5.2.4 输入和输出 121

5.3 程序效率 122

5.3.1 代码效率 122

5.3.2 存储器效率 123

5.3.3 输入/输出效率 123

5.4 编程安全 123

5.4.1 冗余程序设计 123

5.4.2 防错程序设计 124

5.5 结构化程序设计方法 124

5.6 程序的复杂性及度量 126

5.6.1 代码行度量法 126

5.6.2 McCabe度量法 126

5.6.3 Halstead度量法 128

5.7 软件测试 129

5.7.1 软件测试的意义 129

5.7.2 软件测试的基本概念 129

5.7.3 软件测试的目的、任务、原则和研究对象 130

5.7.4 软件测试的发展历史及趋势 132

5.7.5 软件测试的需求规格说明 133

5.7.6 软件测试的设计说明 134

5.8 软件测试的方法 135

5.8.1 静态测试和动态测试 135

5.8.2 黑盒测试法和白盒测试法 136

5.9 软件测试的步骤 141

5.9.1 单元测试 141

5.9.2 集成测试 144

5.9.3 确认测试 148

5.9.4 系统测试 148

5.9.5 验收测试 152

5.10 调试 154

5.10.1 调试过程 154

5.10.2 调试途径 155

5.11 测试设计和管理 156

5.11.1 错误曲线 156

5.11.2 测试用例设计 157

5.12 软件测试工具 165

5.12.1 自动软件测试的优点 165

5.12.2 测试工具分类 165

5.12.3 自动测试的相关问题 167

5.13 典型例题详解 168

5.14 实验——音乐点播管理系统测试 172

小结 174

习题5 175

第6章 软件维护及软件再工程 178

6.1 软件维护 178

6.1.1 软件维护的定义 178

6.1.2 软件维护的分类 178

6.1.3 软件维护的成本 180

6.1.4 软件维护的特点 181

6.2 软件维护过程 182

6.3 软件的可维护性 185

6.3.1 影响软件可维护性的因素 185

6.3.2 软件可维护性度量 187

6.3.3 提高软件可维护性的方法 187

6.4 逆向工程和再工程 189

6.4.1 预防性维护 189

6.4.2 软件的逆向工程和再工程 189

6.4.3 软件再工程过程 190

6.4.4 软件再工程的方法 190

6.5 典型例题详解 191

小结 191

习题6 192

第二篇 面向对象的软件工程 195

第7章 面向对象方法学 195

7.1 面向对象方法学概述 195

7.1.1 面向对象方法学的要点 196

7.1.2 面向对象方法学的优点 197

7.2 面向对象方法学的基本概念 199

7.2.1 对象 199

7.2.2 其他概念 201

7.3 面向对象建模 203

7.4 对象模型 204

7.4.1 类图的基本符号 204

7.4.2 表示关系的符号 205

7.5 动态模型 209

7.6 功能模型 210

7.6.1 用例图 210

7.6.2 用例建模 212

7.7 三种模型之间的关系 212

7.8 典型例题详解 213

7.9 实验——音乐点播管理系统面向对象方法学 214

小结 217

习题7 217

第8章 面向对象分析 219

8.1 面向对象分析建模过程 219

8.1.1 概述 219

8.1.2 3个子模型与5个层次 220

8.2 需求陈述 221

8.2.1 书写要点 221

8.2.2 例子 221

8.3 建立对象模型 222

8.3.1 确定类与对象 222

8.3.2 确定关联 224

8.3.3 划分主题 226

8.3.4 确定属性 227

8.3.5 识别继承关系 228

8.3.6 反复修改 229

8.4 建立动态模型 231

8.4.1 编写脚本 231

8.4.2 设想用户界面 232

8.4.3 绘制事件跟踪图 232

8.4.4 绘制状态图 233

8.4.5 审查动态模型 234

8.5 建立功能模型 235

8.5.1 绘制基本系统模型图 236

8.5.2 绘制功能级数据流图 236

8.5.3 描述处理框功能 237

8.6 定义服务 237

8.7 典型例题详解 238

8.8 实验——音乐点播管理系统面向对象分析 240

小结 245

习题8 246

第9章 面向对象设计 248

9.1 面向对象设计的准则 248

9.2 启发规则 250

9.3 软件重用 251

9.3.1 概述 251

9.3.2 类构件 252

9.3.3 软件重用的效益 254

9.4 划分子系统 254

9.4.1 子系统之间的两种交互方式 255

9.4.2 组织系统的两种方案 255

9.4.3 设计系统的拓扑结构 256

9.5 设计子系统 256

9.5.1 设计问题域子系统 256

9.5.2 设计人机交互子系统 258

9.5.3 设计任务管理子系统 260

9.5.4 设计数据管理子系统 261

9.6 设计类中的服务 263

9.6.1 确定类中应有的服务 264

9.6.2 设计实现服务的方法 264

9.7 设计关联 265

9.7.1 关联的遍历 265

9.7.2 关联对象的实现 266

9.8 设计优化 266

9.8.1 确定优先级 266

9.8.2 提高效率的技术 266

9.8.3 调整继承关系 267

9.9 设计模式 269

9.9.1 相关概念 269

9.9.2 描述设计模式 270

9.9.3 23种设计模式 271

9.10 典型例题详解 272

9.11 实验——音乐点播管理系统面向对象设计 273

小结 275

习题9 275

第10章 面向对象实现 277

10.1 面向对象语言 277

10.1.1 面向对象语言的优点 277

10.1.2 面向对象语言的技术特点 278

10.1.3 面向对象语言的选择原则 280

10.2 面向对象程序设计风格 281

10.2.1 提高可重用性 281

10.2.2 提高可扩充性 282

10.2.3 提高稳健性 282

10.3 测试策略 283

10.3.1 面向对象测试模型 283

10.3.2 面向对象分析的测试 283

10.3.3 面向对象设计的测试 283

10.3.4 面向对象编程的测试 283

10.3.5 面向对象的单元测试 284

10.3.6 面向对象的集成测试 284

10.3.7 面向对象的系统测试 284

10.4 设计测试用例 285

10.4.1 设计类测试用例 285

10.4.2 测试类间测试用例 286

10.5 典型例题详解 287

10.6 实验——音乐点播管理系统面向对象实现 287

小结 288

习题10 288

第三篇 软件工程管理及开发实例 291

第11章 软件工程标准化和软件文档 291

11.1 软件工程标准化 291

11.1.1 软件工程标准化的概念 291

11.1.2 软件工程标准化的类型及意义 291

11.2 软件工程标准的制定与推行 293

11.3 软件工程标准的层次和体系框架 294

11.3.1 软件工程标准的层次 294

11.3.2 中国的软件工程标准化工作 295

11.4 ISO 9000国际标准简介 296

11.5 软件文档 298

11.5.1 软件文档的作用和分类 298

11.5.2 软件文档编制的质量要求 301

11.5.3 软件文档的管理和维护 302

11.6 典型例题详解 303

小结 305

习题11 305

第12章 软件工程质量 308

12.1 软件质量概述 308

12.1.1 软件质量的定义 308

12.1.2 软件质量的特性 309

12.2 软件质量的度量模型 310

12.2.1 软件度量和软件质量的度量 310

12.2.2 软件质量的度量模型 313

12.3 软件质量保证 315

12.3.1 软件质量保证的概念 315

12.3.2 软件质量保证的主要任务 316

12.3.3 软件质量保证的策略 316

12.4 技术评审 317

12.5 软件质量管理体系 319

12.5.1 软件产品质量管理的特点 319

12.5.2 软件质量管理的指导思想 320

12.5.3 软件质量管理体系 321

12.6 典型例题详解 325

小结 325

习题12 326

第13章 软件工程项目管理 328

13.1 软件项目管理 328

13.1.1 软件项目管理的特点 328

13.1.2 软件项目管理的主要职能 328

13.1.3 软件项目管理的主要内容 329

13.1.4 软件项目管理活动 329

13.2 基于CASE技术的开发工具简介 332

13.3 成本估算 333

13.4 计划和组织 334

13.4.1 项目计划的制订 334

13.4.2 项目组人员组织与管理 335

13.5 进度计划与控制 337

13.5.1 制订开发进度计划 337

13.5.2 Gantt图与时间管理 338

13.5.3 工程网络与关键路径 338

13.5.4 项目进度跟踪与控制 340

13.6 风险管理 342

13.6.1 风险识别与分类 342

13.6.2 风险评估与分析 344

13.6.3 风险策划与管理 345

13.6.4 风险规避与监控 346

13.7 配置管理 347

13.7.1 软件配置 347

13.7.2 软件配置管理的任务 347

13.7.3 软件配置管理的过程 349

13.8 项目管理认证体系IPMP与PMP 352

13.8.1 IPMP概况 352

13.8.2 PMP简介 352

13.9 典型例题详解 353

13.10 软件工程项目管理实验 354

小结 359

习题13 359

第14章 简单的人事管理系统设计与开发 361

14.1 项目论证和计划 361

14.1.1 系统调查 361

14.1.2 新系统的总体功能需求和性能要求 361

14.1.3 系统开发的框架 362

14.2 可行性分析 362

14.3 需求分析 363

14.3.1 数据流分析 363

14.3.2 系统流程图 364

14.3.3 数据字典 365

14.3.4 系统用例图 366

14.4 总体设计 366

14.4.1 功能模块图 366

14.4.2 层次方框图 367

14.4.3 IPO图 367

14.4.4 工作流程图 367

14.4.5 系统数据库设计 368

14.5 详细设计 369

14.6 系统实现 371

14.7 测试与维护 372

14.7.1 测试用例与测试结果 372

14.7.2 系统维护 373

小结 375

习题14 375

附录一 可行性研究报告 377

附录二 需求规格说明书 380

附录三 总体设计说明书 382

附录四 详细设计说明书 385

附录五 软件测试的需求规格说明书 387

附录六 软件维护手册 390

附录七 UML的模型及图示表示 392

参考文献 398