《软件工程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:王忠群编著
  • 出 版 社:中国科技大学出版社
  • 出版年份:2009
  • ISBN:9787312025723
  • 页数:329 页
图书介绍:本书是高等学校计算机专业的基础课教材。主要内容包括:软件工程概述,软件需求基础,结构化分析与设计,面向对象的分析与设计,人机界面设计、编码,软件测试,软件维护,软件项目管理,软件工程标准化与软件文档等。

第1章 软件工程概述 1

1.1 软件 1

1.1.1 软件的概念与特点 1

1.1.2 软件的分类 4

1.2 软件危机 4

1.3 软件工程 6

1.3.1 软件工程的概念 6

1.3.2 软件工程的基本目标 7

1.3.3 软件工程的基本原理 7

1.3.4 软件工程的原则 8

1.4 软件生存周期 9

1.4.1 软件的定义阶段 10

1.4.2 软件的开发阶段 10

1.4.3 软件的使用、维护和退役阶段 11

1.5 软件的开发模型 12

1.5.1 瀑布模型 12

1.5.2 原型模型 13

1.5.3 螺旋模型 14

1.5.4 喷泉模型 16

1.5.5 基于第四代技术的模型 16

1.5.6 增量模型 17

1.5.7 迭代模型 18

1.6 软件开发方法和工具 22

1.6.1 结构化方法 22

1.6.2 面向对象方法 23

1.6.3 软件工具与开发环境 23

小结 24

习题 25

第2章 软件需求基础 26

2.1 需求分析概述 26

2.1.1 需求分析的难点 26

2.1.2 需求分析的基本原则 26

2.1.3 需求分析的基本任务 27

2.2 可行性研究 31

2.2.1 可行性研究的内容 31

2.2.2 可行性研究的具体步骤 32

2.2.3 可行性研究报告的内容 33

2.3 初步需求获取方法 33

2.3.1 访谈与会议 33

2.3.2 观察用户工作流程 34

2.3.3 建立联合小组 34

2.3.4 其他获取方法 34

2.4 需求分析的过程及方法 36

2.4.1 需求分析过程 36

2.4.2 软件需求建模 38

2.4.3 需求分析方法 39

2.5 软件需求规格说明和需求评审 41

2.5.1 软件需求规格说明和初步用户手册 41

2.5.2 软件需求评审 43

小结 44

习题 44

第3章 软件设计基础 46

3.1 软件设计概述 46

3.1.1 软件设计在开发阶段的重要性 46

3.1.2 软件设计的任务 47

3.1.3 软件设计的目标 48

3.1.4 软件设计的过程 48

3.2 软件设计的基本概念 51

3.2.1 抽象与逐步求精 51

3.2.2 模块化 54

3.2.3 信息隐蔽 56

3.2.4 模块独立 57

3.3 软件体系结构设计 67

3.3.1 基本概念 67

3.3.2 体系结构设计的风格 70

3.4 数据结构设计 73

3.4.1 数据结构设计 73

3.4.2 在设计程序结构时数据结构的选择方法 73

3.5 软件过程设计 75

3.5.1 结构化程序设计方法 75

3.5.2 图形设计工具 77

3.5.3 判定表和判定树 79

3.5.4 过程设计语言PDL 81

3.6 软件设计规格说明及评审 81

小结 83

习题 84

第4章 结构化分析与设计 85

4.1 结构化分析方法概述 85

4.2 数据流图 87

4.2.1 数据流图的图形表示 87

4.2.2 分层数据流图的画法 88

4.2.3 分层数据流图的审查 92

4.3 数据字典 94

4.3.1 数据字典的描述符号 94

4.3.2 字典条目 95

4.3.3 数据字典的实现 98

4.4 描述基本加工的小说明 99

4.5 E-R图 102

4.6 结构化设计方法概述 103

4.7 数据流图到软件体系结构的映射 104

4.7.1 信息流类型 104

4.7.2 映射步骤 105

4.7.3 变换分析 106

4.7.4 事务分析 107

4.8 启发式设计策略 108

小结 110

习题 110

第5章 面向对象的分析与设计 112

