《21世纪大学本科计算机专业系列教材 软件工程 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:钱乐秋,赵文耘,牛军钰编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302328766
  • 页数:374 页
图书介绍:本书在介绍软件工程的基本概念和基本原理的基础上,着重对软件开发方法和技术进行介绍,包括经典和常用的方法,如结构化方法、面向数据结构方法和面向对象方法,以及一些软件工程的新技术和新方法,如UML2.0、基于构件的开发、敏捷软件开发、Web工程、CMM&CMMI等。此外,本书尽量采用国标、ISO标准或《计算机科学技术百科全书》对专业术语的名字及其语义解释,必要时,术语名字会同时给出其它习惯称谓。

第1章 概论 1

1.1计算机软件 1

1.1.1软件的发展 1

1.1.2软件的特点 2

1.1.3软件的分类 3

1.1.4软件语言 3

1.2软件工程 5

1.2.1软件工程定义 5

1.2.2软件工程框架 6

1.2.3软件生存周期 6

1.3软件过程 7

1.3.1软件生存周期过程 8

1.3.2能力成熟度模型CMM 11

1.3.3能力成熟度模型集成CMMI 13

1.4软件过程模型 16

1.4.1瀑布模型 16

1.4.2演化模型 17

1.4.3增量模型 18

1.4.4原型模型 18

1.4.5螺旋模型 20

1.4.6喷泉模型 21

1.4.7基于构件的开发模型 21

1.4.8形式化方法模型 22

1.5 CASE工具与环境 23

1.5.1软件工具 23

1.5.2软件开发环境 25

1.6小结 26

习题 26

第2章 系统工程 27

2.1基于计算机的系统 27

2.2系统工程的任务 28

2.3可行性分析 29

2.3.1经济可行性 29

2.3.2技术可行性 31

2.3.3法律可行性 31

2.3.4方案的选择和折衷 31

2.4小结 32

习题 32

第3章 需求工程 33

3.1需求工程概述 33

3.2需求获取 35

3.2.1软件需求 35

3.2.2需求获取方法与策略 36

3.3需求分析、协商与建模 40

3.3.1需求分析原则 40

3.3.2信息域 40

3.3.3需求协商 41

3.3.4需求建模 41

3.4需求规约与验证 42

3.4.1需求规约的原则 42

3.4.2需求规约 42

3.4.3需求验证 44

3.5需求管理 44

3.6小结 45

习题 45

第4章 设计工程 46

4.1软件设计工程概述 46

4.2软件设计原则 48

4.2.1抽象与逐步求精 49

4.2.2模块化 49

4.2.3信息隐藏 50

4.2.4功能独立 51

4.3软件体系结构设计 53

4.3.1体系结构发展过程 53

4.3.2软件体系结构的风格 54

4.3.3评估可选的体系结构 56

4.4部件级设计技术 57

4.4.1结构化程序设计方法 58

4.4.2图形表示法 58

4.4.3判定表 61

4.4.4设计性语言PDL 62

4.5设计规约与设计评审 63

4.5.1设计规约 63

4.5.2设计评审 64

4.6小结 65

习题 65

第5章 结构化分析与设计 67

5.1结构化分析方法概述 67

5.2数据流图 69

5.2.1数据流图的图形表示 69

5.2.2分层数据流图的画法 72

5.3分层数据流图的审查 76

5.3.1分层数据流图的一致性和完整性 77

5.3.2构造分层DFD时需要注意的问题 80

5.3.3分解的程度 82

5.4数据字典 82

5.4.1字典条目的种类及描述符号 82

5.4.2字典条目 83

5.4.3字典条目实例 87

5.4.4数据字典的实现 88

5.5描述基本加工的小说明 88

5.5.1结构化语言 89

5.5.2判定表 90

5.5.3判定树 91

5.6结构化设计概述 91

5.6.1结构图 92

5.6.2启发式设计策略 94

5.6.3结构化设计的步骤 96

