当前位置: 东星资源网 > 文档大全 > 句子大全 > 正文

软件工程人才培养方案【面向应用型人才培养的“软件工程”教学改革与实践】

时间:2019-01-19 来源:东星资源网 本文已影响 手机版

  摘要:“软件工程”课程是理论性、实践性和工程性都很强的一门专业课。以应用型人才培养为目标,对“软件工程”课程的教学内容、教学方法、实践教学等内容进行研究,结合教学实践提出了一些提高教学质量、满足应用型人才培养要求的切实可行的方法。
  关键词:应用型人才培养;软件工程;教学改革
  作者简介:李秀芳(1979-),女,山东莒南人,鲁东大学信息与电气工程学院,讲师;宋丽华(1965-),女,山东济宁人,鲁东大学信息与电气工程学院,副教授。(山东 烟台 264025)
  中图分类号:G642.0     文献标识码:A     文章编号:1007-0079(2012)05-0037-02
  
  随着我国经济的快速增长,产业结构的不断调整以及高等教育向大众化教育的转变,对应用型人才的需求大量增加。同时,我国信息产业的快速发展对计算机类应用型人才培养提出了更高的要求。进行应用型人才培养的关键在于培养学生的实践动手能力,为此,在计算机专业课程教学中应该不断更新教学内容、教学环节、教学方法和教学手段,不断增强学生的社会适应能力和竞争能力。[1]因为计算机类毕业生就业方向的特殊性――主要从事计算机应用系统的开发、管理和应用,所以能够应用软件工程思想解决实际问题是计算机专业学生必备的技能之一。通过对“软件工程”课程的学习,可以提高学生综合运用知识解决实际问题的能力,对学生科研能力、工程能力以及创新能力的培养以及更高层次的发展都具有重要作用。因此,在当前应用型人才培养模式下,进行“软件工程”课程教学模式的探讨具有重要意义。
  “软件工程”是高等院校计算机及相关专业的一门专业课,主要讲述了软件工程的基本原理、开发方法、开发工具以及软件项目管理。[2]20世纪80年代以来,国内各高校都陆续开设了“软件工程”课程,但在课程设置、教材内容、讲授重点、教学方法等方面都存在不少问题。在实际教学过程中,“软件工程”课程教学效果并不令人满意,也很难达到“软件工程”课程目的和预期教学效果。笔者结合多年“软件工程”课程教学经验,不断进行课程教学方法的改革,调整教学内容、教学方法和教学模式,加大实践教学力度,提高“软件工程”课程教学质量,逐步满足计算机专业应用型人才的培养要求。
  一、准确把握课程教学内容
  纵览软件工程发展的40年,软件工程学科经历了四个发展阶段。第一阶段称为传统的软件工程阶段,主要以结构化开发方法、Jackson方法为代表,系统开发分为问题定义、可行性研究、需求分析、概要设计、详细设计、编码和测试以及运行维护七个部分。[3]第二阶段是面向对象的软件工程阶段,主要是以Booch、OOSE等为代表的面向对象的软件开发方法;以对象为核心,进行对象模型、动态模型和功能模型的设计以及面向对象的实现。第三阶段是软件过程工程阶段,着重进行软件过程的控制和管理,如:项目计划、成本估算、质量保证以及软件配置管理等。第四阶段是构件工程阶段,着重于软件重用和基于构件的软件开发方法。随着CPU计算能力的快速提升以及并行运算技术和多核多线程技术的应用,使得软件开发模式也将发生相应的变化。在未来的软件工程领域,需求工程的研究与实施、领域工程、敏捷过程、持续集成以及配置管理等方面都将成为研究和应用的热点。
  在“软件工程”课程教学中,教学内容应该与时俱进。首先,应该摒弃以传统软件工程作为教学重点的老式教育,重点讲述面向对象的软件开发方法以及基于构件的开发方法,不断调整教学内容,适时增加UML建模语言、RUP、极限编程、SOA等当前流行技术以及其他新技术,在保证学生掌握核心思想的同时,不断拓宽他们的知识面,完善知识结构,增强学生的竞争能力。其次,随着新技术的不断引入,教学内容将更加繁多。所以,对教学内容进行提炼是非常必要的。通过分析各个内容之间的关联关系,凝练成各个知识点;然后按照计算机应用型人才培养目标选择知识点进行重点讲解。另外,国内的大多数教材在内容取材、案例的选择和图示符号的描述等方面存在一定的问题,涉及先进技术的介绍较为缺乏或者介绍很肤浅。在实际的教学中,不能单纯地依赖某本教材,可以通过综合多本教材尤其是国外的优秀软件工程教材,取长补短,及时调整教学内容。否则,教学内容将严重滞后于技术的发展。
  二、灵活运用多种教学方法
  在“软件工程”的教学过程中,如果只是采用单一的教学方法,时间一长,学生很容易产生厌倦的情绪,从而影响教学效果。考虑到“软件工程”课程的理论性、实践性和工程性的特点,可以综合运用案例教学法、项目驱动式教学法和启发式教学法等多种教学方法,充分发挥各种教学方法的优势,以更好地提高教学质量。
  1.案例教学法
  案例教学法是在教师的指导下,根据教学目的、教学内容的需要,通过对典型案例的剖析,引导学生分析问题和解决问题的一种启发式的教学方法。它是一种亲验性的教学方法,以学生为主体,让学生主动观察、分析和解决案例中存在的问题。与传统的灌输式教学法相比,案例教学法的目的在于培养学生分析问题、解决问题的能力以及创造性思维能力。
  在软件开发的各个阶段都可以借助案例说明如何开展各种活动。在案例的选取上要下功夫,尽可能地选取学生容易理解又能够涵盖教学内容的案例。不管是讲传统的软件开发方法还是面向对象的软件开发方法,选取的案例应该是一致的和连续的。通过学习,学生可以掌握一个具体的系统从定义、开发到实现的整个过程。
  在讲解结构化软件开发方法时,选取了学校正在使用的图书馆管理系统,分析该系统的数据需求和功能需求,然后采用面向数据流的设计方法设计其体系结构。在讲解面向对象的软件开发方法时,选取学生熟悉的ATM自动取款机系统,通过详细的需求分析去确定系统的对象模型、功能模型和动态模型,然后进行类、对象、关联以及服务的设计。在整个教学过程中,案例教学法起到了很大的作用,它使教师的讲授更加清晰,学生的理解更加深刻。
  2.项目驱动式教学法
  项目教学法是以实际项目为实践教学对象,将知识点融入项目中,教师以一个典型项目为依托,将项目分解成一个个任务案例进行剖析。在教师的指导下,围绕教师所下达的项目要求,学生完成相关任务模块,并最终将一个个任务模块“组装”成一个完整的项目。任务驱动教学法是一种建立在建构主义学习理论基础上的一种教学方法。它将教学场景设计成学生感兴趣的任务模块,以完成具体任务模块为主线,把知识点贯穿于任务模块中;学生在一定的场景下借助教师的引导和同学的帮助,利用必要的学习资料,完成所布置的任务模块,通过意义建构方式获得知识。
  在“软件工程”的实践教学中,可以采用项目驱动式教学方法,即综合项目教学法和任务驱动教学法。[4]学生自由划分成若干个小组,不同的小组选择选择不同的项目。以“项目”为“主线”,将课程知识点贯穿于项目的每个任务模块中,在教师的引导下“驱动”学生完成任务。通过模仿课堂教学中所讲的案例,完成每个任务模块,再将每个任务模块“组装”成一个完整的项目。在这个过程中,学生的学习活动是在项目开发的各项过程和活动的驱动下完成的。通过这种方式使学习过程成为每个学生都参与的创造性实践活动,使学生在实践过程中理解和把握知识技能。“项目驱动”实践教学法激发了学生的成就感,培养了学生的团队协作精神,能充分调动学生的自主学习积极性,可显著提高实践教学质量。
  3.启发式教学法
  在“软件工程”的课堂教学中,应该经常采用启发式教学方法,给学生独立思考的机会,尽可能地避免满堂灌。软件工程中的很多理论都可以采用启发式教学方法。如:在讲授软件过程开发模型时,讲完每种开发模型的基本原理之后,不直接给出模型的优缺点,而把问题留给学生。在学生思考的过程中不断地给以引导,总结出每种模型的优缺点。之后再引导学生根据每种模型的原理特点分析该模型适合哪种类型的软件项目开发,从而对各个模型进行比较学习。在整个过程中,教师需要针对学生的反应进行正确的引导,对学生的回答进行总结和完善。学生参与其中,可以很好地调动学生的学习积极性和主动性,加深对知识的理解和掌握。
  三、强化实践教学环节
  “软件工程”课程的实践性特点决定了在教学中应该重视实践环节。目前,大多数高校“软件工程”课程的实践环节主要由两部分组成:平时实验和课程设计。而平时实验学时普遍较少,所以对于实验内容需要精心设计。而且实验课一般一次只有2学时,如果实验任务过大往往完成不了,这时往往需要多次实验才能完成,也就是需要跨越多个星期,失去了实验过程的连续性。对于不少学校在平时实验中安排应用系统的开发,笔者认为这种实验设计不够合理。平时实验的目的应该是通过实验加深对理论知识的理解、消化和应用,同时为课程设计奠定一定的基础。为此,我们在平时实验中设计了各种工具的使用,如:数据库建模工具Power designer、UML建模工具、软件项目管理工具Project以及软件测试工具等等,同时结合具体的案例,加深学生对相关理论知识的理解和应用。
  课程设计环节则是依托学生比较熟悉的图书馆管理系统、学籍管理系统等应用系统,3~5人一组,自由组合,合作完成。所有小组针对同一个系统进行竞争性开发(如果学生人数过多,可以分成几个大组,每个大组一个题目)。根据每个小组的需求分析和设计结果从中选择最优方案,将模块实现任务分配到各个小组,各个小组负责编码实现和测试相应模块。在模块开发完成后,小组之间开始进行模块双向选择,并将所选择的模块与自己开发的模块整合成为一个完整的系统;最终将各自集成的完整系统进行包装和演示。具体实施时,需求分析、软件设计部分可以随课堂教学内容同步开设,而编码测试阶段可以集中完成,在每个阶段学生都要提交阶段性成果(需求规格说明书、总体设计和详细设计说明书、测试说明书等)。由于在课程设计过程中,采取小组答辩、汇报以及相互打分的形式,可以在一定程度上激发学生的学习和实践热情,同时对学生自主学习能力、应变能力、团队协作能力、动手实践能力的培养都起到了重要作用。通过课程设计,使“软件工程”教学达到理论与实践相结合、知识与能力相结合,既培养个体的程序设计与实现能力,又强化了学生对团队协作的工程规范和专业知识的综合运用。
  除了传统的实践教学环节,还可以利用讲座、培训、校企合作等方式不断充实实践教学环节。通过邀请IT企业的技术人员来校举办讲座和培训,让学生从中了解软件开发人员的职责,体验软件开发的实践过程,有利于调动学生的学习兴趣,明确未来的职业目标。目前,学校已经建立了多家校外实习基地,针对计算机相关专业,主要涉及程序设计语言以及应用系统的开发。通过实习和培训,学生强化了学习内容,深入理解了软件工程中的各个环节,充分领悟了软件工程知识在软件开发中的作用以及团队协作精神的重要性。
  四、综合运用系统演示、多媒体、黑板等多种教学手段
  案例教学法几乎适用于“软件工程”课程所有内容的教学。从需求分析到编码测试阶段讲解案例时,如果能够适时地进行系统演示,对于学生的理解会有很大帮助。如果在需求分析阶段只是针对某个应用系统的需求陈述进行分析,学生很难将其和未来的可运行的应用系统关联起来。此时,采用原型开发模型是一个很好的选择。可以先演示一个包含基本功能的系统,让学生分析和体验该系统的基本功能,然后在此基础上再引导学生分析还需要补充哪些功能,哪些功能还需要优化,最终确定所开发系统的功能。在这个过程中,系统演示起到了重要作用。
  多媒体呈现的信息量大、丰富多彩,尤其是可以借助于动画、音频和视频等多媒体信息展示课程内容,受到了很多教师的青睐。同时,在课程中涉及到大量的图例,如果采用板书也会占用大量的课堂时间,所以在讲解这些内容时采用多媒体教学是比较合适的。正因为多媒体的诸多特点,对多媒体课件的制作、课件的利用以及讲解过程都提出了较高的要求。教师应该精心制作课件,讲解时不能照“片”宣科,讲解速度不能太快,否则学生容易疲劳,失去学习的兴趣,从而影响了教学效果。而对于教学中的细节问题还需要借助于黑板,黑板的使用使得学生能够紧跟教师的思路,而且讲解内容会更加清晰。
  总之,在实际教学中应该综合运用多种教学手段,充分发挥各种教学手段的优势,丰富课堂教学过程。
  五、课程考核多样化
  “软件工程”是一门实践性很强的课程,所以课程考核的重点不是理论考试成绩,而是学生能否在软件开发的过程中贯彻软件工程学的思想和方法。因此,应该加大实践考核(实验和课程设计)的比重,对于在实践中积极参与和思考、表现良好的学生,教师给予充分的肯定和加分奖励。在这种情况下,可以充分调动学生上课的积极性和主动参与性,从而提高了学生运用知识分析问题和解决问题的能力,培养了他们的创新意识。在笔试题目中综合性和设计性题目应占主要部分,同时可以增加阐述个人观点、现象分析等让学生自由发挥的题目,考查学生对所学知识的理解和运用能力。
  六、不断提高教师自身素质
  教师自身素质的高低在一定程度上影响着课程的教学效果。如果教师的知识面过窄、知识更新不及时,在教学过程中很难进行扩展,学生也很难通过教师讲解了解到软件工程学科的前沿知识。在日常教学中,教师应该阅读大量相关书籍,综合多种教材,取长补短,精心备课,及时更新自身的知识储备,紧跟学科发展的前沿。同时,可以通过申请进修或参加企业或公司培训,提高自身的业务水平;参与课题研究或项目开发,提高自身的科研水平。知识丰富了,水平提高了,上课自然会游刃有余。
  七、结束语
  经过近几年的“软件工程”课程教学改革和实践,本课程的教学取得了较好的效果。从学生反馈的信息来看,普遍认为:课堂教学内容丰富,能够理论联系实际;通过典型案例将抽象的软件工程方法具体化、实例化,易于接受和理解,教学效果良好;在实践教学中通过项目开发的实训,体验了就业职位角色,明确了工作岗位的技术能力要求,为未来就业提供了一次项目演练的机会。通过本课程的学习,学生的学习主动性和实践动手能力有了很大的提高,在后续的毕业设计中很多学生都能够较好地运用软件工程的思想和方法完成系统的开发。
  虽然教学改革取得了一定的成果,但在课程案例的选择和建设、软件工程实验平台的搭建、软件工程教材的编写等方面仍然需要进一步改革和探讨。在今后的教学工作中,在保证教学内容的实用性和先进性的同时,力争通过加大校企合作力度、开发大型项目模拟环境等途径为学生创造更好的学习和实践环境,进一步提高学生的实践动手能力,以满足计算机应用型人才培养的要求。
  
  参考文献:
  [1]杜娟,衣治安,刘志刚.计算机类专业应用型人才培养一体化教学模式的研究[J].中国电力教育,2011,(8):38-39.
  [2]张海藩.软件工程导论(第五版)[M].北京:清华大学出版社,2008.
  [3]苗清影,软件工程教学中的策略探讨[J].计算机教育,2004,(11):66.
  [4]仁青诺布,格桑多吉.项目驱动式教学方法在计算机课中实施过程研究[J],西藏大学学报(自然科学版),2008,(1):67.
  (责任编辑:刘辉)

标签:教学改革 软件工程 人才培养 面向