《软件工程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:曹哲主编
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2004
  • ISBN:7508415558
  • 页数:256 页
图书介绍:内容提要本书从实用的角度出发系统地介绍了软件工程的基本理论、方法、技术、工具和环境。全书共17章。内容主要包括:概述,软件项目管理,计算机系统工程,需求分析,面向数据流的分析方法,面向数据的分析方法与形式化方法,面向对象的需求分析,软件设计基础,面向数据流的设计方法,面向数据的设计方法,面向对象的设计方法,人机界面设计,程序设计语言与编码,软件测试、软件维护、软件配置管理以及软件开发新技术简介等。本书结构合理,在选材上注重了实用性,以期达到理论与实践相结合、学以致用的目的,本书对计算机辅助软件工程(CASE)工具的介绍几乎贯穿全书,概念清楚、通俗易懂、内容翔实、实例丰富、习题思考题与内容配合紧密。本书既可作为高等院校“软件工程”课程的教材或教学参考书,也可作为软件开发人员的参考书。前言软件工程是计算机学科中一个非常有价值并具有广阔发展空间的研究领域。多年来,随着计算机硬件技术的迅猛发展,人们开发优质软件的能力远远落后于社会各个领域对计算机软件的需求,也就是说,时至今日,仍然经受着“软件危机”的困扰。为了克服“软件危机”,自2世纪6年代末期以来,人们在这一领域做了大量的研究与实践工作,积

第1章 概述 1

1.1 软件 1

1.1.1 软件 1

1.1.2 软件危机 3

1.2 软件工程的概念 4

1.2.1 软件工程的定义 4

1.2.2 软件工程的基本原理 5

1.2.3 软件工程的目标 6

1.2.4 软件工程的原则 7

1.3 软件生存周期 8

1.3.1 软件定义 8

1.3.2 软件开发 9

1.3.3 软件的使用与维护及退役 11

1.4 软件开发模型 12

1.4.1 瀑布模型 12

1.4.2 原型模型 13

1.4.3 螺旋模型 14

1.4.4 喷泉模型 16

1.4.5 变换模型 16

1.4.6 基于四代技术的模型 17

1.4.7 基于知识的智能模型 17

1.5 软件开发方法、工具及环境 18

1.5.1 软件开发方法 18

1.5.2 软件开发工具与环境 18

1.5.3 计算机辅助软件工程 18

习题 19

第2章 软件项目管理 20

2.1 软件度量 20

2.1.1 软件度量的基本概念 20

2.1.2 面向规模的度量 22

2.1.3 面向功能的度量 23

2.2 件项目估算 25

2.2.1 软件项目的估算方法 25

2.2.2 代码行和功能点的估算 27

2.2.3 软件项目的经验估算模型 28

2.3 软件质量度量 33

2.3.1 软件质量的定义 33

2.3.2 软件质量的度量模型 33

2.4 软件复杂性度量 37

2.4.1 软件复杂性的概念及度量原则 37

2.4.2 McCabe度量模型 38

2.4.3 Halstead度量模型 39

2.5 软件可靠性度量 40

2.5.1 软件可靠性的有关概念 40

2.5.2 软件可靠性的估算 42

2.6 软件开发过程的管理 43

2.6.1 软件开发项目管理过程 44

2.6.2 风险分析 44

2.6.3 进度安排 48

2.6.4 软件质量保证 51

2.6.5 软件项目组织的建立与人员分工 53

2.6.6 软件项目的跟踪与控制 56

2.6.7 软件开发标准 56

习题 57

第3章 计算机系统工程 59

3.1 计算机系统工程的概念 59

3.1.1 硬件工程 60

3.1.2 软件工程 60

3.1.3 人机工程 63

3.1.4 数据库工程 63

3.2 行性研究 64

3.2.1 可行性研究的任务及步骤 64

3.2.2 经济可行性研究 65

3.2.3 技术可行性研究 67

3.2.4 选择方案 67

3.3 系统模型 68

3.4.1 系统规格说明 71