5.7数据流图到软件体系结构的映射 97

5.7.1信息流 97

5.7.2数据流图映射到结构图的步骤 98

5.7.3变换分析 98

5.7.4事务分析 101

5.7.5分层DFD的映射 102

5.8初始结构图的改进 104

5.8.1结构图改进实例 104

5.8.2结构图改进技巧 106

5.9小结 108

习题 108

第6章 面向数据结构的分析与设计 110

6.1 JSP方法 110

6.1.1数据结构与程序结构的表示 110

6.1.2 JSP方法的分析和设计步骤 114

6.2 J SD方法简介 118

6.3小结 119

习题 119

第7章 面向对象方法基础 120

7.1面向对象的基本概念 121

7.2面向对象分析和设计过程 124

7.2.1面向对象分析过程 124

7.2.2面向对象设计过程 126

7.2.3设计模式 128

7.3 UML概述 129

7.3.1 UML发展历史 129

7.3.2 UML简介 130

7.3.3视图 131

7.3.4图 133

7.4小结 136

习题 136

第8章 面向对象建模 137

8.1用况建模 137

8.1.1用况建模步骤 137

8.1.2确定执行者 138

8.1.3确定用况 139

8.1.4用况描述 140

8.1.5用况图中的关系 142

8.1.6案例说明 143

8.1.7用况建模实例 144

8.2静态建模 147

8.2.1类图和对象图 148

8.2.2 CRC技术 148

8.2.3类之间的关系 153

8.2.4静态建模实例 161

8.3动态建模 163

8.3.1状态机图 163

8.3.2活动图 170

8.3.3顺序图 172

8.3.4通信图 176

8.3.5动态建模实例 178

8.4物理体系结构建模 179

8.4.1构件图 180

8.4.2部署图 181

8.5小结 182

习题 182

第9章 基于构件的软件开发 184

9.1基于构件的软件开发概述 184

9.1.1构件 184

9.1.2基于构件的软件开发过程 187

9.1.3 CBSD对质量、生产率和成本的影响 189

9.2建造可复用构件 190

9.2.1对可复用构件的要求 190

9.2.2创建领域构件的设计框架 191

9.2.3可变性分析 191

9.2.4可变性机制 192

9.3应用系统工程 194

9.3.1基于CBSD的应用系统分析和设计 194

9.3.2构件的鉴定、特化和组装 195

9.4构件的管理 196

9.4.1构件的分类描述 196

9.4.2构件库管理系统 197

9.5小结 198

习题 198

第10章 敏捷软件开发 199

10.1敏捷软件开发方法概述 199

10.1.1敏捷宣言 199

10.1.2精益思想 201

10.1.3敏捷方法综述 202

10.2 Scrum方法 203

10.2.1 Scrum简介 203

10.2.2 Scrum团队 205

10.2.3需求管理 205

10.2.4基于时间盒的迭代 206

10.2.5回顾会议 209

10.3极限编程方法 210

10.3.1极限编程简介 210

10.3.2价值观和原则 211

10.3.3实践 212

10.4看板方法 217

10.4.1看板方法简介 217

10.4.2看板方法的规则 218

10.4.3看板方法和Scrum的比较 219

10.5小结 220

习题 220

第11章 人机界面设计 221

11.1人的因素 221

11.1.1人对感知过程的认识 221

11.1.2用户的技能和行为方式 222

11.1.3人体测量学对设计的影响 222

11.2人机界面风格 224

11.3人机界面分析与建模 227

11.3.1人机界面设计过程 227

11.3.2人机界面设计中涉及的模型 228

11.3.3任务分析的途径与方法 228

11.4界面设计活动 229

11.4.1定义界面对象和动作 229

11.4.2设计问题 230

11.4.3黄金原则 231

11.5实现工具 233

11.6设计评估 233

11.7小结 235

习题 235

第12章 程序设计语言和编码 236

12.1程序设计语言 236

