《软件工程与项目实战》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:王柳人编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302458685
  • 页数:470 页
图书介绍:全书共分为四个篇章。第一篇是软件工程引论,全面介绍了软件工程的历史及现状,软件的含义和特点,软件工程的作用和软件过程的基本常用模型和软件项目管理;第二篇是传统软件工程方法,介绍了软件工程的理论知识,传统软件工程方法;第三篇是面向对象软件工程,主要介绍面向对象软件工程方法。第四篇是项目实战,以综合案例的方式指导学习者了解一个完整的案例分析设计过程。

第一篇 软件工程引论 3

第1章 软件工程概述 3

1.1 软件 3

1.1.1 软件的定义 3

1.1.2 软件的发展阶段 4

1.1.3 软件的特点 4

1.1.4 软件的分类 4

1.2 软件危机 5

1.2.1 软件危机的定义 5

1.2.2 软件危机的产生 6

1.2.3 软件工程的诞生 8

1.3 软件工程 8

1.3.1 软件工程的定义 8

1.3.2 软件工程研究的内容 8

1.3.3 软件工程的原则 9

1.3.4 软件工程方法学 10

1.4 软件生命周期 13

1.5 软件开发模型 14

1.5.1 瀑布模型 14

1.5.2 原型模型 15

1.5.3 增量模型 16

1.5.4 螺旋模型 17

1.5.5 快速应用开发模型 18

1.5.6 敏捷开发 19

1.5.7 混合模型 19

1.6 习题 20

第二篇 传统软件工程方法 23

第2章 可行性研究 23

2.1 可行性研究的任务 23

2.2 可行性研究的步骤 24

2.3 可行性论证报告的主要内容 26

2.4 系统流程图 26

2.4.1 符号 27

2.4.2 应用 28

2.5 成本效益分析 29

2.5.1 成本估计 29

2.5.2 费用估计 30

2.5.3 度量效益的方法 32

2.6 习题 33

第3章 软件需求分析 34

3.1 需求分析概述 34

3.1.1 软件需求的定义 35

3.1.2 产品和过程需求 35

3.1.3 功能性和非功能性需求 36

3.1.4 可量化的需求 36

3.1.5 系统需求和软件需求 36

3.2 需求分析的执行步骤 37

3.3 结构化分析方法 39

3.3.1 数据流图 40

3.3.2 数据字典 44

3.3.3 实体-关系图 47

3.3.4 层次方框图 50

3.3.5 Warnier图 50

3.3.6 IPO图 51

3.4 软件需求规格说明书 52

3.5 需求规格案例分析 54

3.6 习题 61

第4章 概要设计 63

4.1 概要设计的基本概念 63

4.1.1 概要设计的任务 64

4.1.2 概要设计的步骤 66

4.1.3 软件设计的原则 66

4.1.4 概要设计阶段应该提交的文档 67

4.1.5 结构化设计方法 67

4.1.6 概要设计工具 68

4.1.7 模块划分标准 68

4.2 结构化设计的过程 70

4.2.1 结构化程序设计的原则 70

4.2.2 面向数据流的设计方法 71

4.2.3 绘制结构图的步骤 72

4.2.4 事务分析 77

4.2.5 设计优化 78

4.3 面向数据结构的设计方法 79

4.3.1 Jackson设计方法 79

4.3.2 Warnier设计方法 87

4.4 接口设计 88

4.5 概要设计说明书 89

4.6 案例分析 91

4.7 习题 101

第5章 详细设计 102

5.1 详细设计的任务 102

5.2 详细设计的原则 103

5.3 人机界面设计 103

5.4 过程设计的工具 107

5.4.1 程序流程图 107

5.4.2 N-S图 111

5.4.3 问题分析图 113

5.4.4 判定表 115

5.4.5 过程设计语言 118

5.5 详细设计说明书 121

5.6 习题 133

第6章 软件编码 134

6.1 结构化程序设计 134

6.2 程序设计风格 136

6.3 程序设计语言 138

6.3.1 程序设计语言的分类 139

6.3.2 程序设计语言的特点 141

