欢迎来到专业的卓越文库网平台! 工作总结 工作计划 述职报告 心得体会 疫情防控 思想汇报 事迹材料 教案设计
当前位置:首页 > 范文大全 > 公文范文 > 正文

项目驱动下的软件工程教学方法探讨

时间:2022-10-26 19:10:04 来源:网友投稿

摘 要:软件工程课程是大学计算机专业的一门必修课程,针对目前在教学过程存在的一些问题,文章从课程本身的性质出发,结合教学培养目标,给出了一种项目驱动下的案例教学模式,对软件工程教学提供了一种新的思路和方法。文中介绍了教学项目选择的一些标准,项目的综合性和难易度要适中,确保项目能够覆盖教学的各环节。同时,给出了项目教学的具体实施方法和考核方法。经过近几年教学的不断总结和完善,项目驱动教学方法有效提高了学生的实际分析问题能力和动手能力,起到了很好的教学效果。

关键词:软件工程;项目分析法;案例教学;案例库

中图分类号:TP311.5 文献标识码:A

1 引言(Introduction)

软件工程是大学本科计算机科学与技术专业的一门重要的必修课程,是应用计算机科学理论和工程管理的方法,按照进度和预算,实现软件产品的定义、开发、测试和维护的工程。软件工程课程是一门实践性很强的课程[1]。软件工程作为用来指导计算机软件开发与维护的一门综合课程,已经由最初的一门学科方向发展成为以计算机科学技术为基础的多学科交叉课程。通过软件工程的学习,使学生能够了解和掌握软件工程开发过程中的一些基本思路和方法,同时具备作为软件工程师所需的专业能力,为今后从事计算机软件开发和维护提供有力的指导作用。

2 软件工程教学中存在的问题(Problems in software

engineering teaching)

由于软件自身的一些特点,造成软件开发和维护都不能很好地得到安排和实施。在传统的软件工程教学中存在以下问题。(1)教学内容重视理论,教学实践不够,培养出来的学生动手实践能力较差。(2)教学方式以教师课堂授课为主,学生大多是被动的听课,未能积极地进行思考和深入学习,学习的积极性不够。(3)在校学生基本没有参加过实际项目,没有开发经验,对软件工程的内容感觉很抽象,不能很好地理解知识,觉得软件工程没有实用价值。(4)教材中的案例缺乏完整性、系统性和实用性,大多是一些过时的示例,不能很好地调动学生的兴趣。(5)教学过程中,由于学生的基础水平存在差异,教师未能很好地因人施教,基础较差的学生不能很好地理解知识。现有的教学方式很难满足学生的实际教学需求。

3 教学内容分析(Analysis of teaching content)

软件工程课程是一套较完整的教学体系,以培养学生实践动手能力为最终目标,在教学内容安排上主要分为基础知识教学、技术应用教学和技术实践教学三方面进行[2]。以张海潘老师的《软件工程》教材、郑人杰老师的《软件工程导论》教材为例,主要分为四大部分内容,分别是软件工程概述、传统的软件开发方法、面向对象的软件开发方法、软件维护和软件管理。在传统软件开发方法和面向对象软件的开发方法中,都是围绕三个方面进行教学。

3.1 软件基础知识

在基础知识教学中,给学生讲解软件工程发展概述、软件工程的基本思路和开发思想、软件工程的一些开发技术和方法原理知识、软件工程管理的基本理论知识等内容。在这一阶段的学习中,主要以知识教授为主,教师起主导作用,要能够很系统地、完整地讲解软件工程的知识体系。软件基础知识部分是软件工程课程的基础。在该部分讲解中,可以采用一些举例教学方法,牢牢抓住学生的注意力,让学生对软件开发产生兴趣,才能很好地去学习下一阶段的内容[3,4]。

3.2 软件技术应用

