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