软件工程(第二版)
-
【作 者】曾强聪 赵歆 阳王东 编著
【I S B N 】978-7-5170-7245-4
【责任编辑】张玉玲
【适用读者群】本专通用
【出版时间】2018-12-20
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第2版第1次印刷
【页 数】256
【千字数】388
【印 张】16
【定 价】¥35
【丛 书】普通高等教育“十三五”规划教材(软件工程专业)
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
软件工程是软件研发与维护的工程方法学。本书较好地体现了软件工程的实用性,有较完整的软件工程知识体系。
全书共10章内容:第1章至第3章是软件工程基础,涉及软件工程概念方法、软件项目管理、软件开发过程模式等内容;第4章至第7章是软件工程基于开发过程的细节说明,涉及软件分析、软件设计、软件测试、软件维护等内容;第8章和第9章是软件工程主流方法说明,涉及结构化工程方法、面向对象工程方法等诸多工程方法;第10章简要介绍了面向对象工程案例,内容有系统分析、系统设计、程序框架清单等。
本书语言精简、通俗易懂、便于自学,而且教学资源完备,书中案例均已基于主流软件工具(Rose、Visio、PowerDesigner)建立模型,可作为教学或自学资源供读者参考(可与出版社或作者联系获取)。
本书可作为高校相关专业本科生、研究生的教材,也可作为软件开发人员的技术参考书,还可供广大读者自学软件工程方法。
较好地体现了软件工程的实用性,有较完整的软件工程知识体系。
语言精简、通俗易懂、便于自学,教学资源完备。
可作为高校相关专业本科生、研究生教材,也可作为软件开发人员的技术参考书。
第二版前言
本书第一版出版至今已经5年,产生了较好的教学效果。为了更好地服务教学,本书对第一版内容进行了必要的增补与修订,并考虑到实际教学需要对内容进行了重新组织与章节调整,但保留了第一版既有的系统性与实用性风格,如重视软件工程概念的说明,通过工程案例说明工程方法应用。
全书共10章内容:
第1章~第3章是软件工程基础,涉及软件工程概念方法、软件项目管理、软件开发过程模式等内容,对软件工程基于工程概念、项目进程、任务特征等进行了全局性说明,以使学习者在学习初期,就对软件工程有初步的较全面的认识,并以此获得较强的软件工程意识,能够尽早地以软件工程思维方式去看待软件开发问题。
第4章~第7章是软件工程基于开发过程的任务细节说明,涉及软件分析、软件设计、软件测试、软件维护等内容。这是软件开发必然需要涉及的几项基本任务,每项任务都有特定目标,都要求有预期成果。实际上,这个顺序与软件工程课程实践是保持一致的。
第8章、第9章是对软件工程主流方法的说明,涉及结构化工程方法、面向对象工程方法等诸多工程方法。第8章是结构化工程方法,这是一种早期传统的软件工程方法,特点是以功能为问题源头,并以实现功能为目标。第9章是面向对象工程方法,这是一种更接近现实世界的软件工程方法,基于现实世界进行实体抽象,并通过对象实例演绎现实实体。
第10章则简要介绍了面向对象工程案例,内容有系统分析、系统设计、程序框架清单等。
本书语言精简、通俗易懂、便于自学,而且教学资源较完备。书中案例都已基于主流软件工具(Rose、Visio、PowerDesigner)建立模型,可作为教学或自学资源供读者参考(可与出版社联系获取)。
本书可作为高校相关专业本科生、研究生的教材,也可作为软件开发人员的技术参考书,并可供广大读者自学软件工程方法。
编 者
2018年9月
第一版前言
第1章 软件工程综述 1
1.1 什么是软件工程 1
1.2 软件有什么特点 2
1.2.1 软件特点 3
1.2.2 软件分类 4
1.3 为什么会发生软件危机? 6
1.4 软件工程技术 8
1.4.1 软件过程 8
1.4.2 工程方法 9
1.4.3 软件工具 9
1.5 软件工程管理 10
1.5.1 项目计划 10
1.5.2 人员组织 10
1.5.3 过程管理 11
1.5.4 产品管理 11
1.5.5 工程目标 11
1.6 主流软件工程方法学 12
1.6.1 结构化方法学 12
1.6.2 面向对象方法学 13
1.7 常用软件工具 15
1.7.1 Microsoft Visio 15
1.7.2 Sybase PowerDesigner 16
1.7.3 IBM Rational Rose 16
小结 17
习题 18
第2章 软件项目管理 19
2.1 软件研发团队 19
2.1.1 软件研发机构 19
2.1.2 软件项目小组 20
2.1.3 项目小组管理机制 21
2.2 软件项目计划 23
2.2.1 任务分配 23
2.2.2 进度计划 24
2.2.3 项目计划书 26
2.3 软件项目成本估算 26
2.3.1 程序代码行成本估算 27
2.3.2 软件功能点成本估算 28
2.3.3 基于软件过程的成本估算 31
2.4 软件项目风险 32
2.4.1 风险类别 32
2.4.2 风险识别 33
2.4.3 风险评估 34
2.4.4 风险防范 35
2.5 项目文档管理 36
2.5.1 文档概念 36
2.5.2 文档分类 37
2.5.3 软件文档与软件生存周期之间的
关系 37
2.5.4 文档的使用者 38
2.5.5 文档编码 39
2.5.6 文档格式 39
2.6 项目配置管理 41
2.6.1 软件配置概念 41
2.6.2 配置规划 41
2.6.3 软件变更控制 43
2.6.4 软件版本控制 43
2.7 项目质量管理 44
2.7.1 质量标准 44
2.7.2 质量计划 45
2.7.3 质量保证 45
2.7.4 质量指标 46
2.8 软件企业能力成熟度模型(CMM) 47
2.8.1 能力成熟度等级 47
2.8.2 软件过程进化 47
2.8.3 个人软件过程(PSP) 48
2.8.4 团队软件过程(TSP) 48
小结 50
习题 51
第3章 软件工程过程模式 53
3.1 软件生存周期 53
3.1.1 软件定义期 53
3.1.2 软件开发期 54
3.1.3 软件运行与维护期 55
3.2 瀑布模式 56
3.2.1 瀑布模式的特点 56
3.2.2 瀑布模式中的信息反馈 57
3.2.3 瀑布模式的作用 58
3.3 原型进化模式 58
3.3.1 软件原型 58
3.3.2 原型进化过程 59
3.4 增量模式 60
3.4.1 增量开发过程 60
3.4.2 增量模式的优越性 60
3.5 螺旋模式 61
3.6 迭代模式 62
3.7 组件复用模式 63
小结 64
习题 65
第4章 软件分析 66
4.1 计算机系统工程 66
4.1.1 计算机系统特征 66
4.1.2 计算机体系结构 67
4.2 软件系统前期分析 69
4.2.1 分析过程 70
4.2.2 系统结构建模 71
4.2.3 系统工作流建模 71
4.3 项目可行性分析 73
4.3.1 评估内容 74
4.3.2 评估报告 75
4.4 用户需求分析 76
4.4.1 分析内容 76
4.4.2 分析过程 77
4.4.3 任务承担者 77
4.5 获取用户需求 78
4.5.1 识别用户 78
4.5.2 从调查中收集用户需求 80
4.5.3 建立需求规约 82
4.6 建立需求模型 83
4.6.1 业务域模型 84
4.6.2 业务流模型 84
4.7 定义与验证软件规格 85
4.7.1 软件规格定义 85
4.7.2 软件需求验证 86
4.7.3 通过原型验证用户需求 86
4.7.4 通过评审验证产品规格 87
4.8 需求规格说明书 87
小结 88
习题 89
第5章 软件设计 90
5.1 系统概要设计 90
5.1.1 基本任务 90
5.1.2 设计过程 91
5.2 系统构架设计 92
5.2.1 软件系统支持环境 92
5.2.2 软件系统体系结构 93
5.3 数据结构设计 97
5.3.1 动态程序数据 97
5.3.2 静态存储数据 97
5.4 程序结构设计 97
5.4.1 程序模块 98
5.4.2 模块独立性 100
5.4.3 结构化程序结构 104
5.4.4 面向对象程序结构 105
5.5 概要设计说明书 106
5.6 程序结构化流程控制 108
5.7 算法设计工具 109
5.7.1 程序流程图 109
5.7.2 NS图 109
5.7.3 PAD图 111
5.7.4 PDL语言 112
5.8 程序算法复杂度评估 113
5.8.1 程序算法复杂度 113
5.8.2 McCabe方法 113
5.9 程序编码 115
5.9.1 编程语言 115
5.9.2 编程规范 117
5.9.3 程序运行效率 119
小结 120
习题 121
第6章 软件测试 123
6.1 测试目的、计划与方法 123
6.1.1 测试目的 123
6.1.2 测试计划 123
6.1.3 测试方法 124
6.2 测试任务 125
6.2.1 单元测试 125
6.2.2 集成测试 127
6.2.3 确认测试 129
6.3 测试用例 130
6.3.1 白盒测试用例设计 130
6.3.2 黑盒测试用例设计 132
6.4 面向对象程序测试 134
6.4.1 面向对象单元测试 134
6.4.2 面向对象集成测试 134
6.4.3 面向对象确认测试 135
6.5 程序调试 135
6.5.1 诊断方法 135
6.5.2 调试策略 136
6.6 测试工具 137
6.6.1 测试数据生成程序 137
6.6.2 动态分析程序 137
6.6.3 静态分析程序 137
小结 137
习题 138
第7章 软件维护与再工程 140
7.1 软件维护分类 140
7.2 软件可维护性 141
7.2.1 软件可维护性评估 141
7.2.2 如何提高软件的可维护性? 141
7.3 软件维护实施 142
7.3.1 维护机构 142
7.3.2 维护过程 143
7.4 软件再工程 145
7.4.1 逆向工程 145
7.4.2 重构工程 146
7.4.3 正向工程 146
小结 146
习题 147
第8章 结构化工程方法 148
8.1 结构化分析 148
8.2 功能层级图 149
8.3 数据流图与功能建模 149
8.3.1 数据流图 150
8.3.2 数据流细化 151
8.3.3 功能建模 152
8.3.4 数据字典 154
8.4 状态转换图与行为建模 156
8.5 结构化设计建模 159
8.5.1 程序结构图 159
8.5.2 HIPO图 160
8.5.3 框架伪码 161
8.6 基于数据流的程序结构映射 162
8.6.1 变换流映射 162
8.6.2 事务流映射 164
8.6.3 混合流映射 165
8.7 程序结构优化 167
8.8 设计举例 170
小结 176
习题 177
第9章 面向对象工程方法 180
9.1 建模方法 180
9.2 UML建模语言 181
9.3 面向对象分析建模 184
9.3.1 用例建模 184
9.3.2 活动建模 189
9.3.3 实体类建模 191
9.4 面向对象设计建模 196
9.4.1 面向对象设计特点 196
9.4.2 基于UML的设计建模 198
9.5 系统逻辑结构设计 199
9.5.1 确定系统构架 199
9.5.2 设计类体 201
9.5.3 抽象类、接口及其用途 205
9.5.4 程序逻辑结构 207
9.6 程序对象交互设计 213
9.6.1 协作图 213
9.6.2 时序图 215
9.6.3 状态图 217
9.7 系统物理装配与部署 218
9.7.1 程序构件图 218
9.7.2 系统部署图 220
小结 221
习题 223
第10章 面向对象工程案例 226
10.1 系统分析 226
10.1.1 基本需求说明 226
10.1.2 功能用例分析 226
10.1.3 任务活动分析 228
10.2 系统设计 229
10.2.1 系统构架设计 229
10.2.2 类结构设计 229
10.2.3 对象交互设计 231
10.2.4 棋局对垒界面设计 235
10.2.5 系统构件设计 236
10.3 程序框架清单 237
10.3.1 客户端程序 237
10.3.2 服务器程序 242
参考文献 244
- 实用运筹学 [主编 邢育红 于晋臣]
- 电子技术(第二版) [主编 覃爱娜 李飞]
- 劳动争议处理实务 [主编 王秀卿 罗静]
- 工程数学 [主编 郭立娟 王海]
- 语音识别理论与实践 [主编 莫宏伟]
- 武术基础教程 [主编 李代勇 谢志民]
- 计算机网络实训教程 [主编 张浩军 赵玉娟]
- 画法几何与机械制图习题集(多学时) [主编 赵军]
- 电工电子技术基础 [主编 刘 军 杨国龙 刘天成]
- MySQL数据库项目式教程 [陈亚峰]
- 机械设计基础(第二版) [主编 田亚平 李爱姣]
- 画法几何与机械制图 [主编 赵军]
- C语言程序设计习题与实验指导(第二版) [主编 甄增荣 张宾]
- C语言程序设计(第二版) [主编 甄增荣 田云霞]
- Unity3D虚拟现实应用开发实践 [主 编 刘龙]
- 智能化技术基础(第三版) [邓文达 李礼]
- 面向对象程序设计 [主编 张勇 张平华 赵小龙]
- 网络营销 [主编 夏薇薇 刘婷 尚洁]
- 电视节目策划与制作(微课版) [主 编 黄滴滴]
- 数据库技术与应用实践教程(SQL Server 2019) [主 编 严晖 周肆清]
- 大学应用数学 [主编 郭立娟]
- 工业机器人拆装与调试 [主编 胡月霞 向艳芳 朱奇]
- 功能材料制备与表征实验指导书 [龚伟平 赵军峰 梅海娟 等编著]
- 信号与系统(第二版) [主编 张宇]
- 信息技术基础 [主编 唐倩 邵锐]
- Python 语言程序设计实践指导 [主编 张双狮]
- Photoshop 图形图像项目化教程 [主编 胡斌斌 黎娅 苏大椿]
- 体育舞蹈教程 [主编 刘伟 陈志明 曾明]
- 线性代数导学篇 [主编 史昱]
- 信息技术基础实训与习题指导(Windows7+Office2016) [主编 周金容 唐天国]