该部分主要给学生讲解软件开发过程采用的基本思想,同时在教学过程中一定要明确软件工程技术的应用方法和思路。该部分是很关键的一个环节,主要引导学生进行分析实际问题的基本技术方法。在教学过程中,要以当前流行的统一开发过程、面向对象技术和统一建模语言(UML)为基础内容,特别是采用UML的分析方法基本思路为重点进行讲解,同时结合基本的案例进行完整的教学和展示。包括一些常用的软件工具的使用与结合,例如Power Designer、Rational Rose、Star UML、Junit等工具和环境,使学生能够更好地掌握软件工程的方法与技术[5]。在教学过程中,重点在于讲解分析软件开发的基本方法和思路。软件工具只是帮助实现开发人员的思路,因此不需要进行过多的讲解[6]。

3.3 软件技术实践

软件技术实践是软件工程教学中必不可少的一个关键环节。传统教学中往往对这部分内容不够重视,造成学生的学习和实际脱节,对软件工程学习失去兴趣和信心.因此,在教学安排上,要注重技术实践环节。在软件工程教学中,实践教学起着理论到实际的桥梁作用,可以通过项目选题、学生组队的方式,采用答辩讨论相结合的教学方式进行讲解,只有这样才能培养出具有实践能力的应用型人才。

4 项目驱动下的实践教学(Project-Driven practical

teaching)

軟件工程是一门实践很强的课程,在给学生讲解过程中,必须要从实际案例出发,结合实际开发展开讲解。在案例为主的教学过程中,必须以学生为主体,在指导老师的指导下完成。在教学过程中,始终围绕教学任务和大纲为核心,不仅要注重实践结果,更要注重学生在实际动手过程中的具体问题解决和方法的培养。

4.1 教学设计基本思路

根据教学大纲和教学要求,展开项目化实践教学设计。

(1)在学时分配上,实践教学与理论教授达到对半分,必须让学生从理论课堂解放出来,多在实验室完成必要的实践课程学习。

(2)学生的组织上,要求学生按照团队组队进行实践,一般为3—5人一组,每个组的组长必须经过严格筛选,具有很好的协调组织能力。组员要具有严格的分工,每个组员都要参与系统的需求分析、设计、编码、测试等,但要由一个组员重点负责,只有这样才能激发学生学习的积极性,避免了只有组长完成其他组员不管不问的现象。

(3)项目题目的选择上,首先要考虑题目的难易程度要适中,不仅在课上可以进行训练,在课后还需要进行综合的小组讨论分析完成;其次,在题目选择中,要能够很有针对性的训练,前后的依赖和关联尽量少,可操作性强。

4.2 实践教学的管理和考核办法

项目驱动的实践教学中,着重要培养学生的动手能力,让学生能够积极地融入项目开发过程中,积极主动地去学习。在教学管理中,模拟公司的项目经理负责制度模式,要求各个组组长进行完全负责制,组内各个组员根据之前确定的各自担当相应的项目角色,完成各自的任务。

项目驱动教学的考核中,可以采取多种样式结合的方法完成,例如阶段性项目进度演示、各个阶段文档提交、项目阶段性答辩、项目验收和结题答辩提问等形式进行评审考核。

4.3 项目驱动教学对学生能力培养的目标

软件工程学习中,培养学生的软件技术能力是关键,要围绕这个核心目标进行教学。在实践教学中,完全按照项目开发的基本思路进行分析教学,从而能够很好地培养学生以下几方面的能力。

(1)培养学生自学能力。在项目实际开发过程中,学生是主体。在开发过程中,学生会查阅很多相关的资料文档,搜集很多相关方面的知识,从而大大提高了学生自主学习的能力。

(2)培训学生的团队协作能力。在教学实践过程中。学生是按照分组进行的,小组成员在开发过程中要进行相关的讨论和分析,每个阶段达成共识后方可进行开发,整个项目的完成都存在组员之间的相互协调,很好地锻炼了学生的合作能力。

