APP下载

“软件工程”教学方法研究

2009-12-30葛文庚

计算机教育 2009年21期
关键词:软件工程教学方法

葛文庚

摘要:本文针对采取传统的教学方法讲授软件工程,教学效果往往很不理想的现象,在充分研究软件工程教学内容及实际应用的基础上提出阶段教学法,即针对软件开发各个阶段的特点,采取不同的教学方法,让学生感受既是开发者,也是过程控制和管理者,培养学生必须注意的各个环节的要点,从而提高学生从事实际软件开发的能力。

关键词:软件工程;教学方法;阶段教学法

中图分类号:G642文献标识码:A

“软件工程”是软件工程专业的重要专业课程,也是计算机科学与技术、计算机应用等相关专业的一门专业必修课,是指导计算机软件开发与维护的一门综合性课程。它包括方法、工具和过程三要素,以质量保证为基础,涵盖了软件生存周期的所有阶段,包括计划、分析、设计、实现、测试、集成、交付、维护等。学生通过学习,能够系统全面地掌握软件开发的基本原理、方法、技术和过程,为更深入地学习和从事软件工程事业打下基础。

1研究现状

“软件工程”不同于一般的专业课程,它为摆脱软件危机而生,为适应软件行业的发展而生,是理论课,更是一门实践课。采用传统教学方法,这门课的教学效果往往不是很理想,教师觉得这门课教起来较困难,多数学生也觉得枯燥无味,很难达到较好的教学效果。因此,很多教师对软件工程的教与学进行研究,文献[1~5]提出一些可行的教学模式,主要有以下几种:

(1) 启发式教学:在教学过程中,以学生自主学习和合作讨论为前提,以教材为基础,在教师的启发下,学生自由表达观点、置疑探究问题,并通过个人、小组、集体等多种形式的解难释疑活动,用所学知识解决实际问题的教学模式。

(2) 能力驱动教学:教学工作的展开以提高学生能力为主要目的,以学科知识的进化、应用能力的强化和人才素质的优化为基础,培养强内力人才的教学模式。

(3) 项目驱动教学:教学之初,请具有丰富软件工程实践的项目人员与教师共同制定2~3个中型软件项目工程,规模适中。制定项目工程时遵从实用性原则,并且密切联系日常的工作学习实践。

(4) 情景法教学:学习者进行学习必须依据个人的学习目标主动操作探究,能主动与环境进行互动协调,以建构所需的知识。教师必须在情境脉络中帮助学生发现与选取问题,调动学生的学习动机,最终引导学生自己解决问题。

(5) 案例法教学:向学习者提供案例研究的学习环境,包括从实际案例中选取资料。让学习者以调查员的身份去了解案情,通过对资料的收集、分析、决策,最终对问题予以解决,得到可行的结论。

这些方法都能在一定程度上帮助学生提高学习效果,但是也存在一定缺陷,如启发式教学缺乏对实际项目中出现的多种问题进行分析,项目驱动教学难以把握项目大小,案例法教学缺乏学生自主参与等,不能让学生全面感受软件开发的全过程,不利于学生认识各个阶段出现的问题。在充分研究“软件工程”教学内容及实际应用的基础上,我们提出了阶段教学法,即根据软件开发各个阶段的不同特点采取不同的教学方法。

2阶段教学法

2.1阶段教学法教学模式

阶段教学法的培养目标是:建立将软件开发作为一个生产过程的概念,掌握软件工程的需求分析、系统设计和实现、软件测试等专门的工程技术方法,了解软件产品管理、项目管理、质量管理、过程控制等基本过程,感受作为一个开发者同时也是过程控制和管理者所必须注意的各个环节要点。具体措施是:理论与实践两手抓,两手都要硬。一方面强调理论学习的重要性,理论学习是指导实践的基础;另一方面强调实践的重要性,只有通过实践活动才能掌握软件工程的精髓。

