《软件工程 理论与实践 第3版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:许家珆,白忠建,吴磊著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2017
  • ISBN:9787040479287
  • 页数:373 页
图书介绍:本书在第二版普通高等教育“十一五”国家级规划教材的基础上进行了较大的修改,根据IEEE新发布的SWEBOKV3.0版,删除了较陈旧的内容,新增了一些国内外软件工程发展的新技术,如云计算模型,自动测试等。在系统介绍软件工程基础知识的基础上,重点介绍了软件需求和软件设计两个重要开发阶段。并将面向对象的方法及UML统一建模技术贯穿于各章,强调CMM软件成熟度模型、ERP企业资源规划、风险管理及团队建设等先进的软件管理技术对保证软件成功开发的重要性。理论紧密联系实际是本书的一大特色;本书不仅提供了丰富的软件开发实例和素材,还对如何通过“软件工程”精品课程网站进行综合性、设计型的软件工程课程设计做了详细介绍。

第1章 软件工程概述 1

1.1 软件工程的产生和发展 1

1.1.1 软件危机与软件工程 1

1.1.2 软件工程的定义及基本原则 3

1.1.3 软件工程研究的内容 4

1.2 软件与软件过程 6

1.2.1 软件的概念和特点 6

1.2.2 软件工程过程 7

1.2.3 软件过程的活动及产品 8

1.3 软件过程模型 9

1.3.1 瀑布模型 9

1.3.2 增量模型 10

1.3.3 原型模型 10

1.3.4 螺旋模型 11

1.3.5 喷泉模型 12

1.3.6 智能模型 12

1.4 软件开发方法 13

1.4.1 结构化开发方法 14

1.4.2 原型化开发方法 14

1.4.3 面向对象开发方法 15

1.4.4 敏捷软件开发方法 18

1.5 软件工具与集成化环境 20

1.5.1 软件工具 20

1.5.2 集成化CASE环境 23

1.5.3 集成化CASE开发环境的体系结构 25

小结 27

习题1 27

第2章 软件需求工程 30

2.1 软件需求的基本概念 30

2.1.1 软件需求的任务 30

2.1.2 功能需求与非功能需求 31

2.2 需求工程过程 34

2.2.1 获取需求 34

2.2.2 需求分析与建模 35

2.2.3 需求的有效性验证 37

2.2.4 需求管理 37

2.3 软件需求获取技术 38

2.4 需求分析方法与建模技术 41

2.4.1 常用的需求分析方法 41

2.4.2 结构化分析方法 43

2.4.3 面向对象的分析方法 49

2.4.4 用UML建立需求模型 51

2.4.5 需求规格说明书 53

2.5 软件需求案例分析 55

2.5.1 案例1:医院病房监护系统 55

2.5.2 案例2:网上拍卖系统 58

小结 60

习题2 61

第3章 软件设计 64

3.1 软件设计概述 64

3.1.1 软件设计的任务和目标 65

3.1.2 软件设计过程 66

3.2 软件体系结构设计 67

3.2.1 体系结构设计过程 67

3.2.2 仓库模型 67

3.2.3 层次模型 68

3.2.4 分布式系统模型 69

3.2.5 云计算模型 74

3.2.6 控制模型 76

3.2.7 模块分解 79

3.3 面向对象设计 83

3.3.1 面向对象设计的准则和基本任务 84

3.3.2 设计过程 85

3.3.3 对象设计 88

3.4 详细设计描述工具 90

3.5 用户界面设计 91

3.5.1 用户界面设计的特性与设计任务 91

3.5.2 用户界面设计的基本原则 92

3.5.3 用户界面的基本元素 93

3.5.4 用户交互 94

3.5.5 功能和时尚的平衡 96

3.6 MVC设计模式 98

3.6.1 MVC的概念 98

3.6.2 MVC的工作流程 99

3.6.3 MVC与三层架构的区别 100

3.7 软件设计实例 100

3.7.1 用例模型 101

3.7.2 体系结构设计 101

3.7.3 对象设计 102

3.7.4 用户界面设计 106

小结 107

习题3 108

第4章 面向对象方法与统一建模语言UML 110

4.1 面向对象方法概述 110

4.1.1 面向对象方法的特点 110

4.1.2 几种典型的面向对象方法 112

4.2 UML概述 113

4.2.1 UML的基本概念 113

4.2.2 UML的图形表示 115

4.3 建立用例模型 118

4.3.1 用例建模 118

4.3.2 确定执行者 119

4.3.3 确定用例 121

4.3.4 建立用例之间的关系 124

4.3.5 用例建模实例 125

4.4 建立静态模型 127

4.4.1 类图 128

4.4.2 包图 138

4.5 建立动态模型 139

4.5.1 消息 139

4.5.2 状态图 140

4.5.3 顺序图 143

4.5.4 合作图 145

4.5.5 活动图 148

4.6 建立实现模型 150

4.6.1 组件图 150

4.6.2 部署图 151

4.7 统一过程RUP及其应用 153

4.7.1 UML与统一过程RUP 153

4.7.2 RUP的二维开发模型 155

4.7.3 RUP的迭代开发模式 157

小结 158

习题4 159

第5章 软件构造 162

5.1 程序设计语言的选择 162

5.1.1 程序设计语言的分类 162

5.1.2 高级程序设计语言的基本组成 163

5.1.3 程序设计语言选择准则 165

