APP下载

基于实训模式的软件工程课程设计

2011-12-31唐晓君李晓红

计算机教育 2011年22期

  摘 要:分析目前高校计算机专业软件工程实践教学存在的问题,提出在学校现有实践教学条件下,结合社会发展对计算机专业人才的要求,借鉴企业的工程化模式,将校内实验设备、师资、项目等资源进行重组,实现课堂教学与实训相结合的课程设计教学的新模式。并给出了在中国软件行业协会的支持下该模式的实践过程,结果证明,教学效果良好。
  关键词:软件工程;课程设计教学;创新模式;实训
  
  1 背景
  软件工程课程设计的目标是使学生系统地掌握软件工程的过程、方法和工具,为学生将来从事软件的研发和管理奠定基础。软件工程教学内容中的需求分析、设计、实现和测试等软件开发技术以及工程化的开发过程(如软件过程、配置管理、项目管理等)必须通过实际软件问题求解过程以及团队合作进行体验,而综合的软件开发能力的锻炼和培养是需要借助一个完整的软件项目开发过程。因此软件工程课程设计是巩固课堂教学成果、培养学生软件工程实践能力的重要环节[1],为了培养高素质、高质量的软件工程人才必须在理论与实践结合上下工夫,通过强化实践教学来提高人才培养[2]。
  2 现状
  教育部高教司2006年一项调查[3]显示,自2002年以来,高校计算机专业大学生初次就业率连年下滑,然而业界高端软件人才依旧匮乏。造成这一现象的重要原因为当前高校软件工程型人才的能力结构和知识结构与当前技术发展不能紧密结合,没有形成以能力培养为核心、综合技能训练为辅助的实践课程体系[4]。目前软件工程的实践教学主要存在以下问题:
  1) 软件工程教学多数还停留在传统的人才培养模式,基础理论知识和验证型实验构成教学主体,
  
  缺少对学生工程能力和职业素质的训练,因此培养出来的学生难以适应IT企业的需求。
  2) 传统的软件工程教学使学生具备一定的专业基础知识,但没有机会让学生将所学知识融会贯通,缺乏实际参与软件工程项目的经验。
  3) 学校通过在企业建立实训基地的形式将软件工程实践环节引入其中。这种形式可以促进学生从学习专业知识向学习专业技能迅速转化。但这种形式需要投入大量的人力、财力。目前,由于这种形式风险较大,成本高,多数高校没有采用。
  如何在学校现有教学条件下,借鉴企业的工程化模式,实现软件工程课堂教学与实训相结合,使学生走出校门就能实现与IT企业的无缝连接,这正是该门课程在实践教学环节需要研究和解决的问题。
  3 课程设计改革
  工程化的方法开发软件已成为当今业界的共识,对学生工程能力和职业素养的培养仅在学校内部进行显然局限性大,为了更好地促进学生这种专业综合能力的塑造,我校通过中国软件行业协会教育与指导委员会与北京市中关村软件园签订了校企合作的协议,并在中关村软件园挂牌成立了校外实训基地。由于软件工程课程设计周期有限(如1周),进入实训基地进行教学的效果并不理想。因此,借助合作,我们对软件工程课程设计教学环节进行改革,
  
  作者简介:唐晓君,女,副教授,研究方向为软件工程;李晓红,女,讲师,研究方向为信息系统、软件测试。
  
  使其与实训相结合,探索出一种计算机实训与基本教学实践环节无缝结合的模式,具体实践流程如下。
  3.1 内容安排
  目前,我校软件工程课程设计教学环节按照教学大纲安排,共分以下几个步骤。
  1) 课程设计要求说明。给出课程设计期间对学生的出勤、时间、地点等要求。
  2) 课程设计任务布置与讲解。进行课程设计安排时,课程设计任务的布置形式由教师进行课程教学的形式发布;对课程设计内容的选取大多选择模拟或选取类似中小企业项目。
  3) 分组实践。分组原则是使每个学生工作量相当,并都能在项目开发过程中得到锻炼。
  4) 中期检查。教师对各小组中期结果以答辩的形式进行监督检查,督促各小组按进度进行。
  5) 课程设计答辩、设计结果提交。课程设计采用答辩和软件演示的形式对设计结果进行验收。
  以上这种课程设计安排形式也是大多数高校采用的方式,但该方式不能使学生对企业软件开发全过程产生很好的感性认识。同时,由于项目大多是模拟项目,学生对待项目积极性不够,对项目需求的理解及设计的实现也过于局限,小组成员的角色分工也不够科学。此外,对课程设计环节的管理(任务下发、角色分配、进度控制、在线答疑、任务提交等)一直没有实现信息化。
  3.2 具体措施
  结合软件工程实践教学的现状,针对我校软件工程课程设计存在的问题,在中国软件行业协会提供的产学研实训平台的支持下,我校对软件工程课程设计的教学进行了以下几方面的改革和探索:
  1) 将实训模式引入课程设计中。
  软件工程课程设计教学采用的是实训模式,但由于考虑成本问题,没有借助企业人员进行专门指导。学生课程设计地点仍在计算机专业机房和专门实验室,课程设计是在本校软件工程专业教师的指导下,按照软件企业的项目开发摸式,以“项目驱动”形式进行软件开发实践训练,既以项目开发带动软件工程的理论学习,又以软件工程的理论来指导软件开发的实践,使学生得到较全面、系统和规范的软件工程实践训练,提高软件设计与开发的能力。
  2) 将产学研实训管理平台引入课程设计管理中。
  对软件工程课程设计整个环节的管理(包括任务发布、角色分配、项目管理、进度监控、成果验收、学生管理等)通过中国软件行业协会提供的产学研实训管理平台实现。平台为每个学生分配用户账号及口令,通过该平台统一进行学生管理,学生可以通过校园网登录实训管理平台,方便快捷的了解项目需求(课程设计主要任务)、项目相关资料、项目管理流程、项目角色分工等信息。平台也为指导教师提供管理接口,教师可以通过平台进行项目案例的发布与管理、项目的启用、项目角色的管理等。学生和教师还可以使用在线提问与在线答疑的形式指导教师进行交流,学生与教师的沟通更加实时、高效,实现了完全信息化的管理形式。
  3) 将企业真实案例引入课程设计中。
  在进行课程设计任务布置时,采用所有项目案例均来自中国软件行业协会提供的企业真实案例(10余个),考虑到企业员工与在校学生的能力差别,同时根据课程设计要求掌握的知识点和教学时间限制,通过指导教师与软件行业协会技术人员沟通,对项目案例进行不同程度的调整。因此,应用到课程设计教学中的所有教学案例均由本校教师根据课程设计的要求定制确定。对案例的裁剪既解决了以往教学案例局限的问题,又保证了学生在有限的设计周期内实现完整实际项目开发的目的。
  学生按照兴趣选择项目案例,这样可以确保学生在整个项目周期中有足够的积极性和信心按期完成。通过以实际的工程项目为背景,使学生参与实际项目开发,以开发团队形式,按照实训步骤在规定的时间完成从需求分析建模(需求由案例给出)、设计、代码编写、测试、部署体验完整的软件开发全过程。这样,可以激发学生项目开发热情,使学生完全掌握企业化软件开发流程,并具备直接进入企业进行开发的能力。
  4) 将企业项目管理方法引入课程设计中。
  课程设计借鉴企业化运作机制,实施每天八小时工作制,晚上可以加班加点,以项目组长负责、项目组成员协作的形式完成设计任务。
  项目启动(课程设计任务的发布)通过产学研实训平台发布,学生可以使用个人用户账号通过校园网络登录到平台查看自己的项目组及项目要求。由于项目案例均来自企业真实案例,因此,平台能为学生提供比较规范、详细的需求说明文档,帮助学生更好地理解业务知识及流程。
  
  项目小组成立时,指导教师按照项目实际情况(项目需求复杂程度、设计难度、代码量等)安排小组人数,并按照学生能力对小组成员进行角色分配,如项目组长、软件工程师、测试工程师、配置工程师等。这种角色分工根据源于企业项目组的分工,能够使学生更加感性的认识企业中的不同角色。在进行小组人数的安排时,为防止出现工作量过少的情况发生,限制每组人数不得超过5人,满足软件工程中7±2的原理。后来的实践证明,这样的分组,在项目中每个实训的学生都有明确的职责和任务,工作量非常饱满,通过项目组内部协作,能够降低项目实施的难度,又能确保项目能够按期保质保量完成。开发过程中,任何一个学生不努力或不配合,都可能导致最终提交的任务效果不理想。
  项目进度的控制通过实训管理平台设定中期检查及最终任务提交时间表实现。开发过程中,无论是中期检查结果还是最终成果验收都通过平台来提交,并以教师评语的形式实时有效地将结果给学生反馈,既可以提高学生继续完善项目的动力,还可以有效地监控各项目组的进度,同时,还可以及时对各项目组进行沟通与指导。
  项目进行中(课程设计过程中),教师不再是传统的讲授者,更像是一位工程项目的经理,负责提出项目的要求(即向学生明确项目应用的背景、目的、期望看到的结果、具体的数据和指标要求),检查项目(学生)的开发进度,监督开发过程,评定软件质量。同时适当点出课程设计中可能涉及到的知识,帮助学生自主学习、启发学生创造性思维的观念,然后由学生自己进行理论分析,自己建立问题的模型,自己掌握开发进度,自己完成课程设计的任务,最终使学生具备独立分析和解决问题的能力。
  对项目成果的验收,采用全面有效的质量评价指标,不仅考虑项目完成的质量,包括需求、设计模型的合理性、准确性,软件代码的完整度,还要考虑验收答辩时项目组成员不同任务承担者的表现,这种评价机制既能保证对学生工程能力的考核,又能锻炼学生的协作能力和职业素养。
  3.3 成果
  该实践教学模式应用到了本校计算机2007级、2008级两个年级中,在成果验收时与往届比较有很大进步,体现在以下几方面:
  1) 因采用企业真实项目案例,学生在课程设计过程中学习积极性有很大提高。
  2) 以企业规范的需求及设计说明书作为指导,开发过程中对项目需求的理解更加清晰,分析得更加充分。
  3) 项目需求分析及设计阶段模型建立更加准确。
  4) 因有实训平台进行角色任务管理,小组成员分工更加科学、合理。
  5) 最终提交的课程设计文档更加规范。
  6) 学生的团体协作能力得到很好的锻炼,项目完成度有很大提高。
  7) 学生对企业软件开发全过程有了更深刻的认识。
  8) 在实训平台的支持下,将传统的“以教师为中心”的教学模式,转变为“以学生为中心,在教师指导下的主动学习”模式,有效地达到了教学互动、教学相长的良好效果,同时老师对学生以及项目的管理更加高效。
  另外,在期末进行的评教中,该门课程的实践教学更是得到了学生的认可,评教优良率达到了98%。
  4 结语
  让工程化思想成为学生从事软件开发工作的行动指南并不是一件容易的事情。在传统的教学过程中,软件工程往往是一门独立的理论性课程,学生们认为软件工程就是一些条条框框。缺乏实践经验,缺乏合作开发软件的感性体会,使得学生在学习过程中难于理解软件工程的精髓。
  通过软件工程课程设计教学的改革,使学生对企业软件开发及软件过程管理有了更加深刻的认识。这种模式成功地将实训环节引入了课程设计,在课程设计的实践教学中培养学生的软件工程意识,这是对高校计算机专业实训与实践教学环节无缝结合模式的有益探索,可在计算机专业其他的实践教学环节进行推广,如数据库实践教学、程序设计实践教学等,还可以将这种模式推广到兄弟院校的计算机专业,这也是中国软件行业协会一直大力支持和倡导的。
  
  参考文献:
  [1]