《软件工程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:曹哲,高诚主编
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2008
  • ISBN:9787508459325
  • 页数:292 页
图书介绍:本书根据教育部普通高等教育“十一五”国家级规划教材的精神编写。本书从实用的角度出发系统地介绍了软件工程的基本概念、方法、技术、工具和环境。全书共14章,内容主要包括:该书、软件项目管理、计算机系统工程、需求分析、面向数据流的分析方法、面向数据的分析方法与形式化方法、软件设计基础、面向数据流的设计方法、面向数据的设计方法、人机界面设计、程序设计语言与编码、软件测试、软件维护、面向对象的系统开发方法等。 本书既可作为高等院校“软件工程”课程的教材或教学参考书,也可作为软件开发人员的参考书。

第1章 概述 1

1.1软件 1

1.1.1软件 1

1.1.2软件危机 2

1.2软件工程的概念 4

1.2.1软件工程的定义 4

1.2.2软件工程的基本原理 4

1.2.3软件工程的目标 6

1.2.4软件工程的原则 7

1.3软件生存周期 7

1.3.1软件定义 8

1.3.2软件开发 9

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

1.4软件开发模型 11

1.4.1瀑布模型 11

1.4.2原型模型 13

1.4.3螺旋模型 13

1.4.4喷泉模型 15

1.4.5变换模型 15

1.4.6基于四代技术的模型 16

1.4.7基于知识的智能模型 16

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

1.5.1软件开发方法 17

1.5.2软件开发工具与环境 17

1.5.3计算机辅助软件工程 17

习题 18

第2章 软件项目管理 19

2.1软件度量 19

2.1.1软件度量的基本概念 19

2.1.2面向规模的度量 21

2.1.3面向功能的度量 22

2.2软件项目估算 24

2.2.1软件项目的估算方法 24

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

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

2.3软件质量度量 35

2.3.1软件质量的定义 36

2.3.2软件质量的度量模型 36

2.4软件复杂性度量 39

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

2.4.2 McCabe度量模型 40

2.4.3 Halstead度量模型 41

2.5软件开发过程的管理 42

2.5.1软件开发项目管理过程 42

2.5.2风险分析 43

2.5.3进度安排 46

2.5.4软件质量保证 49

2.5.5软件项目组织的建立与人员分工 51

2.5.6软件项目的跟踪与控制 53

2.5.7软件配置管理 53

2.5.8软件开发标准 59

习题 60

第3章 计算机系统工程 62

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

3.1.1硬件工程 63

3.1.2软件工程 63

3.1.3人机工程 65

3.1.4数据库工程 66

3.2可行性研究 67

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

3.2.2经济可行性研究 68

3.2.3技术可行性研究 69

3.2.4选择方案 70

3.3系统模型 71

3.4系统规格说明书与评审 73

3.4.1系统规格说明书 73

3.4.2系统规格说明书的评审 74

习题 74

第4章 需求分析 75

4.1需求分析的任务 75

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

4.2.1初步需求获取技术 76

4.2.2需求建模技术 78

4.2.3快速原型技术 78

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

4.3需求规格说明书与评审 79

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

4.3.2需求评审 81

习题 81

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

5.1数据流图与数据字典 83

5.1.1数据流图 83

5.1.2数据字典 86

5.2实体—关系图 88

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

5.2.2实体—关系图 90

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

5.3.1创建数据流模型 91

5.3.2过程规格说明 92

5.4基于CASE工具的需求分析 93

5.4.1核心思想 93

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

习题 95

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

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

6.1.1 Warnier图 96

6.1.2 DSSD方法 97

6.2 Jackson系统开发方法 99

6.2.1 Jackson图 100

6.2.2改进的Jackson图 100

6.2.3标识实体与行为 100

6.2.4生成实体结构图 101

6.2.5创建软件系统模型 101

6.3形式化方法简介 103

6.3.1形式化方法的引入 103

6.3.2形式化方法的主要思想 104

6.3.3形式化方法的分类 105

6.3.4软件形式化开发方法 105

6.3.5形式化方法的优缺点 105

6.3.6应用形式化方法的准则 106

习题 106

第7章 软件设计基础 107

7.1软件设计基本概念 107

7.1.1软件设计过程 107

7.1.2抽象与逐步求精 108

7.1.3模块化与信息隐藏 110

7.1.4软件总体结构设计 115

7.1.5数据结构设计 116

7.1.6软件过程设计 116

7.2软件过程设计技术和工具 117

7.2.1结构化程序设计 117

7.2.2程序流程图 118

7.2.3盒图(N-S图) 118

7.2.4 PAD图 120

7.2.5判定表与判定树 121

7.2.6过程设计语言(PDL) 122

7.3设计规格说明书与评审 124

习题 126

第8章 面向数据流的设计方法 128

8.1 SD方法的设计过程及有关概念 128

8.2变换分析 129

8.3事务分析 135

8.4设计优化及原则 138

8.4.1启发式设计策略 138

8.4.2设计优化原则 140

习题 141

第9章 面向数据结构的设计方法 143

9.1面向数据结构设计的概念 143