由于大部分学生第一次接触软件工程,第一次开发软件,采取开发阶段清晰,易于评审、跟踪、管理和控制的瀑布模型容易让学生了解和掌握软件开发的整个过程。但传统的瀑布模型可维护性差,需要对瀑布模型进行改进,即采取变形的瀑布模型——“V”字模型,并在每一个阶段都加入测试,以便及时改正错误(图1)。在可行性分析及需求分析阶段采取情景法教学,根据学生的项目选择情况,在学生完成项目调查分析的基础上,小组内部模拟客户与开发人员进行交流、讨论。在系统设计阶段采取启发式教学,以一个典型的系统作为切入点,具体分析如何根据需求分析进行系统设计,然后让学生充分消化、吸收,启发他们设计出自己的系统。在详细设计及编码调试阶段采取项目驱动教学,让学生根据系统设计阶段的模块划分选取最优的设计,然后设计模块内部结构,并用某种编程语言实现。测试阶段主要采取案例法教学和启发式教学在单元测试阶段,检测代码的开发是否符合详细设计的要求,并改正详细设计阶段出现的问题;在集成测试阶段,

检测此前测试过的各组成部分是否能完好地结合到一起,并改正系统设计阶段的不足;在系统测试阶段,检测已集成在一起的产品是否符合系统规格说明书的要求,并修正需求分析的错误;在验收测试阶段,检测产品是否符合最终用户的需求,并添加用户新增的功能、改正错误的功能;在试运行及维护期间,及时完善系统功能,提高系统性能,再次检查各阶段的错误和不足,并加以修改,直至满足用户要求。

2.2阶段教学法的实施

阶段教学法在实施过程中,必须做好以下工作:

(1) 教师要做好统筹规划。“软件工程”对教师的要求较高,教师不仅要讲授理论知识,而且要把握教学进度,根据每一阶段采取不同的教学方法,并充分准备各阶段教学的相关资料。教师应该在讲授软件工程相关知识点的同时,花更多的精力和时间,教会学生如何理解和把握软件开发过程,对教学内容、形式和考核方法进行综合设计。根据学生的学习阶段,科学地安排相应领域知识点的出现顺序,使学生在课堂教学和项目实践的适当环节上恰到好处地体会和获得相应的知识,并取得自身真实的感受和经验。这就要求教师不仅要有一定的软件开发经验,而且要具备一定的项目和工程背景。这样授课才能切合实际,更好地运用阶段教学法。

(2) 搜集学生感兴趣的项目,并进行筛选。很多学生选择的题目缺乏可操作性、趣味性和适当的难度。这些题目没有经过详细的可行性分析和需求分析,不能保证完成实验。因此教师必须对学生自选项目进行筛选,也可以由教师给出一些综合实验项目。

(3) 制定项目完成的标准。目前,项目是否成功完成主要参考需求说明书和最后运行情况,但需求说明书又因系统难易程度和学生的主观因素存在很大差别,因此,如何评判题目的完成情况,不能采用统一的标准,要根据学生选择的项目分别对待。

(4) 及早布置课程项目。理论学习和课程项目相结合,随着课程进展布置任务。学生自愿结合,3~5人组成一个项目小组,教师指导他们进行分工合作,学习软件开发组织和管理,明确项目开发各阶段的任务,熟悉软件开发环境,培养团队精神。通过调查研究、可行性研究、需求分析、概要设计、详细设计、编码、测试、维护(版本升级)及技术文档的编写,共同完成该项目的设计及实现。在课程项目开发过程中,要引导学生提高完成实验的积极性,激发学生进一步钻研的斗志;鼓励学生进行自主学习,如撰写小论文和专题报告,让学生跟踪该领域的最新动态。

(5) 项目开发过程中,教师扮演“用户”和“项目顾问”的角色,学生则是各项目组的“开发人员”,而开发小组的组长则要模拟“项目经理”的角色,进行交流讨论。

(6) 课程项目成绩评定。项目完成后,每位同学要进行答辩。每一个小组指派一个同学,对设计的项目进行答辩,其他同学可以补充。教师的主要任务是检查,一方面检查小组的完成情况,一方面检查每一位同学的工作。由教师和其他小组进行评分,取平均分得到小组成绩,小组长根据工作量给出组员的个人成绩。综合小组成绩和个人成绩,得出学生的最终实验成绩。