6.3.3 程序设计语言的选择 143

6.3.4 程序设计方法与工具 144

6.4 习题 145

第7章 软件测试 146

7.1 软件测试概述 146

7.1.1 软件测试的定义和目标 146

7.1.2 软件测试的原则 147

7.2 软件测试方法 147

7.2.1 静态测试 148

7.2.2 动态测试 149

7.2.3 黑盒测试 149

7.2.4 白盒测试 149

7.3 测试用例 149

7.3.1 测试用例的定义 149

7.3.2 使用测试用例的目的 150

7.3.3 测试用例的重要性 150

7.3.4 测试用例的应用意义和作用 150

7.4 黑盒测试用例设计 151

7.4.1 等价类划分法 152

7.4.2 边界值分析法 161

7.4.3 决策表法 171

7.4.4 因果图法 176

7.4.5 场景法 179

7.4.6 正交实验法 182

7.5 白盒测试用例设计 185

7.5.1 逻辑覆盖法 186

7.5.2 基本路径法 188

7.6 软件测试过程 193

7.6.1 单元测试 194

7.6.2 集成(组装)测试 196

7.6.3 系统测试 199

7.7 测试计划及测试报告 200

7.7.1 测试计划 200

7.7.2 测试报告 200

7.8 习题 201

第8章 软件维护 204

8.1 软件维护的概念 204

8.2 软件维护的影响因素 207

8.3 软件维护的步骤 207

8.4 软件可维护性 209

8.5 软件再工程 211

8.6 习题 215

第三篇 面向对象的软件工程 219

第9章 面向对象技术 219

9.1 面向对象技术概述 219

9.1.1 面向对象方法简介 219

9.1.2 面向对象的基本概念 220

9.2 面向对象的软件工程 228

9.3 UML建模 230

9.3.1 UML简介 230

9.3.2 用例图 234

9.3.3 类图 240

9.3.4 对象图 247

9.3.5 顺序图 248

9.3.6 协作图 255

9.3.7 活动图 257

9.3.8 状态机图 263

9.3.9 包图 267

9.3.10 构件图 272

9.3.11 部署图 275

9.4 习题 279

第10章 面向对象分析 281

10.1 面向对象分析的概念 281

10.2 系统分析面临的主要问题 282

10.3 面向对象分析方法的主要原则 283

10.4 面向对象的分析过程 284

10.4.1 分析过程概述 284

10.4.2 面向对象的分析过程的主要活动 284

10.5 对象和类的确定 286

10.5.1 确定对象 286

10.5.2 对象分类、建立类图的对象层 287

10.6 确定属性 289

10.6.1 对象的属性和服务 289

10.6.2 定义属性 290

10.7 定义服务 290

10.7.1 对象的状态与状态转换图 290

10.7.2 行为分类 291

10.7.3 发现服务的策略与启发 292

10.7.4 审查与调整 292

10.7.5 识别主动对象 292

10.7.6 服务的命名和定位 293

10.7.7 服务的详细说明 293

10.8 对象间通信 294

10.8.1 识别结构 294

10.8.2 识别主题 298

10.8.3 实例连接 299

10.9 习题 300

第11章 面向对象设计 301

11.1 面向对象设计的概念 301

11.2 面向对象设计的准则 302

11.3 启发规则 302

11.4 软件重用 303

11.5 系统分解 304

11.6 面向对象的基本设计方法 305

11.7 设计问题子系统 307

11.8 设计人机交互子系统 307

11.9 设计任务管理子系统 309

11.10 设计数据管理子系统 310

11.11 习题 311

第12章 面向对象的实现与测试 312

12.1 面向对象的实现 312

12.2 对象的创建 314

12.3 面向对象的软件测试 315

12.4 习题 323

第四篇 软件质量控制 327

第13章 软件质量与质量保证 327

13.1 软件质量的定义 327

13.2 影响软件质量的因素 328

13.3 软件质量保证策略 329

13.4 软件质量保证活动 330

13.5 软件评审 330

13.5.1 设计质量的评审内容 331

