APP下载

软件工程综合实训建设与实施

2010-12-31

计算机教育 2010年8期

  摘要:本文分析国内外高等工程教育“工程化”发展趋势,论述现代软件工程对人才的迫切要求,提出了构建软件工程综合实训课程。针对该课程,本文详细讨论了课程建设的主要内容,包括工程项目资源库建设、实训流程标准化和规范化建设、过程管理和评价方法建设等;经过多年教学运行,实践证明收到了良好的效果。
  关键词:软件工程;课程综合化;课程建设
  文章编号:1672-5913(2010)08-0143-03
  中图分类号:G642
  文献标识码:B
  
  1 背景及意义
  
  1.1课程综合化是中国高等工程教育改革的发展趋势
  20世纪末,美国高等工程教育界掀起了“工程回归”的浪潮。由美国康奈尔、斯坦福、加州伯克利等8所大学联合发起的高等工程教育改革运动,使高等工程教育的“工程化”改革方向成为国际工程教育改革的共同选择。“工程化”用一种全新的视角,重新审视工程教育的人才培养模式,用工程实践活动的本质和特点来对其进行衡量、要求和评价。也就是面对迅速变化的世界,工程教育的主要方向是使建立在分化的学科基础上的工程教育经过否定之否定,在更高意义上回归其涵义,在对最新科技成果加以吸收、改造、优化后,形成综合创新优势,更加具有工程的系统性和实践性。
  与发达国家相比,中国高等工程教育的课程改革目前还存在一些差距。一是,原有的课程体系基本没有改变,基础课设置较多而综合性课程设置较少。二是,课程建设和课程改革一般都在各课程内部进行,所谓建设只是把相关的课程机械地组合在一起,并未真正地建立起课程之间的联系,更谈不上通过整合教学内容形成新的课程,学科壁垒依旧存在。如果不解决好这一问题,我们所采取的任何加强课程建设的措施只能使课程本身更加完美,而与其他课程的相互联系、相互融合变得更加困难。因此,必须重新架构综合化的高等工程教育课程体系,达到培养工程师的目标。
  
  1,2现代软件工程的迫切要求
  美国纽约时报最为著名的专栏作家之一托马斯·弗里曼的畅销书《世界是平的》(The World Is Flal),告知人们在今天这样一个因信息技术而紧密、方便的互联世界中,全球市场、劳动力和产品都可以被整个世界共享,一切都有可能以最有效率和最低成本的方式实现,全球化不可阻挡。在这一过程中,软件人才紧缺成为一个全球性问题。如日本最为紧缺的是软件人才,美国软件工程师的平均薪酬相对是最高的,韩国每年软件人才缺口在20万人以上,中国每年软件人才缺口在50万人以上。而在软件业界存在软件人才“怪圈”,一方面企业求贤若渴,另一方面中国高校培养的人才又不能满足企业的需求,相当一部分毕业生在软件开发的综合能力、应用能力方面与快速发展的软件产业不相适应,亦即不能满足现代软件工程的迫切要求。为此必须改革人才培养模式,包括教育理念、培养目标和课程体系,这就需要设置综合性的课程,正是在这一背景下,我们构建了软件工程综合实训课程。
  
  
  2 课程构建
  
  在课程的构建上,我们从需求出发,而这些需求来源于用人单位、学生、科学和技术发展的需要等。因此,需要考虑的因素有实施课程的时代背景,如所面临的政治、经济、科技、文化等因素,以及他们可能的发展趋势;学院的培养目标、培养定位、特色和优势等;学生的现状以及他们未来的职业发展方向,以及社会对这些职业方向的要求等。即需求和培养目标是我们构建这一综合实践性课程的基础。
  有了需求与培养目标就可以着手构建课程内容以实现培养目标。从目标到课程内容,是一个重要而复杂的过程,需要产业领域的专家、工程师和教育专家、教学管理人员等共同商讨和研究决定。我们把这一过程分为三个基本步骤,第一,讨论为了实现培养目标,需要培养学生哪些技能、使他们获得哪些经验。第二,明确课程内容怎样贯穿软件工程基准、标准。第三,明确在专业能力培养过程中,怎样培养和评价软件工程师的非专业技能。
  
  3 课程建设主要内容
  
  软件工程综合实训是非常重要的综合性的课程。对教师的要求非常高,特别是对教师的综合素质和工程能力要求较高。在建设过程中,我们邀请成都的软件研发企业和我们一起边实施边建设。目前,已建设成熟,主要建设的内容包括工程项目资源库建设、实训流程标准化和规范化建设、过程管理和评价方法建设等。
  
  3.1工程项目资源库建设
  在实习实践中,传统的做法是高校教师用一些理想化的假象项目让学生进行实验。在培养过程中,学生无法体验到企业真实的项目需求,培养的人才离企业要求有一定的距离。我们意识到这一问题后,提出了首先建设实际项目资源库。目前,我们已建设了10多个完整的西南资源,涉及的行业领域包括企业应用(工资管理、ERP等)、电信、电子商务、电子政务、软件外包、金融等。项目来源有两方面,一方面来源于与我们合作的企业,另一方面通过购买获得完整的项目资源,每个项目包括各种文档、代码、基准、规范、测试用例、PCL表、B票等。这些项目资源为该课程的建设和实施奠定了坚实的基础。
  
  3.2实训流程标准化和规范化建设
  通过实践,我们总结出实训的标准化流程包括下达实训任务,制定实施方案,审核实施方案,制定实习计划等环节。以2008年对软件工程05级(Java)学生实训为例:
  (1)首先由院系向教师下达实训任务(若有公司介入,则以协议的方式),包括任务目标、实现功能、实现清单。
  ①任务目标。学生在项目中需完成如下工作:开发解决各种问题所需要的逻辑;描述系统各组件之间的关系;用户界面设计和开发;编写代码实现逻辑;准备测试案例:进行单元测试和组合测试;准备测试报告;准备错误报告。
  ②实现功能。项目完成时需交付的内容:符合规范说明书的经过测试和具有相应功能的代码;包括项目目标、,项目进度表、源代码、类图、错误报告、测试案例报告、屏幕格式在内的完整文档。
  ③实现清单。功能说明书、代码规范。
  (2)老师或公司接受任务后制定相应的实施方案,其内容包括实施方法、实习内容和实习要求。
  ①实施方法。实习时间:48学时;团队组织:以班为单位每个小组3~5人;指导情况:每个班由1名技术人员和1名教师负责实习指导、管理;授课内容:实习项目讲解、实习要点、成果物要求。
  ②实习内容。需求分析;概要设计;详细设计(数据库采用SQL);程序编码(编程语言JAVA);单元测试;组合测试;项目验收、总结、评价。
  ③实习要求。按实习项目要求配置开发环境;每个开发小组按开发计划提交相应开发阶段的开发内容的成果物;由实习指导小组对实习项目组的每个小组的开发过程控制、成果物质量、小组合作状况等给以评价。
  (3)由院系一级审核实施方案,并提交实施。
  (4)老师或公司按照实施方案再制定详细的实习计划。
  
  3.3过程管理和评价方法建设
  传统的软件开发,对软件质量管理重视不够,导致不成功或失败的软件项目很多。当代软件工程认为,软件质量贯穿于软件开发的全过程,要重视软件开发的质量,必须加强过程管理,从而诞生了CMM/CMMI的软件质量管理体系。我们认为,这种质量管理体系不仅适合于管理软件开发,也适合于软件工程专业教育,特别是软件工程专业的综合实训教育。整个实训过程可以看成是一个软件开发的生产过程的全面仿真,在实施过程中,在各流程中通过各种控制措施对学生进行监控,在每一个实训环节上控制住“偏差”,变单纯的“事后把关”(传统考试)为“事前预防”、“事中控制”(过程管理)和“事后把关”(多元化评价)相结合,从而保证软件人才培养质量。
  教学评价是对受教育的多种要素进行价值评估,而考试是教学评价的工具和手段,是测量应试者知识与能力、素质与潜力的量尺。考试为教学评价提供了量化资料,却不能替代教学评价。一个好的教学评价方式要有利于激发学生的学习积极性,又要有效促进学生能力的培养。根据软件工程的特点,在软件工程综合实训中,我们参考企业对员工绩效的管理方法,建设了一套评价方法。
  首先,实习的学生以班为单位,组成一个团队,每个团队完成一个项目,每个项目有一名项目总负责人,项目按模块划分成若干个小组,每组由一名小组长和多个学生组成,每位学生根据组内分工负责具体的子模块。学生在规定的时间内完成规定的任务,在每个工程阶段结束时,小组以电子文档方式提交成果,学生自查或者教师督查成果并给出成绩。
  第二,学生的成绩由几部分组成,一部分是学生出勤的情况,一部分是对学习表现的评分,一部分是各个工程阶段的业务实训成绩,一部分是模块完成后的总评分。
  学生的出勤由小组内学生相互监督,最后由组长形成出勤表,每周统计一次,每缺一次扣5分,当缺勤次数超过5次,该门课程不再评定成绩,也不能获得学分。
  学生学习表现的评分,总分是20分。关注的是学生在学习过程中的表现,包括使命感、责任感、自信心、进取心、意志、毅力、气质、团结协作精神、自我管理能力、交流能力、解决问题能力、设计创新能力等。
  各工程阶段业务实训的成绩占40%,各个工程阶段制定了严格的评分标准,各阶段的成绩由小组长根据评分标准进行评定。
  模块完成后对各个小组完成的模块要进行成绩评定。占总评成绩的40%,首先,学生由学生提交实训任务报告书,然后由指导教师或企业技术工程师进行评定,根据软件工程要求,主要从质量、时间控制、标准和流程、使用编程架构及优化使用编程架构及优化四个方面,对学生实训效果进行定量的评分。
  这样从多方位、多视角来实施教学评价活动,评价既关注结果,更关注过程,也关注学生的自我认识和自我发展,评价学习不再仅仅依靠考试成绩,还包括对学习的态度、行为等方面的考查。一句话,就是以多维视角的评价内容和结果,综合衡量学习的发展状况。
  
  4 实施情况
  
  从2005年至2009年,已执行了五年,对33个班的学生采用集中授课方式进行了实训,如表1所示。
  以2005年与四川四凯计算机软件有限公司合作实训为例,2005年10月实训完毕后,学生们在随后参加的招聘会面试中,因为有实训的经历而增加了优势;也因为尽早体验了团队工作的严密与合作的重要性,使得他们在日后的工作中能够很快地适应,甚至脱颖而出。
  在2005年以前,毕业论文的完成是学生们感到棘手的事,但通过软件工程实训的培养锻炼后,学生的论文质量明显地得到提高。
  总的来看,学生愿意参加该课程的学习,通过学习能体验到成功的喜悦,体验到软件工程的全过程,增强了信