《软件工程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:赖均等编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302412953
  • 页数:414 页
图书介绍:本教材附软件工程项目必要的文档实例,传统的软件工程案例和面向对象软件工程案例的分析、设计样例提供示范供学生学习与模仿。本书的另一特色主要是:以传统的方法主要讲解面向数据流的需求分析、系统设计、实现以及测试和维护为一条主线;另外一条主线是面向对象的方法的需求分析、系统设计、实现和测试和维护。总之,本书主要关注与工程应用知识的掌握和软件资格考试所需的基本理论知识来组织编写,具有较大的实用性。

第一部分 软件工程概述 3

第1章 软件工程概述 3

1.1 软件与软件危机 3

1.1.1 软件技术的变化与发展 3

1.1.2 软件与软件危机的产生 4

1.1.3 解决软件危机的途径 9

1.2 软件工程 10

1.2.1 软件工程的定义和研究对象 10

1.2.2 软件工程的基本目标与原理 14

1.2.3 软件工程的发展 15

1.3 软件生存周期与软件开发 16

1.3.1 软件生存周期与软件过程 16

1.3.2 软件过程模型 19

1.3.3 软件开发模型的选定 27

1.3.4 软件开发方法简述 29

1.4 本章小结 30

1.5 习题 31

第二部分 可行性分析与项目立项 37

第2章 可行性分析 37

2.1 问题定义与可行性分析 37

2.1.1 软件问题定义 37

2.1.2 可行性分析的任务 41

2.1.3 可行性分析的步骤 45

2.1.4 软件立项及合同 47

2.2 系统流程图 49

2.2.1 系统流程图的使用符号 49

2.2.2 系统流程图应用举例 50

2.3 成本与效益分析 51

2.3.1 成本估计 51

2.3.2 可参考的成本计算案例 53

2.4 软件可行分析报告概述 54

2.5 本章小结 55

2.6 习题 56

第三部分 软件工程基本框架 61

第3章 需求分析 61

3.1 需求分析的概念和任务 61

3.1.1 需求分析的概念 61

3.1.2 需求分析的目标和任务 62

3.1.3 需求分析的原则 65

3.2 获取需求的方法 66

3.2.1 常用需求获取技巧与方法 66

3.2.2 需求分析方法分类 67

3.2.3 需求分析的过程与具体步骤 70

3.3 需求描述工具与方法 74

3.3.1 需求描述概述 74

3.3.2 数据流图及数据字典 74

3.3.3 处理或加工描述 80

3.4 验证软件需求 81

3.4.1 需求验证与评审 81

3.4.2 验证软件需求的方法 82

3.5 需求实例与规格说明 83

3.5.1 需求实例 83

3.5.2 需求规格说明书概述 86

3.6 本章小结 87

3.7 习题 87

第4章 总体设计 92

4.1 软件总体设计的任务和步骤 92

4.1.1 软件总体设计的任务 92

4.1.2 总体设计步骤 93

4.2 总体设计的原则和方法 95

4.2.1 总体设计的原则 95

4.2.2 描述软件结构的方法 101

4.2.3 软件总体设计的常用方法 103

4.3 总体设计过程 107

4.3.1 软件总体设计过程 107

4.3.2 模块接口设计 116

4.3.3 结构设计优化规则 117

4.4 数据库设计概述 119

4.4.1 数据库设计步骤 119

4.4.2 概念数据模型设计 119

4.4.3 逻辑结构及物理结构设计 120

4.5 用户界面设计 122

4.5.1 界面设计的意义 122

4.5.2 界面设计的任务和原则 123

4.5.3 界面设计的基本方法 125

4.6 总体设计说明书概述 128

4.7 本章小结 130

4.8 习题 130

第5章 软件详细设计 133

5.1 详细设计的任务和原则 133

5.2 详细设计的方法和工具 134

5.2.1 详细设计的方法 134

5.2.2 详细设计的描述工具 136

5.2.3 详细设计工具选择 141

5.3 程序复杂程度的度量方法 141

5.3.1 McCabe方法 142

5.3.2 Halstead方法 143

5.4 详细设计说明书及评审 145

5.5 本章小结 146

5.6 习题 146

第6章 软件实现 150

6.1 软件实现技术概述 150

6.1.1 软件实现的过程及任务 150

6.1.2 软件实现的准则 151

6.1.3 软件实现策略与管理 152

6.2 软件程序设计语言 154

6.2.1 程序设计语言的发展及分类 154

6.2.2 选择程序设计语言的标准 157

6.3 程序设计风格 161

6.3.1 文档化源程序 161

6.3.2 数据定义 162

6.3.3 语句结构和输入输出 163

6.4 程序效率 164

6.4.1 程序的效率介绍 164

6.4.2 存储和输入输出效率 165

6.5 常用软件实现方法 165

6.5.1 模块化程序设计 165

6.5.2 结构化程序设计 166

6.5.3 面向对象程序设计 166

6.5.4 常用程序设计工具 167

6.5.5 软件实现的文档 170

