软件工程教学方法研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于软件工程教学方法的研究
【摘要】“软件工程”是一门理论性突出、涵盖广泛、工程性强的计算机专业课。本文主要针对这门课程的特点,分析“软件工程”这门课程在教学过程中存在的问题及难点,结合目前软件企业的工作流程及作者在教学过程的采用的办法,探索在“软件工程”教学过程中采用的新思路、新方法,从而形成一套比较成熟的教学模式。该教学模式,主要是结合大型模拟项目,按照企业的管理规范,让学生对“软件工程”的经典理论有了更加直观和深刻的认识。
【关键词】软件工程;工作流程;教学模式
1.“软件工程”课程概述
随着计算机产业的迅猛发展,我国的软件行业对计算机人才的需求也在不断地变化,为了适应社会的需求,培养应用型人才称为各高校的重中之重。因此各高校在计算机专业课程的设置上,进行了相应的调整。同时,对课程的教学内容及教学方法都有不同程度的改革和创新。其中“软件工程”这门课当中的很多理论和方法,在实际的项目开发过程中起着至关重要的作用。那么如何让“软件工程”这门课程更好地与企业实际项目需要相结合,就是目前我们必须要解决的问题。
“软件工程”这门课程是计算机科学技术和软件工程专业的核心课程,包含了软件开发技术、过程和管理等很多方面的内容,是一门理论和实践并重的专业课程。它具有理论性突出、涵盖广泛、工程性强等特点,是一门包含范围广泛的综合性学科,是一门难教、
难学的重要课程。我要论述的核心内容,就是如何让学生通过模拟的项目开发,结合讨论课教学方法及配套的教学过程管理,通过项目实践对枯燥的理论和方法加以理解和运用,并使用这些理论和方法来指导我们的项目实践,最终达到比较理想的教学效果。
2.分析“软件工程”课程中存在的问题
为了适应社会的需求,各高校都在不断探索研究新的教学模式及方法,例如课程改革、实践教学、项目驱动教学、情景教学等等。“软件工程”这门课程采用项目驱动或情景教学还存在一些问题。1)对“软件工程”人才培养模式与最终目标认识存在很大偏差。各高校培养的大部分学生属于中等及偏下的技术人员,而企业需要的是中上或高端的技术人员,显然与企业实际需求严重不符。
2)教学内容与学生的实际情况严重不匹配。新的“软件工程”开发方法与技术受限于本科阶段学生的实践经验和知识结构的不足,绝大多数开发方法及技术很难在教学过程中展开及执行。
3)教学安排也可能会存在一些问题。每个高校的实际情况不同,教学安排也会有所不同。可能会出现“软件工程”这门课程与其他专业课程衔接不好等不良的情况发生。所以关于“软件工程”这门课程的先导课有哪些、哪些课程可以并行都需要课程安排的时候认真仔细考虑。
4)很多时候我们忽略了文档编写的环节,并没有真正意识到文档在软件生命周期中的重大作用。
5)“软件工程”这门课程对应的教材多种多样,但很多教材当中
的案例与目前软件行业的实际需要不同步,很多都过时且不实用。我们需要的是理论及案例都应该围绕现实需求的同步教材。
6)多数学生对课程认识不清,认为“软件工程”是一门理论性强的课程,单纯死记硬背来进行学习。
7)由于实践经验严重不足,学生面对抽象理论无法做到理论联系实际,容易感到枯燥乏味,很难产生兴趣,进而无法达到理想的教学效果。
8)传统的教师讲学生听的教学方法,学生参与度不高,使学生在学习过程中缺少主动性,甚至是出现了很多出工不出力的情况。9)单一的教学手段不能满足学生团队沟通与个性化学习的需要。
3.根据“软件工程”课程存在的问题,调整“软件工程”课程的教学方法
传统的灌输式的教学方式是无法满足“软件工程”这门课程的教学要求的,改革的关键是让各个教学环节与过程动起来。我们从教学、实验、考核和辅导上进行全面的改革和创新,具体的方法如下:1)以实际的项目提高学生学习的积极性和主动性。为了避免上课只是讲解空洞的理论,而忽略了实践,课程采用大型项目实验模拟真实环境,让学生得到更感性的认识。并在实验过程中,教师人为的制造各种障碍,让学生在挫折中真实地体验前人的经验教训。为此,在教学过程中把学生分成若干开发小组,每个小组由不同技术类型、不同特长的学生组成。比如每个团队需要至少一名组长,要求具有凝聚力,能指挥动组员;至少需要一名技术过硬的组员,
负责相应的代码开发工作;至少一名写作能力突出的组员,负责书写编辑各种文档;至少一名能说会道的组员,负责对外交流等等。这样既可以优势互补,也可以利用竞争机制,激发学生学习的动力。结合课程的进度,每次课安排相应的任务,要求每个项目小组在每个章节或每个阶段都要选择性地写出成果文档。例如立项申请书、可行性分析报告、项目开发计划、项目开发计划、项目开发体制图、整体项目进度表、用户需求调查表、需求规格说明书、需求变更跟踪票、概要设计说明书、数据库设计书、画面设计、项目画面迁移图、详细设计说明书、程序设计、代码规范、测试计划书、单体测试式样书、结合测试式样书、系统测试式样书、qa一览表、软件维护手册、用户操作手册、项目开发总结报告等。在实践中体会软件开发的过程。在开发过程中,教师扮演着客户的角色,与学生进行模拟的需求分析;小组定期讨论,小组之间互相借鉴学习;每个小组定期提交书面的报告;文档格式内容都有严格的要求。在此基础上,共同开发一个完整的系统。反之,如果教师把所有的事情理顺,并安排妥当,那么,学生一是缺少动力,二是学到的东西也少。就是要他们在实际动手的过程中有切肤感受。
2)改革考核方式,以“学分激励法”提高学生学习的积极主动性。由于是模拟的项目,没有经费支持,但是教师手里有学生比较在乎的分数,因此诞生了“学分激励法”。所谓“学分激励法”就是在每个阶段验收的时候,按照每个小组完成的情况,给出相应的分数,组长再按照小组成员的完成情况把这个学分打给相应的学
生,组长只能得到组员的平均分。组长会受到教师的监督,在期末根据完成情况,对组长单独奖励或者惩罚。这种办法解决了,一个教师负责很多学生,无法全面了解每个学生学习工作情况的问题。教师只需要管理几个学生团队的负责人,团队内部全部交由该负责人全权负责,包括任务的分配及验收,大大地提高了工作效率。3)合理配备小组成员。一个项目最后能否成功,团队的配备有时起到了决定性的作用。小组的分配原则:
①学习成绩好的和学习成绩不好的要尽量搭配在一个小组中。
②由于动手能力不同,尽量把男生和女生进行合理比例搭配组成小组。
③为了方便在一起讨论问题,尽量把在同一个寝室的学生组成在一个小组中。
④由于很多文档都需要用业余时间完成,所以要尽量把拥有个人计算机的和没有计算机的搭配在一个小组。
⑤每个团队要有一名具有领导才能的学生担任组长一职。
⑥要有至少一名技术能力过关的学生担任技术指导。
⑦要有至少一名口才出众的学生担任讲解员。
⑧要有至少一名文字表达清晰的学生担任文档书写编辑工作。
通过以上原则建立起来的团队才有战斗力、凝聚力,才有可能最终完成项目及相应教学的各个环节。团队的组成,并不是一成不变,根据需要,可做出相应的调节。
4)改革考试形式。为了避免学生死记硬背、不求甚解的现象,