当前位置:首页 > 工业技术
软件工程原理
软件工程原理

软件工程原理PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:沈备军,陈昊鹏,陈雨亭编著;傅育熙主审
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2013
  • ISBN:9787040369069
  • 页数:540 页
图书介绍:本书从软件工程的本质出发,系统、全面地介绍软件过程、软件建模技术和方法、以及软件工程管理,同时介绍一些热点新技术和新方法。全书分为三大部分,共20章。第一部分为软件工程基础,讲述软件工程的基本原则、软件过程、以及从需求、设计、测试到维护的活动,共9章。第二部分为软件工程管理,讲述工程管理的重要知识域,包括软件项目管理、软件项目估算和计划、软件质量管理、软件风险管理、软件度量和人员管理,共6章。第三部分为高级主题,讲述当前热门的一些新技术和新方法,共5章。此外,本书还以一个汽车4S店业务管理系统为案例,阐述软件工程从需求、设计、测试到管理等各核心环节,使学生扎实地掌握理论知识,培养其解决实际问题的能力。本书可作为本科生、硕士生学习“软件工程”、“高级软件工程”、“软件过程”、“软件项目管理”等课程使用,同时对于从事软件开发、维护和管理的各类人员也可起到非常好的借鉴作用。
《软件工程原理》目录

第一部分 软件式工程基础 3

第1章 绪论 3

1.1软件 3

1.1.1软件的作用和特性 3

1.1.2软件的发展和面临的新挑战 4

1.1.3软件危机 6

1.2工程 8

1.2.1软件开发与艺术、科学和工程的关系 8

1.2.2工程的定义和特性 8

1.2.3工程的准则 9

1.3软件工程 9

1.3.1软件工程的概念和知识域 9

1.3.2软件工程的金三角 10

1.3.3控制软件开发的复杂性 13

1.3.4软件工程经济学 15

1.4案例概述 15

本章小结 16

参考文献 16

习题1 16

第2章 软件过程 17

2.1软件过程的概念 17

2.1.1软件过程的定义和作用 17

2.1.2软件过程的分类 17

2.1.3软件过程的核心元素 19

2.2软件生命周期模型 20

2.2.1瀑布模型 20

2.2.2增量模型 22

2.2.3演化模型 23

2.3统一软件过程 27

2.3.1阶段 27

2.3.2迭代 29

2.3.3过程规范 29

2.4敏捷过程 30

2.4.1敏捷过程的价值观和原则 31

2.4.2 XP 32

2.4.3 Scrum 35

2.4.4 MSF 37

2.5软件过程的选择、裁剪、评估和改进 37

2.5.1软件过程的选择和裁剪 37

2.5.2软件过程的评估 39

2.5.3软件过程的改进 43

本章小结 45

参考文献 45

习题2 45

第3章 软件建模 47

3.1模型和建模 47

3.1.1模型 47

3.1.2软件模型的3个层次:CIM、PIM和PSM 48

3.1.3软件建模方法 48

3.2结构化方法 49

3.2.1结构化分析 49

3.2.2结构化设计 55

3.3面向对象方法 62

3.3.1面向对象的基本概念 62

3.3.2面向对象的基本原则 63

3.3.3面向对象的分析和设计 65

3.3.4结构化方法和面向对象方法的比较 66

3.4基于构件的开发方法 67

3.4.1构件 68

3.4.2基于构件的软件开发 71

3.4.3构件开发 72

3.4.4构件管理 73

3.4.5应用开发和构件组装 74

3.4.6与面向对象方法的关系 75

3.5面向服务方法 76

3.5.1面向服务架构的基本概念 76

3.5.2面向服务建模的内涵 78

3.5.3面向服务建模的方法 80

3.6模型驱动开发方法 81

3.6.1从代码驱动到模型驱动 82

3.6.2元模型和MOF 83

3.6.3基于MDA的软件开发方法 85

3.7形式化方法 88

3.7.1形式化方法的概念 88

3.7.2形式化规约 88

3.7.3形式化开发 89

3.7.4形式化验证 89

3.8敏捷建模方法 90

3.8.1敏捷建模的原则 90

3.8.2敏捷建模的实践 92

本章小结 93

参考文献 93

习题3 94

第4章 需求工程 95

4.1软件需求面临的挑战 95

4.2需求工程的概念 97

4.2.1软件需求 97

4.2.2需求的层次 98

4.2.3优秀需求应具有的特性 99

4.2.4软件需求工程 100

4.3需求获取 101