(3)培养学生兴趣爱好和创新能力。在实际开发过程中,学生接触各个类型的知识,从中可以发现自己的兴趣点,很好地激发学生的学习兴趣。同样,针对相同的问题,不同的开发小组会有不同的开发思路,同学们可以大胆地分析和设计,从而很好地培养了学生的创新能力。

5 项目教学的实施过程(The implementation process

of project teaching)

项目驱动教学中,要根据软件工程要求,一般将项目管理过程分为可行性分析、需求分析、系统设计、编码、测试、验收和维护等阶段[7]。在每个阶段需要完成的内容都是各不相同的,因此在选择开发案例上要有很清晰的思路,帮助学生进行理解和思考。为了能够很好地体现各个阶段的重点,一般采用的教学模式主要由以下几个阶段组成,分别为:项目选择—任务分析—基础知识学习—实践完成任务—结果考核—评价总结六个阶段进行。从这六个阶段出发,可以覆盖软件开发的整个过程,能够全面地提高学生实际动手能力和问题的分析能力。在教学过程中,要根据实际情况随时灵活地进行调整,这样就可以灵活地调整教材的章节顺序,打破常规的讲解顺序,让学生能够更加深入地感受到软件分析设计的整体过程。

在项目实际实践开发过程中,将班级按照3—5人进行分组,每个组为一个开发团队,分析实验项目的需求说明,然后按照要求完成软件的需求规格说明书。根据软件需求规格说明的要求,分析设计软件系统的总体框架和功能结构,再将设计好的各个模块分配给每个团队进行开发。在分配模块时,可以将同一个模块分配给不同的几个团队进行开发。在开发过程中,团队之间可以相互竞争、相互学习。团队内部成员之间一定要进行明确的分工,包括模块业务流程设计、模块程序流程设计、数据库分析设计、模块接口设计、模块代码的编写、模块测试、文档的书写等,要求组员之间分工完成。当各个团队的模块开发完成之后,要求所有的小组进行一次对接,此时需要老师从宏观上对项目需求进行一定的梳理,再次明确项目的任务需求,重点引导学习如何对不同小组的模块进行集成。然后开发不同模块的小组进行自愿的结合,将各个小组完成的不同模块进行有效的对接和集成。在这个过程中,一定要注重锻炼同学们之间的沟通能力和团队协作能力,进行测试的同学要完成集成测试的工作。此阶段完成之后,一个比较完整的系统就搭建起来了。在实际应用中,一个软件项目随着用户的使用,会出现一些问题需要修改,或者后期由于业务的不断拓展,软件不能满足需求,要进行必要的完善。这一系列的变化,都要能够进行必要的维护工作。为了能够尽可能地从实际出发,在系统开发完成之后,要求在需求变动的情况下,再次要求学生进行开发工作。同样,可以按照模块进行修改维护。此时,要求小组做好必要的维护修改文档记录。

在项目开发管理过程中,实行每周固定时间到实验室开例会,要求每个组长必须参加,组员在时间允许情况下也要参加。在例会上,首先汇报各个团队小组的进度情况、遇到的问题、计划如何解决、下一步的安排等,从而保证了每个小组的项目进度把控。其次,小组之间进行必要的探讨,特别是在集成开发过程中,各个小组确保能够及时交流沟通,进一步提升和锻炼学生之间的协作沟通能力。

软件项目开发是一个系統的复杂过程,要提高学生的实际动手能力,必须要严格要求,不能有一点疏忽。在教学过程中,一定要以学生为中心,时刻把控学生的状态,及时发现问题,解决问题。如果发现学生有共性的问题存在时,可以对理论知识点进行完善和深入的讲解,只有通过反复对软件工程知识点的学习和技术方法的练习,才能提高学生完成任务的能力。这里需要强调的是在每个阶段完成项目任务后,一定要求学生对每个阶段的完成情况进行总结,书写总结报告。报告中要说明项目存在和发现的问题,以及如何解决这些问题,整个过程中学到了什么等等。只有不断地总结,才能更好地提高自身的能力。

