《软件工程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:张权范编著
  • 出 版 社:清华大学出版社;北京交通大学出版社
  • 出版年份:2004
  • ISBN:7810822551
  • 页数:299 页
图书介绍:本书从面向数据流、面向数据结构、面向对象三个层面由浅入深对软件工程学科进行了系统的介绍,最大特色是:语言简单明了,概念清晰,内容丰富且实用,对每一个具体的知识点一般都有案例,对软件生命周期各个环节的文档都附有规格说明书,有些文档还附有具体案例。全书共分10章,是按软件工程的三个层面与软件生命周期的顺序来组织的,本书可作为高等学校计算机专业学生的教材,也可作为社会上广大读者的自学参考书。

目录 1

第1章 概述 1

1.1 软件工程学的几个基本概念 1

1.1.1 软件与软件工程 1

1.1.2 软件生存周期 2

1.1.3 软件开发模型 4

1.1.4 软件工程的任务及其研究范围 9

1.2 软件开发的原则和方法 11

1.2.1 软件开发原则概述 11

1.2.2 软件开发的方法 12

小结 13

习题 13

第2章 软件计划 14

2.1 问题定义和可行性研究 14

2.1.1 问题定义 14

2.1.2 可行性研究 15

2.2 软件计划 18

2.2.1 软件工作范围 18

2.2.2 资源 18

2.2.3 软件成本估算 20

2.2.4 软件计划任务书 21

2.2.5 案例 21

2.2.6 项目开发进度月报编写规范 23

小结 24

习题 24

第3章 需求分析 25

3.1 软件需求分析的目标和任务 25

3.1.1 软件需求分析的目标 25

3.1.2 软件需求分析的任务 25

3.2 结构化分析 27

3.2.1 结构化分析方法的策略 27

3.2.2 数据流程图 28

3.2.3 数据字典 35

3.2.4 结构化分析步骤 41

3.3 按功能逐层分解法 43

3.3.1 H图 44

3.3.2 IPO图 44

3.4 软件需求分析报告书写规范 45

3.5 软件需求分析报告的案例 50

小结 64

习题 64

第4章 软件总体设计 66

4.1 软件总体设计的任务和目标 66

4.2 软件总体设计基础 67

4.2.1 软件结构 67

4.2.2 结构图 68

4.2.3 软件模块 71

4.3 软件总体设计准则 78

4.4.1 变换设计 82

4.4 结构化软件设计 82

4.4.2 事务设计 85

4.4.3 综合设计 86

4.4.4 结构化软件设计步骤 88

4.4.5 案例 89

4.5 Jackson设计方法 95

4.5.1 Jackson方法中的数据结构 96

4.5.2 Jackson设计方法案例 96

4.6 概要设计说明书编写规范 99

小结 102

习题 102

第5章 软件详细设计 104

5.1 结构化程序设计 104

5.1.1 基本逻辑结构 105

5.1.2 基本结构嵌套 106

5.2.1 流程图 107

5.2 详细设计工具 107

5.2.2 N-S结构流程图(盒图) 108

5.2.3 HIPO图 110

5.2.4 判定表 111

5.2.5 伪码 111

5.2.6 判定树 115

5.2.7 PAD图 116

5.2.8 结构图 117

5.2.9 详细设计工具应用案例 118

5.3 代码设计 123

5.3.1 代码的种类 124

5.3.2 代码结构中的校验位 126

5.3.3 代码设计案例 128

5.4 用户界面设计 128

5.4.1 可使用性 128

5.4.4 用户界面设计的任务分析 129

5.4.3 复杂性与可靠性 129

5.4.2 灵活性 129

5.5 用户界面任务和工作设计 134

5.5.1 任务分配 134

5.5.2 工作方式和工作设计 134

5.6 界面设计的基本类型 135

5.6.1 界面设计的类型 135

5.6.2 菜单 135

5.6.3 图像 137

5.6.4 对话框 137

5.6.5 问题描述语言 138

5.6.6 窗口 139

5.7 数据输入界面设计 140

5.7.1 数据输入规则 140

5.7.2 输入表格设计 140

5.7.3 其他数据输入的方法 142

5.8.1 数据显示的规则 143

5.8 数据显示界面设计 143

5.8.2 字符数据的显示 144

5.8.3 图形显示 145

5.8.4 报告 146

5.9 控制界面的设计 147

5.9.1 用控制对话选择操作命令 148

5.9.2 用菜单界面进行控制 148

5.9.3 用功能键定义操作命令 148

5.9.4 用图标表示对象或命令 149

5.9.5 直接操作 149

5.9.6 用窗口划分屏幕 150

5.9.7 命令语言 150

5.9.8 自然语言 152

5.10 软件安全控制设计 154

5.10.1 软件安全的基本概念 154

5.10.2 软件系统安全控制的基本方法 155

5.10.3 软件的安全控制设计 157

5.11 详细设计文档的编写 158

小结 159

习题 159

第6章 软件编码 161

6.1 对源程序的质量要求 161

