李敬辉,张宁,白丽瑞,殷妍
摘要:该文分析了当前软件工程类课程教学中存在的现实问题,明确了在专业背景下解决与专业相关的任务所需要素质的培养仍然是教师作为专业课教学的首要目标。文章根据《计算机科学与技术专业规范》中软件工程方向知识体系和核心课程描述,对应用型本科如何培养学生专业能力进行了研究,并在软件工程及其应用课程中进行了教学改革与探索,为新工科高质量工程技术人才的培养提供了参考。
关键词:软件工程;能力培养;敏捷;工程化
中圖分类号:G424 文献标识码:A
文章编号:1009-3044(2021)20-0098-03
Teaching Reform and Practice of Software Engineering and Its Application Course for Ability Training
LI Jing-hui,ZHANG Ning,BAI Li-rui,YIN Yan
(Tianjin University Renai College, Tianjin 301636,China)
Abstract:This paper analyzes the practical problems existing in the current software engineering course teaching, and clarifies that the cultivation of the qualities needed to solve the tasks related to the major under the professional background is still the primary goal of the teacher as the professional course teaching. According to the knowledge system of software engineering direction and the description of the core course in “Computer Science and Technology Professional Standard”, this paper studies how to cultivate students' professional ability in applied undergraduate course, and carries on the teaching reform and exploration in the course of Software Engineering and its Application, which provides a reference for the cultivation of high quality engineering and technical talents in new engineering subjects.
Kew words:software engineering; ability training; agile; engineering
1 引言
“能力”是能够出色地做完一项事情,评判人们能够达到什么样素质水平,能不能完成一个目标或者使命的基本标准。我们一直在讨论或定义大学生完成学业后,无论进入社会还是继续深造,已经具备的素质、技能、习惯能不能被社会认可?如果大部分不被认可,那么问题来了,是学校的问题还是学生的问题。我们说应该都有问题,但主要问题归结于为什么我们没能让学生毕业时具备这些能力,学生不会将自己的知识打造成解决问题的利器,无论学了多少知识,掌握没掌握,都不很擅长利用这些知识解决各类问题。
2 教学中存在的问题
目前,大部分高校软件工程这类课程大多数按照经典的瀑布模型来讲的,但是学生们学习这种课程时基本会出现如下问题:1)压根不知道用户故事的概念,产品主要业务是哪些,业务流程是怎样的,听不懂睡会儿;2)这么多模型图我究竟要在哪个阶段画哪个图?用工具最终学会了所谓UML图,再没有别的; 3)到了实现阶段,团队不是讨论得太细就是一个人在那里猛干,UML图早已扔到一边,什么团队协作,根本不能落地;4)实现时也只有大概五分之一人开始写代码,其他人不知道该干点啥,代码大部分都不能工作,有严重缺陷;5)发布阶段搞到最后一定到最后检查的那一天,还在调试程序,美化PPT;6)维护阶段时差不多课程快结束了,同学们对自己的产品没有任何维护,放假了;最后,大部分同学都说这课没用,要么听不懂要么累得慌,也没学到什么东西,老师讲得不行。下个学期新的一批学生会重复这个过程。
3 面向能力培养的软件工程及其应用课程的改革理念和措施
3.1 关键需要培养学生软件工程的思维与能力
能力1:将软件工程观念深入到“骨髓”
软件工程及其应用要求的是40学时讲课,24学时上机。从第一节课到最后一堂课,始终灌输给学生软件工程的观念,如软件工程和计算机科学的关系、源代码管理、软件规格说明书、代码规范等知识点,使学生尽快产生固有的软件工程思维,让软件和工程的观念深入学生的骨髓[1]。
能力2:遵循工程思维观察和分析现象,提出并权衡解决方案
教给学生用故事点、问题描述、代码复审、敏捷模型、Scrum等工程化思维分析需求和管理项目,通过三至四个课外实践项目让学生锻炼和权衡所需的方案,并有效实施。
课程的实践环节分为“两类三阶段”,如图3所示。两类是指课内上机和课外实践,课外实践不占学时,利用学生自己业余时间完成由浅入深、由易到难、由个体到团队的“三阶段”实践项目。简单的个人项目、初级团队项目(涉及协作且有一定代码量)和中型成熟项目,按照进度很自然地被安排在课程的前中后三个阶段,教师在每个项目开始前都会要求学生将现阶段所讲的知识与方法应用并权衡实施,验证学生是否可以在该课程进度下具备了解决复杂软件问题的技术能力。