APP下载

关于应用型本科计算机专业《软件工程》课程教学的思考

2014-03-29余久久张佑生

赤峰学院学报·自然科学版 2014年8期
关键词:软件工程应用型案例

余久久,张佑生

(安徽三联学院 计算机科学与技术系,安徽 合肥 230601)

1 引言

软件工程是在工科类高等院校计算机及相关专业高年级学生中开设的一门重要的专业必修课程,是指导软件开发与维护的一门综合性课程,也是一门实践性很强的课程[1].课程的实践教学内容要求学生不仅了解软件工程的基本理论,更要掌握现代软件开发的技术和方法,开发过程中所涉及到的各种软件工具的使用、以及软件测试与管理技术等.培养出具有计算机软件开发能力、软件工程管理能力、能够在软件领域中从事需求分析、设计、开发、测试、实施和管理等工作的高素质工程类应用型人才,要求学生具备作为软件工程师所需的专业能力及职业素养,为今后从事计算机软件开发和维护提供方法上的指导[2].由于软件工程课程的实践教学内容还涉及到众多其它领域的知识,如管理学、心理学、经济学、人机工程学等,因此本课程已经由最初的一门课程发展成为以计算机科学技术为基础的交叉学科,在当今的信息社会中占有重要地位.

针对应用型本科计算机专业的学生,应该将课程教学定位在两个方面[3,4]:一是从软件生命周期的角度,让学生在实践学习过程中了解软件工程的基本概念、基本原理和软件开发的基本方法;二是从应用型本科高校人才培养目标出发,从工程应用的角度,使学生掌握软件的系统性与规范化的最新开发流程或技术.结合应用型本科计算机专业的人才培养目标,软件工程课程的教学过程应既重视理论知识以及分析问题、解决问题的方法的传授,又要重视工程实践与技能应用能力的培养.教学目标是使学生掌握软件需求分析、概要和详细设计及软件测试与维护等内容,采用工程化的原则、开发方法与技术来实现中、小规模信息系统的开发与管理[5].同时培养学生的操作技能、团队协作能力、分析与解决问题、谈判与沟通、创新与发展等多方面能力,为将来从事大型软件系统的开发与维护打下扎实的基础.

2 当前课程教学中存在的问题

鉴于课程强调学生动手能力及培养其分析、解决实际问题能力,大多数教师往往依据学生现有的知识结构,课堂教学联系实际案例,较多采取案例教学或项目实践的教学方式.但是从实际教学效果来看,教学效果一般.学生没有表现出浓厚的学习兴趣,实际动手能力也没有得到显著提高.作者基于近几年该课程实际教学经验,认为该课程在教学过程中主要存在以下几个问题:

2.1 教学内容与实际相脱离

随着软件开发新技术、新工具、新方法的不断涌现,基于构件的软件开发思想、安卓平台下开发软件的过程、软件逆向工程以及软件二次架构等内容已成为当前学科领域的主流[6].可是目前针对软件工程课程的主要教学内容仍然以传统的结构化开发方法为主,严重脱离实际.不少教师仍然指导学生选择传统的瀑布开发模型对单机版的软件进行开发讲解作为教学案例或实践项目,然而这些案例已随着web时代的到来逐步退出舞台[7].尤其是学生在实践环节中接触到的是逐步被淘汰的内容,与当前软件产业技术发展严重脱节,学非所用.

2.2 实践教学环节中所采用的案例不当

由于软件工程的实践性很强,实践教学时一般需要辅以规模适中、可操作性强的案例作为教学载体.如果案例选择不恰当,教学效果肯定不好.即使很多教师意识到这一点,但是在指导实践教学过程中,因自身缺少实际项目的开发与管理经验,未能结合学生自身认知特点对所选择的教学案例进行过适用性调研.导致对案例的选取要么学生对其业务背景不熟悉(如业务背景深奥的金融领域类软件),或案例过于简单(如简单的加减乘除功能的简单计算器程序等).从学生的角度来看,由于自身尚处在学校学习阶段,缺乏实际企业级项目的实习或实训经历,对业务背景复杂的项目往往在有限的时间内无法完成,从而降低学习兴趣.虽然小型项目可以直接进行编码实现,却不清楚为什么要进行可行性研究、需求分析与程序测试等一系列软件项目运作流程.此外,由于很多教师缺少实际案例或项目的完整开发流程的经历,在实践教学中出现选择项目案例前后不连贯情况.例如,软件的可行性分析阶段选用A系统作为案例,需求分析却用B系统,设计与编码阶段又选用C系统,测试与维护最终又选用D系统等现象.未能把一个完整的实践案例贯穿软件开发历经的全部流程展示给学生.导致学生对软件项目的运作流程不能建立起完整概念,缺乏对所学知识的整体认识.所以,如何在实践教学环节中选择应用领域为学生所熟知、实施难度适中的完整实践案例,自始自终贯穿于现代软件项目生命周期的全过程是课程实践教学环节中需要思考的问题.