13.5.2 程序质量的评审内容 336

13.6 软件质量保证标准 338

13.7 软件质量评价 340

13.7.1 软件质量评价体系 340

13.7.2 软件质量评价标准 340

13.8 软件质量框架 341

13.8.1 高质量软件的特性 341

13.8.2 软件质量框架的组成 342

13.9 软件开发质量的定量描述 344

13.9.1 基本的定量估算 344

13.9.2 软件需求的估算 345

13.9.3 估算验收测试阶段预期发现的缺陷数 345

13.9.4 维护活动设计的度量 346

13.9.5 软件可用性的计算 346

13.9.6 基于植入故障方法的原有故障总数EN估算 346

13.10 习题 347

第14章 软件项目管理 348

14.1 软件项目概述 348

14.1.1 软件项目的特点 348

14.1.2 软件管理的功能 349

14.1.3 确定软件项目的工作范围 349

14.2 确定软硬件资源 350

14.2.1 人力资源 350

14.2.2 硬件 350

14.2.3 软件 351

14.3 人员的计划和组织 351

14.4 成本估计和成本控制 352

14.4.1 软件开发成本估计方法 352

14.4.2 专家估算法 353

14.4.3 成本估算模型 354

14.5 进度计划 356

14.5.1 软件工作的特殊性 356

14.5.2 各阶段工作量的分配 357

14.5.3 制定开发进度 357

14.6 软件配置管理 358

14.6.1 基线 359

14.6.2 软件配置项 360

14.6.3 软件配置管理过程 361

14.7 软件管理方案 364

14.8 软件能力成熟度模型 364

14.8.1 软件过程评估的必要性 364

14.8.2 能力成熟度模型的主要用途 366

14.8.3 能力成熟度模型的体系结构 366

14.8.4 能力成熟度模型的内部结构 371

14.8.5 能力成熟度模型的应用 374

14.9 习题 375

第五篇 软件开发工具及案例 379

第15章 软件开发工具与环境概述 379

15.1 软件开发工具概述 379

15.2 软件开发工具的功能 380

15.3 软件开发工具的特性 381

15.4 软件开发工具的分类 381

15.5 软件开发环境 382

15.6 常用开发环境 384

15.6.1 Windows操作系统 384

15.6.2 UNIX程序开发环境 384

15.6.3 Linux开发环境 388

15.7 软件开发工具与环境应用 390

15.8 CASE技术 392

15.9 习题 394

第16章 Visio 2010的应用 395

16.1 图形文档操作 395

16.1.1 创建新的图形文档 395

16.1.2 基于模板创建图形文档 396

16.1.3 保存图形文档 398

16.2 形状的使用 398

16.2.1 形状窗口 398

16.2.2 形状的概述 398

16.2.3 选择形状 399

16.2.4 移动形状 400

16.2.5 调整形状大小 401

16.2.6 旋转或翻转形状 401

16.2.7 对齐形状 402

16.2.8 绘制形状 402

16.3 构建各种图形 403

16.3.1 构建基本流程图 403

16.3.2 构建UML用例图 403

16.4 案例分析 403

16.4.1 案例1:绘制程序流程图 403

16.4.2 案例2:绘制UML用例图 406

16.5 习题 410

第17章 项目实例 411

17.1 图书管理系统综合案例 411

17.1.1 问题定义 411

17.1.2 可行性研究 411

17.1.3 需求分析 412

17.1.4 总体设计 418

17.1.5 详细设计 419

17.1.6 编码和单元测试 422

17.1.7 综合测试 424

17.1.8 软件维护 424

17.2 学生心理动态跟踪评价系统 425

附录A 计算机软件开发文档编写指南 443

附录A.1 可行性研究报告 443

附录A.2 项目开发计划书 447

附录A.3 软件需求说明书 449

附录A.4 概要设计说明书 451

附录A.5 详细设计说明书 453

附录A.6 测试计划 454

附录A.7 测试分析报告 456

附录A.8 开发进度月报 457

附录A.9 项目开发总结报告 458

附录B 软件工程综合测试题 460

参考文献 470