书籍详情
软件工程教程
作者:张敬[等]编著
出版社:北京航空航天大学出版社
出版时间:2003-07-01
ISBN:9787810773317
定价:¥22.00
购买这本书可以去
内容简介
高校计算机教学系列教材。软件工程是20世纪60年代末期为解决“软件危机”而产生的,并迅速发展起来的新兴学科,现在已成为计算机科学技术的一个重要分支。本书主要围绕生命周期法和面向对象方法学,讲述了软件工程的基本概念、基本原理、基本技术、基本方法。由于软件工程是一门实践性很强的学科,书中提供了大量的范例供读者参考。主要内容包括:概述、软件需求分析、软件设计、程序编码、软件测试、面向对象方法学、软件维护、软件标准与软件文档、软件管理、计算机辅助软件工程。内容丰富,图、文示例并茂,通俗易懂。本书可作为高等院校本、专科计算机专业的教材,也可供计算机软件人员和计算机用户阅读。
作者简介
暂缺《软件工程教程》作者简介
目录
第1章 软件工程概述1
1.1 软件工程与软件危机1
1.1.1 软件的发展阶段1
1.1.2 软件危机2
1.1.3 软件工程2
1.2 软件开发模型3
1.2.1 软件生命周期3
1.2.2 软件开发的瀑布模型5
1.2.3 原型化开发模型8
1.2.4 螺旋模型9
1.2.5 基于四代技术的模型10
1.2.6 面向对象生存期模型11
1.3 软件计划12
1.3.1 问题定义12
1.3.2 可行性研究13
1.3.3 系统规格说明及评审18
习题19
第2章 软件需求分析21
2.1 需求分析概述21
2.1.1 需求分析的任务21
2.1.2 需求分析的步骤22
2.2 需求规格说明书24
2.2.1 数据流图(DFD)24
2.2.2 数据字典(DD)26
2.2.3 需求评审29
2.3 结构化分析方法30
2.4 应用示例32
习题36
第3章 软件设计38
3.1 软件设计的任务和步骤38
3.2 软件设计概述40
3.2.1 软件设计模块化40
3.2.2 用于软件设计的图形工具43
3.3 结构化系统设计45
3.3.1 软件结构的典型形式45
3.3.2 建立初始结构图46
3.4 详细设计53
3.4.1 详细设计的目的和任务54
3.4.2 结构化程序设计54
3.4.3 详细设计的描述工具57
3.4.4 Jackson程序设计方法61
3.4.5 程序结构复杂度的定量度量67
3.5 人机界面设计70
3.5.1 用户的使用需求分析71
3.5.2 人机界面的设计原则72
3.5.3 人机界面实现的原则74
3.6 软件设计复审76
习题77
第4章 程序编码79
4.1 编码的目的79
4.2 程序设计语言80
4.2.1 程序设计语言分类80
4.2.2 程序设计语言的特征属性82
4.2.3 程序设计语言的准则83
4.3 程序设计风格84
4.3.1 使用好程序内部的文档84
4.3.2 数据说明原则85
4.3.3 语句结构的规则85
4.3.4 输入/输出的规则86
4.3.5 高效率的原则86
习题87
第5章 软件的测试89
5.1 基本概念89
5.1.1 软件测试目标89
5.1.2 软件测试的原则89
5.1.3 软件测试的方法90
5.1.4 软件测试的过程91
5.1.5 软件测试与开发各阶段的关系92
5.2 测试用例的设计93
5.2.1 逻辑覆盖93
5.2.2 等价分类法96
5.2.3 边界值分析法98
5.2.4 错误猜测法99
5.2.5 实用综合测试策略99
5.3 测试步骤102
5.3.1 单元测试102
5.3.2 集成测试104
5.3.3 验收测试107
5.3.4 系统测试108
5.4 调试技术109
5.4.1 调试过程110
5.4.2 调试技术110
5.4.3 调试原则112
习题113
第6章 软件维护115
6.1 软件维护的种类115
6.1.1 完善性维护115
6.1.2 适应性维护115
6.1.3 纠错性维护115
6.1.4 预防性维护116
6.2 软件维护的特点116
6.2.1 软件工程与软件维护的关系116
6.2.2 维护的成本118
6.2.3 可能存在的问题118
6.3 维护任务的实施119
6.3.1 维护组织119
6.3.2 维护报告119
6.3.3 维护过程120
6.3.4 维护记录的保存121
6.3.5 对维护的评价121
6.4 软件的可维护性122
6.4.1 影响软件可维护性的因素122
6.4.2 提高软件的可维护性方法122
6.5 软件维护的副作用124
6.5.1 修改代码的副作用124
6.5.2 修改数据的副作用125
6.5.3 修改文档的副作用125
习题126
第7章 面向对象方法学127
7.1 面向对象技术的基本概念127
7.1.1 传统方法学的缺点127
7.1.2 面向对象技术的由来128
7.1.3 基本概念129
7.2 面向对象分析132
7.2.1 标识类及对象132
7.2.2 确定结构134
7.2.3 定义主题136
7.2.4 标识对象的属性和关联关系136
7.2.5 标识对象的行为138
7.2.6 动态模型140
7.2.7 功能模型142
7.2.8 三个模型之间的关系143
7.3 面向对象设计143
7.3.1 问题域部分的设计143
7.3.2 人机交互部分的设计147
7.3.3 任务管理部分的设计150
7.3.4 数据管理部分的设计151
习题153
第8章 软件标准与软件文档154
8.1 软件工程标准框架154
8.1.1 软件工程功能标准框架154
8.1.2 基于软件生存周期过程的软件工程路径框架159
8.1.3 我国软件工程标准体系框架159
8.2 国际软件工程标准160
8.2.1 IEEE Software Engineering Standards160
8.2.2 ISO/IEC/IEEE/EIA 12207162
8.2.3 SEL Recommended Approach164
8.2.4 SSDM Standards and Procedures165
8.2.5 ISO 9000 Suite167
8.2.6 对五种标准的比较168
8.3 软件文档171
8.3.1 软件文档171
8.3.2 文档编制的质量要求171
习题173
第9章 软件管理174
9.1 软件的目标与项目计划174
9.1.1 软件项目的特点和软件管理的职能174
9.1.2 软件目标资源需求的分析和计划176
9.1.3 软件质量及管理措施178
9.1.4 项目计划的内容179
9.2 成本估算179
9.2.1 自顶向下估算180
9.2.2 自底向上估算180
9.2.3 算法模型估计181
9.3 进度计划182
9.3.1 Gantt图(横道图)182
9.3.2 工程网络183
9.3.3 估算进度184
9.3.4 关键路径184
9.3.5 机动时间185
9.4 人员分配185
9.5 软件配置管理187
9.5.1 软件配置管理任务187
9.5.2 标识配置对象187
9.5.3 版本控制188
9.5.4 系统建立188
9.5.5 修改控制188
9.5.6 配置审计188
9.5.7 配置状况报告189
9.6 软件质量189
9.6.1 软件质量的内涵189
9.6.2 软件质量保证190
9.6.3 软件质量经济性和质量不断改进192
9.6.4 软件工程标准及应用 193
9.7 软件工程文件规范194
习题198
第10章 计算机辅助软件工程CASE199
10.1 CASE概述199
10.1.1 CASE的涵义199
10.1.2 CASE分类199
10.2 软件开发工具199
10.2.1 什么是软件工具199
10.2.2 软件开发工具的分类200
10.3 软件工程环境202
10.3.1 软件工程环境的定义202
10.3.2 软件工程环境的分类202
10.3.3 集成化CASE203
10.4 大型软件开发环境简介210
10.4.1 JB2总体结构211
10.4.2 环境集成机制的主要部件211
10.4.3 工具结构摸型和环境中的工具215
习题217
参考文献218
1.1 软件工程与软件危机1
1.1.1 软件的发展阶段1
1.1.2 软件危机2
1.1.3 软件工程2
1.2 软件开发模型3
1.2.1 软件生命周期3
1.2.2 软件开发的瀑布模型5
1.2.3 原型化开发模型8
1.2.4 螺旋模型9
1.2.5 基于四代技术的模型10
1.2.6 面向对象生存期模型11
1.3 软件计划12
1.3.1 问题定义12
1.3.2 可行性研究13
1.3.3 系统规格说明及评审18
习题19
第2章 软件需求分析21
2.1 需求分析概述21
2.1.1 需求分析的任务21
2.1.2 需求分析的步骤22
2.2 需求规格说明书24
2.2.1 数据流图(DFD)24
2.2.2 数据字典(DD)26
2.2.3 需求评审29
2.3 结构化分析方法30
2.4 应用示例32
习题36
第3章 软件设计38
3.1 软件设计的任务和步骤38
3.2 软件设计概述40
3.2.1 软件设计模块化40
3.2.2 用于软件设计的图形工具43
3.3 结构化系统设计45
3.3.1 软件结构的典型形式45
3.3.2 建立初始结构图46
3.4 详细设计53
3.4.1 详细设计的目的和任务54
3.4.2 结构化程序设计54
3.4.3 详细设计的描述工具57
3.4.4 Jackson程序设计方法61
3.4.5 程序结构复杂度的定量度量67
3.5 人机界面设计70
3.5.1 用户的使用需求分析71
3.5.2 人机界面的设计原则72
3.5.3 人机界面实现的原则74
3.6 软件设计复审76
习题77
第4章 程序编码79
4.1 编码的目的79
4.2 程序设计语言80
4.2.1 程序设计语言分类80
4.2.2 程序设计语言的特征属性82
4.2.3 程序设计语言的准则83
4.3 程序设计风格84
4.3.1 使用好程序内部的文档84
4.3.2 数据说明原则85
4.3.3 语句结构的规则85
4.3.4 输入/输出的规则86
4.3.5 高效率的原则86
习题87
第5章 软件的测试89
5.1 基本概念89
5.1.1 软件测试目标89
5.1.2 软件测试的原则89
5.1.3 软件测试的方法90
5.1.4 软件测试的过程91
5.1.5 软件测试与开发各阶段的关系92
5.2 测试用例的设计93
5.2.1 逻辑覆盖93
5.2.2 等价分类法96
5.2.3 边界值分析法98
5.2.4 错误猜测法99
5.2.5 实用综合测试策略99
5.3 测试步骤102
5.3.1 单元测试102
5.3.2 集成测试104
5.3.3 验收测试107
5.3.4 系统测试108
5.4 调试技术109
5.4.1 调试过程110
5.4.2 调试技术110
5.4.3 调试原则112
习题113
第6章 软件维护115
6.1 软件维护的种类115
6.1.1 完善性维护115
6.1.2 适应性维护115
6.1.3 纠错性维护115
6.1.4 预防性维护116
6.2 软件维护的特点116
6.2.1 软件工程与软件维护的关系116
6.2.2 维护的成本118
6.2.3 可能存在的问题118
6.3 维护任务的实施119
6.3.1 维护组织119
6.3.2 维护报告119
6.3.3 维护过程120
6.3.4 维护记录的保存121
6.3.5 对维护的评价121
6.4 软件的可维护性122
6.4.1 影响软件可维护性的因素122
6.4.2 提高软件的可维护性方法122
6.5 软件维护的副作用124
6.5.1 修改代码的副作用124
6.5.2 修改数据的副作用125
6.5.3 修改文档的副作用125
习题126
第7章 面向对象方法学127
7.1 面向对象技术的基本概念127
7.1.1 传统方法学的缺点127
7.1.2 面向对象技术的由来128
7.1.3 基本概念129
7.2 面向对象分析132
7.2.1 标识类及对象132
7.2.2 确定结构134
7.2.3 定义主题136
7.2.4 标识对象的属性和关联关系136
7.2.5 标识对象的行为138
7.2.6 动态模型140
7.2.7 功能模型142
7.2.8 三个模型之间的关系143
7.3 面向对象设计143
7.3.1 问题域部分的设计143
7.3.2 人机交互部分的设计147
7.3.3 任务管理部分的设计150
7.3.4 数据管理部分的设计151
习题153
第8章 软件标准与软件文档154
8.1 软件工程标准框架154
8.1.1 软件工程功能标准框架154
8.1.2 基于软件生存周期过程的软件工程路径框架159
8.1.3 我国软件工程标准体系框架159
8.2 国际软件工程标准160
8.2.1 IEEE Software Engineering Standards160
8.2.2 ISO/IEC/IEEE/EIA 12207162
8.2.3 SEL Recommended Approach164
8.2.4 SSDM Standards and Procedures165
8.2.5 ISO 9000 Suite167
8.2.6 对五种标准的比较168
8.3 软件文档171
8.3.1 软件文档171
8.3.2 文档编制的质量要求171
习题173
第9章 软件管理174
9.1 软件的目标与项目计划174
9.1.1 软件项目的特点和软件管理的职能174
9.1.2 软件目标资源需求的分析和计划176
9.1.3 软件质量及管理措施178
9.1.4 项目计划的内容179
9.2 成本估算179
9.2.1 自顶向下估算180
9.2.2 自底向上估算180
9.2.3 算法模型估计181
9.3 进度计划182
9.3.1 Gantt图(横道图)182
9.3.2 工程网络183
9.3.3 估算进度184
9.3.4 关键路径184
9.3.5 机动时间185
9.4 人员分配185
9.5 软件配置管理187
9.5.1 软件配置管理任务187
9.5.2 标识配置对象187
9.5.3 版本控制188
9.5.4 系统建立188
9.5.5 修改控制188
9.5.6 配置审计188
9.5.7 配置状况报告189
9.6 软件质量189
9.6.1 软件质量的内涵189
9.6.2 软件质量保证190
9.6.3 软件质量经济性和质量不断改进192
9.6.4 软件工程标准及应用 193
9.7 软件工程文件规范194
习题198
第10章 计算机辅助软件工程CASE199
10.1 CASE概述199
10.1.1 CASE的涵义199
10.1.2 CASE分类199
10.2 软件开发工具199
10.2.1 什么是软件工具199
10.2.2 软件开发工具的分类200
10.3 软件工程环境202
10.3.1 软件工程环境的定义202
10.3.2 软件工程环境的分类202
10.3.3 集成化CASE203
10.4 大型软件开发环境简介210
10.4.1 JB2总体结构211
10.4.2 环境集成机制的主要部件211
10.4.3 工具结构摸型和环境中的工具215
习题217
参考文献218
猜您喜欢