《软件工程-面向对象的视角》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)Eric J.Braude著;和华,刘海燕等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2004
  • ISBN:7505397850
  • 页数:600 页
图书介绍:本书强调“不要只是学软件工程,而是要去实际做软件工程”。本书从面向对象的视角出发,自始至终贯穿着一个角色扮演类视频游戏,帮助读者理解应用软件工程方法进行应用开发的全过程,详细地描述软件工程原理的应用,充分地展示了框架、用例、设计模式、状态行为的应用情况,还把面向对象和需求分析及测试联系了起来。本书内容严谨实用,组织结构清楚明了,行文简洁顺畅,适合于作为大中院校的软件工程相关专业的研究生教材,对希望提高自身知识水平和工作能力的软件开发职业人员也会有所帮助。

绪论 1

目录 1

第1章过程 19

第1部分:基础篇 20

1.1软件工程开发过程简介 20

1.1.1一个典型的软件工程路线图 21

1.2软件工程的过去和现在 22

1.2.1软件工程 22

1.2.2结构化和面向对象的方法产生的影响 23

1.2.3重用和构件 24

1.2.5可用性 26

1.3对过程、项目、产品和人的期望 26

1.2.4形式方法 26

1.3.1工件和角色 28

1.4可供选择的过程 28

1.4.1瀑布过程模型 28

1.4.2螺旋过程模型 30

1.4.3增量过程模型 31

1.4.4统一软件开发过程 32

1.4.5过程的对比 36

1.5文档 37

1.5.1文档简介 37

1.5.2文档标准 39

第2部分:提高篇 43

1.6质量 43

1.6.1度量 44

1.6.2质量保障过程 45

1.6.3黑盒和白盒技术 46

1.6.4检查简介 46

1.6.5软件质量保障计划(SQAP)的IEEE标准 51

1.6.6验证和确认 52

1.7文档管理 55

1.7.1文档管理简介 55

1.7.2一致性和单一来源文档 55

1.7.3配置管理 57

1.8能力评估简介 61

1.8.1个人软件过程(PSP)简介 61

1.8.2小组软件过程(TSP)简介 63

1.8.3能力成熟度模型(CMM)简介 64

1.8.4 PSP,TSP和CMM的关系 66

1.9总结 67

练习题 68

案例1:软件配置管理计划 70

案例2:软件质量保障计划第1部分(第2部分见第2章) 77

第2章项目管理 83

第1部分:基础篇 84

2.1项目管理简介 84

2.1.1项目管理的含义 84

2.1.2项目管理的要素 84

2.1.3主要变量:成本、性能、质量和进度 84

2.1.4项目管理过程的典型路线图 86

2.2.1专业精神 87

2.2管理项目的人员 87

2.2.2人员管理的重要性 88

2.2.3企业的视角 89

2.2.4管理层的视角 89

2.2.5工程师的视角 91

2.3组织人员的选择 91

2.3.1沟通管理 92

2.3.2职责结构的选择 93

2.3.3项目人员的来源 95

2.4识别和规避风险 96

2.4.1风险定义 96

2.4.2风险管理概论 97

2.4.3风险识别 98

2.4.4风险规避 99

2.5选择开发工具和支持 102

2.5.1过程方法 102

2.5.2工具 102

2.5.3抉择:开发还是购买 103

2.5.4语言选择 104

2.5.5文档 104

2.5.6支持服务 104

2.6创建时间表:概要的计划 105

第2部分:提高篇 107

2.7集成遗留系统 107

2.8成本估计:早期的计算 109

2.8.1简介 109

2.8.2无功能点过程的代码行数的估计 111

2.8.3功能点和代码行数 113

2.8.4功能点转换为代码行数 117

2.8.5功能点的进一步的例子 117

2.8.6关于功能点的参考资料 118

2.9 由代码行数估计工作量和工期 119

2.10小组软件过程 121

2.11软件项目管理计划 123

2.12项目管理的质量 125

2.12.1过程度量 126

2.12.2 IEEE 739-1989 SQAP:第2部分 127

2.13过程改进和能力成熟度模型 130

2.13.1改进组织使用的过程 130

2.13.2改进项目中正在使用的过程 131

2.14.1远距离小组和跨国小组 132