5.1 面向对象的概念 113

5.1.1 对象(Object) 113

5.1.2 类(Class) 114

5.1.3 实例(Instance) 114

5.1.4 消息(Message) 115

5.1.5 属性(Attribute) 115

5.1.6 操作和方法(Operation and method) 115

5.1.7 继承(Inheritance) 116

5.1.8 封装(Encapsulation) 116

5.1.9 多态性(Polymorphism) 116

5.1.10 重载(Overload) 116

5.1.11 面向对象方法的要点 117

5.2 UML概述 117

5.2.1 UML发展历史 118

5.2.2 UML简介 118

5.3 RUP统一过程开发模型 120

5.4 用例建模 122

5.4.1 用例图(Vse Case Diagram) 122

5.4.2 用例图分析流程 125

5.4.3 用例建模小结 126

5.5 静态建模 126

5.5.1 类图(Class Diagram) 127

5.5.2 类与类之间的静态关系 128

5.5.3 对象图(Object Diagram) 132

5.5.4 包图 133

5.5.5 静态建模的基本方法及举例 134

5.5.6 静态建模小结 137

5.6 动态建模 138

5.6.1 顺序图(Sequence Diagram) 138

5.6.2 合作图(Collaboration Diagram) 142

5.6.3 状态图(State Diagram) 144

5.6.4 活动图(Activity Diagram) 147

5.6.5 动态建模小结 151

5.7 物理体系结构建模 151

5.7.1 构件图(Component Diagram) 151

5.7.2 布署图(Deployment Diagram) 154

5.8 面向对象的软件建模工具 155

5.8.1 建模工具简介 155

5.8.2 Rational Rose简介 156

小结 159

习题 160

第6章 人机界面设计 162

6.1 人的因素 162

6.1.1 人对感知过程的认识 162

6.1.2 用户的技能和用户间的差异 162

6.2 人机界面的风格与交互方式 163

6.2.1 人机界面的风格 163

6.2.2 人机界面的交互方式 165

6.3 人机界面的设计过程 167

6.3.1 界面设计中涉及的模型 167

6.3.2 任务分析与建模 168

6.3.3 界面设计中的一般问题 168

6.3.4 实现工具 170

6.3.5 界面评估 170

6.4 界面设计中应遵循的原则 171

小结 174

习题 174

第7章 编码 176

7.1 编码概述 176

7.1.1 编码的质量要求 176

7.1.2 程序设计语言的发展与特性 177

7.1.3 程序设计语言的特点与选择 179

7.2 编码的风格 182

7.2.1 程序的风格 182

7.2.2 程序的效率 184

7.3 程序编码优化 185

7.3.1 程序编码结构优化的基本方法 186

7.3.2 程序编码效率优化的基本方法 187

7.4 程序的复杂性度量 189

7.4.1 代码行度量法 189

7.4.2 McCabe度量法 189

7.4.3 Halstead方法 191

小结 192

习题 192

第8章 软件测试 194

8.1 基本概念 194

8.1.1 软件测试的定义 194

8.1.2 软件测试的基本原则 195

8.1.3 软件测试的种类 196

8.1.4 软件测试的信息流 197

8.1.5 软件测试的对象 198

8.2 软件测试技术 198

8.2.1 黑盒测试 198

8.2.2 白盒测试 205

8.3 软件测试的策略 212

8.3.1 单元测试 213

8.3.2 集成测试 215

8.3.3 确认测试 218

8.3.4 系统测试 219

8.4 测试工具 220

8.4.1 人工测试 220

8.4.2 测试工具的分类 222

8.4.3 测试工具的选择 223

8.5 调试 224

8.5.1 调试过程 224

8.5.2 调试的策略 225

8.5.3 调试的原则 226

小结 227

习题 227

第9章 软件维护 229

9.1 软件维护的概念 229

9.1.1 软件维护的含义 229

9.1.2 软件维护的内容 229

9.2 软件维护的特点 230

9.2.1 软件工程与软件维护的关系 230

9.2.2 维护成本 231

9.2.3 影响维护工作量的因素 232

9.3 软件维护的过程 233