12.1.1程序设计语言的基本成分 236

12.1.2程序设计语言的特性 238

12.1.3程序设计语言的分类 239

12.1.4程序设计语言的选择 240

12.2程序设计风格 241

12.2.1源程序文档化 241

12.2.2数据说明 244

12.2.3语句结构 244

12.2.4输入和输出 246

12.3小结 246

习题 246

第13章 软件测试 247

13.1软件测试基础 247

13.1.1软件测试的目的 247

13.1.2软件测试的基本原则 248

13.1.3白盒测试和黑盒测试 249

13.2白盒测试 249

13.2.1逻辑覆盖测试 249

13.2.2逻辑表达式错误敏感的测试 254

13.2.3基本路径测试 255

13.2.4数据流测试 257

13.2.5循环测试 258

13.3黑盒测试 259

13.3.1等价类划分 259

13.3.2边界值分析 262

13.3.3比较测试 263

13.3.4错误猜测 263

13.3.5因果图 263

13.4测试策略 267

13.4.1 V模型 267

13.4.2单元测试 268

13.4.3集成测试 269

13.4.4确认测试 272

13.4.5系统测试 273

13.5面向对象测试 274

13.5.1面向对象语境对测试的影响 274

13.5.2面向对象测试策略 275

13.5.3面向对象测试用例设计 276

13.6测试完成标准 276

13.7调试 277

13.7.1调试过程 277

13.7.2调试方法 277

13.7.3纠正错误 278

13.8小结 279

习题 279

第14章 Web工程 281

14.1 WebApp的属性和类型 281

14.1.1 WebApp的属性 281

14.1.2 WebApp的类型 283

14.2 Web工程过程 284

14.2.1过程框架 284

14.2.2改善框架 285

14.2.3 Web工程的最佳实践 285

14.2.4方法和工具 285

14.3 WebApp建模 286

14.3.1 WebApp需求建模 286

14.3.2 WebApp设计建模 288

14.4 WebApp质量管理 293

14.4.1 WebApp质量维度 293

14.4.2 WebApp的测试 294

14.4.3 WebApp配置管理 295

14.5小结 296

习题 296

第15章 软件维护与再工程 297

15.1软件维护 297

15.1.1软件维护的概念 297

15.1.2软件维护的过程 300

15.1.3软件可维护性 302

15.2再工程技术 305

15.2.1再工程的概念 305

15.2.2业务过程再工程 305

15.2.3软件再工程过程 306

15.2.4逆向工程 308

15.3小结 309

习题 309

第16章 软件项目管理 310

16.1软件项目管理概述 310

16.1.1软件项目管理的关注点 310

16.1.2软件项目管理的内容 313

16.2软件度量 316

16.2.1面向规模的度量 317

16.2.2面向功能的度量 318

16.2.3软件质量模型 321

16.2.4程序复杂性度量 327

16.2.5软件可靠性度量 329

16.3软件项目估算 330

16.3.1代码行、功能点和工作量估算 330

16.3.2 IBM估算模型 331

16.3.3 CoCoMo模型 332

16.3.4 Putnam模型 334

16.3.5软件可靠性估算 335

16.4项目进度管理 336

16.4.1人员与工作量之间的关系 337

16.4.2任务的分解与并行 337

16.4.3任务工作量的确定 338

16.4.4进度安排 339

16.5风险管理 344

16.5.1风险标识 344

16.5.2风险预测 345

16.5.3风险评估 345

16.5.4风险管理和监控 346

16.6软件项目的组织 348

16.6.1组织结构的模式 348

16.6.2程序设计小组的组织形式 348

16.6.3人员配备 350

16.7软件质量管理 351

16.7.1软件质量保证 352

16.7.2软件评审 353

16.8软件配置管理 355

16.8.1软件配置管理的基本概念 355

16.8.2软件配置管理的主要活动 356

16.9小结 359

习题 359

词汇索引 361

参考文献 371