4.3.1需求来源 101

4.3.2需求获取技术 102

4.4需求分析建模 103

4.4.1分析模型 103

4.4.2分析建模的准则 104

4.5需求定义和验证 104

4.5.1软件前景文档 104

4.5.2软件需求规约 108

4.5.3用户界面原型 110

4.5.4软件需求验证 110

4.6需求管理 112

4.6.1定义需求基线 112

4.6.2需求变更控制和版本控制 113

4.6.3需求跟踪 114

本章小结 115

参考文献 116

习题4 116

第5章 面向对象的分析建模 117

5.1面向对象的分析模型 117

5.1.1用例图 117

5.1.2活动图 118

5.1.3类图 120

5.1.4时序图 124

5.1.5通信图 126

5.1.6包图 126

5.2分析建模的步骤 127

5.3用例建模 128

5.3.1执行者的识别 128

5.3.2用例的识别 129

5.3.3用例图的构建 130

5.3.4用例规约的撰写 131

5.3.5用例模型的优化 135

5.4建立概念模型 140

5.5用例实现的识别 142

5.6分析类的识别 142

5.6.1 3种分析类 143

5.6.2识别边界类 143

5.6.3识别控制类 144

5.6.4识别实体类 145

5.7用例分析 146

5.7.1职责分配的通用原则 146

5.7.2时序图和通信图的构建 146

5.7.3类图的构建 147

本章小结 150

参考文献 150

习题5 150

第6章 设计工程 151

6.1设计工程概述 151

6.1.1软件设计过程 151

6.1.2软件设计模型 152

6.2软件设计原则 152

6.2.1抽象 153

6.2.2分解和模块化 153

6.2.3封装和信息隐藏 154

6.2.4高内聚和低耦合 154

6.3软件质量属性的设计策略 157

6.3.1可用性设计策略 157

6.3.2可修改性设计策略 159

6.3.3性能设计策略 161

6.3.4安全性设计策略 163

6.3.5可测试性设计策略 164

6.3.6易用性设计策略 165

6.4架构风格 166

6.4.1通用结构的架构风格 166

6.4.2分布式系统的架构风格 170

6.4.3交互式系统的架构风格 172

6.4.4自适应系统的架构风格 174

6.4.5其他架构风格 177

6.5设计模式 179

6.5.1创建型设计模式 180

6.5.2结构型设计模式 185

6.5.3行为型设计模式 191

6.6人机界面设计 200

6.6.1界面设计原则 200

6.6.2人机交互方式 201

6.6.3界面设计过程 202

6.6.4界面设计问题 203

本章小结 205

参考文献 205

习题6 206

第7章 面向对象的设计建模 207

7.1面向对象的设计模型 207

7.1.1设计建模过程 207

7.1.2构件图 208

7.1.3部署图 210

7.1.4状态机图 212

7.2架构设计 213

7.2.1 4+1架构视图 213

7.2.2逻辑视图设计 213

7.2.3进程视图设计 215

7.2.4开发视图设计 216

7.2.5物理视图设计 217

7.2.6场景视图设计 218

7.2.7视图选择 218

7.3包和子系统设计 220

7.3.1包设计原则 220

7.3.2子系统设计 223

7.4类设计 224

7.4.1类设计原则 224

7.4.2类设计过程 229

7.5持久化设计 232

7.5.1实体对象模型与数据库设计 232

7.5.2数据库设计 236

7.5.3持久化框架 240

本章小结 241

参考文献 241

习题7 241

第8章 软件测试 243

8.1软件测试概念 243

8.1.1软件测试定义 243

8.1.2软件测试原则 244

8.1.3软件可测试性 246

8.2软件测试策略 247

8.2.1软件测试层次 247

8.2.2软件质量属性测试 250

8.2.3其他软件测试策略 252

8.3软件测试技术 254

8.3.1测试技术分类 254

8.3.2基于直觉和经验的测试 256

8.3.3基于代码的测试 257

8.3.4基于规约的测试 261

8.3.5基于错误的测试 265

8.3.6基于模型的测试 267

8.3.7基于应用类型的测试 271

8.4软件测试过程 274

8.4.1测试计划 275

8.4.2测试设计 275

8.4.3测试开发 276

8.4.4测试执行 276

8.4.5测试评估 277

8.5自动化测试 277

8.5.1自动化测试的定义和优势 277

8.5.2自动化测试适用的场合 279

8.5.3自动化测试的误区 279

8.5.4测试工具 280

本章小结 281