2.14项目管理技术和各种工具 132

2.14.2极限编程 133

2.14.3分类法决策 134

2.15项目管理过程总结 135

学生项目指南(SPG):Encounter案例的项目管理计划 136

SPG1.准备项目策划会议 136

SPG2.最初的项目策划会议 137

SPG3.完成项目管理计划 138

练习题 138

复习题 139

小组练习题 139

复习题提示 140

复习题答案 140

案例1:Encounter视频游戏SPMP 142

案例2:软件质量保障计划第2部分 152

第3章需求分析(一) 157

3.1需求分析简介 158

3.1.1需求分析的含义 158

3.1.2 C需求和D需求 158

3.1.3为什么必须书写需求 159

3.1.4典型的需求分析过程路线图 160

3.1.5需求分析的挑战和益处 162

3.2客户交互 163

3.2.1需求的来源 163

3.2.2识别风险承担者 164

3.2.3客户需求实例 165

3.2.4访谈和文档记录过程 166

3.3描述客户(C)需求 168

3.3.1操作的概念 168

3.3.2用例 168

3.3.3数据流图(为与客户沟通所用) 171

3.3.4状态变迁图(为与客户沟通所用) 173

3.3.5草拟用户界面和其他接口 174

3.3.6 C需求表述总结和指南 183

3.4应用于C需求的方法论、工具和网络 185

3.5快速原型、可行性研究和概念证明 185

3.5.1快速原型 186

3.5.2可行性研究 189

3.6.2 C需求分析对于项目计划的影响 190

3.6.1 C需求和项目规模 190

3.6更新项目以反映C需求分析 190

3.7未来发展方向和C需求总结 193

3.7.1未来发展方向 193

3.7.2总结 193

学生项目指南:Encounter案例的C需求 194

SPG1.准备 194

SPG2.访谈客户 196

SPG3.撰写软件需求规格说明书 197

SPG4.补充 198

SPG5.度量和总结 198

练习题 199

小组练习题 200

综合练习题 200

练习题提示 201

练习题答案 201

案例:Encounter视频游戏软件需求规格说明书(SRS)第1部分 201

第4章需求分析(二) 211

第1部分:基础篇 212

4.1详细(D)需求简介 212

4.1.1详细(D)需求的含义 212

4.1.2 D需求分析的典型路线图 213

4.2 D需求的类型 213

4.2.1功能性需求 214

4.2.2非功能性需求:性能需求 215

4.2.3非功能性需求:可靠性和易用性 215

4.2.4非功能性需求:出错处理 215

4.2.6非功能性需求:限制 216

4.2.5非功能性需求:接口需求 216

4.2.7反面需求 217

4.2.8需求类型与IEEE SRS标准IEEE 830-1993的对应 217

4.3 D需求的预期属性 217

4.3.1可追溯性 218

4.3.2可测试性和清晰性 222

4.3.3优先级 222

4.3.4完整性 224

4.3.5出错条件 225

4.3.6一致性 226

4.3.7总结详细需求的撰写过程 227

4.4序列图 228

4.5.1组织详细需求的重要性 231

4.5组织D需求的方式 231

4.5.2组织详细需求的方法 232

4.5.3基于用例组织详细需求 235

4.5.4基于类组织详细需求 236

4.5.5类的识别 238

4.5.6对给定的需求选择正确的类 243

4.5.7划分实体(实例)的类别 244

4.5.8连接到测试文档 244

第2部分:提高篇 245

4.6详细需求的质量 245

4.6.1 QA在D需求分析中的职责 245

4.6.2 D需求分析中的度量 246

4.6.3对D需求分析的检查 247

4.7在需求分析中使用工具和网络 252

4.8.1形式规格说明简介 253

4.8需求规格说明中的形式方法 253

4.8.2形式规格说明示例 255

4.8.3何时应该使用形式规格说明 259

4.8.4前置条件和后置条件 260

4.9 D需求过程对项目的作用 261

4.9.1对SPMP的作用 261

4.9.2 D需求的规模效应 261

4.10 D需求过程总结 262

学生项目指南:Encounter案例的D需求 262

SPG1.准备 263

SPG2.D需求分类 264

SPG3.撰写D需求 264

练习题 265

SPG4.补充:度量和总结 265

