软件工程方法与实践

副标题:无

作   者:窦万峰等编著

分类号:

ISBN:9787111267584

微信扫一扫,移动浏览光盘

简介

  软件工程学将计算机科学理论与现代工程方法论相结合,着重研究软件过程模型、分析与设计方法、软件工程开发与管理技术和工具,是指导软件生产和管理的一门新兴的、综合性的应用科学。《软件工程方法与实践》分别从传统的结构化开发范型和面向对象开发范型两个方面,把软件工程的概念和理论知识融入到实践当中,通过丰富的案例分析与设计,更深入地理解软件开发中各个阶段的技术、方法和管理过程。《软件工程方法与实践》包括软件工程与过程、软件需求分析与建模、软件设计、软件测试与维护和软件工程管理五个部分,共16章,深入介绍了软件开发“工程化”思想。   《软件工程方法与实践》适合作为高等院校软件工程课程的教材,即适用于计算机专业的学生,也适用于其他非计算机专业从事软件开发与应用及管理的专业学生和技术人员学习的教材。《软件工程方法与实践》还可以成为从事软件开发人员必备的参考书。   《软件工程方法与实践》将软件工程原理和实践分析相结合,以案例项目为主线贯穿全书,介绍了软件工程涉及的概念。原理和方法,按照软件工程阶段要求建立系统模型,包括分析。设计、测试、管理等。在每个阶段安排能够体现该阶段原理和思想的案例,全面介绍软件工程的要点,使学生能够深入理解软件工程的原理。方法和技术并充分认识开发过程和迭代工作的重要性,同时进一步了解企业软件工程运用的规范和要求,为日后工作中出色完成项目任务和迭代任务打下坚实的基础。   《软件工程方法与实践》特点   ·坚持基本理论适度,强调工程实践和应用环节,把软件工程的概念和理论知识融入实践之中。   ·以”案例”为驱动,以实践教学为基础,提供5个典型案例支持,不同的案例介绍和分析层次充分体现技术的适用性和方法的实用性。   ·注重教学资源的配套,为任课教师配有电子教案。   ·配套教材《软件工程实验教程》,引导学生学习软件生命周期各阶段所用到的CASE工具,包括软件文档标准与规范。软件分析与设计、软件测试和软件项目管理四个部分,共设计了15个实验,培养学生实践创新能力和专业技能。  

目录

前言.

教学建议

第一部分 软件工程与过程

第1章 概述 2

1.1 软件工程的基本概念 2

1.1.1 软件的角色和特性 2

1.1.2 软件演化 3

1.1.3 软件神化和危机 4

1.1.4 软件危机的解决途径 4

1.2 工程化思想 5

1.2.1 工程化所涉及的范围 5

1.2.2 工程化管理思想 5

1.3 软件工程两大范型 5

1.4 软件工程思想与基本原理 6

1.4.1 软件工程基本原理 7

1.4.2 软件工程思想 7

1.5 软件工程活动 9

1.5.1 软件开发活动 9

1.5.2 软件项目管理活动 9

1.5.3 软件过程改进活动 10

.1.6 小结 10

习题 10

第2章 软件过程 11

2.1 软件过程概述 11

2.1.1 过程方法与工具 11

2.1.2 软件过程框架 12

2.1.3 软件过程模型 12

2.2 软件生命周期 12

2.3 能力成熟度模型集成 13

2.4 敏捷过程 16

2.4.1 什么是敏捷过程 17

2.4.2 极限编程 18

2.4.3 自适应软件开发 20

2.4.4 动态系统开发 21

2.4.5 特征驱动开发 21

2.5 软件工程实践 22

2.5.1 概念 22

2.5.2 沟通实践 23

2.5.3 计划实践 23

2.6 小结 24

习题 24

第3章 软件过程模型 25

3.1 瀑布模型 25

3.2 增量模型 26

3.2.1 增量构造模型 27

3.2.2 演化提交模型 27

3.3 螺旋模型 27

3.4 协同开发模型 28

3.5 面向对象过程模型 29

3.5.1 面向对象概念 29

3.5.2 统一过程模型 30

3.5.3 组件集成模型 33

3.6 面向方面的软件开发 34

3.7 小结 36

习题 36

第4章 案例研究 37

4.1 案例研究中涵盖的内容 37

4.2 案例1:出卷系统 37

4.3 案例2:短信系统 37

4.4 案例3:pos机系统 38

4.5 案例4:atm机系统 38

4.6 案例5:图书馆系统 38

4.7 小结 38

习题 38

第二部分 软件需求分析与建模

第5章 软件需求分析过程 40

5.1 什么是软件需求 40

5.1.1 功能需求 40

5.1.2 非功能需求 40

5.1.3 领域需求 41

5.2 需求分析过程 43

5.2.1 初步沟通 43

5.2.2 导出需求 43

5.2.3 分析和精化 44

5.2.4 可行性研究 44

5.2.5 协商与沟通 44

