现代软件工程(在线实训版)

在线实训
分享 推荐 0 收藏 5 阅读 654
毛新军 (作者) 978-7-115-66719-9

关于本书的内容有任何问题,请联系 许金霞

(1)内容新:教材内容反映了软件工程的最新发现以及软件产业界的主流技术,如基于大模型的智能化开发、DevOps、开源软件等;
(2)突出现代工具应用:教材介绍了一系列的CASE工具和平台,以支持软件的工程化开发,如ChatGPT、CodeArts Modeling等;
(3)案例引导:教材以大量身边的软件系统为案例,设计了完整Mini-12306软件系统案例,深入浅出地讲解知识点;
(4)强化实践:强化了软件开发的实践,设计了二项实践任务,贯穿全书各个章节;
(5)资源丰富:教材配套了丰富的教学生态,提供了课件、视频、教案、试卷、线上实训和实践、学习社区和群智知识,为教师“教”和学生“学”提供了全方位的支持。

特别说明

在线实训:登录头歌平台https://www.educoder.net/paths/1944

学习社区:登录https://www.learnerhub.net/#/spaces/146

内容摘要

本书是面向软件工程入门者和实践者的基础性教材,针对软件工程的“工程化”特点
和“实践性”要求,结合软件工程学科的发展以及软件产业界的实践,以实用性软件工程
为主线,构建软件工程的知识体系。全书共十二章,涵盖软件工程的过程、方法和工具三
方面要素,包括软件和软件工程、软件过程与方法、软件项目管理、需求获取与分析、软
件设计、编码与部署、软件测试、软件维护等章节。

知识体系

目录

目录
第 1章 深入认识软件 1
1.1 问题引入 1
1.2 何为软件 1
1.2.1 软件概念 1
1.2.2 软件特点 5
1.2.3 软件分类 6
1.3 软件特征变化 8
1.4 软件生命周期 10
1.5 软件质量 12
1.5.1 软件质量概念及模型 12
1.5.2 软件的内部质量和外部质量 12
1.6 开源软件 14
1.6.1 何为开源软件 14
1.6.2 开源软件的优势 15
1.6.3 开源软件许可证 16
1.6.4 开源软件的利用 17
1.7 本书的软件案例 18
1.7.1 小米便签软件 18
1.7.2 Mini-12306软件 19
1.8 本章小结和思维导图 19
1.9 阅读推荐 20
1.10 知识测验 20
1.11 工程实训 20
1.12 综合实践 21

第 2章 走进软件工程 23
2.1 问题引入 23
2.2 为什么会产生软件工程 23
2.2.1 软件危机的表现 23
2.2.2 缺乏理论支持和方法指导 25
2.3 何为软件工程 26
2.3.1 软件工程概念 27
2.3.2 软件工程目标 27
2.4 软件工程如何解决软件危机 28
2.4.1 软件工程三要素 28
2.4.2 软件工程基本原则 30
2.4.3 计算机辅助软件工程 32
2.5 软件工程发展 35
2.5.1 软件工程发展历程 35
2.5.2 软件工程发展特点 38
2.6 软件工程教育 40
2.6.1 软件工程师及其类别 41
2.6.2 软件工程师的职业道德 41
2.7 本章小结和思维导图 42
2.8 阅读推荐 44
2.9 知识测验 44
2.10 工程实训 45
2.11 综合实践 45

第3章 软件开发过程及方法 46
3.1 问题引入 46
3.2 何为软件开发过程 46
3.3 重型软件开发方法 47
3.3.1 重型软件开发方法的思想 47
3.3.2 典型的重型软件开发方法 48
3.4 敏捷软件开发方法 52
3.4.1 敏捷软件开发方法的思想 52
3.4.2 Scrum方法 55
3.4.3 测试驱动开发方法 55
3.4.4 DevOps方法 56
3.4.5 支持敏捷开发的CASE工具 59
3.5 软件开发方法的选择和应用 62
3.6 本章小结和思维导图 63
3.7 阅读推荐 64
3.8 知识测验 64
3.9 工程实训 65
3.10 综合实践 65

第4章 软件项目管理 67
4.1 问题引入 67
4.2 何为软件项目管理 67
4.2.1 何为项目 67
4.2.2 何为软件项目 68
4.2.3 软件项目管理的对象 68
4.2.4 软件项目管理的内容 69
4.3 如何管理软件项目 71
4.3.1 软件度量、测量和估算 71
4.3.2 制定软件项目计划 73
4.3.3 软件项目跟踪 76
4.3.4 软件配置管理 78
4.3.5 软件风险管理 81
4.3.6 软件质量保证 84
4.3.7 软件项目团队管理 86
4.3.8 软件项目管理示例 87
4.4 与软件项目管理相关的规范和标准 87
4.4.1 ISO9001系列标准 87
4.4.2 GJB9001系列标准 87
4.4.3 CMM和CMMI系列标准 88
4.4.4 GJB 5000系列标准 90
4.5 支持软件项目管理的CASE工具 90
4.5.1 Git工具 90
4.5.2 Project工具 91
4.6 软件项目经理 91
4.7 本章小结和思维导图 92
4.8 推荐阅读 93
4.9 知识测验 93
4.10 工程实训 94
4.11 综合实践 94

