APP下载

设计型项目驱动式软件工程教学改革与实践

2018-09-14楚广琳梁胜彬

电脑知识与技术 2018年16期
关键词:考核机制教学模式

楚广琳 梁胜彬

摘要:针对软件工程的学科特点,结合河南大学软件学院人才培养模式的实践经验,该文从教学模式、教学环节设计、项目实施、阶段评审、考核机制五个方面对软件工程教学模式进行了积极探索和实践,采用设计型项目驱动的方式,以一个完整的案例为主线贯穿整个教学过程,增强学生的自主学习能力、创新意识和团队合作精神,从而达到提升学生工程应用能力的目的。

关键词:软件人才;教学模式;设计型项目驱动;阶段评审;考核机制

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)16-0145-03

The Reform and Practice on Software

CHU Guang-lin1,LIANG Sheng-bin2

(Software College, Henan University, Kaifeng 475004, China)

Abstract:According to the characteristic of software engineering, taking the practice of Henan University, this paper tries to explore a new teaching mode of software engineering curriculum from the perspectives of teaching model, design of teaching link, project implementation, phase review and examine mechanism. It takes design project-driven teaching through the whole teaching process, and enhances students' autonomous learning ability, innovation consciousness and teamwork spirit.

Key words:software talents; teaching model; design project-driven; phase review; examine mechanism

1 引言

软件工程是综合运用计算机理论和技术以及工程管理的原則和方法,按照用户需求及设定的预算和进度,实现特定功能的软件产品的定义、设计、开发、测试、发布和维护的工程。由此可见,学科特点决定了软件人才的培养需要兼顾系统的理论知识掌握和综合的工程实践锻炼[1,2]。

针对软件工程的学科特点,结合河南大学软件学院人才培养模式的实践经验,确定了本课程的总体教学目标。以现代教学理念为指导,采用设计型项目驱动式教学方式,精心进行教学设计,激发学生学习的兴趣和潜能,使学生掌握软件开发和维护的方法,了解软件进化过程和先进的软件项目管理方法。通过实践性教学环节,提高学生实际的软件开发能力和工程素养,培养学生的团队协作意识和创新精神。

2 教学模式

在“互联网+”的时代背景下,结合小范围课程群建设的优势,根据学生学情特点,充分采用多种教学手段,以多种形式的案例为主导,以理论为补充,以网络平台为支撑,以项目驱动为导向,结合实战模式,引领整个开发过程。教学模式结构图如图1所示。

2.1 课程群教学环节设置

基于软件工程课程综合性的特点,在软件工程课程教学中需要充分把握学生已掌握的基础,比如数据库设计、面向对象程序设计语言的编程基础、软件测试的相关基础,在整个课程实施的过程中要综合考虑JavaEE程序设计课程、软件测试课程,形成小范围的课程群,使得三门课程的教学环节设计具有一定的承接性,在课程案例的选择上,使得同一个案例能在三门课程的讲解中有所体现,这样既可以避免课程中出现重复内容的讲解,缩短理论讲解时间,又可以使学生自选的团队项目得以更好地实现。从工程项目的阶段性上来看,软件工程课程偏重于项目管理和需求分析过程,JavaEE程序设计课程偏重于架构、设计模式和编码实现,软件测试课程偏重于测试阶段的技术和具体测试用例设计。

对于学生,可以利用软件工程课程中的知识更好地进行系统需求分析,可以结合JavaEE课程讲述的架构和设计模式的内容进行系统设计,当项目进行到测试阶段的时候,软件测试课程的相关知识基本讲解完毕,学生可以利用所学知识针对自己的项目设计测试用例进行测试,从而更好地达到学以致用的目的。

2.2 教学方法

在“互联网+”的时代背景下,在传统教学方法的基础上,引入了“blackboard”网络课堂,在网上提前发布教学课件、作业布置,学生利用课余时间完成相应的任务并提交作业。针对实践项目中的实际问题,可以在讨论区进行相关讨论,全员参与,共同探索与解答。在实验课中针对每一组的作业进行讨论,最后由教师做总结性评讲。在讨论的过程中取长补短,从而提升学生的沟通表达能力以及分析问题和解决问题的能力。

2.3 学生学情分析

根据软件学院课程设置,软件工程课程在大三第一学期开设,在此之前学生对于一个具体项目的开发和实现了解甚少,对于需要选择的第一个项目表现十分茫然,对于项目的规模大小和实现难易度没有概念,甚至有些组在选择项目上很想当然,选择类似于12306的火车订票系统、银行管理系统等复杂度极大的项目。

基于学生自选题目的前提,在选题之前,教师需要抽出一节课的时间了解学生目前经常使用的软件,比如手机APP、微信公众号等,针对学生经常使用的软件进行大致讲解,使得学生对于项目的规模有一个基本的了解。

2.4 项目分组

将设计型项目驱动思想引入传统案例式实践教学活动,可以有效地提高学生的自我思考能力,加深对软件工程的系统认识[3]。采用实战模式,学生自由组队,小组自主选题进行课程实践。参照企业软件开发过程,要求每组成员5人左右,小组成员各有分工侧重,组长担任项目经理,其他成员分别担任系统分析师、系统架构师、UI工程师、程序员和测试工程师。在组内成员共同完成项目的过程中,组员之间有效的协调和沟通,培养的了学生的团队合作意识,同时每位学生更加明确自身在团队中的作用,充分调动自身主观能动性及时发现问题和解决问题。

3 教学设计

软件工程课程是计算机及其相关专业的一门核心课程[4],通过本课程的学习,能够使学生了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为今后更深入地学习和从事软件工程实践打下良好的基础。

3.1 做好课程引导

对于大三的学生来说,普遍比较关心实训以及就业问题,因此针对软件工程、软件测试、数据库开发相关岗位对学生做了一个普及,对岗位要求、岗位技能以及其与软件工程相关知识进行扩展,使学生从专业的角度去理解软件开发,包括理解软件开发中除知识点之外的技能,比如团队合作和沟通能力。

3.2 指导学生主动思考和探索开发方法

在教学过程中,发现在理论讲解时虽然结合有典型案例,但学生仍理解不够深入,有些学生认为理论课只是概念,而不理解这些理论是软件开发经验的总结。因此在课堂中结合多个案例和比较知名的软件开发方法,在讲解过程中尽可能地进行比较,课下也和学生探讨他们开发软件时有可能遇到的问题以及用什么开发方法什么设计模式比较好,通过这些来加深学生对这门课程的理解和思考。

3.3 拓宽学生知识来源

软件工程属于计算机类的核心课程之一,国内外专家都有大量的著作,而学生课后却很少阅读相关书籍。这门课程仅依靠一本书难以吸收众家观点,所以在课程中介绍了一些知名的软件开发类网站和知名的软件工程、软件设计模式的专家博客来让学生阅读,以扩充其知识面。

3.4 强化知识的灵活运用

在教学过程中,及时总结小知识点,多和学生沟通,对学生掌握的知识进行了解,激发学生对课程内容的深入学习理解。对于理论和实际开发结合较为紧密的阶段,尤其是在开发模式的讲解中,通过比较几种代码方法的差异而造成软件质量的差异,让学生明确软件工程的整体目标,能够让软件工程和软件开发相互支撑,从而提高软件设计的水平,提升开发软件的质量。

4 项目实施

采用设计型项目驱动式教学方式,由学生自愿组队,自主选题进行课程实践。在项目实施的过程中,针对项目开发的各个阶段,坚持进行阶段评审,阶段评审对于项目驱动式教学方法来说是极其重要的。

项目实施的具体时间安排如下:

(1) 命题 (第1-2周)

以开发小组为单位,组长召集所有组员开会选择课题,每组选择课题经教师审查调整后确定。设计的课题尽量结合学生熟悉的各种应用软件,以获得更好的工程设计实践的训练效果。 课题规模、大小适当,具有一定复杂度,鼓励学生选择具有创新性和商业应用性项目。通过激发学生参加开发实践的积极性与创造性,经过努力能够完成,才能达到综合应用所学知识的目的。

(2) 需求分析(第3-7周)

在需求分析的过程中,要求学生分批进行角色转换,从用户到需求分析人员,从需求分析人员到用户。针对学生选题以工程项目为多的特点,鼓励学生使用Axure制作原型,从而更好地确定需求。本阶段末进行需求方案评审。

(3) 软件设计(第8-11周)

确定系统总体设计方案和系统的体系结构,进行系统的模块化设计;建立系统的静态模型及动态模型,进行用户界面设计。在设计的过程中,要求学生结合JavaEE程序设计课程的内容,确定适合本组项目的设计模式,分层建立类模型。本阶段末进行总体设计方案评审,重点是系统类模型。

(4) 编码及软件测试(第12-15周)

编码实现。在代码中要给出详细的注释,包括模块名、功能、作者、中间过程的功能以及变量说明。 结合软件测试课程内容,采用综合测试策略,进行静态分析和动态测试,制订测试计划,设计测试用例,编写测试报告。组内分工完成模块测试、组装测试和功能测试。

(5) 验收测试(第16周)

最后由教师完成系统验收测试,并且以开发小组为单位提交所有文档和代码。

在项目实施的过程中,坚持分阶段进行评审,在每个阶段结束后抽出一周的时间对每个小组的项目进行评审。采用答辩式的评审方式,每组选派出该阶段的主要负责人作为主讲人,主讲人遗漏之处可以由组内成员进行补充。在答辩的过程中既锻炼学生语言表达能力,又是一次自我展示的机会;同时,组内成员共同完成项目的过程中,也锻炼了组员间的协调和沟通能力,培养了团队的合作意识。

答辩结束之后,全班进行交流和讨论,所有的学生都参与到项目的讨论中,使学生的角色由被动接受到主动思考交流,从而增强其自主学习意识和团队意识。在讨论和提问的过程中,充分锻炼了学生如何用简洁的语言更加清楚流畅的表达自己的观点,逻辑是否严密以及沟通的有效性。在全班讨论中对于积极提问的学生给予加分奖励,使得学生能积极主动的参与的学习的过程中。

5 过程性评价的考核机制

软件工程课程是一门实践性较强的课程,学生不仅要具有现代软件工程开发能力,也要具备主动学习、协作学习、系统思维、过程控制、表达展示等综合素质[5]。因此本课程采用过程性评价的考核机制,不以考试成绩作为唯一的考核目标。项目实践考核占50%,期末试卷考核占50%。

期末考核50%,采用纸质试卷闭卷考试,考核学生对于软件工程理论知识的掌握和运用能力。

项目实践考核50%,重点在与学生对专业知识的应用能力、创新能力、实战开发的过程、系统开发的效果以及质量测试等全方面地考察。项目成绩有三部分构成:

(1) 组长为小组内所有成员(包括自己)评分占10分,主要从文档参与度、组内会议表现、原型设计、代码编写、测试实施情况五个方面进行评分。

(2) 評审时其他小组平均评分占10分,取所有阶段评审评分的平均值。

(3) 教师评分占30分。其中,项目答辩10分,系统相关文档10分,系统演示与团队合作5分,课堂表现5分。

6 结束语

实践证明,软件工程课程中采用设计型项目驱动式教学模式,在课程讲授、创新学习以及学生就业等方面均取得了预期效果。首先,通过理论联系实践,活跃了课堂氛围,加深了学生对理论知识理解的广度和深度,大幅提高了教学质量水平。其次,通过项目分组自由组队方式,培养了学生的团队合作精神,增强了学生的创新意识和能力,提高了学生学习的主动性和积极性。最后,通过项目驱动的实践方式,提升了学生综合素质和实际工作能力,有利于学生主动适应软件产业人才需求,增强了就业竞争能力,解决了企业的用人矛盾,可谓是“一举多赢”。

参考文献:

[1] 卢苇,蔡圆媛,邢薇薇. 国际化软件人才培养模式改革与创新[J]. 高等工程教育研究,2013(1):76-82.

[2] 林健. “卓越工程师教育培养计划”专业培养方法研究[J]. 清华大学教育研究,2011,32(2):47-55.

[3] 孙明,田蜜,康文杰.设计性项目驱动的软件工程实践教学改革[J].计算机教育,2016(3):156-159.

[4] 刘强,陈悦,骆斌,等. “软件工程”课程教学实践方案[J]. 中国大学教育,20011(2):41-44.

[5] 吴春雷,刚旭,崔荣学.软件工程综合试验课程的改革与建设[J].实验室研究与探索,2017(1):180-184.

猜你喜欢

考核机制教学模式
群文阅读教学模式探讨
“思”以贯之“学、练、赛、评”教学模式的实践探索
美国大学体育课程对我国体育课程改革的启示
“一精三多”教学模式的探索与实践
“导航杯”实践教学模式的做法与成效
5E教学模式对我国中学数学教学的启示