6.2 结构化程序设计 161

6.2.1 结构化程序设计的原则 161

6.2.2 程序设计自顶向下、逐步求精 163

6.2.3 数据结构的合理化 165

6.3 程序设计风格 165

6.3.1 源程序文档化 165

6.3.2 数据说明 167

6.3.3 语句结构 168

6.4.2 算法对效率的影响 170

6.4.1 讨论效率的准则 170

6.4 程序效率 170

6.3.4 输入输出(I/O) 170

6.4.3 影响存储效率的因素 171

6.4.4 影响输入输出的因素 171

6.5 程序设计语言 171

6 5.1 程序设计语言特性的比较 172

6.5.2 程序设计语言的分类 173

6.5.3 程序设计语言的选择 174

6.6 防止编码错误 175

6.7 代码复查和编码工具 178

6.7.1 代码复查 178

6.7.2 编码工具 179

6.8 程序复杂性度量 180

6 8.1 代码行度量法 180

6.8.2 McCabe度量法 181

6.8.3 Halstead度量方法 182

习题 184

小结 184

第7章 软件测试 186

7.1 测试的基本概念 186

7.1.1 测试的目的 186

7.1.2 测试的方法 187

7.2 测试用例的设计 188

7.2.1 逻辑覆盖 188

7.2.2 等价划分 190

7.2.3 边界值分析 193

7.2.4 错误推测法 193

7.2.5 因果图法 194

7.2.6 实用测试策略 196

7.3 测试步骤 199

7.3.1 单元测试 199

7.3.2 整体测试(组装测试) 202

7.3.4 系统测试 204

7.3.3 有效性测试(确认测试) 204

7.4 调试技术(纠错技术) 205

7.4.1 调试的步骤 205

7.4.2 调试方法 205

7.5 软件的验证与确认 208

7.6 测试分析报告编写规范 209

7.7 测试计划文档编写规范 210

7.8 用户手册编写规范 212

7.9 操作手册编写规范 215

7.10 项目开发总结报告书写规范 217

小结 219

习题 219

第8章 软件维护 220

8.1 软件维护的概念 220

8.1.1 软件维护的定义 220

8.1.2 影响维护工作量的因素 221

8.1.3 软件维护的策略 222

8.1.4 维护成本 223

8.2 软件维护活动 223

8.2.1 维护机构 223

8.2.2 软件维护申请报告 223

8.2.3 软件维护工作流程 224

8.2.4 维护档案记录 225

8.2.5 维护评价 225

8.3 程序修改的步骤及修改的副作用 225

8.3.1 分析和理解程序 226

8.3.2 修改程序 226

8.3.3 重新验证程序 229

8.4 软件可维护性 230

8.4.1 软件可维护性的定义 230

8.4.2 可维护性的度量 231

8.5 提高可维护性的方法 232

8.5.2 使用提高软件质量的技术和工具 233

8.5.1 建立明确的软件质量目标和优先级 233

8.5.3 进行明确的质量保证审查 234

8.5.4 选择可维护的程序设计语言 237

8.5.5 改进程序的文档 237

8.6 逆向工程和再工程 238

8.6.1 预防性维护 238

8.6.2 逆向工程的元素 239

小结 239

习题 240

第9章 软件项目管理 241

9.1 资源管理 241

9.1.1 组织体制 241

9.1.2 人员配备 242

9.2 进度计划 243

9.2.1 项目进度计划 243

9.2.2 示例 244

9.3.2 风险估计 249

9.3.1 风险识别 249

9.2.3 软件项目的追踪与控制 249

9.3 风险管理 249

9.3.3 风险评价 250

9.3.4 风险控制 250

9.4 软件过程成熟度模型 250

9.5 质量保证 251

9.5.1 软件质量 251

9.5.2 质量保证 252

9.6 小项目的开发和管理 253

9.6.1 小项目的性质 253

9.6.2 小项目的软件计划 254

9.6.3 小项目的开发 254

9.6.4 小项目的维护 254

9.6.5 小项目的文档和管理 254

习题 255

小结 255

第10章 面向对象技术 256

10.1 面向对象的概念 256

10.1.1 对象 256

10.1.2 类 257

10.1.3 继承 257

10.1.4 多态性 258

10.2 开发过程 259

10.2.1 应用生存期 259

10.2.2 类生存期 260

10.2.3 综合方法 263

10.2.4 系统体系结构 265

10.3 面向对象分析与高层设计 266

10.3.1 面向对象分析 266

10.3.2 论域分析 266

10.3.3 应用分析 268

10.3.4 对象模型技术 269

10.3.5 高层设计 273

10.3.6 示例:一个简单的绘图系统 275

10.4 类的设计 280

10.4.1 类设计的目标 280

10.4.2 通过复用设计类 281

10.4.3 类设计方法 282

10.4.4 类设计的例子 284

10.5 实现与测试 288

10.5.1 类的实现 288

10.5.2 应用程序的实现 291

10.5.3 测试一个面向对象的应用 292

小结 298

习题 298

参考文献 299