《软件工程 第3版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:齐治昌等著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2012
  • ISBN:9787040324884
  • 页数:499 页
图书介绍:本书是国家精品课程配套主讲教材,第一版被列入“面向21世纪课程教材”,曾获全国优秀教材二等奖。第3版教材在保持前版教材写作风格的基础上,参照SWEBOK、SEEK以及教育部计算机科学与技术教学指导委员会2006年发布的“计算机科学与技术专业(软件工程方向)规范”对全书的知识体系进行重新组织。

第1章 软件与软件工程 1

1.1软件的概念 2

1.1.1软件与软件的组成 2

1.1.2软件生存周期 3

1.1.3软件的特点 3

1.1.4几类常用的软件 4

1.1.5软件的质量 7

1.1.6软件的安全与保护 9

1.2软件工程的概念 10

1.2.1软件工程的定义 10

1.2.2软件工程的发展 12

1.2.3软件工程的目标和原则 15

1.2.4软件开发的主要方法 17

1.3软件过程模型 18

1.3.1瀑布模型 19

1.3.2增量过程模型 22

1.3.3原型建造模型 23

1.3.4螺旋模型 24

1.3.5基于构件的过程模型 25

1.3.6通用软件过程模型 26

1.4敏捷软件开发原则和应用 29

1.4.1敏捷软件开发原则 29

1.4.2敏捷软件过程的极限编程实践 30

1.4.3敏捷软件开发过程的应用 31

1.5软件工程人的因素 32

1.5.1软件工程教育 32

1.5.2软件工程学科 33

1.5.3软件工程从业人员的职业道德 35

1.6软件工具及软件开发环境 35

1.6.1软件工具 36

1.6.2软件开发环境 39

1.7基于计算机的系统 40

1.7.1基于计算机的系统的概念 40

1.7.2基于计算机的系统的功能组件 43

1.7.3典型的基于计算机的系统 45

1.7.4基于计算机的系统的研制 46

小结 51

习题 52

第2章UML与RUP统一过程 53

2.1案例说明 53

2.2面向对象的软件开发方法 54

2.2.1面向对象的概念 54

2.2.2面向对象方法的优势 55

2.3 UML概述 56

2.4 RUP统一过程 58

2.4.1 RUP软件过程框架 58

2.4.2 RUP的5个阶段 60

2.4.3 RUP的9个工作流 62

小结 66

习题 66

第3章 需求工程概论 67

3.1软件需求的概念 68

3.1.1软件需求的分类 68

3.1.2软件需求的质量要素 68

3.2需求工程的预备知识 69

3.2.1与用户交流的技巧 69

3.2.2需求调查的基本方法 70

3.2.3需求建模的基本方法 72

3.3需求工程的过程模型 73

3.3.1需求工程中的活动 73

3.3.2迭代式的过程模型 75

3.3.3过程模型的裁剪 76

小结 79

习题 79

第4章 需求获取 83

4.1软件需求的初始表示 83

4.1.1用例 83

4.1.2用例图 84

4.1.3用例的表示 87

4.1.4类图 88

4.1.5活动图 92

4.2需求获取的过程模型 95

4.3定义软件问题 96

4.3.1标识客户和用户 96

4.3.2理解业务背景 98

4.3.3策划并实施需求调查 99

4.3.4定义软件系统的轮廓 100

4.4创建框架用例 102

4.4.1策划并实施用例调查 102

4.4.2以框架用例记录调查结果 103

4.4.3创建用例图 105

4.4.4整合并评审框架用例 106

4.5精化用例 106

4.5.1用例交互动作序列的描述方法 107

4.5.2分解或合并用例 111

4.5.3构建完整用例 112

4.5.4精化用例图 113

4.5.5精化业务规则及非功能需求 114

4.6评审用例模型 115

小结 115

习题 116

第5章 需求分析与验证 117

5.1分析模型的表示 117

5.1.1顺序图 118

5.1.2通信图 123

5.1.3状态图 125

5.1.4扩充机制 130

5.2需求分析的过程模型 133

5.3需求优先级分析 134

5.3.1确定需求项优先级 135

5.3.2编排用例分析的优先顺序 136

5.4用例分析 137

5.4.1精化领域概念模型 138

5.4.2设置分析类 138

5.4.3构思分析类之间的协作关系 141

5.4.4导出分析类图 145

5.5利用快速原型辅助需求分析 151

5.5.1分析与规划 152

5.5.2设计与实现 153

5.5.3检查与评审 153

5.5.4改进 153

5.6评审分析模型 153

5.7需求规约 154

5.8需求验证 156

小结 157

习题 157

第6章 软件设计概论 159

6.1软件设计的概念 159