5.2.6 规格说明 44

5.2.7 需求验证 46

5.2.8 需求变更管理 46

5.3 启动分析过程 46

5.3.1 确认利益相关者 46

5.3.2 识别视点 47

5.3.3 协同工作 47

5.3.4 首次提问 47

5.4 非形式化需求分析技术 47

5.4.1 会谈 47

5.4.2 调查表 49

5.4.3 场景分析 49

5.5 案例分析 49

5.5.1 出卷系统 49

5.5.2 pos机系统 50

5.5.3 图书馆系统 50

5.5.4 短信系统 51

5.5.5 atm机系统 51

5.6 小结 51

习题 52

第6章 结构化分析建模 53

6.1 分析模型概述 53

6.1.1 分析模型元素 53

6.1.2 分析模式 54

6.1.3 目标与原理 54

6.2 结构化需求分析 54

6.2.1 结构化分析方法 55

6.2.2 结构化分析模型 55

6.3 面向数据的建模方法 56

6.3.1 实体 56

6.3.2 属性 56

6.3.3 关系 57

6.3.4 基数 57

6.3.5 案例分析 57

6.4 面向数据流的建模 58

6.4.1 数据流图 58

6.4.2 数据字典 60

6.4.3 状态转换图 61

6.4.4 加工逻辑的描述 61

6.5 案例分析 64

6.5.1 出卷系统 64

6.5.2 图书馆系统 66

6.5.3 pos机系统 68

6.5.4 短信系统 69

6.6 小结 71

习题 71

第7章 面向对象分析 73

7.1 面向对象建模 73

7.1.1 面向对象模型 73

7.1.2 统一建模语言(uml) 75

7.2 用例建模 76

7.2.1 编写用例 76

7.2.2 开发活动图 81

7.2.3 泳道图 82

7.3 建立领域模型 82

7.3.1 识别分析类 83

7.3.2 用例实现分析 84

7.3.3 关联与依赖 86

7.3.4 识别属性和操作 86

7.4 行为建模 87

7.4.1 系统顺序图 87

7.4.2 操作契约 88

7.4.3 顺序图与协作图 89

7.4.4 状态图 90

7.5 案例分析 90

7.5.1 pos机系统 91

7.5.2 atm机系统 92

7.5.3 短信系统 96

7.6 小结 98

习题 98

第三部分 软件设计与建模

第8章 软件设计 100

8.1 软件设计概述 100

8.1.1 软件设计过程和设计质量 100

8.1.2 概要设计说明书 101

8.1.3 详细设计说明书 102

8.2 软件模块化设计 103

8.2.1 软件模块化 103

8.2.2 抽象 104

8.2.3 体系结构 104

8.2.4 信息隐蔽 104

8.2.5 模块独立性 105

8.2.6 逐步求精 106

8.2.7 重构 106

8.3 软件结构 106

8.3.1 软件结构图 106

8.3.2 模块化设计的优化 107

8.4 软件系统结构模型 108

8.4.1 系统构成模型 108

8.4.2 系统控制模型 110

8.5 体系结构模式 111

8.6 小结 111

习题 111

第9章 结构化设计方法.. 113

9.1 结构化设计方法概述 113

9.1.1 概要设计 113

9.1.2 详细设计 113

9.2 数据流类型 114

9.2.1 变换型数据流 114

9.2.2 事务型数据流 114

9.2.3 混合型数据流 114

9.3 数据流设计方法 115

9.3.1 数据流映射步骤 115

9.3.2 变换流设计 115

9.3.3 事务流设计 116

9.3.4 综合分层的数据流设计 117

9.4 面向数据的设计 118

9.4.1 jackson图 118

9.4.2 jsd方法设计步骤 118

9.4.3 jsd举例分析 119

9.5 结构化程序设计方法 121

9.5.1 基本概念 121

9.5.2 结构化程序设计工具 122

9.6 案例分析 126

9.6.1 出卷系统 126

9.6.2 图书馆系统 129

9.7 小结 131

习题 131

第10章 面向对象设计 134

10.1 面向对象设计过程 134

10.1.1 系统模型描述 134

10.1.2 逻辑架构和包图 134

10.1.3 对象识别 135

10.1.4 设计模型 135

10.1.5 对象接口描述 137

10.2 构件级设计 137

10.2.1 构件类 137

10.2.2 构件级设计步骤 138

10.2.3 基于类的构件设计原则 139

10.3 设计模式 140

10.3.1 设计模式概述 140

10.3.2 基于职责的设计 140

10.4 面向对象详细设计 144

10.4.1 领域模型精化 144

10.4.2 逻辑架构精化 147

10.4.3 包设计 149

10.4.4 精化的交互图 150

10.4.5 精化的类图 152

10.4.6 持久性设计 154

10.4.7 部署图与构件图 156

10.5 案例分析 157

10.5.1 pos机系统 157

10.5.2 短信系统 158

10.5.3 atm机系统 159

