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

  • 购买积分:15 如何计算积分?
  • 作  者:杨文龙,古天龙编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2004
  • ISBN:7121003120
  • 页数:482 页
图书介绍:本书是1997年出版的高等学校规划教材《软件工程》的修订版。全书共5篇10章,系统地介绍了软件、软件工程与软件工程模式,软件开发方法,质量与质量保证,计划与管理,工具与环境等最新内容。各章附有习题。读者将从本书中纵览软件工程发展的全貌,了解和掌握软件工程各领域重要的原理、方法、技术、应用和关系,为研究软件工程的理论和从事软件工程实践,以及更深入地学习打下良好的基础。

第1篇 软件、软件工程与软件工程模式 1

第1章 软件和软件工程 1

1.1软件 1

1.1.1软件的含义 1

1.1.2软件的特点 2

1.1.3软件的种类 3

1.1.4软件危机 5

1.2软件工程 6

1.2.1软件工程的定义 6

1.2.2软件工程的发展和问题 6

第2章 软件工程模式 8

2.1瀑布模型 8

2.2原型开发模型 11

2.3螺旋模型 13

2.4四代技术 14

2.5混合模型 15

2.6面向对象生存期模型 17

2.7统一的软件开发过程 18

2.7.1用例驱动 20

2.7.2以体系结构为中心 20

2.7.3迭代和增量开发 21

2.8基于构件的软件开发 22

2.8.1软件构件技术 23

2.8.2软件体系结构 23

2.8.3领域工程 23

2.8.4再生工程 23

2.8.5开放系统技术 24

2.8.8非技术因素 25

2.8.7 CASE技术 25

2.8.6软件开发过程 25

第2篇 软件开发方法 28

第3章 结构化开发方法 28

3.1需求与需求分析 28

3.1.1分析任务和分析员 28

3.1.2问题域 30

3.1.3沟通技术 31

3.1.4分析原理 32

3.1.5规格说明 34

3.1.6规格说明评审 36

3.2结构化分析 38

3.2.1基本符号及其扩充 38

3.2.2结构化分析方法 46

3.2.3数据字典 52

3.3设计原理 55

3.3.1软件设计的重要性 56

3.3.2设计过程 56

3.3.3设计基本原理 58

3.3.4模块化设计 66

3.3.5数据设计 72

3.3.6体系结构设计 74

3.3.7过程设计 76

3.3.8设计规格说明 96

3.4面向数据流的设计 97

3.4.1结构图 98

3.4.2数据流的类型 99

3.4.3从数据流图到程序结构图的转换 100

3.4.4设计步骤 104

3.4.5设计的后处理 105

3.5面向数据结构的设计 106

3.5.1 Jackson的结构图解和图解逻辑 107

3.5.2 Warnier-Orr图 109

3.5.3 Jackson开发方法 110

3.5.4 Warnier-Orr开发方法 121

3.6原型开发 126

3.6.1原型的定义 126

3.6.2原型开发的应用 127

3.6.3原型开发的分类 128

3.6.4原型开发的活动 129

3.6.5原型开发的技术 130

4.1面向对象分析与设计 144

4.1.1面向对象方法的基本概念和特征 144

第4章 面向对象开发方法 144

4.1.2面向对象分析 147

4.1.3面向对象设计 155

4.2 Booch的面向对象方法 161

4.2.1方法 162

4.2.2步骤 165

4.3 OMT对象建模技术 166

4.3.1 OMT方法使用三种模型 166

4.3.2设计过程的三个步骤 167

4.4统一的建模语言UML 168

4.4.1 UML的主要特点 169

4.4.2 UML的结构 169

4.4.3 UML的模型图 172

4.4.4系统体系结构 195

4.5 Rational统一过程 197

4.5.1动态结构 198

4.5.2静态结构 202

4.5.3以体系结构为中心的过程 206

4.5.4用例驱动的过程 208

4.5.5过程工作流 210

4.6实例:课程登记系统 221

4.6.1问题描述 222

4.6.2分析 222

4.6.3设计 225

第5章 形式化开发方法 236

5.1 Petri 网 241

5.1.1 Petri网的定义 241

5.1.2 Petri网的基本原理 242

5.1.3建模实例 246

5.1.4特性分析 252

5.1.5 Petri网的特性分析方法 256

5.1.6改进Petri网及其应用 270

5.1.7时间网和随机网 275

5.1.8面向对象程序设计方法 282

5.1.9实例:应用Petri网实现资源共享 287

5.2时态逻辑 291

5.2.1线性时态逻辑 292

5.2.2计算树逻辑 293

5.3 Z方法 297

5.3.1模式的基本概念 297

5.3.2模式运算 299

5.3.3模式复合 303

5.3.4操作模式 304

5.3.5实例:图书馆数据库管理 306

6.1.2软件质量因素 318

6.1.1软件质量定义 318

第3篇 质量与质量保证 318

第6章 软件质量与质量保证 318

6.1软件质量 318

6.2软件质量保证 324

6.2.1质量保证策略 324

6.2.2软件质量保证活动 324

6.3技术方法的选用 325

6.3.1采用或不采用软件工程方法 325

6.3.2开发过程的选用 326

6.3.3开发方法、语言和工具的选用 327

6.4正式技术评审的实施 331

6.4.1软件缺陷的费用影响 332

6.4.2缺陷的扩大和排除 332

6.4.3正式技术评审 332

6.5.1 ISO/IEC的软件工程标准体系结构框架 336

6.5标准的执行 336

6.5.2 ISO/IEC 12207和ISO/IECTR 15504 338

6.5.3 ISO 9000——3 343

6.5.4 CMM 344

6.6修改的控制 348

6.6.1软件配置管理 348

6.6.2基线 348

6.6.3标识 349

6.6.4修改控制 350

6.6.5配置审计 351

6.6.6状态报告 351

6.7度量 351

6.7.1传统软件的量度 352

6.7.2面向对象软件的量度 362

6.8 SQA小组的活动 368

6.9实例:重大失控项目的经验与教训 369

6.9.1可预测的和意外的失控 369

6.9.2 4个项目失控案例 370

第7章 软件测试 378

7.1结构化软件测试 378

7.1.1软件测试的目标 378

7.1.2软件测试的原则 380

7.1.3测试用例设计 381

7.1.4软件测试的过程和步骤 393

7.1.5纠错技术 403

7.2.1 评审(OOA和OOD) 405

7.2.2测试 405

7.2 OO软件测试 405

7.2.3测试用例设计 406

7.3实例:微软测试工作简介 410

7.3.1微软开发团队 410

7.3.2对软件测试的理解 411

7.3.3关于Bug 412

7.3.4软件测试方法和辅助工具 413

7.3.5相关测试文档 415

7.3.6如何与项目经理和开发人员沟通 417

第8章 软件维护 420

8.1软件维护的分类 420

8.2软件维护的特点 421

8.2.1软件工程与软件维护的关系 421

8.2.2维护费用 421

8.3软件的可维护性 422

8.2.3维护中的问题 422

8.3.1控制因素 423

8.3.2定量度量 423

8.3.3评审 424

8.4软件的维护任务 424

8.4.1维护机构 424

8.4.2编写报告 425

8.4.3维护流程 425

8.4.4记录保存 427

8.4.5评价 428

8.5软件维护的副作用 428

8.5.1修改代码的副作用 428

8.5.3修改文档的副作用 429

8.5.2修改数据的副作用 429

8.6维护“奇异码” 430

8.7预防性维护 430

第4篇 计划与管理 433

第9章 软件开发计划与管理 433

9.1软件的目的和工作范围 433

9.2资源 434

9.2.1人力资源 434

9.2.2可重用软件资源 435

9.2.3环境资源 436

9.3成本估算 436

9.3.1成本估算方法 436

9.3.2经验成本估算模型 438

9.3.3软件生产率数据 441

9.3.4基于代码行(LOC)的成本估算方法 442

9.3.5基于过程的成本估算方法 444

9.4风险分析与管理 445

9.4.1软件风险 445

9.4.2风险识别 445

9.4.3风险设计 446

9.4.4风险评价 448

9.4.5风险的缓解、监控和管理 449

9.5进度安排与跟踪 450

9.5.1交付日期的确定 450

9.5.2进度安排的基本原则 451

9.5.3软件工作的特殊性 452

9.5.4工作量分配 452

9.5.5进度安排 453

9.5.6时间表和项目表 454

9.6软件项目组 455

9.5.7进度跟踪 455

9.7项目计划 456

第5篇 工具与环境 460

第10章 软件开发工具与环境 460

10.1软件开发工具 460

10.2软件开发环境 461

10.2.1按解决的问题分类 461

10.2.2按现有软件开发环境的演化趋向分类 462

10.2.3按集成化程度分类 463

10.3计算机辅助软件工程 464

10.3.1I-CASE集成方式 465

10.3.2I-CASE框架结构 466

10.3.3 I-CASE中心库 468

10.4实例:Ada编程支持环境 471

参考文献 481