参考文献 281

习题8 282

第9章 软件演化和软件维护 283

9.1软件演化 283

9.1.1软件演化的定义 283

9.1.2软件演化法则 284

9.2软件维护基础 284

9.2.1软件维护的重要性 284

9.2.2软件维护的概念和分类 285

9.3软件维护的关键问题 286

9.3.1技术问题 286

9.3.2管理问题 287

9.3.3维护成本估算 288

9.4软件维护过程与维护活动 289

9.4.1维护过程 289

9.4.2维护活动 290

9.5软件维护技术 291

9.5.1程序理解 291

9.5.2逆向工程 292

9.5.3再工程 293

本章小结 293

参考文献 293

习题9 294

第二部分 软件工程管理 297

第10章 软件项目管理 297

10.1项目和项目管理 297

10.1.1项目管理的基本概念 297

10.1.2项目管理的相关标准 298

10.1.3软件项目管理的特点 299

10.2项目管理的知识域和过程 299

10.2.1项目管理知识域 299

10.2.2项目管理过程 301

10.3软件项目从立项到收尾 304

10.3.1软件项目立项 304

10.3.2软件项目启动 308

10.3.3软件项目规划 309

10.3.4软件项目执行 310

10.3.5软件项目监控 311

10.3.6软件项目收尾 312

10.4软件项目经理的职责 312

本章小结 314

参考文献 314

习题10 314

第11章 软件项目估算和计划 315

11.1软件项目计划 315

11.1.1软件项目计划的内容 315

11.1.2软件项目规划的关键活动 317

11.2软件估算 318

11.2.1估算对项目的影响 318

11.2.2估算原则 319

11.2.3估算方法 320

11.2.4软件规模估算 323

11.2.5大致估算 328

11.3进度安排 332

11.3.1关键路径法 333

11.3.2进度计划 334

11.3.3战胜进度压力 335

11.4挣值管理 337

11.4.1 3个基本参数 337

11.4.2 4个评价指标 338

11.4.3两个预测变量 339

本章小结 340

参考文献 340

习题11 340

第12章 软件质量管理 342

12.1软件质量概念 342

12.1.1软件质量定义 342

12.1.2软件质量模型 342

12.1.3软件质量的价值和成本 344

12.2软件质量管理 345

12.2.1质量管理的发展 345

12.2.2软件质量管理的内容 346

12.3项目级软件质量管理 347

12.3.1软件质量计划 347

12.3.2验证和确认 348

12.3.3质量分析与评价 351

12.3.4软件配置管理 353

12.4组织级软件质量管理 359

12.4.1质量管理体系标准ISO 9000 360

12.4.2质量管理体系的建立 362

12.4.3质量管理体系的持续改进 363

12.5软件质量管理技术 363

12.5.1静态技术 364

12.5.2动态技术 364

12.6软件评审 365

12.6.1评审方法分类 366

12.6.2审查 370

12.6.3评审的陷阱 372

12.7软件审核 374

12.7.1审核分类 374

12.7.2审核过程 374

本章小结 375

参考文献 375

习题12 376

第13章 软件风险管理 377

13.1风险管理概念 377

13.1.1风险的定义和分类 377

13.1.2风险管理的成本和收益 378

13.1.3被动和主动的风险策略 378

13.2风险管理的成熟度模型 379

13.3风险管理过程 380

13.3.1风险识别 381

13.3.2风险分析与排序 382

13.3.3风险管理计划制定 384

13.3.4风险跟踪和报告 385

13.3.5风险控制 386

13.3.6从风险中学习 386

13.4十大软件风险 386

13.4.1需求误解 387

13.4.2缺少上层的支持 387

13.4.3需求变更失控 387

13.4.4未能合理管理客户期望值 388

13.4.5不现实的进度计划和成本预算 388

13.4.6质量低劣 390

13.4.7人员薄弱 391

13.4.8技术和架构风险 391

13.4.9软件外包失败 391

13.4.10缺乏足够的用户参与 392

本章小结 392

参考文献 392

习题13 393

第14章 软件度量 394

14.1软件度量的概念 394

14.1.1度量目的 394

14.1.2度量定义和分类 394

14.1.3度量原则 395

14.2软件产品度量 396

14.2.1产品结构度量 396

14.2.2产品质量度量 398

14.3软件过程度量 399

14.3.1过程度量的特性 399

14.3.2常用过程度量方法 400

14.3.3过程稳定性 401

14.3.4过程能力 402