综合练习题 266

小组练习题 266

练习题提示 267

练习题答案 267

案例:Encounter视频游戏软件需求规格说明书(SRS)第2部分 267

第5章软件体系结构 285

第1部分:基础篇 286

5.1 介绍系统工程和软件体系结构 286

5.1.1宏图:系统工程 286

5.1.2 “软件体系结构”的含义 288

5.1.3体系结构选择的目标 288

5.1.4分解 289

5.2模型、框架和设计模式 292

第2部分:提高篇 292

5.2.1使用“模型” 293

5.2.2统一建模语言 294

5.2.3框架 296

5.2.4体系结构的分类 299

5.2.5设计模式Ⅰ:引言 299

5.2.6构件 301

5.3软件体系结构的方案及其类模型 301

5.3.1数据流结构 302

5.3.2独立构件 305

5.3.3虚拟机 314

5.3.4仓库(Repository)结构 318

5.3.5分层体系结构 320

5.3.6在同一应用系统中应用多种体系结构 322

5.3.7本节小结及选择体系结构的实际步骤 323

5.4用于体系结构的符号、工具和标准 324

5.4.1符号 324

5.4.2工具 324

5.4.3 IEEE/ANSI表述设计的标准 325

5.5选择体系结构的质量保证(QA) 325

5.5.1选择体系结构的质量 326

5.5.2从备选方案中选择一种体系结构 328

5.5.3使用用例来检查体系结构 331

5.5.4体系结构选择方案的评审 331

5.5.5软件体系结构的选择对SPMP的影响 332

5.6小结 333

SPG1.准备工作 334

学生项目指南:Encounter案例的体系结构 334

SPG2.选择体系结构 335

SPG3.小组会议(“初始设计的评审”) 336

SPG4.体系结构细化 337

SPG5.编制体系结构文档 338

练习题 338

复习题 338

一般练习题 338

小组练习题 339

问题解答 339

案例分析 340

Ⅰ.角色扮演游戏的体系结构框架 340

第1部分(第6章中的案例研究为第2部分) 343

Ⅱ.Encounter角色扮演类游戏的体系结构框架软件设计文档的 343

第6章详细设计 351

第1部分:基础篇 352

6.1详细设计简介 352

6.1.1“详细设计”的含义 352

6.1.2详细设计与用例、体系结构的关系 352

6.1.3“详细设计”过程的一个典型路线图 353

6.1.4统一开发过程中的设计 355

6.1.5面向接口的设计 356

6.1.6构件重用 357

6.2详细设计中的序列图和数据流图 358

6.2.1详细的序列图 359

6.2.2详细的数据流图 360

6.3类和函数的说明 362

6.3.1类不变量 363

6.3.2函数不变量、前置条件和后置条件 364

6.4算法说明 364

6.4.1流程图 365

6.4.2伪码 367

6.4.3何时使用流程图和伪码 368

第2部分:提高篇 369

6.5设计模式Ⅱ:详细设计的技巧 369

6.5.1详细设计中的创建型模式 370

6.5.2详细设计中的结构型设计模式 376

6.5.3详细设计中的行为型设计模式 382

6.7详细设计的标准、符号和工具 385

6.7.1关于详细设计的IEEE 890标准 385

6.6标准模板库 385

6.7.2详细对象模型中的统一建模语言(UML) 386

6.7.3基于源代码的工具:JavaDoc 386

6.8详细设计对项目的影响 388

6.8.1根据详细设计估计规模 389

6.9详细设计的质量 391

6.9.1详细设计的质量和度量指标 393

6.9.2详细设计的评审 394

6.10小结 396

练习题 397

复习题 397

一般练习题 397

小组练习题 397

案例分析 398

问题答案 398

Ⅰ.角色扮演视频游戏框架的详细设计续(软件设计文档的遗留部分) 399

Ⅱ.Encounter应用的详细设计续(软件设计文档的遗留部分) 401

第7章单元实现 413

7.1简介 414

7.1.1单元实现的含义 414

7.1.2实现的目标 414

7.1.3单元实现过程的典型路线图 414

7.1.4统一软件开发过程中的实现 416

7.1.5编程语言 418

7.2编程语言和风格 419

7.2.1实现的一般原则 420

7.2.2指针和引用 421