6 教学项目案例资源的整合(Integration of teaching

project case resources)

近几年来,软件工程教学团队对各环节都进行了必要的记录和整理,形成了较为完整的教学资源,为教学提供了很好的教学素材和保障。其中,在项目教学库中,结合实际的工程项目,添加了很多实际应用型的项目,真正让学生参与到实际的项目开发中[8,9]。

(1)建立典型的教学案例资源库。在教学案例资源库中,将教学的典型案例按照章节进行分类,可以很好地组织和安排教学,同时也为教师提供了很好的教学素材。教学案例资源的整理是不断完善和更新的过程,需要任课教师不断地挖掘和整理,保证案例库都是近期具有实际意义的项目,确保学生能够有兴趣地投入到开发分析当中。

(2)建立合理完整的实践教学项目库。在实践教学环节中,结合近年来具体的教学内容,同时参考了一些程序设计大赛的要求,从各个具体要解决的问题出发,进行完整的分析和设计,形成了较为完整合理的项目库,提供给学生进行实践能力提高的重要资源。在项目库中,大多数项目都是从实际中提炼而来,完全不同于课内的实验。项目库中的具体项目可以进行必要的拆分,具有一定的独立性,可以将其中一部分提取出来进行讲解,着重体现基本分析思路,同时要注重学生综合能力和实际解决问题能力的培养。

7 结论(Conclusion)

项目驱动的教学方法已在我系计算机科学与技术专业的班级里进行了多次,取得很明显的效果,同时也得到同学们的一致好评。学生的软件开发综合素质得到了明显提高。项目驱动的案例实践教学法,能够更好地帮助学生理解和掌握软件工程的原理方法和技术,能够进一步提高学生的学习兴趣和积极性。在项目案例开发过程中,每一个环节都要求学生尽可能地接近实际开发,极大地提高了学生的动手能力、分析解决问题的能力,进一步培养了学生的团队精神,并学会了团队成员之间的协同工作。项目驱动教学法是对传统教学方法的补充,在教学过程中一定要重视课堂理论的教学过程,同時对各个章节的教学内容进行认真分析并编写教案,寻找合适的教学案例,不断对案例进行修改和补充,只有这样才能更好地完成教学任务,培育出应用型的专业人才。

参考文献(References)

[1] 刘黎明,张晓民,王水.项目管理在软件工程教学中的应用与实践[J].中国教育信息化,2009(19):72-74.

[2] 张忠林,王坚生,兰丽.软件项目管理思想在“软件工程”实践教学中的应用[J].计算机教育,2010(2):157-160.

[3] 陈渝,陈媛.基于应用能力的“程序设计基础”教学体系改革[J].计算机教育,2011(22):33-39.

[4] 杨锋英.程序设计基础课程教学探索[J].计算机教育,2013(4):

25-29.

[5] 岑宇森,熊芳敏.“软件工程”课程项目教学法研究[J].计算机教育,2009(3):83-85.

[6] 廖礼萍,刘宏哲,马小军,等.面向应用型人才培养的软件工程课程教学改革[J].计算机教育,2014(14):19-21;40.

[7] 刘强,陈越,骆斌,等.“软件工程”课程教学实施方案[J].中国大学教育,2011(2):41-44.

[8] 卢莹,林荫.《软件工程》课程教学改革与实践[J].教育教学论坛,2014(2):42-43;36.

[9] 张海藩.软件工程导论[M].北京:清华大学出版社,2011:72-76.

作者简介:

卢 照(1983-),男,硕士,讲师.研究领域:并行计算,智能信息处理.

王 琦(1978-),男,硕士,副教授.研究领域:软件工程设计.

李奋华(1977-),男,博士,讲师.研究领域:社交网络.

推荐访问:软件工程 教学方法 探讨 驱动 项目

猜你喜欢