5.2 程序设计方法 166

5.2.1 结构化程序设计 166

5.2.2 面向对象程序设计 167

5.3 程序设计风格 174

5.4 算法与程序效率 177

5.5 软件代码审查 178

5.6 软件复用 180

5.6.1 软件复用的级别 180

5.6.2 软件复用过程 181

5.6.3 可复用构件 182

5.6.4 基于复用的开发过程和模型 184

5.6.5 构件的组装和复用 185

5.7 软件构造实例 186

5.7.1 实现环境 186

5.7.2 系统编码实现 187

5.7.3 用户界面 194

小结 195

习题5 196

第6章 软件测试 197

6.1 软件测试概述 197

6.1.1 软件测试的目的和重要性 197

6.1.2 软件测试的特点和基本原则 199

6.1.3 软件测试过程 201

6.1.4 静态分析与动态测试 203

6.2 白盒法测试 206

6.2.1 语句覆盖 207

6.2.2 判定覆盖 207

6.2.3 条件覆盖 208

6.2.4 判定—条件覆盖 209

6.2.5 条件组合覆盖 210

6.3 黑盒法测试 211

6.3.1 等价分类法 211

6.3.2 边界值分析法 212

6.3.3 错误推测法 213

6.3.4 因果图法 214

6.4 软件测试的策略 216

6.4.1 单元测试 216

6.4.2 集成测试 219

6.4.3 确认测试 221

6.4.4 系统测试 222

6.4.5 α测试和β测试 224

6.4.6 综合测试策略 224

6.5 软件调试 225

6.5.1 软件调试过程 225

6.5.2 软件调试策略 226

6.6 面向对象的测试 228

6.6.1 面向对象测试的特点 228

6.6.2 面向对象的测试模型 229

6.6.3 面向对象测试策略 230

6.6.4 面向对象分析的测试 232

6.6.5 面向对象的测试用例 238

6.7 自动化测试 239

6.7.1 自动化测试概述 239

6.7.2 实施自动化测试的前提条件 241

6.7.3 自动化测试过程 242

6.7.4 自动化测试的原则 245

小结 245

习题6 246

第7章 软件维护 248

7.1 软件维护的基本概念 248

7.1.1 软件维护的目的 248

7.1.2 软件维护的类型 248

7.1.3 软件维护的特性 250

7.1.4 软件维护的代价 251

7.2 软件维护的过程 252

7.2.1 维护工作的流程 252

7.2.2 软件维护的组织和维护过程管理 252

7.3 软件维护技术 254

7.4 软件可维护性 255

7.4.1 软件可维护性的定义 255

7.4.2 提高可维护性的方法 257

7.5 软件再工程技术 261

小结 264

习题7 264

第8章 软件项目管理 266

8.1 软件项目管理概述 266

8.1.1 软件项目管理的特点 266

8.1.2 软件项目管理的主要活动 267

8.2 软件项目计划 268

8.2.1 软件项目计划内容 269

8.2.2 软件开发进度计划 269

8.3 软件项目成本估算技术 272

8.3.1 影响成本估算的因素 272

8.3.2 成本估算模型 273

8.3.3 成本/效益分析 277

8.4 软件项目人力资源管理 278

8.4.1 软件团队建设 278

8.4.2 团队人员的选留 280

8.5 项目风险管理 281

8.5.1 软件项目风险管理概述 281

8.5.2 软件项目风险管理过程 283

8.5.3 风险管理的理论和模型 285

8.6 软件质量保证 287

8.7 软件配置管理 288

8.7.1 软件配置管理的基本概念 289

8.7.2 软件配置管理的活动 289

8.8 企业资源规划 292

8.8.1 资源管理发展过程 293

8.8.2 ERP系统的管理思想 293

8.8.3 应用ERP与企业的关系 295

8.8.4 ERP应用成功的标志 296

8.8.5 SAP ERP简介 297

小结 299

习题8 299

第9章 软件能力成熟度模型CMM 301

9.1 CMM概述 301

9.1.1 软件过程成熟度的基本概念 301

9.1.2 软件过程的成熟度等级 302

9.2 CMM的结构 304

9.3 CMM的实施与评估 306

9.3.1 软件过程评估及参考模型 307

9.3.2 软件过程改进 310

9.3.3 CMM评估的执行步骤 311

9.3.4 CMM与ISO 9000标准 314

9.4 软件能力成熟度模型集成CMMI 315

9.4.1 CMMI的产生与发展 315

9.4.2 CMMI模型 316

9.4.3 CMMI评估 317

9.4.4 CMMI与CMM的比较 319

小结 320

习题9 321

第10章 软件工程课程设计 322

10.1 课程设计目的和要求 322

10.2 课程设计步骤安排 323

10.3 可视化建模工具RationalRose 324

10.3.1 Rose工具简介 324

10.3.2 绘制业务用例图 326

10.3.3 绘制用例图 327

10.3.4 绘制类图 329

10.3.5 绘制协作图与时序图 331

10.3.6 绘制活动图 332

10.3.7 绘制状态图 333

10.3.8 绘制组件图和部署图 334

10.4 案例分析 336

10.4.1 案例1:ATM系统 336

10.4.2 案例2:网上拍卖系统 342

10.4.3 案例3:会议管理系统 350

10.4.4 案例4:仓库信息管理系统 363

参考文献 372