第3版前言 本书是校企合作实施项目化教学改革的产物,也是2022年山东省省级教学成果一等奖“基于‘岗课赛证’融通的软件技术专业核心课程群构建与实践”的重要支撑材料之一。本书第1版于2016年出版,第2版于2019年出版。本书自出版至今已经累计重印15次,得到了许多高校广大师生的认可。本版为第3版,在第2版的基础上增加了微课视频、敏捷开发模型及敏捷开发实践案例,更新了一些内容和插图,增加了若干实例等。 “软件工程”是软件技术、软件与信息服务、移动应用开发等专业的一门理论与实践并重的主要专业课程,是学生学习软件工程的基本概念、原理、方法和技术的工程类课程。该课程具有理论性强、抽象程度高、实践性强和综合性强的特点。 软件是新一代信息技术的灵魂,是数字经济发展的基础,是制造强国、网络强国、数字中国建设的关键支撑。在国家推动传统产业转型升级,大力发展新一代信息技术产业的政策背景下,我国迫切需要大量的实践能力强、创新能力强的高素质软件技术技能人才。 传统的软件工程教材重理论、轻实践,重能力、轻素质,教学内容庞杂、抽象,教学实践环节薄弱,教学实施方面存在较大的难度。本书是编者在总结多年软件工程课程教学经验和软件项目研发经验的基础上,本着科学、严谨的态度,根据高校教育的职业性、实践性和先进性要求,通过校企合作而开发的项目导向、任务驱动、“岗课赛证”融通、“教学做训育”并行的理实一体教材。 编者以习近平新时代中国特色社会主义思想为指导,以切实提高教学质量,为我国培养德、智、体、美、劳全面发展的高素质软件技术技能人才为目标,积极进行教材供给侧改革,按照2020年教育部印发的《高等学校课程思政建设指导纲要》要求,对教材进行了重新修订。使用一个真实完整的企业项目“新闻发布系统”作为贯穿课程始终的教学项目案例,按照软件开发一般流程,将项目拆分并设计成10个典型的工作任务,再围绕各个典型工作任务,按照“任务导入—任务清单—案例学习—理论深入—任务实施(边学边做,完成课后练习)—拓展提高”的顺序,由浅入深、由简单到复杂重构教学内容。将行业标准、职业规范和相关职业技能大赛要求嵌入其中,并融于爱国、敬业、诚信等社会主义核心价值观及《中华人民共和国著作权法》和《计算机软件保护条例》等国家的法律法规。旨在培养学生从事中小型规模实际软件工程项目的实践能力和可持续发展能力,培育工匠精神和创新精神,提升职业素质,为学生以后更深入地学习和从事软件工程实践打下良好的基础。 软件工程与UML项目化实用教程(第3版)第3版前言本书的特点如下。 (1) 以习近平新时代中国特色社会主义思想和党的二十大精神为指导,基于课程特点加入素质提升内容。 本书从内容的选取,到“新闻发布系统”项目案例和各个具体实例的选择与设计,都基于课程特点融入爱国强国、遵纪守法、求真务实等素质元素,引导学生树立正确的人生观和价值观。例如,通过对任务1中“1.1.4我国软件产业的发展历程”的学习,教育学生增强民族自豪感和使命感,激励学生向软件名人学习,为国家作出更大的贡献;通过任务3中正、反两方面实际案例的学习,教育学生开发软件“不得侵犯他人、集体和国家的利益,不能违反国家政策和法律”,培养学生的遵纪守法意识和将来作为软件开发人员的社会责任感;通过对软件项目开发各个阶段的文档编制和项目管理技术规范的学习,培养学生具备遵守规范、认真严谨、精益求精的工匠精神。 (2) 项目案例导向、任务驱动、“岗课赛证”融通、“教学做训育”并行。 本书根据教育部颁布的软件技术专业教学标准和相关课程标准,通过“新闻发布系统”可行性研究、需求分析、设计、编码实现和测试的完整开发过程,以典型工作任务为知识载体,将素质元素,以及国家人力资源和社会保障部、工业和信息化部颁发的程序员、软件设计师、软件评测师的职业素质、岗位职业能力及职业资格要求和软件测试等相关技能大赛内容融入其中。以实践为导向,边学边做,在做和学的过程中,潜移默化地完成职业素质的提升,从而较好地完成高素质软件技术技能人才的培养。 (3) 双线交叉并行、双例互补驱动。 本书以UML和当今普遍流行的面向对象软件开发方法内容为主,以传统的结构化方法内容为辅,一主一副双线交叉并行,贯穿教材始终,打破了大部分软件工程教材“先从面向过程入门,再转向学习面向对象”的滞后脱节状态,实现了“使面向过程与面向对象协调与统一”的教学设想;项目案例和丰富的具体实例相结合,双例互补、相辅相成、图文并茂、形象直观,降低了抽象理论知识的学习难度,更利于学生理解和掌握。 (4) 校企合作,教材编写团队专兼结合、德才兼备、优势互补。 本书编者与企业紧密合作,将企业真实的软件项目引入教材,一线工程师和专职教师共同参与教材编写。2021年国家课程思政教学名师、山东省高校黄大年式教师团队——“新一代信息技术专业群教师团队”的主要成员作为教材编写团队成员,他们具有丰富的教学经验和教材编写经验,与企业工程师优势互补,同心协力,精益求精打造高品质精品教材。 (5) 及时跟踪软件工程技术发展前沿,将新知识、新技术和新规范及时补充到教材中。敏捷开发是目前使用较广泛、较受欢迎的软件开发模型,腾讯有90%以上的产品采用了敏捷开发方法。本版在任务1中增加了“1.5.7敏捷开发模型”和“敏捷开发实践案例——腾讯敏捷产品开发”;软件发布是软件生命周期中的一个重要环节,发布方式对用户满意度、软件推广和市场竞争力都有影响,第3版在任务9中增加了“产品发布方式创新实践案例——腾讯产品灰度发布模式”;此外,还将项目案例所用的数据库替换为在Internet上的中小型网站中广泛使用的MySQL。 本课程适合在程序设计语言、数据库原理等专业课之后,以及毕业实习、毕业设计之前开设,建议学时数约为70学时,适当安排实践环节,边学边做,分阶段逐步完成实践课题。为方便教师的教学与学生学习,本书配有“新闻发布系统”demo和电子课件免费供读者参考使用。 本书由刘振华教授编写任务1至任务8;王晓蓓副教授参与编写任务1和任务2,并录制微课视频;高维亚工程师编写任务9和任务10,并重新绘制教材插图;大纲的编制和全书的修订、统稿和定稿由刘振华教授完成,李新教授审读了全书。 在本书的编写过程中,得到了山东师创软件工程有限公司的大力支持。此外,还参考了很多相关图书、学术论文以及百度文库、知乎、微博等网络资源的科普文章,专家和同仁的作品启发了编者思路,在此向提供帮助的合作企业、专家和同仁一并表示感谢。 本书虽经几次修改,但由于编者水平有限,书中难免有疏漏和不当之处,敬请专家和广大读者批评指正,我们将不胜感激。 编者2024年8月