《软件工程基础》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:张权范编著
  • 出 版 社:北京交通大学出版社;清华大学出版社
  • 出版年份:2009
  • ISBN:9787811237443
  • 页数:321 页
图书介绍:本书从面向数据流、面向数据结构、面向对象三个层面由浅入深对软件工程进行了系统的介绍,基本内容包括:软件工程学科理论框架的几个基本概念,同时介绍了软件工程产生的原因、软件生命周期、软件开发模型与软件的开发方法;软件项目问题定义、可行性研究以及软件计划;软件需求分析的概念、目标与任务以及进行软件需求分析的几种方法;软件总体设计的概念、任务与目标,以及与总体设计有关的基础知识,如软件结构、结构图、软件模块的概念与特征、模块独立性的衡量准则与软件总体设计好坏的度量标准,并介绍了两种具体的总体设计方法:结构化设计方法与Jackson方法;软件详细设计;软件编码;软件测试与调试;软件项目的 实施与维护;软件项目管理以及面向对象的软件工程基础知识。

第1章 概述 1

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

1.1.1 软件与软件工程 1

1.1.2 软件生存周期 3

1.1.3 软件开发模型 4

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

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

1.2.1 软件开发原则概述 12

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 软件计划任务书 20

2.2.5 案例:“学分管理系统” 21

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

小结 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 数据字典 36

3.2.5 结构化分析步骤 42

3.3 按功能逐层分解法 44

3.3.1 层次图 44

3.3.2 IPO图 45

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

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

小结 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 结构化软件设计 82

4.4.1 变换设计 82

4.4.2 事务设计 85

4.4.3 综合设计 86

4.4.4 结构化软件设计步骤 87

4.4.5 案例 88

4.5 Jackson设计方法 95

4.5.1 Jackson方法中的数据结构 95

4.5.2 Jackson设计方法案例 96

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

4.7 概要设计说明书案例:简易库存管理系统概要设计 101

4.7.1 数据库的结构设计 101

4.7.2 数据表之间的关系的设计 102

4.7.3 系统模块结构设计 103

小结 104

习题 105

第5章 软件详细设计 106

5.1 结构化程序设计 106

5.1.1 基本逻辑结构 107

5.1.2 基本结构嵌套 108

5.2 详细设计工具 109

5.2.1 流程图 109

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

5.2.3 HIPO图 113

5.2.4 判定表 113

5.2.5 伪码 114

5.2.6 判定树 118

5.2.7 PAD图 118

5.2.8 结构图 120

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

5.3 代码设计 125

5.3.1 代码的种类 126

5.3.2 代码结构中的校验位 128

5.3.3 代码设计案例 130

5.4 用户界面设计 131

5.4.1 可使用性 131

5.4.2 灵活性 131

5.4.3 复杂性与可靠性 131

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

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

5.5.1 任务分配 136

5.5.2 工作方式和工作设计 137

5.6 界面设计的基本类型 137

5.6.1 界面设计的类型 137

5.6.2 菜单 137

5.6.3 图像 139

5.6.4 对话框 140

5.6.5 问题描述语言 140

5.6.6 窗口 141

5.7 数据输入界面设计 142

5.7.1 数据输入规则 142

5.7.2 输入表格设计 143

5.7.3 其他数据输入的方法 145

5.8 数据显示界面设计 146

5.8.1 数据显示的规则 146

5.8.2 字符数据的显示 146

5.8.3 图形显示 147

5.8.4 报告 149

5.9 控制界面的设计 150

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

5.9.2 用菜单界面进行控制 150

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

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

5.9.5 直接操作 152

5.9.6 用窗口划分屏幕 152

5.9.7 命令语言 153

5.9.8 自然语言 155

5.10 软件安全控制设计 157

5.10.1 软件安全的基本概念 157

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

5.10.3 软件的安全控制设计 160

5.11 详细设计文档的编写 161

小结 163

习题 163

第6章 软件编码 164

6.1 对源程序的质量要求 164

6.2 结构化程序设计 164

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

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

6.2.3 数据结构的合理化 167

6.3 程序设计风格 168

6.3.1 源程序文档化 168

6.3.2 数据说明 170

6.3.3 语句结构 170

6.3.4 输入输出(I/O) 172

6.4 程序效率 173

6.4.1 讨论效率的准则 173

6.4.2 算法对效率的影响 173

6.4.3 影响存储效率的因素 173

6.4.4 影响输入输出的因素 174

6.5 程序设计语言 174

6.5.1 程序设计语言特性的比较 174

6.5.2 程序设计语言的分类 176

6.5.3 程序设计语言的选择 178