14.3.5过程基准比对 404

14.4软件度量过程 404

14.4.1建立度量目标和选择度量 405

14.4.2定义度量规程 407

14.4.3获取度量数据 407

14.4.4分析度量数据 408

14.4.5存储和交流度量结果 411

本章小结 411

参考文献 411

习题14 412

第15章 软件人员管理 413

15.1软件人员管理模型 413

15.1.1软件人员的特点 413

15.1.2 PCMM 414

15.2激励 416

15.2.1激励理论 416

15.2.2开发人员的激励因素 420

15.2.3最重要的激励因素 421

15.3团队建设 425

15.3.1高业绩团队 425

15.3.2团队建设方法 427

15.3.3团队建设的5个阶段 428

15.4团队模式 428

15.5沟通 432

15.5.1有效的沟通方法 432

15.5.2冲突管理 432

本章小结 433

参考文献 433

习题15 433

第三部分 高级主题 437

第16章 软件产品线工程 437

16.1软件产品线工程的提出 437

16.2软件产品线工程的3个基本活动 439

16.2.1软件产品线工程的组成 439

16.2.2领域工程和应用工程的关系 440

16.3产品线的可变性 441

16.4领域工程 444

16.4.1领域 444

16.4.2领域分析 446

16.4.3领域设计 451

16.4.4领域实现 454

16.5领域工程的代表性方法 455

16.5.1 FODA 455

16.5.2 FORM 457

16.5.3 Software Product Lines 457

16.5.4 FAST 457

16.5.5 PuLSE 458

16.5.6 FeatuRSEB 458

16.5.7青鸟领域工程方法和FODM 459

本章小结 459

参考文献 459

习题16 460

第17章 面向服务的软件开发 461

17.1面向服务架构概述 461

17.1.1 SOA产生的动因 461

17.1.2 SOA与Web Services 462

17.1.3 SOA对应用系统的分析与设计的影响 463

17.1.4 SOA对应用系统的开发与部署的影响 464

17.2面向服务的分析与设计 465

17.2.1业务建模的方法 465

17.2.2企业服务总线 466

17.2.3服务组织方式 468

17.2.4业务服务到软件服务的映射 469

17.2.5服务粒度的确定 470

17.3面向服务的系统实现 471

17.3.1服务的实现 471

17.3.2 Web 2.0客户端 472

17.3.3服务的调试与测试 472

本章小结 473

参考文献 473

习题17 474

第18章 形式化软件开发 475

18.1形式化方法的概念 475

18.2形式化规约 476

18.2.1数学基础 476

18.2.2形式化规约语言 480

18.2.3 Z语言 480

18.3形式化验证 484

18.3.1定理证明 485

18.3.2模型检验 486

18.4软件开发过程中的形式化方法 486

18.4.1考虑因素 486

18.4.2在软件过程中引入形式化方法的策略 490

18.4.3形式化方法的10条戒律 492

18.5形式化方法的应用案例 493

18.5.1案例介绍 493

18.5.2具体案例:卡西尼号探测器故障保护软件 495

18.6形式化方法的争议及未来 497

本章小结 498

参考文献 498

习题18 499

第19章 软件安全工程 500

19.1软件安全基本概念 500

19.1.1信息安全基本概念 500

19.1.2软件确保与软件安全工程 501

19.2安全软件开发过程 503

19.3软件安全需求 505

19.3.1软件安全需求工程SQUARE 505

19.3.2合规性需求 506

19.4安全的软件架构与设计 507

19.4.1安全原则与目标 507

19.4.2安全模式与安全设计模式 509

19.4.3架构风险分析 513

19.5安全编码 517

19.5.1安全编码原则 517

19.5.2安全编码规范 519

19.5.3代码的静态分析 520

19.6安全测试与应急响应 520

19.7安全的项目管理 521

本章小结 522

参考文献 522

习题19 524

第20章 软件工程职业化建设和职业道德规范 526

20.1软件工程的职业化建设 526

20.1.1走向一个成熟的软件工程职业 526

20.1.2职业化建设的框架 527

20.1.3软件工程职业化建设的进展 528

20.1.4职业化建设的3个层次 531

20.2软件工程职业道德规范 532

20.2.1软件工程职业道德规范和职业实践标准 532

20.2.2职业道德规范的履行 534

20.2.3软件工程师的职业责任 535

本章小结 536

参考文献 536

习题20 537

附录IEEE软件工程知识体系(SWEBOK) 538

相关图书
作者其它书籍
返回顶部