9.2 Jackson系统开发方法 144

9.2.1 JSD技术 144

9.2.2 Jackson伪代码逻辑结构 144

9.2.3确定输入/输出数据的逻辑结构 145

9.2.4找出输入/输出数据结构中有对应关系的数据单元 145

9.2.5产生过程表示 146

9.2.6列出所有操作和条件并分配到Jackson结构图中 147

9.2.7根据Jackson结构图产生结构正文描述 148

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

9.3.1 DSSD设计步骤 149

9.3.2推导输出数据的逻辑结构 150

9.3.3推导处理过程的逻辑结构 151

9.3.4复杂过程逻辑的描述 152

习题 153

第10章 人机界面设计 155

10.1人的因素 155

10.1.1人类感知基础 155

10.1.2用户的技能 156

10.1.3任务与用户的特殊要求 156

10.2人机界面风格 156

10.3人机界面设计过程 157

10.3.1界面设计的有关模型 157

10.3.2任务分析与建模 158

10.3.3界面设计的一般问题 158

10.3.4实现工具 160

10.4人机界面实现的原则与标准 161

10.4.1一般可交互性 161

10.4.2信息显示 161

10.4.3数据输入 162

10.4.4人机界面标准 163

习题 163

第11章 程序设计语言与编码 164

11.1程序设计语言的特性及选择 164

11.1.1程序设计语言特性 164

11.1.2程序设计语言的选择 165

11.2程序设计风格 168

11.3程序设计效率 170

11.3.1代码效率 170

11.3.2内存效率 170

11.3.3 I/O效率 170

11.4冗余编程 171

习题 172

第12章 软件测试 173

12.1软件测试的基本知识 173

12.1.1软件测试的目标与原则 173

12.1.2软件测试的常用方法 174

12.1.3测试阶段的信息流 175

12.1.4软件测试的步骤 175

12.1.5软件测试中常见的错误类型 177

12.2软件测试技术 178

12.2.1白盒测试 178

12.2.2黑盒测试 183

12.3软件测试过程 186

12.3.1单元测试 186

12.3.2集成测试 188

12.3.3验收测试 191

12.3.4系统测试 192

12.4调试 193

12.4.1调试的概念 193

12.4.2调试策略 194

12.5软件可靠性度量 195

12.5.1软件可靠性的有关概念 195

12.5.2软件可靠性的估算 197

12.5.3软件可靠性估算举例 198

12.6测试工具 200

12.6.1自动测试工具 201

12.6.2调试工具 201

习题 201

第13章 软件维护 203

13.1软件维护概述 203

13.1.1软件维护的定义 203

13.1.2影响维护工作的因素 204

13.1.3维护成本 204

13.2软件可维护性 204

13.2.1软件可维护性的定义 205

13.2.2可维护性的度量 205

13.2.3可维护性复审 207

13.3软件维护的特点 207

13.3.1非结构化维护和结构化维护 207

13.3.2维护的困难性 207

13.3.3软件维护的费用 208

13.4软件维护的实施 209

13.4.1维护的组织 209

13.4.2维护的流程 210

13.4.3维护技术 211

13.4.4维护的副作用 211

习题 212

第14章 面向对象开发方法 213

14.1面向对象基本问题 213

14.1.1面向对象的基本概念 213

14.1.2面向对象的编程 215

14.1.3结构化与面向对象 219

14.2面向对象开发方法和过程 220

14.2.1面向对象方法 220

14.2.2 Rational统一过程(Rational Unifiied Process, RUP) 228

14.2.3面向对象的工具 230

14.2.4统一建模语言(UML) 230

14.3业务建模 236

14.3.1业务建模概述 236

14.3.2业务用例模型 237

14.3.3业务用例实现(business usecase realization) 241

14.4需求 244

14.4.1需求建模概述 244

14.4.2从业务模型到系统模型 244

14.4.3获取系统需求 245

14.4.4系统主角的提取 245

14.4.5需求的用例描述 246

14.4.6用例的精化 248

14.5分析 249

14.5.1分析建模概述 249

14.5.2发现分析类 250

14.5.3分析类之间的关系 254

14.5.4发现分析包 256

14.5.5用例实现 259

14.5.6活动图 262

14.6设计 262

14.6.1设计概述 262

14.6.2架构设计 264

14.6.3设计类 264

14.6.4精化分析类之间的关系 267

14.6.5接口、组件和子系统 270

14.6.6用例实现一设计 274

14.6.7状态图 275

14.7实现 277

14.7.1实现概述 277

14.7.2组件图(component diagram) 278

14.7.3从设计模型到代码的映射 278

14.8面向对象系统的测试 280

14.8.1面向对象测试概述 280

14.8.2面向对象软件的测试过程 281

14.9部署 282

14.9.1部署概述 282

14.9.2架构实现 283

14.9.3部署图 283

14.10 RUP生命周期 285

14.10.1迭代概述 286

14.10.2先启阶段 288

14.10.3精化阶段 289

14.10.4构建阶段 290

14.10.5产品化阶段 290

习题 291

参考文献 292