第5章 获取软件需求 96
5.1 问题引入 96
5.2 何为软件需求 96
5.2.1 软件需求概念 96
5.2.2 软件需求类别 97
5.2.3 软件需求特点 99
5.2.4 软件需求的重要性 99
5.3 软件需求获取的方式和方法 100
5.3.1 获取软件需求的方式 100
5.3.2 获取软件需求的方法 102
5.3.3 获取软件需求的过程 103
5.4 描述初步的软件需求 108
5.4.1 自然语言描述 108
5.4.2 软件原型描述 108
5.4.3 用例图描述 108
5.5 软件需求文档化和评审 113
5.5.1 撰写软件需求文档 113
5.5.2 评审初步软件需求 113
5.5.3 软件需求变更管理 114
5.5.4 输出的软件制品 114
5.6 软件可行性分析 114
5.7 支持需求获取的CASE工具 115
5.8 软件需求工程师 116
5.9 本章小结和思维导图 116
5.10 阅读推荐 117
5.11 知识测验 118
5.12 工程实训 118
5.13 综合实践 119

第6章 软件需求分析 120
6.1 问题引入 120
6.2 为何要分析软件需求 120
6.3 如何分析软件需求 121
6.3.1 软件需求分析的任务 121
6.3.2 软件需求分析的过程 123
6.4 分析和确定软件需求的优先级 123
6.4.1 分析软件需求的重要程度 123
6.4.2 分析软件需求的优先级 124
6.4.3 确定用例分析和实现的次序 124
6.5 结构化软件需求分析方法 125
6.5.1 数据流图及软件需求模型 125
6.5.2 面向数据流的软件需求分析步骤和策略 126
6.5.3 步骤1: 建立顶级数据流图 126
6.5.4 步骤2: 精化数据流图中的转换 127
6.5.5 步骤3: 建立数据字典 130
6.6 面向对象需求分析方法 130
6.6.1 面向对象建模的基本概念 130
6.6.2 统一建模语言UML及支持需求建模的图 131
6.6.3 面向对象的软件需求分析步骤和策略 139
6.6.4 步骤1: 构建和分析用例的交互模型 139
6.6.5 步骤2: 构建和分析系统的分析类模型 143
6.6.6 步骤3:构建和分析立对象的状态模型 146
6.7 支持需求建模和分析的CASE工具 146
6.8 软件需求文档化和评审 147
6.8.1 撰写软件需求规格说明书 147
6.8.2 软件需求评审 147
6.8.3 输出的软件制品 149
6.9 本章小结和思维导图 149
6.10 阅读推荐 150
6.11 知识测验 150
6.12 工程实训 151
6.13 综合实践 151

第7章 软件体系结构设计 152
7.1 问题引入和思考 152
7.2 何为软件设计 152
7.2.1 软件设计概念 152
7.2.2 软件设计元素 153
7.2.3 软件设计过程 154
7.2.4 软件设计质量要求 155
7.2.5 软件设计原则 156
7.3 何为软件体系结构 157
7.3.1 软件体系结构概念 157
7.3.2 软件体系结构风格 158
7.3.3 软件体系结构设计的重要性 161
7.4 软件体系结构设计的任务和策略 161
7.5 结构化的软件体系结构设计方法 162
7.5.1 基本思想 163
7.5.2 步骤1:变换型数据流图的设计方法 164
7.5.3 步骤2:事务型数据流图的设计方法 166
7.6 面向对象的软件体系结构设计 168
7.6.1 软件体系结构的面向对象建模 168
7.6.2 步骤1:设计初步的软件体系结构 170
7.6.3 步骤2:精化软件体系结构设计 172
7.6.4 步骤3:设计软件部署模型 174
7.7 基于大模型的智能化软件体系结构设计 175
7.8 软件体系结构设计的文档化和评审 176
7.7.1 软件体系结构设计文档化 176
7.7.2 软件体系结构设计评审 177
7.7.3 软件体系结构设计输出 177
7.9 支持软件设计的CASE工具 177
7.10 软件设计工程师和软件架构师 178
7.11 本章小结和思维导图 178
7.12 阅读推荐 179
7.13 知识测验 180
7.14 工程实训 180
7.15 综合实践 181

