描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111610793
内容简介
本书从实用的角度出发,系统地介绍了软件工程基础知识,包括传统的软件工程和面向对象的软件工程两大部分。在传统的软件工程部分,按照软件生存周期的顺序介绍各个阶段的任务、过程、方法、工具和文档编写规范;在面向对象的软件工程部分,介绍了面向对象的分析与设计方法以及统一建模语言(UML)的相关知识,同时配有开发实例和软件文档模板。
本书理论与实践相结合,内容循序渐进、深入浅出、通俗易懂、侧重应用。
本书可作为高等院校计算机、通信工程、电子信息工程、自动化等相关专业软件工程课程的教材,还可供软件工程师、软件项目管理者和应用软件开发人员参考。
本书配有免费电子课件,欢迎选用本书作为教材的教师登录www.cmpedu.com注册下载。
本书理论与实践相结合,内容循序渐进、深入浅出、通俗易懂、侧重应用。
本书可作为高等院校计算机、通信工程、电子信息工程、自动化等相关专业软件工程课程的教材,还可供软件工程师、软件项目管理者和应用软件开发人员参考。
本书配有免费电子课件,欢迎选用本书作为教材的教师登录www.cmpedu.com注册下载。
目 录
目录
前言
第1章 软件工程概述1
1.1 软件1
1.1.1 软件的概念及特点1
1.1.2 软件的分类2
1.1.3 软件危机的原因及解决途径3
1.2 软件工程概念4
1.2.1 软件工程的定义和内容4
1.2.2 软件工程的基本原理4
1.3 软件生存周期5
1.4 常用软件开发过程模型6
1.4.1 瀑布模型6
1.4.2 快速原型模型7
1.4.3 螺旋模型8
1.4.4 喷泉模型9
1.5 软件开发方法简述9
1.5.1 面向数据流的结构化方法9
1.5.2 面向数据结构的Jackson方法10
1.5.3 面向对象的方法10
1.6 软件文档11
1.6.1 软件文档在软件开发中的地位和作用11
1.6.2 软件文档的种类及写作要求12
小结14
习题1 14
第2章 可行性研究15
2.1 问题定义15
2.2 可行性研究的任务15
2.3 可行性研究的过程16
2.4 可行性研究阶段使用的工具17
2.4.1 系统流程图17
2.4.2 数据流图19
2.4.3 数据字典24
2.5 成本效益分析26
2.6 网上招聘系统可行性研究报告28
小结31
习题2 31
第3章 需求分析32
3.1 需求分析的任务32
3.2 需求分析的过程33
3.3 需求分析阶段使用的工具35
3.3.1 实体关系图35
3.3.2 数据规范化36
3.3.3 层次框图37
3.3.4 Warnier图37
3.3.5 描述算法的IPO图38
3.4 网上招聘系统需求规格说明书38
小结42
习题3 43
第4章 概要设计44
4.1 软件设计的目标和任务44
4.1.1 软件设计的目标44
4.1.2 软件设计的任务44
4.2 概要设计的过程45
4.3 软件设计的原理47
4.3.1 模块化47
4.3.2 抽象48
4.3.3 信息隐蔽49
4.3.4 模块独立50
4.4 启发规则52
4.4.1 改进软件结构提高模块独立性52
4.4.2 模块规模适中52
4.4.3 适当控制深度、宽度、扇出、扇入52
4.4.4 模块的作用域应该在控制域之内53
4.4.5 力争降低模块接口的复杂程度53
4.4.6 设计单入口单出口的模块53
4.4.7 模块功能可预测53
4.5 概要设计阶段使用的工具53
4.5.1 层次图53
4.5.2 HIPO图54
4.5.3 结构图55
4.5.4 程序系统结构图56
4.6 结构化设计方法56
4.6.1 基本概念56
4.6.2 系统结构图中的模块57
4.6.3 结构化设计过程58
4.6.4 变换分析58
4.6.5 事务分析61
4.6.6 混合结构分析62
4.7 网上招聘系统概要设计说明书62
小结66
习题4 66
第5章 详细设计67
5.1 详细设计的过程67
5.1.1 详细设计的基本任务67
5.1.2 详细设计方法68
5.2 详细设计阶段使用的工具68
5.2.1 程序流程图68
5.2.2 盒图70
5.2.3 问题分析图70
5.2.4 判定表与判定树71
5.2.5 过程设计语言72
5.3 面向数据结构的设计方法75
5.3.1 改进的Jackson图76
5.3.2 Jackson方法76
5.4 网上招聘系统详细设计说明书79
小结84
习题5 84
第6章 编码85
6.1 选择开发语言85
6.1.1 程序设计语言分类及特点85
6.1.2 选择的标准87
6.2 软件编码的规范88
6.2.1 程序中的注释88
6.2.2 数据说明88
6.2.3 语句结构89
6.2.4 输入和输出90
6.3 网上招聘系统编码规范91
小结93
习题6 93
第7章 测试94
7.1 测试的目标和原则94
7.2 测试用例设计95
7.2.1 黑盒测试95
7.2.2 白盒测试98
7.3 测试的步骤100
7.3.1 单元测试100
7.3.2 集成测试102
7.3.3 确认测试104
7.3.4 系统测试105
7.4 常用测试工具及特点105
7.5 软件测试阶段文档写作规范107
7.5.1 测试文档的类型107
7.5.2 软件测试过程文档107
7.6 网上招聘系统客户端测试文档110
7.6.1 测试计划文档110
7.6.2 测试设计文档112
小结115
习题7 115
第8章 维护116
8.1 软件维护的概念及特点116
8.2 软件的可维护性118
8.3 软件维护的步骤119
8.4 软件维护过程文档写作规范121
8.5 用户手册的主要内容及写作要求121
8.6 网上招聘系统维护文档122
小结123
习题8 123
第9章 面向对象的基本概念及UML 124
9.1 传统方法学与面向对象方法比较124
9.2 面向对象的基本概念125
9.3 UML概述127
9.3.1 UML的主要特点127
9.3.2 UML的应用领域127
9.4 UML的构成128
9.5 UML的视图128
9.6 UML的模型元素129
9.6.1 事物129
9.6.2 关系132
9.7 UML的基本准则和图形表示132
9.7.1 UML的基本准则132
9.7.2 UML的图形表示133
小结142
习题9 142
第10章 面向对象分析143
10.1 需求分析与用例建模143
10.2 建立对象类静态模型145
10.3 建立对象类动态模型146
10.3.1 交互模型建模146
10.3.2 状态模型建模147
10.4 系统体系结构建模148
10.4.1 软件系统体系结构模型148
10.4.2 硬件系统体系结构模型148
10.4.3 组件图建模149
10.4.4 配置图建模150
小结150
习题10 150
第11章 面向对象设计151
11.1 面向对象设计准则151
11.2 启发式原则152
11.3 系统分解153
11.4 设计问题域子系统155
11.5 设计人机交互子系统156
11.6 设计任务管理子系统158
11.7 设计数据库管理子系统160
11.8 设计类中的服务161
11.9 设计关联162
11.10 设计优化164
小结166
习题11 166
前言
第1章 软件工程概述1
1.1 软件1
1.1.1 软件的概念及特点1
1.1.2 软件的分类2
1.1.3 软件危机的原因及解决途径3
1.2 软件工程概念4
1.2.1 软件工程的定义和内容4
1.2.2 软件工程的基本原理4
1.3 软件生存周期5
1.4 常用软件开发过程模型6
1.4.1 瀑布模型6
1.4.2 快速原型模型7
1.4.3 螺旋模型8
1.4.4 喷泉模型9
1.5 软件开发方法简述9
1.5.1 面向数据流的结构化方法9
1.5.2 面向数据结构的Jackson方法10
1.5.3 面向对象的方法10
1.6 软件文档11
1.6.1 软件文档在软件开发中的地位和作用11
1.6.2 软件文档的种类及写作要求12
小结14
习题1 14
第2章 可行性研究15
2.1 问题定义15
2.2 可行性研究的任务15
2.3 可行性研究的过程16
2.4 可行性研究阶段使用的工具17
2.4.1 系统流程图17
2.4.2 数据流图19
2.4.3 数据字典24
2.5 成本效益分析26
2.6 网上招聘系统可行性研究报告28
小结31
习题2 31
第3章 需求分析32
3.1 需求分析的任务32
3.2 需求分析的过程33
3.3 需求分析阶段使用的工具35
3.3.1 实体关系图35
3.3.2 数据规范化36
3.3.3 层次框图37
3.3.4 Warnier图37
3.3.5 描述算法的IPO图38
3.4 网上招聘系统需求规格说明书38
小结42
习题3 43
第4章 概要设计44
4.1 软件设计的目标和任务44
4.1.1 软件设计的目标44
4.1.2 软件设计的任务44
4.2 概要设计的过程45
4.3 软件设计的原理47
4.3.1 模块化47
4.3.2 抽象48
4.3.3 信息隐蔽49
4.3.4 模块独立50
4.4 启发规则52
4.4.1 改进软件结构提高模块独立性52
4.4.2 模块规模适中52
4.4.3 适当控制深度、宽度、扇出、扇入52
4.4.4 模块的作用域应该在控制域之内53
4.4.5 力争降低模块接口的复杂程度53
4.4.6 设计单入口单出口的模块53
4.4.7 模块功能可预测53
4.5 概要设计阶段使用的工具53
4.5.1 层次图53
4.5.2 HIPO图54
4.5.3 结构图55
4.5.4 程序系统结构图56
4.6 结构化设计方法56
4.6.1 基本概念56
4.6.2 系统结构图中的模块57
4.6.3 结构化设计过程58
4.6.4 变换分析58
4.6.5 事务分析61
4.6.6 混合结构分析62
4.7 网上招聘系统概要设计说明书62
小结66
习题4 66
第5章 详细设计67
5.1 详细设计的过程67
5.1.1 详细设计的基本任务67
5.1.2 详细设计方法68
5.2 详细设计阶段使用的工具68
5.2.1 程序流程图68
5.2.2 盒图70
5.2.3 问题分析图70
5.2.4 判定表与判定树71
5.2.5 过程设计语言72
5.3 面向数据结构的设计方法75
5.3.1 改进的Jackson图76
5.3.2 Jackson方法76
5.4 网上招聘系统详细设计说明书79
小结84
习题5 84
第6章 编码85
6.1 选择开发语言85
6.1.1 程序设计语言分类及特点85
6.1.2 选择的标准87
6.2 软件编码的规范88
6.2.1 程序中的注释88
6.2.2 数据说明88
6.2.3 语句结构89
6.2.4 输入和输出90
6.3 网上招聘系统编码规范91
小结93
习题6 93
第7章 测试94
7.1 测试的目标和原则94
7.2 测试用例设计95
7.2.1 黑盒测试95
7.2.2 白盒测试98
7.3 测试的步骤100
7.3.1 单元测试100
7.3.2 集成测试102
7.3.3 确认测试104
7.3.4 系统测试105
7.4 常用测试工具及特点105
7.5 软件测试阶段文档写作规范107
7.5.1 测试文档的类型107
7.5.2 软件测试过程文档107
7.6 网上招聘系统客户端测试文档110
7.6.1 测试计划文档110
7.6.2 测试设计文档112
小结115
习题7 115
第8章 维护116
8.1 软件维护的概念及特点116
8.2 软件的可维护性118
8.3 软件维护的步骤119
8.4 软件维护过程文档写作规范121
8.5 用户手册的主要内容及写作要求121
8.6 网上招聘系统维护文档122
小结123
习题8 123
第9章 面向对象的基本概念及UML 124
9.1 传统方法学与面向对象方法比较124
9.2 面向对象的基本概念125
9.3 UML概述127
9.3.1 UML的主要特点127
9.3.2 UML的应用领域127
9.4 UML的构成128
9.5 UML的视图128
9.6 UML的模型元素129
9.6.1 事物129
9.6.2 关系132
9.7 UML的基本准则和图形表示132
9.7.1 UML的基本准则132
9.7.2 UML的图形表示133
小结142
习题9 142
第10章 面向对象分析143
10.1 需求分析与用例建模143
10.2 建立对象类静态模型145
10.3 建立对象类动态模型146
10.3.1 交互模型建模146
10.3.2 状态模型建模147
10.4 系统体系结构建模148
10.4.1 软件系统体系结构模型148
10.4.2 硬件系统体系结构模型148
10.4.3 组件图建模149
10.4.4 配置图建模150
小结150
习题10 150
第11章 面向对象设计151
11.1 面向对象设计准则151
11.2 启发式原则152
11.3 系统分解153
11.4 设计问题域子系统155
11.5 设计人机交互子系统156
11.6 设计任务管理子系统158
11.7 设计数据库管理子系统160
11.8 设计类中的服务161
11.9 设计关联162
11.10 设计优化164
小结166
习题11 166
前 言
前言
软件工程学是指导软件生产、维护的一门工程科学,从20世纪60年代起迅速发展,现已经成为计算机科学中一个重要分支,它的研究范围非常广泛,包括技术、方法、工具和管理等许多方面。
本书从实用角度出发,系统地介绍了软件工程基础知识。在传统的软件工程部分,按照软件生存周期的顺序,介绍了各个阶段的任务、过程、方法、工具和文档编写规范。在面向对象的软件工程部分,介绍了面向对象的分析与设计方法以及统一建模语言(UML) 的相关知识及实例。
本书尽量用实例来解释概念,用案例来演绎方法和原理,并选择典型的软件工程开发实例进行剖析,使读者能够在牢固掌握理论知识的同时,思考并尝试解决实际问题。本书文字通俗易懂、概念清晰、深入浅出、实例丰富、实用性强,可作为高等学校计算机、通信工程、电子信息工程、自动化等相关专业软件工程课程的教材,还可供软件工程师、软件项目管理者和软件开发人员参考。
本书的第1~3章由绥化学院周凤编写,第4~7章由哈尔滨石油学院邓春伟编写,第8~9章由中南林业科技大学石磊编写,第10~12、14~15章由黑龙江科技大学张剑飞编写,第13章由黑龙江科技大学高辉编写。黑龙江科技大学刘兴丽担任本书主审。
在本书编写过程中,参考了大量的相关资料,同时得到了各方面有关专家的大力支持和帮助,在此一并感谢。由于时间仓促,水平有限,书中难免有不足之处,敬请读者不吝赐教。
编 者
软件工程学是指导软件生产、维护的一门工程科学,从20世纪60年代起迅速发展,现已经成为计算机科学中一个重要分支,它的研究范围非常广泛,包括技术、方法、工具和管理等许多方面。
本书从实用角度出发,系统地介绍了软件工程基础知识。在传统的软件工程部分,按照软件生存周期的顺序,介绍了各个阶段的任务、过程、方法、工具和文档编写规范。在面向对象的软件工程部分,介绍了面向对象的分析与设计方法以及统一建模语言(UML) 的相关知识及实例。
本书尽量用实例来解释概念,用案例来演绎方法和原理,并选择典型的软件工程开发实例进行剖析,使读者能够在牢固掌握理论知识的同时,思考并尝试解决实际问题。本书文字通俗易懂、概念清晰、深入浅出、实例丰富、实用性强,可作为高等学校计算机、通信工程、电子信息工程、自动化等相关专业软件工程课程的教材,还可供软件工程师、软件项目管理者和软件开发人员参考。
本书的第1~3章由绥化学院周凤编写,第4~7章由哈尔滨石油学院邓春伟编写,第8~9章由中南林业科技大学石磊编写,第10~12、14~15章由黑龙江科技大学张剑飞编写,第13章由黑龙江科技大学高辉编写。黑龙江科技大学刘兴丽担任本书主审。
在本书编写过程中,参考了大量的相关资料,同时得到了各方面有关专家的大力支持和帮助,在此一并感谢。由于时间仓促,水平有限,书中难免有不足之处,敬请读者不吝赐教。
编 者
评论
还没有评论。