阶段教学法为学生提供了发现问题、分析问题、解决问题的空间,既强调了软件工程的基础知识,也注重培养学生的分析设计及实践能力,同时调动学生的积极性、创造性。在半年的学习期间,学生夜以继日地工作,加深了对软件工程化含义的理解;在设计过程中,能自觉运用标准化、规范化和可度量的原则;在小组的交流合作中,加强了团队精神,锻炼了沟通与动手能力。

2.3进一步实施的设想

阶段教学法在实施过程中也出现了一些问题,通过对问题的分析研究,提出下一步教学的设想:

(1) 更新教育观念:加强先进教育理论研究,分析企业对软件人才的需求。根据企业需求,不断更新教育观念,努力使教学模式、教学方法与国际接轨,科学地建立面向市场的开放式软件工程人才培养模式。

(2) 加强教材建设:教材是教学内容的载体。相对基础学科,计算机领域发展非常迅速。教材也需要紧跟时代的发展,不断更新。因此必须把教材建设纳入“软件工程”教学改革的研究范畴。

(3) 学习资源建设:充分利用网络资源,建立软件工程资源网站,调动师生力量,力争把最优秀、最全面、最新颖的软件学习资源与师生共同分享。一方面完成与其他软件工程相关网站的搭建,学习他人经验;一方面鼓励师生进行作品原创,供他人学习、借鉴。

(4) 校企联合:加强学校与国内外产业界的交流与合作,完善以工程实践为核心的“边学习、边实践—再学习、再实践”螺旋式新型工程型人才培养流程,实现校企双赢。

(5) 组织软件工程相关讲座。邀请有项目开发、管理经验的教师或科研人员做软件工程相关方面的讲座,介绍他们在软件开发、管理过程中的经验与体会,对软件工程的发展趋势、最新动态等进行指导。

3小结

在“软件工程”教学中采用阶段教学法,必须把握好教学进度,并及早安排好课程设计,让学生在学习理论的同时开展课程设计。这样,当理论课讲完时,课程设计也基本结束,学生才能从理论和实践的结合上加深对软件工程知识难点、重点的理解,进一步深刻理解软件过程和系统,消化理论知识,训练项目设计的思路,锻炼实际开发能力,培养严格规范的项目开发方法和步骤,体验文档编写整理、阶段性评审总结以及软件测试等各个方面的工作流程,更好地理解、掌握知识,运用所学,服务社会。

参考文献:

[1] 林惠强,刘财兴,林丕源.“软件工程”课程启发式教学的研究与实践[J]. 计算机教育,2008(11):40-42.

[2] 夏小娜,曹宝香. 《软件工程》教学的“三段论”定位与“能力驱动”[J]. 现代教育技术,2007,17(8):109-111.

[3] 戚世贵,徐尽,张泊平. 软件工程的项目工程实践驱动教学改革[J]. 时代教育,2008(3):86.

[4] 黄萍. 情景法在《软件工程》教学中的应用[J]. 现代计算机,2007(6):52-53.

[5] 殷美桂. 案例教学法在软件工程教学中的应用[J]. 福建电脑,2008(5):201.

Research on Teaching Method in Software Engineering

GE Wen-geng

(Huanghuai University, Zhumadian 463000, China)

Abstract: With the traditional teaching method, the teaching effect of software engineering is not ideal. In the article, a new teaching method stage teaching is put forward, which based on the study of teaching content and practical application. According to characteristics of each period, the method adopts different teaching methods to achieve the following aims: Firstly, as a developer and manager, what students should be noticed in every step. Secondly, its better to train their abilities of developing software.

Key words: software engineering; teaching method; stage teaching

猜你喜欢

软件工程教学方法
基于gitee的皮肤科教学方法研究
高职院校音乐选修课信息化教学方法与实践探索
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
小学语文字理教学方法探析
依托工作室的软件工程实践教学研究
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