6.6 防止编码错误 178

6.7 代码复查和编码工具 181

6.7.1 代码复查 181

6.7.2 编码工具 183

6.8 程序复杂性度量 183

6.8.1 代码行度量法 184

6.8.2 McCabe度量法 184

6.8.3 Halstead度量方法 185

小结 187

习题 187

第7章 软件测试 189

7.1 测试的基本概念 189

7.1.1 测试的目的 189

7.1.2 测试的方法 190

7.2 测试用例的设计 191

7.2.1 逻辑覆盖 191

7.2.2 等价划分 193

7.2.3 边界值分析 195

7.2.4 错误推测法 196

7.2.5 因果图法 196

7.2.6 实用测试策略 198

7.3 测试步骤 201

7.3.1 单元测试 201

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

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

7.3.4 系统测试 206

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

7.4.1 调试的步骤 207

7.4.2 调试方法 207

7.5 软件的验证与确认 210

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

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

7.8 用户手册编写规范 214

7.9 操作手册编写规范 218

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

小结 221

习题 221

第8章 软件实施与维护 223

8.1 软件实施 223

8.1.1 软件实施的定义与分类 223

8.1.2 影响软件实施工作量的因素 224

8.1.3 软件实施步骤或方法 224

8.1.4 软件实施成本 228

8.1.5 软件实施的意义 228

8.1.6 案例:×××研究设计总院GS-DES大天图文档安全系统案例 228

8.2 软件维护 233

8.2.1 软件维护的定义 233

8.2.2 影响维护工作量的因素 235

8.2.3 软件维护的策略 235

8.2.4 维护成本 236

8.3 软件维护活动 236

8.3.1 维护机构 236

8.3.2 软件维护申请报告 237

8.3.3 软件维护工作流程 237

8.3.4 维护档案记录 238

8.3.5 维护评价 238

8.4 程序修改的步骤及修改的副作用 239

8.4.1 分析和理解程序 239

8.4.2 修改程序 239

8.4.3 重新验证程序 242

8.5 软件可维护性 243

8.5.1 软件可维护性的定义 243

8.5.2 可维护性的度量 244

8.6 提高可维护性的方法 245

8.6.1 建立明确的软件质量目标和优先级 245

8.6.2 使用提高软件质量的技术和工具 246

8.6.3 进行明确的质量保证审查 247

8.6.4 选择可维护的程序设计语言 249

8.6.5 改进程序的文档 250

8.7 逆向工程和再工程 250

8.7.1 预防性维护 251

8.7.2 逆向工程的元素 252

小结 252

习题 252

第9章 软件项目管理 254

9.1 资源管理 254

9.1.1 组织体制 254

9.1.2 人员配备 255

9.2 进度计划 256

9.2.1 项目进度计划 256

9.2.2 示例 256

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

9.3 风险管理 262

9.3.1 风险识别 262

9.3.2 风险估计 262

9.3.3 风险评价 262

9.3.4 风险控制 262

9.4 软件工程过程管理(CMM/CMMI) 263

9.4.1 软件能力成熟度模型(CMM) 263

9.4.2 能力成熟度模式整合(CMMI) 266

9.5 质量保证 270

9.5.1 软件质量 270

9.5.2 质量保证 271

9.6 小项目的开发和管理 272

9.6.1 小项目的性质 272

9.6.2 小项目的软件计划 273

9.6.3 小项目的开发 273

9.6.4 小项目的维护 273

9.6.5 小项目的文档和管理 274

小结 274

习题 274

第10章 面向对象软件工程技术 275

10.1 面向对象的概念 275

10.1.1 对象 275

10.1.2 类 276

10.1.3 继承 276

10.1.4 多态性 277

10.2 开发过程 278

10.2.1 应用生存期 278

10.2.2 类生存期 279

10.2.3 综合方法 282

10.2.4 系统体系结构 284

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

10.3.1 面向对象分析 284

10.3.2 论域分析 285

10.3.3 应用分析 287

10.3.4 对象模型技术 287

10.3.5 高层设计 292

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

10.4 类的设计 299

10.4.1 类设计的目标 299

10.4.2 通过复用设计类 299

10.4.3 类的设计方法 300

10.4.4 类设计的例子 303

10.5 实现与测试 307

10.5.1 类的实现 307

10.5.2 应用程序的实现 310

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

10.6 UML与面向对象的分析与实现 316

10.6.1 UML技术简介 316

10.6.2 用例驱动的需求获取过程 317

10.6.3 图形驱动的业务建模 318

10.6.4 图形驱动的设计阶段 319

10.6.5 数据结构设计与包划分 320

小结 321

习题 321