《软件工程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:宋开旭,冷淑君,邢跃,杨川,罗静主编(广州南洋理工职业学院)
  • 出 版 社:天津:天津科学技术出版社
  • 出版年份:2009
  • ISBN:9787530841495
  • 页数:306 页
图书介绍:本书是为计算机专业的本科生编写的软件工程教科书。它在一个软件工程学总体的框架下一一介绍软件工程所涉及的重要的话题,章节的编排遵循一个软件产品的生命周期中所要进行的所有活动的顺序。首先概述了软件工程的概念,包括一些重要的生命周期模型以及软件项目管理的技术和概念。接下来详述了软件项目的需求分析、设计、建模及编码和测试等内容。最后描述了软件的质量管理、维护、复用等问题;同时也解释了近年来发展起来的CASE工具的基本概念。此外,每章都提供了大量的练习来帮助学生了解对本章内容的掌握程度。本书不仅适合计算机专业的本科生作为教材使用,同时也适合从事计算机软件业的广大工程技术人员。

第1章 软件工程概述 1

1.1 软件 1

1.1.1 软件的定义 2

1.1.2 软件的特点 2

1.1.3 软件的产生与发展 3

1.2 软件危机 5

1.2.1 软件危机的产生 5

1.2.2 软件危机的表现与原因 5

1.3 软件工程 6

1.3.1 软件工程的定义 6

1.3.2 软件工程的目标 7

1.3.3 软件工程的原则 7

1.4 软件生存周期 8

1.5 软件开发模型 9

1.5.1 瀑布模型 10

1.5.2 快速原型模型 11

1.5.3 增量模型 12

1.5.4 喷泉模型 13

1.5.5 螺旋模型 14

1.6 软件开发工具与软件开发环境 16

1.6.1 软件开发工具 16

1.6.2 软件开发环境 16

1.6.3 软件开发工具简介 18

实例分析 20

本章小结 21

习题1 21

第2章 可行性研究和需求分析 24

2.1 软件的可行性研究 24

2.1.1 可行性研究的任务 24

2.1.2 可行性研究步骤 25

2.1.3 成本/效益分析 27

2.1.4 可行性研究的文档 28

2.2 需求分析 29

2.2.1 需求分析的重要性 29

2.2.2 需求分析的任务 29

2.2.3 需求分析的步骤 30

2.3 系统流程图 31

2.4 数据流图 33

2.4.1 数据流图的基础知识 33

2.4.2 设计数据流图的步骤 35

2.4.3 数据流图的用途 37

2.4.4 需要注意的问题 37

2.5 数据字典 40

2.5.1 数据字典的内容及格式 40

2.5.2 数据字典的用途 42

2.5.3 数据字典的实现 42

实例分析 43

本章小结 45

习题2 45

第3章 概要设计 49

3.1 概要设计的任务 49

3.1.1 概要设计的任务 49

3.1.2 概要设计说明书的主要内容 50

3.2 设计过程 51

3.3 设计原理 52

3.3.1 模块化 52

3.3.2 抽象与逐步求精 53

3.3.3 信息隐蔽 55

3.3.4 模块独立性 55

3.4 描绘软件结构的图形工具 60

3.4.1 软件结构图 60

3.4.2 层次图 63

3.5 启发规则 64

3.6 面向数据流的设计方法 67

3.6.1 变换分析 67

3.6.2 事务分析 69

3.6.3 设计优化 71

实例分析 71

本章小结 77

习题3 77

第4章 详细设计 80

4.1 详细设计的任务与原则 80

4.1.1 详细设计的任务 80

4.1.2 详细设计的原则 81

4.2 结构化程序设计 82

4.2.1 结构化设计技术的概念 82

4.2.2 结构化程序设计的原则 83

4.3 过程设计的工具 83

4.3.1 程序流程图PFC 83

4.3.2 盒图N-S 84

4.3.3 问题分析图PAD 86

4.3.4 过程设计语言PDL 87

4.3.5 判定表 89

4.3.6 判定树 91

4.4 用户界面设计 91

4.4.1 用户界面应具备的特性及设计分析、设计过程 91

4.4.2 用户界面的风格 93

4.4.3 用户界面的基本类型 94

4.4.4 用户界面设计指南 95

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

4.5.1 Jackson方法简介 96

4.5.2 Jackson方法的设计过程 98

4.5.3 使用Jackson方法应注意的问题 101

实例分析 101

本章小结 103

习题4 103

第5章 面向对象的方法 106

5.1 面向对象方法概述 106

5.1.1 传统软件工程方法存在的问题 106

5.1.2 面向对象方法的优点 107

5.1.3 面向对象方法的基本概念 108

5.1.4 面向对象方法的内容 111

5.1.5 面向对象的开发方法 112

5.2 面向对象分析 113

5.2.1 面向对象分析的基本过程及原则 114

5.2.2 确定对象 117

5.2.3 确定结构 118

5.2.4 确立主题 119

5.2.5 确定属性 119