7.2.4异常 422

7.2.3函数 422

7.2.5错误处理 423

7.2.6其他经验 427

7.3.编程标准 427

7.3.1命名约定——以Java为例 427

7.3.2属性说明(源自【Am】) 429

7.3.3常量 429

7.3.4属性初始化 430

7.4可证明正确性的程序 431

7.5编程的工具和环境 435

7.6.实现的质量 436

7.6.1源代码的度量指标 438

7.6.3代码检查 440

7.6.2可定制的源代码度量指标 440

7.6.4个人的软件文档 442

7.7.实现过程总结 443

练习题 443

复习题 443

一般练习题 444

小组练习题 444

问题答案 444

案例分析 445

Ⅰ.更新SQAP 445

Ⅱ.更新SCMP附录:实现模型 446

Ⅲ.个人的软件文档(两部分之一) 446

Ⅳ.源代码(不包括测试代码):ENCOUNTERCHARACTER 448

第8章单元测试 455

8.1单元测试的介绍 456

8.1.1测试的目的 456

8.1.2单元测试的含义 457

8.1.3典型的单元测试路线图 458

8.2.测试类型 459

8.2.1黑盒测试、白盒测试及灰盒测试 460

8.2.2黑盒测试的等价划分 461

8.2.3黑盒测试的边界值分析 462

8.2.4白盒测试的语句覆盖 463

8.2.5白盒测试的决策覆盖 463

8.2.6基于断言的测试 465

8.2.7测试的随机性 467

8.3.规划单元测试 468

8.4方法测试的清单和实例 471

8.4.1方法的单元测试 471

8.4.2方法测试的实例 473

8.5类测试的清单及实例 481

8.5.1方法组合的测试实例 482

8.5.2面向属性的测试 483

8.5.3测试类不变量 483

8.5.4基于状态的测试 484

8.6总结 485

练习题 485

复习题 485

小组练习题 486

问题答案 487

一般练习题 487

案例分析:Encounter CharacterJAVA个人文件文档(PSD)的 488

第2部分 488

第9章系统集成、验证和确认 501

9.1 引言 501

9.1.1集成的含义 501

9.1.2验证、确认和系统测试 503

9.2集成过程 506

9.2.1 “集成”说明 506

9.2.2集成和系统测试过程的典型路线图 510

9.3测试过程 514

9.3.1集成测试 514

9.3.2测试工作人员和工件 516

9.3.3接口测试 517

9.3.4系统测试 519

9.3.5可用性测试 521

9.3.6回归测试 522

9.3.7验收测试 523

9.3.8安装测试 523

9.4编制集成和测试文档 523

9.4.1测试文档标准 523

9.4.2集成和测试文档的组织 525

9.5移交阶段 526

9.5.1Alpha版本和Beta版本 527

9.5.2移交迭代的路线图 528

9.6.1质量目标 530

9.6.2集成和系统测试的度量指标 530

9.6集成、验证和确认的质量 530

9.6.3集成和系统测试的检查 531

9.6.4在集成和系统测试中涉及到的质量保障工作 531

9.6.5系统集成和能力成熟度模型 532

9.7集成和系统测试工具 533

9.8 总结 536

练习题 536

复习题 537

小组练习题 537

一般练习题 537

复习题答案 538

案例分析 539

第10章维护 555

10.1 引言 555

10.1.1 “软件维护”的含义 556

10.1.2软件维护中存在的各种问题 557

10.1.3建立维护过程的典型路线图 559

10.2软件维护的不同类型 560

10.3维护技术 561

10.3.1影响分析 561

10.3.2逆向工程 562

10.3.3 工程再造 563

10.3.4原有应用系统 565

10.3.5更新文档 567

10.4 IEEE标准1219-1992 567

10.4.1维护问题的确定 568

10.4.2维护问题分析 569

10.4.3维护请求的设计 570

10.4.4维护请求的编码实现 574

10.5维护管理 575

10.6维护质量 578

10.6.1维护度量指标 578

10.6.2维护度量指标的应用 579

10.6.3易维护性 581

10.7总结 583

练习题 583

小组练习题 584

案例分析:Encounter的维护 585

维护请求4593 585

缩略语 593

附录A UML图示1 597

附录B UML图示2 599