9.3.1 建立维护机构 233

9.3.2 维护工作流程 233

9.3.3 保存维护记录 235

9.3.4 评价维护结果 236

9.4 软件的可维护性 236

9.4.1 可维护性的地位 236

9.4.2 软件的可维护性度量 236

9.4.3 提高软件可维护性的方法 237

9.5 程序的修改 239

9.5.1 程序修改的步骤 239

9.5.2 修改程序的副作用 240

9.6 软件再生工程 241

小结 242

习题 242

第10章 软件项目管理 244

10.1 软件项目管理概述 244

10.1.1 什么是软件项目管理 244

10.1.2 软件项目管理的内容 244

10.2 软件度量 246

10.2.1 度量、测量和估算 246

10.2.2 面向规模的度量 246

10.2.3 面向功能的度量 248

10.2.4 代码行度量与功能度量的比较 250

10.3 软件质量的度量 250

10.3.1 软件质量及三层次度量模型 250

10.3.2 软件质量要素 251

10.3.3 软件质量要素评价准则 251

10.4 软件项目的估算 253

10.4.1 代码行、功能点和工作量估算 253

10.4.2 软件项目估算模型 255

10.5 软件项目进度安排 256

10.5.1 进度安排中应考虑的几个问题 256

10.5.2 进度安排的方法 257

10.6 软件风险管理 258

10.6.1 风险的分类 258

10.6.2 风险的识别 258

10.6.3 风险评估 259

10.6.4 风险的管理与控制 260

10.7 软件项目的组织 261

10.7.1 软件项目管理的组织模式 261

10.7.2 人员组织与管理 262

10.8 软件配置管理 263

10.8.1 软件配置管理基本概念 263

10.8.2 软件配置管理的主要活动 264

10.9 软件过程成熟度模型(CMM) 265

10.9.1 基本概念 266

10.9.2 软件过程能力成熟度等级 266

小结 267

习题 268

第11章 软件工程标准化与软件文档 269

11.1 软件工程标准化的意义 269

11.1.1 什么是软件工程标准 269

11.1.2 软件工程标准化的意义 269

11.1.3 软件工程标准的制定与推行 270

11.2 我国的软件工程标准化工作 271

11.2.1 软件工程标准分类 271

11.2.2 我国的软件工程标准化工作 272

11.3 软件文档的作用与分类 273

11.3.1 什么是软件文档 273

11.3.2 软件文档的作用 274

11.3.3 文档的分类 274

11.4 软件文档管理 275

11.4.1 主要文档 275

11.4.2 文档的使用 276

11.4.3 软件生命周期与文档编写 276

11.4.4 编写文档应考虑的因素 277

11.4.5 文档管理 279

11.5 GB/T8567—2006建议的基本文档格式规范 281

11.5.1 GB/T8567—2006标准的结构 281

11.5.2 面向对象软件的文档编制 283

11.5.3 GB/T8567—2006标准建议的基本文档格式规范 283

小结 297

习题 297

第12章 Web工程 299

12.1 基于Web的系统与应用特点 299

12.2 Web工程 301

12.2.1 Web工程过程 301

12.2.2 Web工程开发方法 303

12.2.3 开发方法应具备的特性 303

12.2.4 Web工程开发工具 304

12.3 Web项目策划 304

12.3.1 Web工程团队 304

12.3.2 组建团队 305

12.3.3 Web工程的项目管理 306

12.4 Web应用分析 308

12.4.1 Web应用分析的任务 308

12.4.2 Web应用分析活动 309

12.5 Web应用设计 310

12.5.1 Web应用设计的任务 310

12.5.2 Web应用设计活动 310

12.6 Web应用测试 315

12.6.1 Web应用测试的基本概念 315

12.6.2 Web测试策略 316

12.6.3 Web测试过程 316

12.6.4 内容测试 318

12.6.5 用户界面测试 319

12.6.6 构件级测试 322

12.6.7 导航测试 323

12.6.8 配置测试 324

12.6.9 可信、安全性测试 325

12.6.10 性能测试 326

小结 327

习题 327

参考文献 328