6.6 本章小结 171

6.7 习题 171

第7章 软件测试 174

7.1 软件测试的目的和原则 174

7.1.1 软件测试的意义 174

7.1.2 软件测试的概念及内容 174

7.1.3 软件测试的目的和原则 176

7.1.4 软件测试涉及的对象和测试信息流 176

7.1.5 测试与软件开发各阶段的关系 178

7.2 软件测试的方法和过程 179

7.2.1 静态测试和动态测试 179

7.2.2 软件测试用例设计 180

7.2.3 软件测试的过程 204

7.2.4 软件测试策略 205

7.3 软件测试的步骤 206

7.3.1 单元测试 207

7.3.2 集成测试与集成 209

7.3.3 确认测试及内容 213

7.3.4 系统测试及验收 214

7.3.5 其他测试种类 216

7.4 软件测试用例与测试标准 219

7.4.1 软件测试用例设计及方法 219

7.4.2 软件测试标准和工具 222

7.4.3 软件测试文档与可测试性 223

7.4.4 测试的可靠性分析 224

7.5 本章小结 225

7.6 习题 225

第8章 软件维护 232

8.1 软件维护的概述 232

8.1.1 软件维护的定义与分类 232

8.1.2 软件维护代价与工作量 233

8.2 软件维护的特点和过程 234

8.3 软件维护的任务与策略 237

8.4 可维护性 239

8.4.1 可维护性因素 239

8.4.2 提高软件的可维护性方法 240

8.5 自动化运维 241

8.5.1 自动化与问题 241

8.5.2 运维自动化迫切性 243

8.5.3 运维自动化的内容与工具 244

8.5.4 建立运维自动化管理的步骤 245

8.6 逆向工程和再工程 246

8.6.1 软件的逆向工程和再工程 246

8.6.2 软件再工程过程与技术 249

8.7 本章小结 251

8.8 习题 251

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

第9章 面向对象分析 255

9.1 面向对象分析概述 255

9.1.1 面向对象方法学 255

9.1.2 面向对象的概念 263

9.1.3 面向对象建模基础 268

9.1.4 面向对象分析方法 281

9.2 建立需求模型 283

9.2.1 用例描述与模型建立 283

9.2.2 用例关系与细化 287

9.3 建立对象模型 287

9.3.1 系统划分和对象识别 287

9.3.2 识别类关系 290

9.4 建立动态模型和定义操作 292

9.4.1 设想用户界面 292

9.4.2 建立动态模型 292

9.4.3 面向对象分析案例 294

9.5 本章小结 297

9.6 习题 298

第10章 面向对象设计 302

10.1 面向对象设计的原则、任务及过程 302

10.1.1 面向对象设计原则的应用 302

10.1.2 面向对象设计的基本任务 304

10.1.3 面向对象的设计过程和基本规则 305

10.2 软件重用 307

10.3 面向对象设计的系统分解 309

10.4 设计问题域与人-机交互部分 312

10.4.1 类的调整与修改 312

10.4.2 设计问题域部分 315

10.4.3 设计人-机交互部分 316

10.5 设计任务管理部分 318

10.6 设计数据管理部分 320

10.6.1 选择数据存储管理模式 320

10.6.2 设计数据管理部分 321

10.7 对象设计的过程 322

10.7.1 对象描述与类设计 322

10.7.2 设计类中的关联 324

10.8 设计优化和设计实例 325

10.8.1 设计优化 325

10.8.2 设计实例 328

10.9 设计模式简介 331

10.9.1 设计模式的设计原则 331

10.9.2 模式命名与基本模式 332

10.9.3 设计模式应用步骤 334

10.10 本章小结 335

10.11 习题 335

第11章 面向对象实现与测试 339

11.1 面向对象程序设计语言 339

11.1.1 面向对象设计的实现 339

11.1.2 面向对象语言的技术特点 340

11.1.3 面向对象语言的选择 343

11.2 面向对象程序设计风格 344

11.2.1 提高可重用性 344

11.2.2 提高可扩充性和健壮性 346

11.3 面向对象测试 347

11.3.1 面向对象的测试与传统测试的比较 347

11.3.2 面向对象测试模型 348

11.3.3 面向对象模型的检查与评估 351

11.3.4 面向对象的单元测试 352

11.3.5 面向对象的集成测试与确认测试 354

11.4 本章小结 358

11.5 习题 359

第五部分 项目管理 363

第12章 软件项目管理 363

12.1 软件项目管理概述 363

12.1.1 软件项目管理的特点 363

12.1.2 软件项目管理及过程 366

12.2 项目管理内容及常见工具简介 367

12.2.1 软件项目管理的主要内容 367

12.2.2 常用工具简介 368

12.3 软件项目管理过程 369

12.3.1 项目初始阶段 369

12.3.2 项目计划阶段 370

12.3.3 项目执行控制 394

12.3.4 软件项目结束 399

12.4 软件能力成熟度模型简介 401

12.5 本章小结 409

12.6 习题 409

参考文献 414