10.6 小结 163

习题 164

第11章 软件实现 165

11.1 编码语言 165

11.1.1 编码语言的分类 165

11.1.2 编码语言特性 165

11.1.3 面向对象语言的特点 166

11.1.4 编码语言的选择 167

11.2 编码风格 168

11.2.1 编码的基本原则 168

11.2.2 面向对象编码原则 169

11.3 人机界面设计 171

11.3.1 人机界面分析和设计 171

11.3.2 人机界面设计步骤 173

11.3.3 人机界面设计指南 174

11.4 案例分析 175

11.4.1 pos机系统 175

11.4.2 短信系统 177

11.4.3 出卷系统 191

11.5 小结 194

习题 194

第四部分 软件测试与维护

第12章 软件测试 196

12.1 软件测试的任务 196

12.1.1 验证与确认 196

12.1.2 软件测试的组织形式 197

12.1.3 软件测试的目的与原则 197

12.1.4 完成标准 199

12.2 软件测试过程模型 200

12.2.1 v模型 200

12.2.2 w模型 200

12.2.3 h模型 201

12.3 软件测试策略 201

12.3.1 单元测试 202

12.3.2 集成测试 204

12.3.3 确认测试 205

12.3.4 系统测试 205

12.4 测试用例设计 205

12.4.1 测试用例设计的目的 205

12.4.2 测试用例设计的方法和描述 206

12.4.3 测试用例设计的重要性和影响因素 206

12.4.4 编写测试用例时的注意事项 206

12.5 黑盒技术 207

12.5.1 等价类划分法 207

12.5.2 边界值分析法 208

12.5.3 错误推测法 209

12.5.4 因果图法 209

12.6 白盒技术 211

12.6.1 逻辑覆盖法 212

12.6.2 基本路径测试法 214

12.6.3 循环测试法 218

12.7 集成测试技术 219

12.7.1 集成策略 219

12.7.2 接口测试 221

12.8 自动测试工具 221

12.9 调试 222

12.9.1 调试过程 222

12.9.2 调试策略 223

12.10 案例分析 224

12.11 小结 229

习题 230

第13章 软件维护 231

13.1 软件维护概述 231

13.1.1 软件维护的任务 231

13.1.2 软件维护的特点 231

13.1.3 软件可维护性 232

13.2 软件维护类型 232

13.2.1 纠错性维护 232

13.2.2 完善性维护 233

13.2.3 适应性维护 233

13.2.4 预防性维护 233

13.3 软件维护技术与过程 233

13.3.1 面向维护的技术 234

13.3.2 维护支援技术 234

13.3.3 软件维护过程 234

13.4 非结构化维护和结构化维护 236

13.5 提高可维护性 236

13.6 面向对象的软件维护 238

13.7 小结 238

习题 238

第五部分 软件工程管理

第14章 软件项目管理 240

14.1 项目管理概述 240

14.2 软件项目管理范围 241

14.2.1 人员 241

14.2.2 项目和过程 242

14.2.3 软件度量 243

14.2.4 软件项目管理计划文档 244

14.3 软件团队组织范式 246

14.3.1 民主分权式 246

14.3.2 控制集权式 247

14.3.3 控制分权式 248

14.3.4 敏捷团队 248

14.4 项目组织原则 249

14.5 软件过程管理 249

14.5.1 软件过程度量 249

14.5.2 软件过程改进 250

14.5.3 项目度量 251

14.6 风险管理 251

14.6.1 风险识别 252

14.6.2 风险预测 252

14.6.3 风险管理 252

14.7 软件配置管理 253

14.7.1 scm基本概念 253

14.7.2 scm过程 254

14.7.3 scm中心存储库 255

14.8 小结 256

习题 256

第15章 软件项目估算 257

15.1 概述 257

15.1.1 项目计划与范围 257

15.1.2 项目资源 257

15.2 软件规模度量 258

15.2.1 面向规模的度量 258

15.2.2 面向对象的度量 260

15.3 软件成本估算的分解技术 260

15.3.1 基于问题分解的估算 260

15.3.2 基于过程分解的估算 262

15.4 经验估算模型 263

15.4.1 专家类比推断 263

15.4.2 由底向上估算方法 263

15.4.3 构造性成本模型 264

15.5 成本估算管理 266

15.6 案例分析 266

15.6.1 短信系统 266

15.6.2 pos机系统 267

15.7 小结 268

习题 269

第16章 软件项目计划与管理 270

16.1 软件质量管理 270

16.1.1 质量概念 270

16.1.2 软件质量保证 271

16.1.3 软件质量度量 272

16.1.4 软件复审 275

16.1.5 软件质量认证标准 276

16.2 项目计划 278

16.2.1 项目进度安排 278

16.2.2 进度安排方法 279

16.2.3 项目进度的跟踪管理 281

16.3 软件项目管理工具 281

16.4 小结 286

习题 287

参考文献... 288


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

软件工程方法与实践
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon