基于案例的《软件工程》课程教学改革

2019-04-03 01:39吴艳
现代计算机 2019年35期
关键词:面向对象软件工程案例

吴艳

(浙江工业大学之江学院,绍兴312030)

0 引言

《软件工程》是本学院计算机和软件工程专业的一门重要的专业课,开设时间是在大三的上学期,也是一门承上启下的核心课程。《软件工程》既能巩固和拓展已学的《面向对象程序设计》、《数据结构》、《数据库》等专业核心基础课程教学内容,又能为后继的专业实践课程,如《Web 系统分析与设计》、《移动应用与开发》、《物联网技术与开发》等,提供开发方法和思路。此外,《软件工程》课程也是考研和软考的主要专业课。因此,《软件工程》课程教学质量直接影响到后继课程教学、专业拓展以及学生就业。

1 《软件工程》课堂教学中存在的问题

作为《软件工程》课程的主讲教师,虽然在每轮的课程教学中都会根据学生的实际情况进行调整;但是,随着课程的重要程度逐步提升,传统的《软件工程》教学方法已经满足不了课程发展的需求,具体体现在以下几个方面:

(1)课程大纲满足不了课程发展的需要

课程原教学大纲主要介绍传统的软件工程方法学和面向对象方法学。受课程课时的限制,两种方法的讲解只能“重理论,轻实践”。此外,大部分学生不能理解开发过程之间的衔接,因而不能保证开发的持续性和一致性。

(2)教材中实例缺乏系统性和完整性

①缺乏完整的案例贯穿课程教学,因而不能系统、连贯地引导学生展开探索性学习。

②许多教材后的习题类型单一,不能较好体现知识的循序渐进的演进过程。

③实例间没有关联或少关联,缺乏完整性和持续渐进,不能完整地体现软件开发过程。

(3)实践重模仿、轻创新

在课程的实践环节,无论是实验课还是课程设计,主要的教学方法是“老师做,学生模仿”。虽然,学生在模仿过程中能切身体会软件开发过程;但是,总体来说,还是摆脱不了被动的学习,从而一定程度上抑制了学生创新思维能力。

(4)实践环节缺乏过程监督和阶段性文档总结

由于课时限制,教师在课堂上只能对学生跟进的操作进行点评和提示,无法掌控项目开发进度和质量,更不用说及时给出实践指导。此外,学生在开发过程中不重视文档编制,缺乏或不重视阶段性文档总结。更糟糕的是,会影响师生之间的沟通。

(5)实践重实现,轻设计和规范

大部分学生认为计算机软件专业的学生学习目标就是要学会编程,只要程序运行结果正确,根本不考虑程序是否易理解、易修改、易维护和易扩展。因此,会忽视在分析和设计阶段建立严谨的逻辑模型,结果最终实现的编码不能满足项目需求的要求。

(6)课程考核重理论,轻实践

课程大纲中确定的考核包括三部分:期末考试成绩占总成绩的70%、平时成绩(可以是作业、实验,也可是项目)占20%、考勤得分占10%。从考核比例可以看出,这种考核方式不能如实反映学生实际综合分析能力和实践能力。

2 课程教改

2.1 课程教改目标

课程教改以案例实施为背景,以案例开发过程(分析、设计、实现和运行)为载体,培养和提升学生开发软件项目的综合专业知识、文档编制技能以及团队协作意识。课程改革目标主要体现在以下几个方面:

(1)通过案例驱动课堂教学,促使学生利用面向对象方法循序渐进开发软件项目;

(2)培养学生工程素质和职业素养;

(3)通过课程教学的重构,引导学生自主、可持续性学习;同时,也提高教师组织、引导和应变能力。

2.2 课程教改方案设计

课程教改需要从专业培养目标、应用型大学性质以及就业需求出发,调整原有的培养计划进行调整、修改课程大纲、设计案例、重置教学和实验内容、选取合适的教学方法和手段、完善课程考核制度等。具体教改方案的设计主要体现在如下几个方面:

(1)修改课程大纲,精炼教学内容

为了解决原大纲中课时短缺问题,之前的课程教学也在不断调整,如在课程教学中讲解传统工程方法时,主要叙述如何在软件生命周期的各个阶段建立项目逻辑模型,学生则在课余建立相应阶段的逻辑模型,在期末完成项目的编码;在课程大型实验时,学生利用面向对象方法进行同一项目的软件开发。对于一些能力强的学生,学生能跟上教学节奏,但是这种教学方法对学生自身素质的要求比较高,从而整体教学效果并不理想。

再者,学生已修的《程序设计语言》和《数据结构》课程都采用的是目前主流的面向对象技术,传统的软件工程方法中的许多原理、原则和启发性规则在面向对象软件工程中仍然适合。因此,修改后的课程大纲是介绍面向对象软件工程的方法学、原理、启发性规则,以及面向对象开发过程等主要课程内容。

(2)设计案例,搭建教学框架

根据新大纲的要求,就需要设计贯穿整个教学内容的实际案例,换一句话,就是使用案例驱动理论教学,案例需求在经过面向对象分析、面向对象设计以及面向对象编程之后,最终生成实现代码。案例作为一个软件项目,既能作为教学内容;又能作为课程考核内容,直观体现课程教学成果和效果。

因此,案例的设计直接影响课程教学过程和结果,设计案例的过程如下所示:

①选取合适的课程教学案例。具体的要求是案例规模不要太大;已有类似应用,可以作为开发的原型模型;采用主流的开发方法和技术实现案例项目。

②案例的实践与课程理论教学的衔接。首先做阶段性衔接(各个开发阶段完成相应的逻辑模型);然后,再根据具体的教学进展做细节调整,例如在每个阶段结束时安排阶段性总结,团队成员可以介绍案例进展情况,教师也可以适时进行指导。

③形成团队实施案例。原则上是自由组队,5 人一组,由一人(案例项目负责人)进行分工:3 人进行软件开发,1 人负责文档编制,1 人负责案例分析PPT 讲解。考虑到案例实施的有效性和完整性,团队成员会做调整(主要开发成员不得超过2 人),各团队综合能力基本均衡。

④案例实施成果将纳入到课程考核中。项目团队成员之间分工要明确,考核成绩也要有所区别。重置课程考核的比例,其中,期末考试成绩占50%、案例项目实施成绩占40%,课堂考勤得分占10%。

(3)编制教材,支撑案例开发

案例驱动教学中教材的组织顺序就是软件项目实施过程。在案例实施中,对于重复的操作避免教材内容的重复,但所授知识是“必需、够用、重点强调,且能温故知新的”。

图1 鱼骨图描述的教材结构

图1 中鱼骨图的右端鱼尾表示学习《软件工程》课程必须具备的专业知识;左端鱼头代表最终课程教材;鱼骨图的上方是教材结构图,教材由4 篇内容组成,用大骨表示,小骨则表示每篇中的章节;鱼骨图的下方表示教材进展过程中课堂教学需要达到的阶段性教学目标,也是案例项目开发进程的体现;贯穿整个教材的鱼脊梁就是案例,教材中的案例是《机票预订系统》项目。

(4)以学生为中心,组织课堂教学

课堂教学主要以学生为主,教师穿插讲解面向对象软件工程方法、原理及工具。例如,教师讲解了面向对象开发中涉及到三个模型:对象模型、功能模型和动态模型以及建模过程,学生则完成建模过程,在这期间,需要团队成员之间的沟通以及教师和团队的沟通。阶段性任务完成后,学生需要组织讨论(完成阶段性总结PPT)、评价阶段成果(阶段文档),在教师和团队达成共识后,进入下一个阶段的学习或开发。

(5)监督教学进度,建立课堂评价机制

案例实施监督要贯穿课程教学始终。为了保证案例实施按照之前设计的预期效果进行,教师要会预判教学中可能出现的问题,并给出问题的解决方案。如果遇到不能立刻解决的棘手问题,可以课后解决以确保课堂教学持续性,课程内容按授课计划进度进行。

课堂评价机制是案例教学质量把关的最后一个环节,是课程教学一个重要组成部分。课堂评价既能肯定团队阶段性成果,又能记录课堂案例没能解决的问题;此外,能反馈课堂教学中存在的不足。有导向的课堂评价能促进教学改革,增进师生以及教师之间的交流,对课程教学有决策和鉴定功能。

3 结语

由学院软件工程16 实验班承担《软件工程》教改的试运行任务。全班36 人,课程考核成绩分布如图2所示,其中,案例实施成绩分布如图3 所示。

图2 《软件工程》课程成绩分布饼图

图3 课程案例实施成绩分布饼图

从分布图中可以看出:学生参加项目实施的积极性比较高,分析和设计能力有明显提高;学生重实践,轻理论教学。《软件工程》的三要素是方法、工具和过程,而方法是完成软件开发的各项任务的技术方法,为软件开发提供“如何做”的技术。再者,理论对实践具有指导作用。因此,课程教学中不能忽视理论教学,使之融于实践教学之中。

猜你喜欢
面向对象软件工程案例
GEE平台下利用物候特征进行面向对象的水稻种植分布提取
案例4 奔跑吧,少年!
TWO VILLAS IN ONE CEDIA 2020案例大赛获奖案例
Bespoke Art Deco Media Room CEDIA 2020案例大赛获奖案例
面向对象方法在水蓄冷PLC编程中应用分析
面向对象的组合软件工程研究
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨
随机变量分布及统计案例拔稿卷