2.3 教师自身缺乏工程实践经验与能力,不能实质性的指导学生参与实践活动

由于高校教师大都长期从事教学活动,缺乏软件工程领域实际项目经验.不仅对企业实际环境下真实的软件项目运作方式不了解,更没有深入企业一线对软件开发过程中所历经的需求分析、系统设计、编码实现、测试与维护等流程,以及在各阶段需要使用到的各类开发、管理工具与相应开发环境配置等内容进行过实际操作[8,9].导致实践教学(含实验、实训、课程设计等)中不重视学生工程化思想的培养,缺少对学生工程能力和职业素质的训练,也不能及时解决学生在实践过程中所遇到的各种突发性难题.教师指导往往只限于组织学生网上查阅与课后编写软件开发各阶段所涉及到的相关项目文档环节上,或仅仅要求学生上网下载一些简单且免费的小软件,进行操作层面上的大致了解作为实践任务.导致大多数学生在实践环节中利用便利的网络资源进行QQ聊天、网上看电影、上网游戏等一些与学习无关的活动.学生没有机会通过参与模拟软件开发全过程中来提高自己的动手实践能力,无法产生浓厚的学习兴趣.

2.4 课程考核方式与考核标准不合理

目前很多教师已逐步意识到对软件工程课程采取以理论知识点记忆考核为主的传统开、闭卷笔试的考核方式对学生动手实践能力与软件开发过程能力的培养不利,大都运用侧重对学生项目实践能力考查的考核方式.通常的做法是在对学生进行分组之后,教师布置好实践题目,只要在规定时间内收集好每人或每个小组最终的项目成果即算考核通过;或者仅以类似“正确/错误”、“优/良/中/及格/不及格”等单一作业成绩评定等级,辅以学生的出勤率作为课程考核标准.甚至有些老师在考核中连用到的实践操作规范与要求,各阶段文档模板等都未能统一规范,更谈不上制定出规范的多元化的总体与阶段性过程相结合的考核标准.导致教师对学生或项目组在实践考核环节监控不利,再加上某些基础薄弱的学生,缺乏主动学习的精神和独立思考问题的能力,不愿意参与实践过程[9].这是当前软件工程课程考核中存在的严重弊端.

2.5 课程实践教学的时间与场所受限

当前国内不少高校迫于教学资源限制,大都以服务于日常教学的普通计算机机房或专业实验室作为开展软件工程课程实践教学的场所,仅在正常上课时间内开放,课外通常不予安排实践活动时间[9].实验设备数量也存在不足,这对软件工程实践教学的开展会有直接的影响.基于计算机软件系统防病毒措施及计算机硬件等公共资产管理等客观要素,通常采取对计算机系统与所安装的软硬件系统进行还原保护等一系列防范措施,这样在每次开展实践活动之前学生要花费不少时间重新安装或部署相关的软硬件系统,从而挤占了实践活动的时间,影响了实践教学的效果.

3 软件工程课程教学建议

面对当前软件工程课程教学中所遇到的问题以及教学效果不甚理想的状况,作者对今后的课程教学提出以下建议.

3.1 课程教学内容(案例)的选取

就软件工程学科而言,教学内容(案例)的选取要融入当前软件开发中的新技术与新方法,培养应用型人才“学以致用”的能力.摒弃对不适用或已过时技术方法的讲解(比如取消面向过程的开发技术,取而代之的是选择基于web环境下面向对象以及基于构件开发技术为主线的项目案例等)[6].案例要以教学内容为依托,题材来源于生活实际并且规模要适中,且能够反映出软件工程最新发展动态.所涉及到的行业背景不宜深奥,控制在学生充分了解范围之内.教师务必演示一个或多个完整并成熟的项目案例,通过子模块分解或按照分阶段实践的方式贯穿课程实践教学全过程.教师对所选案例应非常熟悉,最好是亲自开发过的,有利于课程实践中全面指导学生[7].

3.2 教师工程实践能力的培养

