书籍详情

软件工程方法与实践

软件工程方法与实践

作者:窦万峰 等编著

出版社:机械工业出版社

出版时间:2009-05-01

ISBN:9787111267584

定价:¥32.00

购买这本书可以去
内容简介
  软件工程学将计算机科学理论与现代工程方法论相结合,着重研究软件过程模型、分析与设计方法、软件工程开发与管理技术和工具,是指导软件生产和管理的一门新兴的、综合性的应用科学。《软件工程方法与实践》分别从传统的结构化开发范型和面向对象开发范型两个方面,把软件工程的概念和理论知识融入到实践当中,通过丰富的案例分析与设计,更深入地理解软件开发中各个阶段的技术、方法和管理过程。《软件工程方法与实践》包括软件工程与过程、软件需求分析与建模、软件设计、软件测试与维护和软件工程管理五个部分,共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章 结构化设计方法..1 13
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.1 0案例分析224
12.1 1小结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 项目度量25114.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
参考文献2 88
猜您喜欢

读书导航