3.4.2 系统规格说明的评审 71

3.4 系统规格说明与评审 71

习题 72

第4章 需求分析 73

4.1 需求分析的任务 73

4.2 需求分析的一般性技术 74

4.2.1 初步需求获取技术 74

4.2.2 需求建模技术 76

4.2.3 快速原型技术 76

4.2.4 问题分解与抽象、多视点分析技术 77

4.3 需求规格说明与评审 78

4.3.1 需求规格说明书的作用与内容 78

4.3.2 需求评审 79

习题 80

第5章 面向数据流的分析方法 82

5.1 数据流图与数据字典 82

5.2.1 数据对象、属性与关系 85

5.2 实体-关系图 85

5.2.2 实体-关系图 86

5.3 基于数据流的分析方法 86

5.3.1 创建数据流模型 86

5.3.2 过程规格说明 88

5.4 基于数据流图的需求分析CASE工具 88

5.4.1 核心思想 89

5.4.2 基于CASE工具的需求分析 90

习题 91

第6章 面向数据的分析方法与形式化方法 92

6.1 面向数据结构的系统开发方法 92

6.1.1 Warnier图 92

6.1.2 DSSD方法 93

6.2 Jackson系统开发方法 96

6.2.1 标识实体与行为 96

6.2.2 生成实体结构图 96

6.2.3 创建软件系统模型 97

6.3.1 形式方法的引入 99

6.3 形式化方法简介 99

6.3.2 形式方法的主要思想 100

6.3.3 形式化方法的分类 101

6.3.4 软件形式开发方法 101

6.3.5 形式方法的优缺点 101

习题 102

7.1 面向对象的概念 103

7.1.1 对象(Object) 103

第7章 面向对象的需求分析 103

7.1.2 类(Class) 104

7.1.3 继承(Inheritance) 104

7.1.4 聚合(Aggregation) 104

7.1.5 消息(Message) 104

7.2 面向对象的分析方法 105

7.2.1 OMT方法 105

7.2.2 Booch方法 106

7.2.3 OOSE方法 106

7.2.4 Coad/Yourdon的OOA/OOD方法 107

7.3 面向对象的需求分析CASE工具 113

7.3.1 视 114

7.3.2 UML的图 114

7.3.3 银行系统的需求分析 115

7.4 Rational统一过程 117

7.4.1 时间轴 117

7.4.2 工作流 118

习题 119

7.4.3 微过程的划分 119

第8章 软件设计基础 120

8.1 软件设计基本概念 120

8.1.1 软件设计过程 120

8.1.2 抽象与逐步求精 121

8.1.3 模块化与信息隐藏 123

8.1.4 软件总体结构设计 126

8.1.5 数据结构设计 127

8.1.6 软件过程设计 127

8.2.1 结构化程序设计 128

8.2 软件过程设计技术和工具 128

8.2.2 图形表示法 129

8.2.3 判定表与判定树 130

8.2.4 过程设计语言(PDL) 132

8.3 设计规格说明与评审 133

习题 136

第9章 面向数据流的设计方法 138

9.1 SD方法的设计过程及有关概念 138

9.2 变换分析 139

9.3 事务分析 145

9.4 设计优化及原则 148

9.4.1 启发式设计策略 148

9.4.2 设计优化原则 150

习题 151

第10章 面向数据的设计方法 153

10.1 面向数据设计的概念 153

10.2.2 扩充功能性过程 154

10.2.1 JSD分析技术回顾 154

10.2 Jackson系统开发方法 154

10.2.3 施加时间约束 159

10.2.4 实现与JSP技术 159

10.2.5 产生过程表示 161

10.3 基于结构化数据的系统开发(DSSD)方法 162

10.3.1 DSSD设计步骤 162

10.3.2 推导输出数据的逻辑结构 163

10.3.3 推导处理过程的逻辑结构 164

10.3.4 复杂过程逻辑的描述 165

习题 166

第11章 面向对象的设计方法 168

11.1 面向对象设计的概念 168

11.1.1 对象、操作和消息 168