教师自身工程实践能力的培养与建设直接决定实践教学的效果.现实中多数任课教师普遍存在“理论水平高,实践技能低”的现状,这需要合理安排专业教师利用寒、暑假到本地相关企业参加软件工程相关新技术的培训及实践活动,提升其工程实践能力,打造“双师型”教学师资队伍.鼓励青年教师参加国内外软件工程领域相关的各类资格及认证考试,并与职称或薪酬挂钩[9,10].此外,聘请当地软件企业一线研发人员到高校担任兼职教师,弥补校内教师实践教学中的能力不足,并以此带动教师的工程实践能力.

3.3 建立完善的多元化的考核机制

软件工程课程的考核主要以实践环节考核为主,强调对学生实际项目运作能力的培养.考核方式不仅局限于教师对项目阶段性完成成果状况的检查,同时也要对项目实施各阶段中所涉及到的项目组成员对所用到的理论知识的掌握、实践技术与相应软件工具的应用水平、思考与解决难题的能力,文档标准化程度、项目进度追踪、项目风险监控措施,沟通与合作能力等多个因素进行综合性评价.所以,采用现场演示,小组自查,组间答辩,问卷调查、集体讨论,教师抽查,专家评价等多种灵活多样变的考核形式,同时聘请企业相关技术人员加入专家组参与考核过程,并且结合教学实际制定出一套完整的软件工程课程实践教学过程的考核体系.

4 未来的展望

在前文所提出的课程教学相关建议的基础上,为避免软件工程实践教学中可能出的问题(如:实践活动环节与管理环节脱节;教师难以跟踪具体项目实践进展;项目小组成员间不能及时联系等),未来还需要借助或开发一个面向软件工程课程实践教学的管理平台(系统)以保障实践教学的管理.在以项目分组形式开展实践活动的教学过程中,该平台总体上至少需要实现三个功能:项目选题、前期准备与项目管理.选题阶段,教师通过平台创建实践课题,发布相关的项目资料或文档模板等.项目组长可查看和选择任务,建立实践项目小组并分配组员任务;前期准备阶段,教师向各小组下达具体的项目实践任务书,各小组接受任务并撰写项目开发计划和测试计划通过平台提交给教师审阅,审阅通过后则进入项目开发阶段;项目管理方面,学生按开发进度通过平台完成并提交项目开发各阶段的实施成果(设计的用例、编写的源程序等)以及相应的里程碑文档,供教师对项目进度随时进行跟踪和监督,组织阶段性评审,提出指导意见.最好平台能够提供学生留言和在线答疑功能,这样教师可以及时得知学生在项目实践中所遇到的问题,加强对项目组管理同时利用平台解惑答颖及时反馈,有效保障实践教学活动的实施与进行.

5 结束语

在新形势下教师应该把教学活动与当前软件企业实际项目运作流程相结合,围绕应用型本科计算机专业的学生的认识特点,积极探索课程教学改革新思路及新方法,在提高教学效果的同时培养出更多的合格的应用型软件技术类人才.

〔1〕范会联,仲元昌.基于项目驱动的软件工程课程教学改革探索[J].教育与职业,2013,5(2):147-148.

〔2〕蒋述东.项目教学的特征及其适应性研究[J].教育与职业,2012,18(6):147-148.

〔3〕邢薇薇,芦苇.国际化软件工程人才培养的探索与实践[J].中国高等教育,2012(8):34-35.

〔4〕刘强,陈越,骆斌,等.“软件工程”课程教学实施方案[J].中国大学教学,2011(2):41-42.

〔5〕李益民,解成俊,刘军,等.应用型软件人才创新实践能力培养模式的构建 [J].现代教育技术,2011,21(11):109-111.

〔6〕余久久,张佑生,傅廷亮,等.软件工程项目教学思考与探索[J].赤峰学院学报(自然科学版),2013,10(上):238-239.

〔7〕胡洋,苏琳.Web软件时代的《软件工程》课程改革与建设[J].中国成人教育,2010(5):111-112.

〔8〕马燕,张根耀,王文发.软件工程实验教学模式改革与实践研究 [J].教育与职业,2008,36(12):149-150.

〔9〕余久久,张林,张健.项目教学法在高职院校开展的几点探讨[J].皖西学院学报,2010(2):42-44.

〔10〕柳翠寅,蒋斌,欧方平.软件工程专业实行“项目教学法”的研究与实施[J].煤炭技术,2012,31(3):246-248.

猜你喜欢

软件工程应用型案例
关于应用型复合人才培养的教学模式探讨
案例4 奔跑吧,少年!
“5-2-1”应用型人才培养模式探索实践
随机变量分布及统计案例拔高卷
第8讲 “应用型问题”复习精讲
发生在你我身边的那些治超案例
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨
一个模拟案例引发的多重思考