5.2.6 确定服务和消息 120

5.3 面向对象设计 120

5.3.1 面向对象设计的准则 121

5.3.2 面向对象设计的内容 122

5.3.3 人机交互子系统的设计 123

5.3.4 问题域子系统的设计 124

5.3.5 任务管理子系统的设计 125

5.3.6 数据管理子系统的设计 126

5.4 面向对象实现 127

5.4.1 面向对象编程 127

5.4.2 面向对象测试 128

实例分析 130

本章小结 133

习题5 135

第6章 统一建模语言UML 138

6.1 UML概述 138

6.1.1 UML的产生和发展 138

6.1.2 UML的组成 139

6.1.3 UML的主要特点 140

6.1.4 UML的应用 140

6.2 通用模型元素 141

6.2.1 模型元素 141

6.2.2 约束 142

6.2.3 依赖关系 142

6.2.4 细化 143

6.2.5 注释 143

6.3 UML的静态建模机制 144

6.3.1 用例图 144

6.3.2 类图和对象图 147

6.3.3 包 152

6.3.4 构件图 153

6.3.5 配置图 154

6.4 UML的动态建模机制 155

6.4.1 消息 155

6.4.2 顺序图 156

6.4.3 协作图 157

6.4.4 状态图 157

6.4.5 活动图 159

6.5 UML软件开发过程 162

实例分析 164

本章小结 168

习题6 169

第7章 程序编码 172

7.1 编码 172

7.2 程序设计风格 173

7.3 编码风格中应注意的几个问题 175

实例分析 182

本章小结 184

习题7 184

第8章 软件测试 187

8.1 软件测试基础 187

8.1.1 软件测试的目的 187

8.1.2 软件测试的特点和原则 188

8.1.3 软件测试的基本步骤 189

8.1.4 静态分析与动态测试 189

8.2 白盒测试技术 190

8.2.1 逻辑覆盖 190

8.2.2 基本路径测试 194

8.2.3 循环测试 196

8.2.4 白盒测试法的步骤 197

8.3 黑盒测试技术 197

8.3.1 等价分类法 198

8.3.2 边界值分析法 200

8.3.3 错误推测法 201

8.3.4 因果图法 201

8.3.5 综合策略 204

8.4 软件测试过程 205

8.4.1 单元测试 205

8.4.2 集成测试 207

8.4.3 确认测试 208

8.4.4 系统测试 209

8.5 调试 210

8.5.1 调试的目的 210

8.5.2 调试方法 210

8.5.3 调试原则 211

实例分析 212

本章小结 215

习题8 215

第9章 软件维护 218

9.1 软件维护的基本概念 218

9.1.1 软件维护的定义 218

9.1.2 软件维护的分类及策略 219

9.2 软件维护的特点 220

9.3 软件维护过程 222

9.3.1 维护组织 222

9.3.2 维护工作的流程 223

9.3.3 维护技术 224

9.4 提高可维护性的方法 224

9.5 软件再工程 227

实例分析 229

本章小结 231

习题9 232

第10章 软件项目管理 234

10.1 软件项目管理概述 234

10.2 进度计划 236

10.2.1 进度安排的方法 237

10.2.2 制定开发进度计划 238

10.3 成本估算 239

10.3.1 软件开发成本估计方法 239

10.3.2 成本估算模型 240

10.4 人员组织 241

10.5 质量保证 243

10.6 能力成熟度模型 245

10.6.1 CMM概述 245

10.6.2 CMM的5个级别划分 245

10.6.3 关键过程域 247

10.6.4 应用软件过程评估 248

实例分析 248

本章小结 249

习题10 250

第11章 综合应用 252

11.1 “图书馆管理信息系统”的立项背景 252

11.2 可行性研究 253

11.2.1 现有系统存在的问题 253

11.2.2 新系统的功能 254

11.2.3 软件开发环境 254

11.2.4 可行性分析 255

11.3 需求分析 256

11.3.1 需求分析概述 256

11.3.2 组织结构调查 256

11.3.3 系统用户分析 257

11.3.4 UML用例图建模 257

11.3.5 数据流图 258

11.3.6 数据字典 260

11.3.7 IPO图 264

11.3.8 用户其他需求 264

11.4 概要设计 265

11.4.1 系统结构设计 265

11.4.2 数据库设计 266

11.5 详细设计 272

11.5.1 登录模块详细设计 272

11.5.2 读者管理子系统详细设计 273

11.6 系统实现 279

11.6.1 登录窗体 279

11.6.2 读者管理 280

11.7 系统测试 283

11.7.1 功能测试 283

11.7.2 系统测试 285

11.7.3 测试结论 285

本章小结 285

习题11 286

第12章 软件工程课程设计指导 288

12.1 软件工程课程设计目的 288

12.2 软件工程课程设计要求 289

12.3 课程设计实施步骤 289

12.4 课程设计指导 289

12.4.1 课程设计内容 290

12.4.2 实验安排 291

12.5 课程设计题目 295

附录:软件开发文档指南 298