6.1.1软件设计模型 159

6.1.2设计模型的质量要素 161

6.2软件设计的基本原则 161

6.2.1抽象与逐步求精 162

6.2.2模块化 165

6.2.3信息隐藏 168

6.2.4关注点分离 169

6.3软件设计的过程模型 171

6.3.1软件设计活动 171

6.3.2迭代式设计过程模型 172

6.3.3设计过程模型的裁剪 173

小结 173

习题 174

第7章 软件体系结构设计 175

7.1软件体系结构的概念 176

7.1.1何谓体系结构 176

7.1.2体系结构视图 177

7.2体系结构的表示 177

7.2.1包图 178

7.2.2构件图 180

7.2.3部署图 183

7.2.4对象图 186

7.3体系结构设计的过程模型 187

7.4体系结构设计模式 188

7.4.1何谓设计模式 188

7.4.2通用的体系结构模式 190

7.5概念设计 194

7.5.1关键需求辨识 194

7.5.2体系结构初创 195

7.6体系结构精化 198

7.6.1逻辑视图体系结构的精化 198

7.6.2开发视图体系结构的设计 208

7.6.3物理视图体系结构的设计 210

7.6.4运行视图体系结构的设计 211

7.6.5数据视图体系结构的设计 212

7.6.6软件体系结构文档 214

7.7基于构件的体系结构设计 215

7.7.1软件复用概述 215

7.7.2构件创立 216

7.7.3构件复用 218

7.8体系结构验证 219

小结 220

习题 221

第8章 人机交互设计 222

8.1以用户为中心的设计 222

8.1.1以用户为中心的设计理念 222

8.1.2人类信息处理模型 223

8.1.3以用户为中心的设计方法 224

8.2用户界面设计的基本原则 224

8.3用户界面设计模型的表示 225

8.4用户界面设计的过程模型 226

8.5用户及任务分析 227

8.5.1用户分析 227

8.5.2任务分析 228

8.6用户界面的概念设计 229

8.7用户界面流设计 232

8.8用户界面的精化 234

小结 236

习题 236

第9章 软件详细设计 238

9.1详细设计的任务与过程模型 238

9.2用例设计 240

9.2.1设计用例实现方案 241

9.2.2构造设计类图 243

9.2.3整合并优化用例实现方案 246

9.3子系统设计 246

9.3.1确立内部设计元素 246

9.3.2导出设计类图 248

9.3.3设计状态图与活动图 249

9.4构件设计 250

9.4.1为复用而设计构件 250

9.4.2设计构件的定制机制 250

9.4.3设计构件的组装机制 251

9.5类设计 252

9.5.1精化类间关系 252

9.5.2精化属性和操作 255

9.5.3设计状态图与活动图 258

9.6数据模型设计 260

9.6.1确定持久数据条目 260

9.6.2确定持久数据的组织结构 260

9.6.3确立持久数据操作 264

9.6.4优化持久数据操作的性能 264

9.7设计整合与验证 265

9.7.1设计规约 265

9.7.2设计验证 267

小结 267

习题 269

第10章 软件实现 271

10.1软件实现的任务 271

10.2软件实现过程 271

10.3软件实现与程序设计语言 273

10.3.1程序设计语言的演变和分类 273

10.3.2程序设计语言的基本机制 274

10.3.3程序设计语言的选择 275

10.4编程实现 276

10.4.1将编程作为问题求解 276

10.4.2程序设计范型 277

10.4.3编程标准 280

10.4.4编程风格 281

10.4.5极限编程与结对编程 282

10.5软件调试 283

10.5.1调试过程 283

10.5.2软件缺陷的分类 284

10.5.3调试方法 286

10.5.4调试技术 287

小结 289

习题 289

第11章 结构化软件开发 291

11.1面向数据流的分析方法 291

11.1.1数据流图与数据字典 291

11.1.2实体—关系图 293

11.1.3数据流图的实时系统扩充 294

11.1.4基于数据流的分析方法 297

11.2面向数据流的设计方法 304

11.2.1基本概念和设计过程 304

11.2.2变换分析 305

11.2.3事务分析 310

11.3实时系统设计 314

11.3.1实时系统性能要求 314

11.3.2实时系统设计要素 315

11.3.3实时系统设计方法 316

11.3.4设计实例 317

小结 320

习题 321

第12章 软件测试 324

12.1软件测试的概念 324

12.1.1软件测试的任务 324

12.1.2测试阶段的信息流程 325

12.1.3测试用例及其设计 325

12.1.4软件测试的原则 327

12.2软件测试的过程模型 327

12.3软件测试方法 329

12.3.1白盒测试 329

12.3.2黑盒测试 336

12.4软件测试活动及实施策略 338

12.4.1单元测试 338

12.4.2集成测试 341

12.4.3确认测试 344

12.4.4系统测试 345

12.5面向对象软件的测试 346

12.5.1类的测试 346

12.5.2交互测试 347

12.5.3继承的测试 347

小结 348

习题 348

第13章 软件维护 352

13.1软件维护与进化的概念 352

13.2软件维护的过程模型 353

13.2.1结构化与非结构化的维护 353

13.2.2维护的成本 354

13.2.3可能存在的问题 355

13.3可维护性 355

13.3.1影响可维护性的因素 356

13.3.2若干量化的测度 356

13.3.3保证可维护性的复审 356

13.4维护活动及实施策略 357

13.4.1维护组织 357

13.4.2维护的报告与评估 358

13.4.3维护工作流 358

13.4.4保存维护记录 360

13.4.5评价维护活动 360

13.5维护的副作用 360

13.6逆向工程与软件重构 362

13.6.1文档重构 362

13.6.2重组 363

13.6.3逆向工程 363

13.6.4再工程 365

小结 366

习题 366

第14章Web软件工程 368

14.1基于Web的软件及其特性 368

14.1.1相关概念 368

14.1.2 Web软件的特性 370

14.2 Web软件的需求工程 371

14.3 Web软件体系结构设计 372

14.4 Web界面设计 374

14.4.1为全球范围内不同的用户而设计 374

14.4.2面向客户端浏览器的界面设计 375

14.4.3导航设计 376

14.4.4美工设计 377

14.5 Web软件的详细设计 377

14.5.1表现层设计 377

14.5.2 Web层设计 379

14.5.3业务层设计 381

小结 382

习题 383

第15章 软件度量与估算 384

15.1软件测量、度量与估算的概念 384

15.1.1软件测量的意义和作用 384

15.1.2度量、测量和估算 385

15.1.3软件工程测量、度量与估算的基本内容 387

15.1.4软件工程测量估算的基本方法 388

15.2软件规模度量 390

15.2.1代码行度量 390

15.2.2功能点度量 392

15.2.3代码行度量与功能点度量的比较 394

15.2.4对象点度量 395

15.2.5软件复用的度量 397

15.3软件复杂性度量 398

15.3.1软件复杂性及度量原则 398

15.3.2控制结构的复杂性度量 399

15.3.3体系结构的复杂性度量 401

15.4软件质量度量 404

15.4.1软件质量的概念 405

15.4.2软件质量度量的三层次模型 406

15.4.3 Boehm、FURPS和ISO 9126度量模型 410

15.4.4软件质量的评价准则度量 414

155软件可靠性度量 418

15.5.1软件可靠性的概念 418

15.5.2软件修复和软件有效性 419

15.5.3软件可靠性估算 420

15.6制定软件度量大纲的方法和工具 423

15.6.1制定软件度量大纲的方法 423

15.6.2软件度量工具 424

小结 425

习题 425

第16章 软件项目管理与过程改进 427

16.1软件项目管理与过程模型 427

16.1.1软件项目管理的概念 427

16.1.2软件项目管理的过程模型 428

16.1.3软件项目管理的原则 428

16.1.4软件项目制品 430

16.2软件项目度量与估算 433

16.2.1软件项目分解 434

16.2.2采用代码行、功能点度量的工作量估算 436

16.2.3软件项目的生产率度量 438

16.2.4一般经验估算模型 438

16.2.5 COCOMO模型 439

16.2.6 COCOMO模型 444

16.2.7 Putnam模型 446

16.3风险分析 447

16.3.1风险标识 448

16.3.2风险估算 448

16.3.3风险评价和管理 450

16.4软件项目计划 454

16.4.1任务分配与工程进度 454

16.4.2任务分解与并行化 454

16.4.3工作量分布 455

16.4.4工程进度安排 456

16.5软件项目人员和组织 459

16.5.1软件项目人员 459

16.5.2软件项目团队 460

16.5.3软件项目的人员组织 461

16.5.4评审或估算专家 462

16.5.5软件项目的人员分布 462

16.6软件质量保证 463

16.6.1软件开发标准 463

16.6.2软件质量保证活动 465

16.6.3基于统计的软件质量保证 466

16.7软件配置管理 467

16.7.1软件配置管理的概念 468

16.7.2软件配置管理的任务 470

16.7.3软件配置管理标准 474

16.7.4配置管理工具 474

16.8软件过程改进 476

16.8.1 CMM的基本概念 477

16.8.2能力成熟度模型CMM 478

16.8.3能力成熟度模型集成CMMI 484

16.8.4 CMM和CMMI的选择和应用 489

小结 490

习题 490

参考文献 492