新書推薦:
《
王阳明大传:知行合一的心学智慧(精装典藏版)
》
售價:HK$
227.7
《
失衡与重塑——百年变局下的中国与世界经济
》
售價:HK$
135.7
《
不被定义的年龄:积极年龄观让我们更快乐、健康、长寿
》
售價:HK$
79.4
《
南方谈话:邓小平在1992
》
售價:HK$
82.8
《
纷纭万端 : 近代中国的思想与社会
》
售價:HK$
109.8
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:HK$
172.5
《
朋党之争与北宋政治·大学问
》
售價:HK$
102.4
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:HK$
90.9
|
內容簡介: |
本书从软件工程的基本原理出发,以适应本科专业的教学和实践为宗旨,在充分吸收国内外软件工程研究成果精华的基础上,依据作者多年软件工程领域的教学和科研经验,结合国内软件开发的特点编写而成。本书正文共9章,第1章是理解软件工程,第2-5章讲述了软件开发的各个方面,包括软件过程、需求工程、软件质量管理和成本评估等,第6章介绍了软件工程对社会的影响,第7-8章介绍了软件管理和维护等相关内容,第9章列出了软件相关的国际和国家标准。
|
關於作者: |
江颉,博士,浙江工业大学教务处副处长,浙江工业大学计算机科学与技术学院原副院长、副教授。2018年获得高等教育教学成果奖二等奖1项,2021年获得浙江省高等教育教学成果奖特等奖1项;2018年浙江工业大学计算机科学与技术专业、软件工程专业通过国家工程教育专业认证,担任组织工作者。
|
目錄:
|
前言
教学建议
第1章 理解软件工程1
1.1 软件的发展2
1.2 软件的特性和分类3
1.2.1 软件的特性3
1.2.2 软件的分类5
1.3 软件工程的起源6
1.3.1 软件危机6
1.3.2 软件工程的定义7
1.3.3 软件过程8
1.4 软件质量 9
1.5 软件团队11
1.6 软件工程的知识领域14
1.7 软件工程师的职业道德16
练习和讨论16
第2章 软件工程发展18
2.1 软件工程发展历程19
2.1.1 传统软件工程19
2.1.2 面向对象的软件工程20
2.1.3 基于构件的软件工程21
2.1.4 面向服务的软件工程21
2.2 软件工程中新技术的影响22
2.2.1 云计算与软件工程22
2.2.2 大数据与软件工程24
2.2.3 移动应用与软件工程26
2.3 软件工程中人的因素27
2.4 软件工程的未来发展29
练习和讨论30
第3章 软件过程31
3.1 软件生命周期模型31
3.1.1 瀑布模型32
3.1.2 快速原型模型34
3.1.3 增量模型35
3.1.4 螺旋模型35
3.1.5 喷泉模型36
3.2 统一过程37
3.2.1 RUP的产生37
3.2.2 RUP的过程模型38
3.2.3 RUP的特点40
3.3 敏捷开发41
3.3.1 敏捷原则41
3.3.2 敏捷过程43
3.3.3 极限编程43
3.3.4 Scrum44
3.4 开源软件48
3.4.1 开源软件的发展48
3.4.2 开源软件开发过程49
3.5 软件过程的改进50
3.5.1 软件过程特性50
3.5.2 能力成熟度模型51
3.5.3 IDEAL模型52
3.5.4 个人软件过程52
练习和讨论53
第4章 理解需求55
4.1 需求工程55
4.2 需求获取57
4.2.1 需求获取方式57
4.2.2 应用领域理解58
4.2.3 应用实例需求获取59
4.3 用例和场景61
4.3.1 UML用例和场景61
4.3.2 业务模型应用实例63
4.4 用户故事地图71
4.4.1 用户故事71
4.4.2 用户故事估算和计划73
4.4.3 用户故事地图73
练习和讨论75
第5章 需求分析77
5.1 面向数据流的结构化分析78
5.1.1 半形式化分析技术78
5.1.2 Gane和Sarsen结构化系统
分析方法82
5.2 结构化分析实例83
5.2.1 逐步求精数据流图83
5.2.2 定义数据字典84
5.2.3 建造实体关系模型86
5.3 面向对象分析88
5.3.1 面向对象方法和结构化
方法88
5.3.2 面向对象分析中的主要
技术88
5.3.3 面向对象分析方法的主要
步骤90
5.4 面向对象分析实例93
5.4.1 功能建模93
5.4.2 类建模96
5.4.3 动态建模97
5.5 形式化分析技术101
练习和讨论104
第6章 软件设计106
6.1 软件工程中的设计107
6.1.1 设计原理107
6.1.2 设计过程109
6.2 结构化设计111
6.2.1 结构化设计的主要步骤111
6.2.2 结构化设计实例115
6.3 面向对象的设计119
6.3.1 面向对象软件设计的步骤119
6.3.2 面向对象软件设计实例121
6.4 用户界面设计126
6.4.1 黄金规则126
6.4.2 用户界面设计过程128
6.4.3 GUI设计规则129
6.5 面向对象软件设计优化131
6.5.1 面向对象软件设计原则131
6.5.2 面向对象软件设计模式133
练习和讨论135
第7章 软件实现与测试137
7.1 高质量软件开发的基本方法138
7.2 代码规范139
7.2.1 代码规范的重要性139
7.2.2 常见的代码规范140
7.2.3 代码重构142
7.3 软件测试145
7.3.1 软件测试简介145
7.3.2 软件测试的分类145
7.3.3 自动化测试147
7.3.4 软件测试模型148
7.3.5 黑盒测试和玻璃盒测试150
7.4 测试驱动开发155
7.4.1 TDD的基本概念155
7.4.2 TDD的实施步骤156
7.4.3 基于单元测试的TDD实例(Java)157
7.5 集成160
7.5.1 软件集成160
7.5.2 持续集成161
练习和讨论163
第8章 软件维护与演化164
8.1 软件维护与更新164
8.1.1 软件的可维护性165
8.1.2 软件维护类型165
8.1.3 软件维护流程167
8.1.4 软件维护的困难及对应
策略168
8.2 软件部署169
8.2.1 软件部署的概念169
8.2.2 软件部署工具Docker169
8.3 软件配置管理172
8.3.1 软件配置管理的作用172
8.3.2 软件配置管理过程172
8.3.3 常用的软件配置管理工具173
练习和讨论 178
第9章 软件项目组织与管理180
9.1 软件工程项目管理180
9.1.1 项目启动管理181
9.1.2 项目计划管理181
9.1.3 人员组织与管理183
9.1.4 变更管理184
9.1.5 风险管理186
9.2 计划与估算189
9.2.1 计划189
9.2.2 软件规模估算191
9.2.3 工作量估算193
9.2.4 软件项目管理计划的组成196
9.2.5 IEEE软件项目管理计划197
9.3 软件项目团队管理199
9.3.1 软件项目团队管理概述199
9.3.2 项目组织的规划200
9.3.3 团队建设和日常管理200
练习和讨论201
第10章 软件创新202
10.1 新技术对软件创新开发的影响202
10.1.1 深度学习202
10.1.2 5G通信技术203
10.1.3 大数据203
10.1.4 云计算203
10.2 软件产品的更新与迭代203
10.3 软件开发创新204
10.3.1 商业模式创新原则204
10.3.2 业务驱动原则205
10.3.3 开发模式匹配原则205
10.3.4 UI/UE先行原则 206
10.3.5 样式家族化原则206
10.3.6 组件化开发原则206
10.3.7 核心竞争力培养原则207
10.4 案例分析1:智慧城市软件
系统207
10.5 案例分析2:云课堂系统209
10.6 案例分析3:虚实融合的舞台
演艺系统211
练习和讨论213
第11章 软件工程与社会214
11.1 计算机安全215
11.1.1 计算机安全问题与措施215
11.1.2 计算机安全事件实例216
11.2 软件工程与法律218
11.2.1 信息时代下的《民法典》218
11.2.2 软件开发合同218
11.2.3 知识产权219
11.3 软件工程与道德 221
11.3.1 用户的道德问题221
11.3.2 软件开发者的道德问题222
11.4 软件工程与经济223
11.4.1 软件产业对经济发展的
影响224
11.4.2 软件对人类经济生活的
影响224
练习和讨论226
第12章 软件相关的国家标准
和国际标准227
12.1 软件工程国家标准227
12.2 软件工程国际标准228
12.3 软件工程文档撰写国家标准230
12.3.1 可行性研究报告230
12.3.2 开发计划234
12.3.3 需求规格说明书235
12.3.4 概要设计说明书237
12.3.5 详细设计说明书239
12.3.6 测试计划240
12.3.7 用户操作手册242
练习和讨论244
参考文献245
|
內容試閱:
|
前 言
软件是新一代信息技术产业的“灵魂”,“软件定义”是信息革命的新标志和新特征。软件和信息服务业是引领科技创新、驱动经济社会转型发展的核心力量,是建设制造强国和网络强国的核心支撑。如今,世界产业格局正在发生深刻变化,发达国家在工业互联网、智能制造、人工智能、大数据等领域加速战略布局,抢占未来发展主导权,给我国软件和信息技术服务业的跨越发展带来了深刻影响。党的二十大报告“构建新一代信息技术、人工智能”等一批新的增长引擎的需求、《中国制造2025》的发布,“一带一路”的提出,“互联网 ”行动计划、数字中国、军民融合发展战略的推进实施,国家网络安全保障的战略需求,乃至第二个百年奋斗目标的要求,赋予了我国软件和信息技术服务业新的使命和任务。
以互联网、大数据为代表的数字革命正在深刻改变着经济形态和人们的生活方式。计算、网络和数据无所不在,软件是支撑计算、网络和数据的基础,是承载数字要素信息的有效载体。但由于软件固有的复杂性、抽象性、不可见性等特性,软件开发周期长、代价高和质量低的问题依然存在,软件危机还无法从根本上消除。软件工程的诞生和发展大大提高了软件开发的效率和软件质量,越来越显示出重要的作用。软件工程已成为信息社会高技术竞争的关键领域之一。
软件工程课程是一门综合性和实践性比较强的课程,在高等学校计算机相关专业的教学中有着重要的作用,其学习效果直接影响到学生毕业后在软件开发和项目管理相关工作中的竞争力。软件工程是软件工程专业、计算机科学与技术专业的必修课程,也是软件分析和设计人员、软件开发人员、软件测试人员、软件管理人员、软件售前和售后工程师、软件高层决策者必须学习的专业课程。
一本好的软件工程教材应具备科学性、先进性、工程性和实用性,更贴近高校师生的实际需求,更能体现软件企业目前的真实应用,从而帮助学生快速掌握软件的理论、技术和方法。出于这样的认识,在编写本书的过程中我们认真总结了多年的教学经验,并融入了部分软件工程领域的新发展,希望本书能给读者带来一些收获。
在编写过程中,我们力求反映三大特色:一是内容全面,本书不仅覆盖软件工程领域的基本概念和思想,同时突出软件工程研究和实践的新进展,希望能够使读者对软件工程有较为全面的理解;二是注重实践,本书从实用角度介绍软件工程技术方法,并配以丰富且贴切的实例,每章设置若干有启发性的练习和讨论题目,希望能够对读者开展实际的软件工程活动有所帮助;三是价值引领,本书全面落实党的二十大报告关于“实施科教兴国战略,强化现代化建设人才支撑”,着力培养担当民族复兴大任的时代新人,在介绍知识的同时注重融入职业道德、科技创新、家国情怀等思政元素,希望能够促进师生达成课程思政的教育目标。
由于精力和水平有限,且计算机软件技术的发展日新月异,因此书中难免存在不足之处,诚恳欢迎各位读者提出宝贵的意见和建议,以便我们及时修正。
教学建议
本书可作为各类理工科大学计算机相关专业软件工程课程的教材,也可作为IT企业软件工程师的参考书。作为大学教材时,教学内容应涵盖全部章节,建议开设3学分、48学时的课程。
建议先修课程:数据结构、面向对象程序设计、数据库原理与应用等。
第1章 理解软件工程(2~4学时)
本章介绍软件工程的基础知识,包括软件的发展、软件的特性、软件的分类、软件工程的起源、软件质量、软件团队、软件工程的知识领域和软件工程师的职业道德。本章旨在使读者建立对软件工程的整体认识,教师应注重引导学生完成学习目标并激发学生的学习兴趣。
第2章 软件工程发展(2~4学时)
本章介绍软件工程的发展历程、软件工程中新技术的影响、软件工程中人的因素以及软件工程的未来发展。软件工程的发展历程包括传统的、面向对象的、基于构件的、面向服务的软件工程等,目前为流行的是面向对象的方法。本章还分析了云计算、大数据、移动应用等新技术对软件工程的影响。本章旨在使读者认识到软件工程的理论和方法在不断发展,也意识到人的因素对软件开发的重要作用,教师可启发学生开展自主探究式学习,引导学生发现现象并总结规律。
第3章 软件过程(4~6学时)
本章介绍软件生命周期模型,包括瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。现代的软件过程模型包括统一过程、敏捷开发、开源软件的过程模型等。本章后介绍了CMM、IDEAL、PSP等软件过程改进模型。本章侧重使读者掌握Scrum等方法,体会软件过程改进的重要性,教师应注重各种模型之间的联系与区别。
第4章 理解需求(2~4学时)
本章介绍需求工程的基本知识和方法,并以智慧教室系统开发为例,详细分析了需求获取、通过用例和场景进行需求建模以及利用用户故事地图建立项目需求的方法。本章旨在使读者掌握需求工程的基本方法,高度重视需求工程对软件开发的重要意义,教师可运用案例进行分析讨论。
第5章 需求分析(6~8学时)
本章介绍结构化分析、面向对象分析和形
|
|