11.1.2 类、实例和继承 168

11.2 面向对象的设计方法 169

11.2.1 问题域部件(PDC)的设计 169

11.2.2 用户界面部件(HIC)的设计 172

11.2.3 任务管理部件(TMC)的设计 174

11.2.4 数据管理部件(DMC)的设计 175

习题 177

第12章 人机界面设计 178

12.1 人的因素 178

12.1.1 人类感知基础 178

12.1.2 用户的技能 179

12.1.3 任务与用户的特殊要求 179

12.2 人机界面风格 180

12.3 人机界面设计过程 180

12.3.1 界面设计的有关模型 181

12.3.2 任务分析与建模 181

12.3.3 界面设计的一般问题 182

12.3.4 实现工具 182

12.4.1 一般可交互性 183

12.4.2 信息显示 183

12.4 人机界面实现的原则与标准 183

12.4.3 数据输入 184

12.4.4 人机界面标准 184

习题 184

第13章 程序设计语言与编码 186

13.1 程序设计语言 186

13.1.1 程序设计语言的特点 186

13.1.2 程序设计语言的发展和分类 187

13.1.3 程序设计语言的选择标准 188

13.2 编程质量与程序设计语言 189

13.3 编程标准 190

13.4 编程风格 192

13.5 程序设计支持环境(PSE) 193

习题 195

第14章 软件测试 196

14.1 软件测试的基本知识 196

14.1.1 软件测试的目标与原则 196

14.1.2 软件测试的常用方法 197

14.1.3 测试阶段的信息流 198

14.1.4 软件测试的步骤 199

14.1.5 软件测试中常见的错误类型 200

14.2 软件测试技术 201

14.2.1 白盒测试 201

14.2.2 黑盒测试 207

14.3 软件测试过程 210

14.3.1 单元测试 210

14.3.2 集成测试 212

14.3.3 验收测试 215

14.3.4 系统测试 217

14.4 调试 218

14.4.1 调试的概念 218

14.4.2 调试策略 218

14.5.1 自动测试工具 219

14.5 测试工具 219

14.5.2 调试工具 220

习题 220

第15章 软件维护 221

15.1 软件维护的基本内容和分类 221

15.2 软件维护的特点 222

15.2.1 结构化维护与非结构化维护 222

15.2.2 维护成本 223

15.3.1 维护组织 224

15.2.3 维护可能存在的问题 224

15.3 软件维护过程 224

15.3.2 维护的报告与审核 225

15.3.3 维护过程的事件流 225

15.3.4 保存维护记录 227

15.3.5 评价维护活动 227

15.4 维护的副作用 228

15.5.1 影响可维护性的因素 229

15.5.2 可维护性的度量 229

15.5 软件的可维护性 229

15.5.3 可维护性复审 230

习题 230

第16章 软件配置管理 231

16.1 软件配置管理的概念 231

16.1.1 基线技术 231

16.1.2 软件配置项 232

16.2.1 标识配置对象 234

16.2 软件配置管理的任务及标准 234

16.2.2 版本控制 235

16.2.3 修改控制 235

16.2.4 配置审计 237

16.2.5 配置状况报告 237

16.2.6 软件配置管理标准 238

16.3 配置管理的CASE工具 238

习题 239

17.1.2 构造软部件库 240

17.1.1 软件重用的概念和过程 240

17.1 软件重用技术简介 240

第17章 软件开发新技术简介 240

17.1.3 软部件的重用 245

17.1.4 软件重用项目的管理 246

17.2 Internet与Java简介 246

17.2.1 Internet简介 246

17.2.2 Java技术简介 247

17.3 对象链接与嵌入技术简介 250

17.3.1 复合文档的概念 250

17.3.2 实现复合文档的方法—链接和嵌入 251

17.3.3 COM是实现链接和嵌入的技术基础 252

17.3.4 ActiveX 252

17.4 分布式计算技术简介 253

17.4.1 分布式技术概述 253

17.4.2 主流分布式计算技术 254

习题 255

参考文献 256