第8章 软件用户界面设计 183
8.1 问题引入 183
8.2 何为用户界面 183
8.2.1 用户界面的组成 183
8.2.2 用户界面的表示 184
8.3 如何设计用户界面 185
8.3.1 用户界面设计的过程 185
8.3.2 用户界面设计的原则 186
8.3.3 初步设计用户界面 187
8.3.4 建立用户界面间的跳转关系 188
8.3.5 精化用户界面设计 189
8.5 用户界面设计的文档化和原型化及评审 190
8.5.1 用户界面设计的文档化和原型化 190
8.5.2 用户界面设计的评审 190
8.6 本章小结和思维导图 191
8.7 阅读推荐 192
8.8 知识测验 192
8.9 工程实训 192
8.10 综合实践 193

第9章 软件详细设计 194
9.1 问题引入 194
9.2 何为详细设计 194
9.2.1 软件详细设计的概念 194
9.2.2 软件详细设计任务 195
9.2.3 软件详细设计的原则 195
9.3 结构化详细设计方法 196
9.4 面向对象详细设计方法 197
9.4.1 面向对象详细设计过程 197
9.4.2 用例设计 198
9.4.3 类设计 203
9.4.4 数据设计 206
9.5 基于大模型的智能化软件详细设计 208
9.6 支持详细设计的CASE工具 209
9.7 软件详细设计的文档化和评审 209
9.8 本章小结和思维导图 211
9.9 阅读推荐 211
9.10 知识测验 212
9.11 工程实训 212
9.12 综合实践 212

第 10章 代码编写与部署 214
10.1 问题引入 214
10.2 何为编写代码 214
10.2.1 编写代码的任务 214
10.2.2 编程语言选择 214
10.3 如何编写代码 215
10.3.1 编写代码的依据和过程 215
10.3.2 编写代码的原则 216
10.3.3 结构化编程与面向对象编程 216
10.3.4 基于大模型的智能化代码生成和推荐 217
10.3.5 基于代码片段的重用来编写代码 218
示例10.2 软件开发知识分享社区中的代码片段及其重用 218
10.4 代码缺陷和调试 218
10.4.1 软件缺陷、错误和失效的概念 218
10.4.2 软件缺陷的描述 219
10.4.3 程序调试 219
10.4.4 基于群智知识来解决代码调试和纠错问题 220
10.5 代码质量保证 221
10.5.1 程序内部质量和外部质量 221
10.5.2 程序编码风格 222
10.5.3 模块化程序设计 223
10.5.4 代码重用 224
10.5.5 程序质量分析 225
10.6 软件部署 226
10.6.1 软件运行环境 226
10.6.2 软件部署的概念和原则 227
10.6.3 软件部署方式 227
10.7 支持代码编写和部署的CASE工具 228
10.8 程序员 229
10.9 本章小结和思维导图 230
10.10 阅读推荐 231
10.11 知识测验 231
10.12 工程实训 232
10.13 综合实践 232

第 11章 软件测试 233
11.1 问题引入 233
11.2 何为软件测试 233
11.2.1 软件测试的概念 233
11.2.2 软件测试的机理 234
11.2.3 软件测试面临的挑战 234
11.3 如何进行软件测试 235
11.3.1 软件测试用例的描述 235
11.3.2 软件测试用例的设计-白盒测试技术 236
11.3.3 软件测试用例的设计-黑盒测试技术 238
11.3.4 非功能测试技术 240
11.3.5 软件测试的实施 240
11.3.6 智能化软件测试 241
示例11. 6 借助智能化软件开发工具来自动生成软件测试用例 242
11.4 软件测试的过程和活动 242
11.4.1 软件测试的步骤 242
11.4.2 软件测试的活动 243
11.5 支持软件测试的CASE工具 244
11.6 软件测试工程师 244
11.7 本章小结和思维导图 245
11.8 阅读推荐 246
11.9 知识测验 246
11.10 工程实训 247
11.11 综合实践 247

第 12章 软件维护 248
12.1 问题引入 248
12.2 何为软件维护 248
12.2.1 软件维护概念 248
12.2.2 软件维护的特点 249
12.2.3 软件的可维护性 250
12.3 为什么要对软件进行维护 250
12.3.1 软件逻辑老化问题 250
12.3.2 产生软件逻辑老化的原因 251
12.3.3 处理软件逻辑老化问题的策略 252
12.4 如何进行软件维护 252
12.4.1 软件维护面临的问题 252
12.4.2 软件维护的过程 253
12.4.3 软件维护技术 254
12.5 支持软件维护的CASE工具 256
12.6 软件维护工程师 256
12.7 本章小结和思维导图 257
12.8 阅读推荐 258
12.9 知识测验 258
12.10 工程实训 258
12.11 综合实践 258

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

毛新军 国防科技大学首席教授,全国高校计算机专业优秀教师,首届霍英东教育教学奖获得者,入选教育部新世纪优秀人才,教育部计算机领域本科教育教学改革试点工作计划(“101计划”)软件工程课程建设及虚拟教研室的负责人,CCF教育专委副主任,信息技术新工科产学研联盟实践教学工委主任。

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部