HI,欢迎来到好期刊网!

软件工程课程设计总结

时间:2023-03-13 11:04:45

导语:在软件工程课程设计总结的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了九篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。

软件工程课程设计总结

第1篇

关键词:CDIO;翻转课堂;软件工程

中图分类号:G642 文献标志码:A 文章编号:1673-8454(2017)08-0050-03

一、引言

《软件工程》是指导计算机软件开发和维护的工程学科。软件人才所需要掌握的系统理论和方法,所需要具备的软件项目的理解与掌控能力、全面的实践开发能力以及良好的沟通协调能力都与《软件工程》课程的教学内容和教学目标紧密相关,因此《软件工程》课程在软件工程专业人才的培养上具有重要地位。

《软件工程》教学内容理论性强,表面上一看就懂,实际上很难掌握。近年来,该课程的教学方法和手段不断改进,在教学效果上有了明显提高,但仍然存在诸多问题。例如,将基础理论和方法的学习与软件开发实践割裂开来;在教学方法上以教师讲授为主,忽视了对学生积极性、主动性、创新性的培养;强调学生个人软件开发能力的发展,忽视了团队协作精神的培养等。

CDIO[1-3]教育模式是近年来国际工程教育改革的最新成果,CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),注重通过实做来加深对理论知识的理解和掌握,培养学生的创新意识、项目开发能力和团队协作精神。《软件工程》这门课程对于没有开发经验的学生来说枯燥抽象,无法产生共鸣。学生只有通过实践才能理解并掌握其理论知识,才能熟练运用相关工具完成软件建模和软件开发。其次,随着软件规模越来越大,软件开发工作必须以团队形式进行,但是很多大学生都缺乏良好的沟通能力和团队精神。采用CDIO的教学模式,学生以小组形式共同完成软件开发任务,必然会提高学生的沟通协调能力。因此,将CDIO模式引入《软件工程》课程教学势在必行。

翻转课堂[4-6]是一种新型的教学模式。传统情况下,学生的学习过程分为两个阶段:第一阶段是“知识传授”,通过教师在课堂上的讲解来实现;第二个阶段是“吸收内化”,在课后由学生通过复习、写作业等形式来实现。“吸收内化”的过程需要灵活运用所学知识解决问题,相对于“知识传授”阶段来讲难度更大,但此时却缺乏教师的支持和辅导,学生常常感到挫败,渐渐失去了学习动力,作业抄袭成了普遍现象。“翻转课堂”对学生学习过程进行了重构,“知识传授”在课前由学生自主进行;“吸收内化”是在课堂上通过教师讲解和师生互动来完成。在学习《软件工程》课程时,学生普遍感到看书时仿佛理解了,合上书本后却什么也没有留下,说明学生并没有掌握软件工程思想的精髓,知识的吸收与内化没有做好,需要教师在这一过程中提供及时的帮助。

因此,在CDIO模式下融入翻转课堂的思想,要求学生课前完成知识的了解,课堂上对学生理解不了的难点问题重点讲解、讨论,同时利用先进的实践环境进行实操训练,一定能够有效提高课程的教学效果。

二、CDIO教育模式在《软件工程》课程教学中的实施

在以往的教学中,理论教学在前十二周进行,然后到学期末尾进行软件工程的课程设计,为期两周,这两部分完全脱节。在理论教学中,由于没有实践环节,学生单纯学习理论知识,感觉枯燥乏味,不知所云,学习效果差。到了课程设计环节,由于前期没有打下坚实的理论基础,学生只是重视代码的编写,对分析和设计往往是在课程设计验收时才匆忙写一写,应付了事,并没有得到应有的训练,没有领会软件工程的思想精髓。

采用CDIO教学模式后,将《软件工程》的理论教学和实践教学有机地融合在一起,同步M行。

1.学生组建若干个软件项目开发小组

授课之初,将学生以自愿为原则分成若干组,每组3~5人,确定一名负责人,然后大家共同选定一个软件开发项目,这些项目可以由教师指定,也可以由各组同学按兴趣自行选定,教师给出指导意见,确定项目范围。

2.随着理论教学的推进,同步开展项目实践活动

软件开发分为需求分析、软件设计、编码和测试等阶段。按照这些阶段的先后顺序安排教学内容,并同步开展实践活动。例如,学习需求分析时,要求学生围绕自己的项目进行充分的需求分析,包括查阅资料、实地调研和分析建模,并撰写需求分析文档。学习软件设计时,要求学生进行项目的概要设计、详细设计和设计建模,撰写软件设计文档。

在开展软件工程各个阶段的工作时,要求学生采用业界常用的软件建模和开发工具,例如Enterprise Architect、MyEclipse、Visual Studio等。

3.充分利用课堂教学和课程设计之间的空档时间进行软件编码

软件工程理论教学结束后和课程设计开始前的这段时间是编码阶段的工作时间,每个项目组根据之前的分析和设计结果,选择程序设计语言和开发工具进行编码工作,实现系统的核心部分。

4.在课程设计时间段进行软件测试,编写课设报告

在软件工程课程设计的两周时间里,采用人工测试和机器测试相结合的方法进行软件测试,记录整个测试过程,包括测试用例和测试结果,形成测试报告。最后,根据课程设计文档的要求撰写课程设计报告。

采用这种教学模式,在理论教学中采用案例教学方式,让学生直观地感受软件工程的基本原理与方法;在课程设计中,通过动手实践使学生深入理解和掌握软件工程的基本原理与方法;通过研究性和探索性学习进行课题研究等形式,培养学生的研究能力和创新精神。

在实施CDIO教学模式时应该注意的是,学生的实践活动不应该着眼于一个个孤立的小任务,而应该定位在一个完整的项目上,随着课程内容的进展,一步步地完成软件项目的各个阶段任务。这部分的难点在于项目规模的控制,项目过小学生无法体会软件工程的重要性,项目过大会占用学生过多的时间。可行的方法是将一个规模较大的软件项目划分成若干个子系统,每个小组负责一个子系统的研发,各个小组之间分工合作、协调配合。在实践过程中,一定会遇到各种各样的问题甚至是失败,正是这些问题和失败使学生充分认识到软件工程方法的重要作用。

三、翻转课堂在《软件工程》课程教学中的应用

1.翻转课堂网络教学系统

实行翻转课堂教学需要一个教学软件系统的支持,现在有很多软件公司都提供了功能丰富、使用方便的教学系统。如果要实现特定的要求,可以自行开发。软件工程教学系统运用Java Web技术基于SSH框架开发,分为数据访问层、业务逻辑层和表示层,其体系结构如图1所示。使用本系统,学生可以方便地查看教师的任务单、观看视频、与教师进行交互和提交文档和作业等,教师可以任务单、上传视频、及时了解和掌握学生学习的情况以调整授课策略。

2.确定适合翻转课堂教学模式的教学内容

本科的《软件工程》教学主要讲述传统的软件开发方法和面向对象的软件开发方法,适合翻转课堂模式的教学内容比较多,如结构化分析、结构化设计、面向对象分析和面向对象设计等。这些内容都包含了建模技术的学习,如UML等,这些技术及其工具都比较简单,容易掌握,难的是如何将这些技术应用到具体的软件项目分析与设计中。因此,将建模技术的学习放在课前通过观看视频进行,将较难掌握的分析和设计方法结合具体项目在课堂教学中展开,通过师生之间的交流讨论,使学生能够对这些理论和方法有更深刻的理解和掌握。

3.制作教学视频

教学视频是实现翻转课堂的基础和前提。教学视频的制作,需要一个功能强大的视频制作软件,例如Camtasia Studio、OBS Studio等。视频内容要求体现重点和难点,将时间控制在20分钟以内。可以恰当使用背景音乐来营造良好的学习氛围。视频画面要求简洁清晰,富于变化。在视频中最好有一些分析和推导过程,教师通过手写板等工具对重点内容进行勾画并配以细致的讲解,吸引学生的注意力。教师的影像可以出现在画面中,增强面对面进行交互的感觉。在视频中放置一些问题,学生回答后才可继续观看视频,这一方面能够引导学生总结和思考,另一方面能使教师了解学生对知识的理解和掌握程度,从而更好地安排后续的课堂教学内容。

4.课堂教学

在课堂教学中,教师首先针对学生课前提出的问题和学习任务单完成的情况,有针对性地讲解相关知识点。然后以一个实际的软件开发项目的分析或设计为目标组织学生分组讨论。在此过程中,教师可以参加各组的讨论并进行答疑,对存在的共性问题统一讲解[7]。最后,随机抽取2~3组学生汇报其工作成果,并请其他组的同学发现存在的问题,然后教师再对这些问题进行点评,提供更多有针对性的帮助。

5.反馈与评价

教师根据学生掌握知识的情况以及反馈的各种意见,总结教学环节存在的不足,以此调整教学内容和教学方式。教师在评价学生时主要考虑两方面,一是根据学生观看视频、回答问题的情况以及在网上交流的情况;二是根据学生在课堂上的表现,包括学生所负责工作的难度和工作量,在组里的参与程度,和教师、其他学生的互动情况等。教师将评估结果及时反馈给学生,促使学生发现自身存在的问题,不断进步。

四、结束语

通过在《软件工程》课程中实施CDIO和翻转课堂相结合的教学模式,解决了传统教学模式的缺点,使学生成为主动的参与者,激发了学生的学习兴趣,发挥了学生的主观能动性,更有效的促进学生对知识的内化,教学效果得到了显著提高。不过,翻转课堂教学模式要求学生必须进行课前自学,否则教学效果很差,如何保证学生能够自觉地学习需要进一步探索。

参考文献:

[1]李彤,赵娜.基于CDIO的软件工程国家精品课程建设[J].计算机教育,2012(1):14-19.

[2]n智,张振虹,李兴娟.基于CDIO 理念的软件工程课程教学改革[J].计算机教育,2010(11):56-59.

[3]汪军,强俊.基于CDIO理念的软件工程专业人才培养模式的研究[J].重庆工商大学学报(自然科学版),2015(6):70-74.

[4]宋朝霞,俞启定.基于翻转课堂的项目式教学模式研究[J].远程教育杂志,2014(1):96-104.

第2篇

关键词:软件工程;实践教学;课程设计;案例库;可复用

课程设计是一门课程结束之后安排一周或者两周综合实训,让学生完成一个实际的课题巩固理论知识,对课程知识体系获得更深刻全面的理解,是提高学生实践能力的重要环节[1]。目前,学院软件工程专业从第4、5学期陆续开设专业基础课和专业课,如《C#面向对象的程序设计》、《Java程序设计》、《软件需求分析》、《数据库原理及应用》、《软件工程》、《UML技术》、《软件测试》等,这些课程均安排了为期一周的课程设计。但大四毕业设计时发现部分学生实践能力达不到专业培养要求,原因主要在于专业类课程实践环节没能够达到理想的教学效果。经调研发现,这些课程设计周是由各科授课老师布置一个相关课题,明确课题要求,给一周时间让学生自主完成,最后提交一个小的系统与课程设计报告。这种课程设计存在以下问题:(1)课程设计教学内容方面。老师未能提供系统、综合的课程知识相关案例,导致学生对题目理解不足,对课题认知模糊,无从下手,降低了学习主动性。(2)教学手段陈旧。基本还是停留在老师讲、学生听的阶段。师生互动较少,学生没有足够时间思考,即使在某个环节出现问题也不能及时解决,课后问题可能不了了之。(3)课程设计考核体系不完善。实践环节大多为考察,导致学生不够重视,提交一个报告了事。由于缺乏完整监管机制,学生对整个课题的开发过程认识不清,没有收获。另外,老师凭提交的报告给出成绩,区分度不明显,不够合理公平。针对目前存在问题,本文提出软件工程类课程设计实践教学改进方案。首先,建设一个可复用的软件工程实践教学案例库,案例库中的教学案例运用主流开发技术、管理技术及开发环境。“可复用”是指同一案例根据不同课程分割出不同的知识单元,软件工程类课程之间本来就紧密联系,相互承接,案例库可供多门专业课在实践环节教学中使用。其次,推行案例同时更新教学手段,采用注重学生参与及师生交流的分段式教学模式。最后,制定明确的课程设计监管与考核方案,对整个课程设计过程严格把控,培养学生综合应用知识能力与实践动手能力,提高课程设计环节教学效果。

1案例库建设

案例库中的项目不仅要考虑案例库的可复用性,能够服务多门课程,还需体现软件工程专业能力培养需求,并考虑开发难度与学生接受程度。因此应选择学生熟悉的业务系统,采用主流开发工具来实现轻量级工程化系统。系统功能尽量有代表性,同类系统可以仿照实现,并根据课程知识结构需要进行功能定制。如案例库中的项目:《学生成绩管理系统》用C#与SQLServer2008开发。该系统是典型的小型MIS系统,主要实现了学生、教师、管理员3类用户对学生信息、课程信息及成绩信息不同程度的增、删、改、查。该案例可以服务于《C#面向对象的程序设计》、《数据库原理及应用》、《UML技术》、《软件工程》、《软件测试》等课程的设计教学。案例库项目开发融合了软件工程很多专业课程知识,在不同课程中使用,学生可以明确各门课程学习目标,从不同视角体验软件开发流程,提高对软件工程整体把握的能力,建立软件工程的思想。

2知识结构划分与整理

案例实现之后,为了服务于不同课程,不同授课教师需要重新组织教学资源,梳理课程大纲、划分教学内容、整理教学素材、制作教学课件,这一步至关重要也最为核心。想要通过一个完整教学案例,使学生建立起课程知识结构网络,授课教师不仅要基于案例将课程相关基本知识点及联系贯穿其中,还要对知识进行高度提炼,体现课程内容有机联系。这样学生通过案例讲解,不仅对理论知识理解更加透彻,对课程体系也会有更深刻的把握,学习效果取得质的飞跃。下面以《学生成绩管理系统》的实现为例,按不同课程知识侧重点进行概要划分,在课程设计环节中,授课教师结合案例针对本门课程侧重讲授知识结构。(1)《面向对象的程序设计C#》,讲授如何利用C#语言进行系统开发。利用常用控件来搭建设计学生成绩管理系统界面、实现窗口间跳转、消息传递;利用面向对象的程序设计方法实现系统业务逻辑与主要功能;利用ADO组件访问数据库,完成对系统数据的基本操作。(2)《数据库原理及应用》,讲授如何进行学生成绩管理系统后台数据库设计。数据流图,数据字典的创建;概念结构设计(E-R图的绘制)逻辑结构设计,将E-R图转换为关系模式,如何考察关系模式、规范化程度、规范化理论、视图机制、安全性及完整性设计;数据库的实施:SQL的应用,建库、建表、录入数据等。(3)《软件工程》,以学生成绩管理系统为例,按照软件工程流程,讲解每一阶段任务及涉及方法,结合案例从可行性分析、需求分析、总体设计、详细设计、系统实现及系统测试几个步骤进行。(4)《UML面向对象设计与分析》,对应学生成绩管理系统开发各阶段从建模的角度讲解UML的9种图,主要包括在需求阶段如何识别参与者与用例,建立用例模型;在分析设计阶段静态结构模型的建立(类图、对象图)及动态行为模型的建立(顺序图、状态图、活动图);系统实现阶段物理模型的建立(组件图、系统部署图),及将UML自动转换为面向对象设计语言的实现。可以看到,不同课程使用《学生成绩管理系统》案例侧重于不同知识体系。

3案例推行与考核模式建立

授课教师在课程设计环节中推行案例,按照案例教学、任务驱动模式来进行,课堂讲授仍然是不可或缺的[2]。首先通过分析案例程序引导学生学习,由案例的讲解分析,深入浅出地引出知识点,引导学生逐步理解课程重点、难点,深化理论知识学习[3]。其次提出本次课程设计任务要求,老师详细分解设计题目内容与步骤,给出参照与示范。案例讲解与任务分解交叉进行,课程差异性使得案例教学不必拘泥于固定模式与时间,讲授案例时间大概是6~10学时,老师可以自行调整授课进度与节奏。在案例教学中,为了充分调动学生主动性,并及时发现问题、解决问题,采用了“教师提出课题—学生分组讨论—教师演示案例—学生实践—学生总结、师生交流”分段方式进行,并且在以学生为主体的阶段进行考核。在案例讲解、任务驱动教学方式下,建立完整考核机制,教师监控整个实践过程,激励学生参与到每一个阶段中,学生遇到问题也可以反馈给老师,及时得到帮助,提高学生主动性。成绩考评是根据学生每一阶段任务完成情况,从分析解决问题、团队合作、语言表达及文档书写能力表现作综合评定,不仅保证了评价结果客观性,也引导了学生加强这些方面的能力培养。

4结语

针对学院现在软件工程类多门课程在课程设计环节存在问题,提出了建设可复用的案例库,并根据不同课程教学需要对案例进行知识结构划分与整理,在实践中采用分段式教学推行案例,加以完整考评方式,现已收到较好教学效果。基于案例库的实践教学改进方案还可以应用在软件工程综合实训环节,为了达到更高教学要求,培养高质量人才,案例库还需要不断更新与完善。

参考文献:

[1]吴金秀.课程设计在高职实践教学中的应用与探索[J].网络与信息,2008(10):78.

第3篇

1.课程定位不明确

在信管专业中,软件工程主要指导学生进行管理信息系统的分析、设计、实施及维护,侧重系统的研发和维护的原理和方法。管理信息系统课程则是让学生全面认识管理信息系统,涉及的知识面广,但内容浅显。两者在系统开发和维护部分的内容上存在交集,部分院校因此未将软件工程加入专业培养计划。另外一些院校为强化学生的系统开发能力,将“软件工程”与“信息系统分析与设计”课程同时开设,出现课程重复的现象。这些都是软件工程定位不清晰的结果。

2.课程时间安排不合理

信管专业中的软件工程与诸多信管专业基础课程联系密切,需要较强的专业基础知识,但目前部分院校的课程体系将软件工程与管理学、程序设计等专业基础课程安排在同一学期显然不合适,教学安排缺乏层次性。

3.师资力量存短板

信管专业教授软件工程的教师几乎都毕业于计算机专业,不仅缺乏管理学相关知识且在教学思想上沿袭了理工科的风格,偏重程序研发流程,忽略管理信息系统开发过程的多学科交叉特点,导致学生把管理信息系统等同于一般的计算机软件,使得学生对管理信息系统的内涵认识不足,甚至产生误解。此外,大多数教师并没有实际参与大型管理信息系统项目的开发,缺乏实际的研发经验,故难以全面、深入地介绍管理信息系统研发过程和特点。

4.适用教材缺乏

一方面现有信管专业软件工程的教材大都沿用自计算机专业,着重从理论方面介绍各种经典分析和设计方法,所选案例也缺乏与管理学等其他相关学科结合,且很少结合最新的设计方法和工具进行介绍。这种教材选择方式难以和信管专业内的其他课程有机结合,自身形成知识孤岛,无法体现信管专业管理为主、计算机为辅,多学科交叉的特点,同时也不能反映信管专业与计算机专业的本质区别。

5.教学方法古板,实践不足

软件工程的教学内容多为以往研发经验的概括和总结,知识点多以各种概念、原则、规则和要点等形式出现,缺乏完整案例,内容抽象晦涩,教师多采用单向注入和强行灌输的教学方式,不利学生的理解和应用。此外,信管专业课程体系庞杂,无法为软件工程分配足够的实践课时。其他系统开发相关课程,或因项目过小而无需使用软件工程思想,或因课时限制而侧重系统的实现和测试方面。这些问题导致软件工程思想难以完全付诸实践,使学生缺乏系统性和全面性的训练。

6.学生评价机制不合理

成绩评定是评估学生学习效果的重要依据,也是反映教师教学能力的参考指标。本校统一采用“平时表现+期末笔试”的考核机制,比例为3:7。其中,平时表现包含期中考试成绩、日常考勤、课后作业和实验成绩等。这种成绩评定机制存在诸多问题:(1)期末考试比例过大,不能全面客观反映学生的表现。(2)闭卷理论笔试不利于扩展学生的知识面,难以考查知识的实际综合运用能力。(3)笔试为主的考核机制容易诱使学生产生应试教育的倾向。

二、《软件工程》课程教学的若干对策

针对信管专业软件工程课程的问题,结合本校教师的教学经验提出相关的应对措施。

1.明晰教学定位

信管专业的定位是计算机和管理的交叉学科,管理信息系统是信管专业关系最为密切的信息系统。软件工程在信管专业中的主要任务是为了培养学生使用软件工程的思想分析、设计和开发管理信息系统。鉴于学生培养目标的不同,信息系统开发能力并非所有学生所必须掌握的。因此,软件工程在信管专业中的定位不能搞一刀切,必须因方向而异。系统开发方向的学生应把软件工程作为专业必修课,而信息管理方向的学生则作为专业选修课选修。

2.优化课程安排

软件工程的目的是指导管理信息系统开发,学生选修前需具备基本的编程能力和数据库知识。而且,管理信息系统的开发需要结合管理、会计和运筹等课程的相关知识。因此,软件工程的安排应置于数据结构、数据库、程序设计、管理学和运筹学等课程之后,信息系统课程设计之前。在课程设置上,软件工程与面向对象程序设计、管理信息系统、信息系统课程设计等相关课程组成课程群,相关任课教师以团队方式备课。每学期期初和期末,同一课程群的教师互相交流教学效果和存在的问题,根据学生的情况各自调整后序教学内容,有针对性地开展教学。课程群方式可以有效加强课程间的平滑衔接,强化教师间的团队合作,实现知识的有机结合,提高课程安排的层次性与合理性。

3.建立合理的教师培养机制

教师培养采用“走出去,引进来”的方针,加强与兄弟院校和相关企业的交流。围绕构建应用型本科院校的目标,引入高职院校中的“双师型”培养机制,将科学研究和实际应用相结合,组织软件工程及相关课程组构成的开发团队,积极参与校内外的合作项目的研发,如校内各部门的信息系统开发项目、校外实习基地的合作开发项目、科研项目的系统实现等。在教学任务之外,学校应鼓励任课教师定期到实习单位参加项目见习,甚至直接参与项目研发,提高教师的研发能力,更新知识储备。同时,教师的考核体系应根据教师的授课内容进行分类评价,软件工程等应用性课程的考核机制应加大对实践的要求,鼓励科研与知识应用的结合,真正实现应用型培养的发展方向

4.改进教学方法,强化实践教学

根据软件工程理论和实践要求都较强的特点,采用案例驱动的方法开展教学,将理论知识融入到具体案例当中,通过“学中练、练中学”的模式将抽象的知识通过具体的项目展示,方便理解和消化吸收。此外,单纯的理论知识学习是不够的,需要通过实际的项目训练进行提高,进而达到巩固所学知识,灵活应用的目的。项目训练以学生分组的方式进行,在学习的同时培养学生的团队意识和协作精神。项目类型以中型管理信息系统为宜,来源可出自教师自身的项目或者协作单位项目中的子系统,也可以学生提出由任课教师审核通过。项目结束时,学生必须能够提交可正确执行的程序,同时提交相关的系统开发文档,文档要求严格按照国标GB-T8567-2006编写。在实践过程中,教师应以项目管理人的角色监督项目的进度,及时发现并纠正存在的错误,同时回答学生在实践中遇到问题。这种方式既让学生清楚了解课程开设的目的和意义,也强化学生对所学知识的理解和应用。

5.完善教学资源

信管专业软件工程课程的教学资源(如教材、辅导资料、教学案例等)的安排和设计应按本专业的需求进行改进和完善。首先,调整教材内容的编排。软件开发技术知识点需要与时俱进,已被淘汰的知识点应予以删除或以概述的形式介绍,同时增加近年出现的新技术和新方法,并对其中的典型方法进行重点介绍,并配上相应的案例进行讲解。其次,修改教材内容的编写方式。采用案例驱动的教学模式,将以往逐条罗列的抽象理论融合到具体的教学案例中,让学生通过分析案例提取出知识要点。该方法既有利于对枯燥知识的理解和吸收,也为进一步的知识应用提供极好的参考素材。第三,修改配套案例。案例选择中等规模的管理信息系统的完整研发过程较为合适。案例规模不宜过大的案例,否则不适宜初学者学习;规模太小则细节不足。案例可以取自教学参考书,也可以是教师自身的项目研发经历,还可以源自合作单位的项目。第四,建立信息化教学实验平台。通过云计算等先进技术构建的软件工程教学实验平台,师生能够无时间、地域限制地实现教学课件和视频等资源的共享、作业和课程实践的实时监控和学生疑难问题的解答,极大方便了师生间的交流,对提高教学效果具有重大现实意义。

6.改革学生评价机制

课程成绩对学生在课程学习过程中的表现和效果的综合评价,对学生学习起指向性作用,必须秉承公正、全面、客观的态度。第一、全面考虑学生评价要素。在教学过程中,除考勤情况、期中成绩、期末成绩等常规项目外,学生的课堂表现、作业完成质量和上交情况,实践项目的完成情况等也是衡量学生的学习成绩的重要依据。因此,软件工程的考核体系可综合为以下三方面:(1)平时表现,包含出勤情况、课堂提问和作业完成情况等;(2)实践成绩,包含课程设计和实验的质量和文档的编写情况;(3)卷面成绩,包含期中和期末考试的笔试成绩。第二、合理分配评价要素的比重。评价要素的比重定量反映了课程各教学环节的重要性,能够对学生的学习起导向作用。为了突出软件工程以“理论为基础,重在实践应用”的特点,实践成绩的比重应与卷面成绩相当,也可以考虑使用课程实践成绩代替期末笔试。第三、客观评定评价要素。学生的评价要素通常分为定性和定量两种。其中,各种考试成绩和作业成绩、考勤情况等定量评价易于给定。相对而言,平时表现等定性指标需教师主观评定,易受到教师个人情感的影响,需要教师秉持公正客观的态度。对学生的主观评价一般以良为基础,表现突出的学生可给予优,存在迟到早退、作业应付或缺交、课堂纪律不佳等情况的学生则酌情给予中或差的评价。第四、丰富考核形式。除传统的闭卷笔试外,软件工程的考核形式还可采用以下几种:(1)课程论文:以个人为单位,就管理信息系统研发和管理中的某个环节提出自己的观点并展开论述,完成3000-5000字的课程论文。(2)课程设计:参考教学案例,采用软件工程思想,以团队方式开发一个管理信息系统,完成从需求分析到设计实现的完整过程,并编写相关软件文档。(3)开卷笔试:以论述和应用题为主要题型,主要考察学生解决系统分析、设计、测试和维护等环节中具体问题的能力,如按要求绘制程序流程图、软件结构图和系统流程图等分析设计图表,设计测试用例等。学生允许携带一定数量的参考资料,但不允许携带电子设备。任课教师可根据教学目标和学时安排综合使用上述方式。总体而言,以课程论文或课程设计代替期末笔试进行考核更符合学以致用的教学目标。

三、总结

第4篇

关键词: Moodle;网络课程;软件工程

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)02-0122-03

1 软件工程网络课程开发的必要性

软件工程是我校计算机科学与技术(职教师资班)专业的一门专业必修课,是指导软件开发和维护的工程学科,该课程信息量大,软件开发的理论知识和方法贯穿教学实践全过程,近五年的教学,积累了大量的课程资源、文档、工具和项目资料,而学生实践中遇到的问题、技术实现上的讨论也需要平台进行交流分享。信息化新时代,信息技术融入课程日益加强,构建有效的网上学习社区,提高教学中的互动与协作,开展教学多元评价,有利于有效提高教学绩效。软件工程教学实践性强,针对课程的特点,精心进行网络课程设计,利用现代教学手段开展教学,以适应信息化发展需要。因此开发一个辅助学生自主学习软件工程的网络课程非常有必要且具有很大的推广性。

Moodle平台使得课程目标、课程内容、学习资源等能有效被呈现,学在真实的网络环境下,学生能够自主学习、讨论以及向教师提问等,学生的积极性与创造性得到充分调动,利于培养学生良好的信息素养和计算机应用能力,也利于加快信息化校园的建设与实现。

2 Moodle平台简介

Moodle是模块化的、面向对象的、动态学习环境(Modular Object-Oriented Dynamic Learning Environment)的简称,是由澳大利亚教师Martin Dougiamas开发的一个课程管理系统(CMS),可帮助教学人员创建高效的在线学习组织,帮助教师高质量地创建和管理在线课程[1]。在国外高校中,Moodle作为一个免费的、开源的课程管理系统被广泛的使用。 Moodle依据建构主义的学习理论,注重强调在信息化情景下教与学活动中的相互协作、交流,使学生根据已有的经验完成意义建构。表1说明了Moodle平台对教师和学生教学行为的支持[2]。

Moodle 教学平台功能强大,操作简单,它主要包括课程管理、资源管理、活动管理和互动评价四大功能模块[3]。Moodle平台提供在线评价系统,支持多种学习评价方式,可以实施软件工程阶段性性评价与总结性评价相结合,学生自我评价与教师(他人)评价相结合。

3 软件工程网络课程的设计

良好教学效果需要有科学的网络课程设计。软件工程学研究的范围非常广泛,设计软件开发过程中的理论、技术方法,工具和管理等许多方面,内容丰富、学生参与和讨论程度高,软件工程网络课程拟构建一个资源高度共享的、师生之间、生生之间的网络协作学习平台,丰富学习的交互性和生动性。结合网络课程一般设计流程和Moodle平台特点,针对我院软件工程课程教学特点,分别从流程设计和任务设计两方面阐述我院基于Moodle平台的软件工程网络课程的设计思路。

3.1流程设计

在参考熊小梅等提出的Moodle平台下网络课程设计的一般流程[4]的基础上,软件工程网络课程的设计流程如图1所示。

在教学内容方面,软件工程知识和能力是软件研发岗位的职业基本技能。为强化软件工程过程管理,将教学内容划定为面向过程的软件工程、面向对象的软件工程和软件过程管理专题的三大部分,而前两部分又细分为问题定义、需求分析、概要设计、详细设计、编码实现、软件测试、维护、文档配置管理等知识点。

在教学策略上,本课程采用软件过程阶段实例导入、技术学习与讨论、实践操作分析相结合的启发式教学策略及方法。既有实例导入,又有知识与技能的学习,还需要结合小组项目任务的制定和实施,开展教学。本课程采用理论教学、实验实践教学、项目驱动教学相结合的教学模式,让学生参与软件项目活动,开展协作学习并完成任务。同时,教师上传丰富的资源形式并进行管理,学生可随时网上学习和下载,并在课外学习,突破时空限制,为学生深入研习创造条件。教师利用每个学习阶段对每个教学单元开展多种形式(如互动、测验、心得报告等)对学生的学习效果和课程实施进行评价、获取学生反馈,以便及时改进教学。

3.2任务设计

林鸿等人提出了C语言课程在线系统的设计[5],本文结合软件工程课程特点,给出在线课程的主要任务设计如图2所示。

4 软件工程网络课程Moodle平台的搭建

Moodle平台是采用PHP技术并使用MySQL数据库的开放源码软件平台,任何支持PHP和MySQL的系统均可安装Moodle。为开展软件课程网络课程实践,本文给出在Windows 7系统下搭建Moodle平台网络课程的过程。

4.1平台软件工具和环境配置

1)WampServer2.4。WampServer2.4是Apache+PHP+Mysql在Windows下的集成服务器环境,它安装简单,易于操作,避免了诸多PHP环境配置问题[6]。

2)VC++ 2008可再发行组件包。WampServer2.4所必需的微软程序组件VC++ 2008可再发行包。

3)moodle-2.8.5。Moodle平台的最新正式版本。

4)Moodle平台中文语言包。

在安装上述软件之前,如果机器安装有IIS 服务,还要事先关掉IIS 服务功能,因为通常一台电脑上不能同时安装两个Web 服务器(80端口冲突)。平台所需软件见图3所示。

4.2 平台搭建过程

1)安装VC++ 2008可再发行组件包。

3)启动WampServer2.4所有服务,打开其中的PhpMyAdmin服务,管理课程Moodle平台数据库,创建一个名为moodle的空数据库即可,注:用户名为root,密码为空。

4)解压moodle-2.8.5.zip到WampServer2.4服务器安装路径下的网站文件夹www目录下(如:D:\ wamp\www\)。

5)解压中文包zh_ch.zip到服务器网站目录www下的moodle文件夹的语言目录中(如:D:\wamp\www\moodle\lang)。

6)打开http://localhost/moodle/开始进行Moodle平台安装与参数设置,建议选择中文语言界面进行安装,最后更设置好个人资料,用户名和密码即可。

安装好之后管理员可在主页上进行网站管理、用户管理、课程管理等操作。

4.3《软件工程》网络课程构建与应用

搭建好Moodle平台之后,用户以教师(课程创建者)的身份登录到Moodle平台上,即可开始管理自己的网络课程,构建课程的主要过程有:(1)添加并设置课程。(2)添加用户。(3)共享教学资源。如课件、文档、文章、网络资源等。(4)创建活动。如论坛主题讨论、在线测验、作业、问卷调查、投票等活动。

在对我校2013级计算机科学与技术(职教师资班)专业32名学生开展的《软件工程》课中搭建和应用了基于Moodle课程网络平台,师生共同完成了网络课程的教师和个人信息编辑、课程资源共享和下载、课程讨论区使用、站内与回复消息、在线实时聊天、课程作业管理、课程在线测验、管理课程博客等功能,通过近一个学期的使用发现,网络课程平台使师生加强了课堂外的交流讨论、学习和小组协作,拓展了学生学习方式,提高了学生学习自主性和创造性,学生反馈课堂学习更加丰富多彩,知识学习和交流互动更加便捷了,教与学的质量得到了很大的提高。学生课程首页应用效果如图5所示。

5 后记

软件工程网络课程的建设,加快了现代化教与学的模式的实施进程,给教学实践和互动交流搭建了良好的平台,学生从被动学习转变为主动学习,探究与协作学习,突出了学生的主体性,有利于教学质量的提高。Moodle作为一个开源、基于建构理论的课程管理系统,对开发出高质量的软件工程网络课程平台提供了很大的帮助。

参考文献:

[1]黎加厚. Moodle课程设计[M],上海. 上海教育出版社,2007.

[2]Moodle官方网站.http:///.

[3]景宝华. 基于moodle平台的《数据库应用技术》网络课程构建研究[J].计算机光盘软件与应用, 2014(6).

[4]熊小梅. 基于Moodle平台的网络课程设计及应用[J]. 教育与职业, 2014(2).

第5篇

关键词:课程建设;课程设计;计算机软件

作者简介:张艳(1976-),女,河南南阳人,上海理工大学光电信息与计算机工程学院,讲师。(上海 200093)

中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)05-0096-01

计算机是一门技术性、工程性和应用性很强的学科,教育部高等学校计算机科学与技术教学指导委员会的发展战略研究报告中也指出:计算机专业的人才应该被分为科学型、工程型、应用型三类,而绝大多数应该是工程型和应用型的。许多高校注重学生专业能力的培养,纷纷开设实践类课程以满足信息社会对实用型人才的需求。因此,如何建设实践类课程无疑是摆在每位一线专业教师面前的重要课题。本文以“应用软件课程设计”课程的建设为主要探讨对象,介绍了该课程的设置意义、教学方法和实施细则,希望能对计算机专业实践类课程的建设和教学以及学生的就业有所帮助。

一、课程设置的重要意义

在大学里,设置一门课程,不能只关注这门课程所含的内容,更要考虑本科教育培养学生基本专业能力、可持续发展能力等这些本质性的问题。计算机学科问题求解的基本思路是“问题形式化描述计算机化”,以抽象、理论、设计为其学科形态。按照计算机科学与技术专业本科生的培养目标,到学生毕业时应具备计算思维;算法设计与分析;程序设计与实现系统的认知、分析、开发与应用等四大基本能力。

“应用软件课程设计”课程面向大三的学生开设,在计算机科学与技术专业四年本科教学中,是以前期的“数据结构”、“计算方法”、“离散数学”、“软件系统”(包括编译原理,操作系统)、“软件工程”、“程序设计”、“数据库原理”以及“计算机网络与通信”等课程为基础的一门软件开发技术综合应用的专业课程。该课程让学生综合运用专业知识,通过动手实践,以团队协作的方式根据软件工程的原理选择难度适中的课题,完成网络环境下基于B/S架构的综合应用软件的系统设计与实现任务。课程设置的目的就是通过本课程的系统学习与实训,达到全面提升学生综合应用软件的实际开发能力和团队合作能力,以解决传统教学中理论学习与工程应用相脱节、单门课程孤立地学习与缺乏正确运用学科体系的理念来指导学生实现综合技术全面应用的突出问题,以期有效地实现计算机科学与技术专业本科学生的培养目标。

课程开设近10年的实践证明,学生综合运用计算机专业基础知识,科学设计、开发软件,合理进行软件开发的能力得到全方位的、实战型的锻炼,不仅实现了专业理论知识与实践有效地相互结合,而且很好地锻炼了学生的动手实践能力和团队协作能力,为日后的择业起到很好的铺垫作用。

二、“应用软件课程设计”的教学内容

“应用软件课程设计”主要以曹渠江教授编写的《综合运用软件设计》一书为教材,辅助以课程网站和网络上的各类学习资源,要求学生利用软件工程、面向对象程序设计的思想,根据课程项目任务和功能完成课题的需求分析;制定课程项目详细的时间进度规范;利用面向对象程序设计、计算机网络、数据库原理、多媒体技术等相关知识来进行数据库设计与开发;熟悉和掌握网络应用的开发环境,分析课题中技术难点并进行技术攻关;根据制定的时间进度计划和需求分析,进行网络环境下基于B/S架构的系统软件模块的编写、开发与整合;对整个项目所有模块进行代码集成测试、软件产品完善;最后提交课程设计个人报告、课程设计小组报告以及完整程序。整个课程总学时为64学时,主要以机房实践为主,通过演示软件、答辩的形式公开、公平地评定成绩。

三、应用软件课程设计的实施方法

1.本课程的实施原则

实践类课程不同于其他计算机专业课程,主要以实践为主,这就比较难控制进度和公正地评价学习成绩,因此笔者制定了如下实施原则:

由教师提供网上新闻管理系统、网上宠物商店、网上公文流转系统、药品管理系统、继续教育管理系统、网上用户投诉系统、在线同学录、企业仓库管理系统、班级相册管理系统、在线学籍管理系统、网上聊天室、客户关系管理系统等难度适中的十几个项目,对于每个项目都讲明设计要求和要求实现的基本功能;按照自愿原则,四到六个同学组成一个项目小组,推选出一位组长。对于没被组合的同学,由教师统一安排,每组配备一位有项目开发与项目管理经验的研究生为指导教师,负责学生的上机辅导、课外答疑、技术咨询与指导;每组由组长填报所有成员的个人信息,以便师生之间紧密联系;每组组长代表小组全体成员与指导教师商定每周一次的辅导、提问与答疑的时间,并互通联络信息;教师每周安排两次上机,每次4个学时。最初的3周(12学时)进行理论授课,主要讲课程基本要求和安排以及软件工程、软件开发工具和方法的基本知识;设立课程公共电子邮箱,上传所有课程资料、进度安排和学生要提交的各个阶段的文档模板,每位学生必须根据给定的工作模板与课程要求,在不同时间节点完成个人与小组的初期、中期、末期三个时期的阶段报告和最终的课程设计报告;最后进行大组公开演示和答辩,全体指导教师根据答辩情况、提交的报告质量、平时上机表现与平时的检查情况集体打分,综合评定出每位学生的最终成绩。

2.本课程的教学安排

整个课程在实际教学过程中,按照16周的总体时间共分为以下5个阶段。

(1)课程设计第一阶段(3周):认真学习教材和阅读课题任务说明书,根据软件工程的理论和选定项目任务完成课题的需求分析;制定本课题的实施方案,完成个人角色任务分配等各类文档和开发规范;确定课题技术难点及其攻关措施;熟悉和掌握.NET的开发环境、后台数据库开发工具以及与课题相关的开发工具。在本阶段结束时,向指导教师提交课程设计个人及小组的初期报告。

(2)课程设计第二阶段(4周):根据制定的时间进度计划和需求分析,进行系统数据库的实现及应用软件的初步模块编写与开发。在本阶段结束时,向指导教师提交课程设计个人与小组的中期报告以及个人阶段性开发的程序源码。

(3)课程设计第三阶段(4周):本阶段是项目开发的实质性阶段,对整个项目所有模块进行开发并进行代码集成测试、完善整个软件产品。在本阶段结束时,向指导教师提交课程设计末期的个人和小组的报告。

(4)课程设计第四阶段(3周):完成全部代码的开发工作,检查并汇总本课题小组成果,课题小组完成项目开发总结报告,个人完成各自的课程设计个人报告。在本阶段结束时,向指导教师提交课程设计个人与小组的报告以及小组的完整的、可供运行的代码文档。

(5)最后是课程设计综合评价阶段(2周):对本课题设计项目综合评价,最后进行大组公开演示和答辩,检查程序运行效果;全体指导教师根据答辩情况、提交的报告质量与平时的上机情况集体打分,综合评定出每位学生的最终成绩,力求公平、公正。

另外,在课程结束后会召开师生座谈会,集中讲评、总结课程的教学、学习情况,征求学生对课程和教学方面的建议和意见,同时给学生指出专业学习的努力方向,学生给教师提出今后课程需改进的地方,使教与学相互促进从而不断完善该课程。

四、结论

“应用软件课程设计”在上海理工大学已经开设10年,是上海理工大学精品课程与上海市教委重点课程建设项目,它很好地体现了计算机专业课程的系统性、完整性、科学性和原理性,有效锻炼了学生的动手实践、软件开发和团队协作能力,对提高学生的专业能力和专业素质起到了关键作用。任课教师在教学实践中付出了很大的努力,不断完善课程的教学模式和评价手段,积累了大量经验,该课程多次受到学生的好评,很多已就业的学生反馈的信息表明:该课程对学生专业素养的培养和从学校到职场的衔接起到了很好的作用,为计算机专业的实践教学探索出一条切实可行的道路。

参考文献:

第6篇

[关键词]卓越工程师 双师型 校企合作

引言

目前,我国开设工科专业的高校近千所,占高校总数的90%以上,中国已经成为工程人才的培养大国,但却不是培养强国。工程人才培养质量方面与西方先进国家相比,差距较大,难以适应国家发展对创新型工程技术人才的迫切需求[1]。基于此,2010年6月23日,国家教育部正式启动了“卓越工程师教育培养计划”。该计划作为《国家中长期教育改革与发展规划纲要(2010-2020)》的一个重大项目,目标在于培养和造就一大批创新能力强、适应中国经济社会发展需要的高素质各类工程技术人才[2]。该目标与东北石油大学软件工程专业“创新型、实践型、工程化、国际化”的人才培养目标不谋而合。

我们本着大学要为地方经济服务的办学宗旨,积极探索卓越软件工程师的人才培养模式,全面提升学生的创新能力和工程实践能力,主要在以下几方面做了初步尝试。

一、培养模式和培养方案的改革

东北石油大学软件工程专业培养模式为“3+1”模式,即前三年在校学习和最后一年的企业实训。前三年在校学习,内容主要包括通识基础知识、专业基础知识、专业知识的学习以及每个短学期的企业实训,从而打造阶梯式的培养模式。建立以工程能力培养为核心的人才培养体系,不断更新课程内容,去掉陈旧的知识,及时挖掘新知识、新技术,完善知识结构,让学生了解和掌握最前沿的信息和技术,拥有合理的知识体系;改进知识学习方式,以学生自主学习为主,教师加以适当引导,培养学生的自学能力和创新精神,只有这样,学生在工作后才能根据社会经济的需要发展自己、完善自己,从而适应新形势,解决新出现的问题,创造性地完成自己的工作;改革考核方式和评价标准,不再仅以一张试卷对学生的学习效果加以定论,而是对某门课程学习的全程进行记录跟踪,对学生的自主学习能力、实践动手能力、分析问题和解决问题的能力加以全面的考核,强调学习过程和学习成效;通过课外创新活动,拓宽学生的知识面,开阔视野,提高学生的学习兴趣和主动性,从而提高团队协作能力、沟通能力、创新能力和社会竞争力。

前三年在校学习的每个学年,都设计学生进入企业学习的环节,保证学生在这个过程中了解企业的文化、接受企业的熏陶、遵守企业的纪律、完成企业的工作任务,把不同阶段的学习与企业实践相结合,为最后一年的企业实训打下基础。

大学的最后一年实现完全企业环境下的实训,在此期间完成毕业设计。通过前三年阶梯式的不间断的企业实训,到大四时,学生基本具有了在企业独立顶岗工作的能力。这一年中学生可以根据实际实训的岗位情况,经过学校和实训企业的联合指导,按照能力培养的基本要求完成毕业设计环节。

毕业设计对于学生来说是非常重要的一个环节。在学生完成了前三年的基本学习任务后,在最后一个暑假前,就让学生选择好实训的企业。在进入实训企业之前,学生首先要选择由学院提供的毕业设计题目,让学生带着这个任务进入自己选择的实训企业。在参与到企业的具体工作后,允许根据具体的工作以及企业的导师方向来提出新的毕业设计题目。经过学院的学术委员会研究,认为题目能够满足本科毕业设计的基本要求后,正式更改题目,并且备案。通过这样的方式,既能够保证学生的毕业设计能够充分与企业实际相结合,也保证了培养方案中规定的毕业设计质量。

二、课程体系和教学内容的改革

创新能力培养是卓越工程师后备人才培养的主要目标,而创新的基础就是实践动手能力,因此在整个培养体系中,尤其加强了实践部分的比重,建立从大一到大四全过程、递进式、可操作性强的完整实践教学体系,该体系从课内实验、课程设计、模拟企业项目的开发、假期企业实训、集中的企业实训、综合的毕业设计,逐步培养学生的动手能力、职业素质、团队协作能力、项目管理能力和综合解决问题能力。具体体现在如下几点:

1.讲练一体式教学

增加课内实验部分的比重,同时所有程序设计课程实现讲练一体式教学,使学生边做边学,保证在最短的时间内收到最大的成效。

2.进行短期的企业环境体验

在大学一年级的短学期,学生已经学习了计算机与信息技术基础课程,能熟练地使用办公软件,此期间,安排3周的短期企业实训。学生进入大庆服务外包产业园的企业,跟企业员工一样按时上班、下班、并做一些在这个阶段能做的具体工作,例如数据录入工作,体验企业环境和企业文化,体会企业严谨的工作作风和踏实的工作态度,从而去掉自身的好高骛远、眼高手低的浮躁心态,培养踏实认真的行事作风。

3.阶梯式课程设计

大一的短学期之前,学生已经学完程序设计导论课程,初步地了解c#程序设计语言、.net开发环境和面向对象的基础知识,在短期企业实训前安排2周的c#课程设计。主要由教师出几道模拟题目,指导学生进行开发,需求分析和设计部分主要由教师以要求的方式提出,学生只负责编码部分的实现。目的主要在于使学生初步了解一个完整项目的开发过程,同时综合应用学过的理论知识,提高动手编程能力。

第7篇

1.1课程资源

课程资源是涵盖理论课和实验课的各种相关资源信息,主要包括课程介绍、教学大纲、实验大纲以及课程相关资料等。这个模块为学生课下自主学习提供了非常有针对性的资源,对课堂教学是一个很好的补充。

1.1.1理论教学资源

课程介绍:是对课程的主要内容、课程的特点、课程学习的目的和任务等多方面作一个总括性的简介方便学生对课程有一个总体的把握与了解。教学大纲:主要包括课程教学的内容与要求,对每章节的知识点、重点和难点进行说明,阐述具体的教学安排和课时分配,便于学生按照大纲的指导进行学习。教学日历:用来描述课程的进度安排。学生可以通过查看教学日历,事先预习教学内容,使得课堂学习更有目的性和针对性,提高了教学效率。授课教案和课件:这是学生自主学习最重要的部分,包括各章节的文字教案和多媒体教学课件。如果学生课堂上没有完全理解授课内容的,可以带着问题在课下继续进行自主学习,能调动学生的自主学习的积极性,提高教学效果。预备知识:列出学生已经学习过的与软件工程设计有关的课程目录,如程序语言、数据库、操作系统等,引导学生复习一些在软件工程中需要涉及到的相关知识。

1.1.2实验教学资源

实验大纲:根据课程实验的要求组织实验项目,编写实验大纲,主要包括各个实验的实验目的、实验原理、实验内容和实验环境等。注意实验项目内容应从简单到复杂对学生进行引导,给学生留下充足的学习思考空间,引导学生自主学习的方式和解决问题的方法,课程设计要求:主要包括分组情况、任务分配、任务书的规范说明、提交方式、打印格式和成绩核定方法。此外,还可以给出实验日戈表和课程设计计戈表等实验详细信息,使学生能合理规划好整个实验环节所要完成的任务。

1.2项目任务

该模块主要包括项目实例,方便学生学习和了解;建立项目题库,学生可以选择项目,完成实验任务。

1.2.1项目实例

教师根据学生的知识结构和实际情况,虚拟设计一两个小型系统,作为项目实例,如停车场管理系统、借还书管理系统等。贯穿软件生命周期整个过程,从问题定义、可行性分析、需求分析、总体设计、详细设计到调试分析和软件测试,给出项目的全过程设计。学生通过实例学习,对软件工程开发项目有全面的认识和了解,知道软件生命周期的各个过程应该做些什么,如何进行可行性研究,需求分析的任务是什么,采用什么分析工具,怎样能全面周到的做好总体设计规划,详细设计阶段的设计说明书的作用是什么,系统模块如何划分,程序实现的方法有哪些,怎么设计软件测试方案以及软件维护说明书。

1.2.2项目题库

教师可为学生准备一些软件项目,如停车场管理系统,在线考试系统,图书管理系统,学生信息系统,银行卡管理系统,教材定购系统,工资管理系统,设备管理系统等,建立项目题库,每个项目配备相应的项目任务书,以便学生选择项目,下载相关的项目任务书,完成项目计划。项目题库中的项目,要不断更新。项目的来源可以根据企业的需求、也可以是教师自己的科研项目,要对各个项目进行共同讨论,决定项目的可行性,并根据教学要求和课程特点,对实际项目进行剪切或划分成子项目,使其具有可操作性和实践性,便于学生操作和实训。

1.3软件工具

该模块是配置相应的软件工程实验软件,主要提供建模工具和编程软件的下载,便于学生完成项目的分析过程,实现系统功育旨。

1.3.1建模工具

对几种uML统一建模工具进行简单介绍,并提供软件下载,安装方法和使用教程。学生可以采用不同的分析工具,建立系统的分析模型,并做好需求分析和系统设计。主要的建模工具有MierosoftOffieeVisio、RationalRose和powerDesigner三种。MierosoftOffieeVisio中引进了软件分析设计功能到代码生成的全部功能,可以更轻松地将流程、系统和复杂信息可视化、可以创建多种类的图表。RatiollalRose主要是对开发过程中的各种语义、模块、对象以及流程、状态等进行比较好的描述,能从各个方面和角度来分析和设计,对系统的代码框架生成有很好的支持。P*erDesigller是一种数据库建模工具,允许使用一种结构化的方法有效地创建数据库或数据仓库,它还提供了直观的符号表示,使数据库的创建更力口容易,并使项目组内的交流和通讯标准化。

1.3.2编程工具

给出几种软件开发工具,如结构化编程语言或面向对象的编程软件(c、c料、JAvA、DELPHI),以及sQL、P*erbuilder等开发工具,并提供软件下载和安装方法,供学生选择编程软件,编写程序,并测试软件。

1.4文档资料

该模块主要列出整个项目所要提交的各类文档资料。此外,还应该提供统一格式的实验报告和课程设计任务书范本,便于学生下载,并按要求填写内容。项目文档:主要包括有可行性分析报告,需求规格说明书,项目计划书,总体设计报告,详细设计说明书,软件系统的程序代码,软件测试报告以及用户使用手册等。规格说明:可以给出一些规格说明的样例和标准,学生可以使用非形式化、半形式化和形式化等方法描述需求分析规格说明,详细设计规格说明,并给出系统各部分的设计规格说明书。鼓励学生学习和使用形式化的方法描述规格说明,例如:有穷状态机、Petri网以及z语言等,这样可以用数学方法研究和验证规格说明是否正确,并消除二义性。

1.5成绩评价

该模块主要给出实验教学各阶段的成绩考核方式及评定标准。课程实验中,上机操作占课程实验成绩的50%(含平时上机操作和考勤),课程实验需要提交的文档和报告占50%。课程设计因为是分小组进行,成绩评定可以分成个人成绩和小组成绩两部分,个人成绩主要根据个人在小组中所分工作多少和完成工作情况来确定,小组成绩则由各个小组阶段成绩和系统最终验收的情况来确定(如系统是否达到需求规格说明中的功能性、提交的文档是否全面和规范,源程序编写是否规范、可维护性等)。每个项目组都应该进行汇报,展示自己的成果,由教师和其他同学组成评审团,对每个项目组的汇报进行评审和打分,提出修 改意见和建议。汇报结束后,,教师要进行总结点评,并写出评语。既要评价项目成果,也评价学生的表现,帮助学生整理学习内容,鼓励学生的积极性。

2网络辅助教学

建立软件工程实验课程网络教学平台后,如何让学生充分利用平台资源进行网络学习,也是必不可少的关键部分。整个教学实践过程可在教师引导下,学生自主管理,分工协作,这样既锻炼了学生参与项目管理的能力,又训练了学生之间的团队合作精神。有了网络学习平台,在理论课程学习的同时,学生可以分三个阶段完成软件工程实验课程:l)网络学习:该阶段主要学习课程资源,同时,学生进行选题,分小组和分派任务,进行项目的可行性研究和项目的需求分析。2)课程实验:该阶段主要是让学生学习建模工具,通过使用建模工具,完成项目的分析过程,并进行系统的详细设计,划分系统的各组成模块,给出系统的各部分设计规格说明书。3)课程设计:该阶段主要是根据项目的需求规格说明书和系统设计文档,采用合适的程序设计软件完成对整个系统的代码编写,遵循代码的开发规范。设计测试用例,对系统进行测试,并提交相关文档。成绩评价部分由教师来完成,每个阶段都要进行阶段性评价,并根据项目的最终完成情况给出整体评价。要着力培养学生软件工程开发工具的应用能力,要求学生按规定提交项目要求的各种文档,形成较为科学的综合成绩评定方法。

3结束语

第8篇

关键词:数据结构;数据结构课程设计;评价方式

中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2013)05-1088-02

数据结构课程内容抽象,信息量大;在学习过程中所用到的技术多,而之前所介绍的专业性知识又不多,因而加大了学习难度;隐含在各部分的技术和方法丰富,也是学习的重点和难点。根据数据结构课程本身的技术特性,设置数据结构课程设计环节十分重要。通过实践内容的训练,能达到学生程序思维的训练和动手上机调试程序能力的增强 , 提高学生组织数据及编写大型程序的能力。

1 概述

当前我国工程教育面临的普遍问题是:工程教育与社会和产业的需求脱节,包括,工程教育的培养目标与社会需求不一致;工程教育中的质量评估结果不能真实的反映学生的能力;工程教育环境与职场环境相差甚远。当前工程教育中,很少能体现课程体系,学科之间的关联很少。关于课程评价和反馈,包括师生双方地互评。老师评价学生的手段是在学期结束时,给学生一个或好或差的成绩。学生从这个结果中,无法得知他需要进一步努力的方向。用人单位无法依据这份成绩来判断这个学生是否符合他们的需求。学生评教制度就是让学生在某个时间段(比如第14周到第16周)给老师一份评价。学校根据这份评价来考核老师的教学工作是否合格。而评教的根本目的:促使教师改进教学,服务学生,满足学生学习需求并实现学生学习利益,在很大程度上被忽略。

数据结构课程设计作为工程教育的一个环节,同样存在上述问题。另外总共32学时的课时太少,导致学生没有充分时间去实施系统分析、设计和实施的完整过程。

学生的语言掌握程度较大程度地影响到数据结构课程设计的实施。往往系统实施的思路是正确的,由于语言不熟练,又缺乏正确的调试手段和调试方法,导致程序无法通过调试或者花费大量时间进行调试。由于没有软件工程的思想,系统事先没有经过周密的设计,程序调试通过,验收时发现题目理解错误,与老师的要求相差甚远。需要重新设计,编写代码,造成学生大量时间的浪费。

最后,学生的创新能力、沟通和团队协作能力有待于进一步提高,而这些能力是作为一名工程型和创新型的计算机专业人才所必需具备的。比较显著的就是沟通问题。在验收阶段,一个简单问题无法用恰当的语言回答教师。

2 课程改革的理念和思路

课程改革的理念是充分利用本校本学院已有资源,结合CDIO理念,提高学生整体计算机专业能力,训练良好的思维方式,培养扎实的实践能力,具备创新能力和团队合作精神。

课程改革的思路:课程改革从课时数、教学内容、教学方法和评价与反馈等多方面展开。首先是在教学大纲上增加本门课程的学时数。在教学内容上,把程序语言和软件工程的内容以恰当地形式加入课程设计中。

在教学方法上,加强思维方式的训练,强调产学结合,增加学生工程经验,训练实践能力。思维方式的训练从两方面展开:在布置任务时,提醒学生按照一定的方法进行抽象,尽量避免手工操作(自动化手段);在验收阶段,针对具体的代码和算法设计思路,教师提具体的改进方案,并相应地指出可能存在思维误区。思维方式的形成不是一天就可以完成,希望经过一学期的训练可以有效地改变部分同学的思维方式。工程实践(包括工程开发各个环节的实践)能力提高也是从两方面展开:一是让学生经历工程开发的整个过程;二是提业界真实地案例供学生模仿分析学习。

评价和反馈从师生双方互评入手。教师对学生的评价要真实反映当前的知识和能力,让学生明白自己的优势和不足。学生对教师的评价真实反映这一学期教师的教学能力和教学态度。让教师进一步清楚学生具体的学习需求和自身能力提高的方向。

课程改革的目标包括加深学生数据结构基础知识的理解,拓展知识面,增强学生实践动手能力,激发学生的创新和团队协作能力,训练学生的沟通表达和思维能力,培养学生具备良好的职业素质,使学生成为一名工程型和创新型的优秀计算机专业人才。

3 课程改革的内容

该综合课程设计预计需要32学时。其中6学时用来帮助学生加强程序设计能力,先由老师讲解部分的难点重点(主要是在数据结构实施过程中常用的知识点),然后学生完成一个相对复杂的程序。

数据结构的课程设计占用中间的26学时。一学期的课程设计需要学生完成3到4个不同章节的题目。由于学生能力水平参差不齐,每章教师给出3到4个难度不同的题目供选择。这些题目部分来自配套教材,部分由教师自行设计。学生根据自身能力选择完成其中的一个题目(也可以自主选择题目,经教师审核后去实施),然后提交教师验收。在此过程中,诱导学生按照软件工程的思想去完成各个题目。具体的手段是给学生一个合理的、按照软件工程思想设计的课程设计指导书。(先设计后实现)

充分利用学院已有资源,在ACM网站开辟一个数据结构专区,按照ACM竞赛的模式设计一些题目供有余力的学生选择。对于已完成教师安排任务的学生,建议他们注册登录学院ACM网站去完成额外的题目,以此增强他们的实践动手能力。

课程设计的其中一个重要环节是验收。它不仅起着评定成绩的作用,而且还承担着训练思维,提高算法设计和沟通表达能力的作用。程序测试通过后,教师选择部分感兴趣的代码,要求学生解释。如果得不到满意的解释,教师可以暂停此次验收。这个环节可以考验学生的沟通表达能力,以及对系统的理解程度。在一定程度上的杜绝拷贝这种现象,退一步,就算是拷贝也必须完全理解整个系统,强制学生必须实际参与课程设计。

接着去提高代码的质量和效率。先一起分析具体的代码,研究算法的效率有无进一步提高的空间。若有该如何修改,教师根据学生的具体情况,讨论确定方案后,交由学生完成。效率提高后的系统,可以在下一次课再次要求验收。另外,教师需要明确指出明显不符合计算思维的代码,要求学生当堂修改。

最后根据题目难度、完成的质量以及验收时的表现,给出一个成绩并登录在册,作为最终成绩的一部分。每个验收的系统必须提交一个配套的课程设计报告。课程设计报告能让学生学会正确的测试和事后的分析总结,起到部分的自我评价功能。每份课程设计报告也有成绩,同样登记在册,作为评定最终成绩的一个标准。

在课程设计结束时,老师除了给每位学生的一个成绩以外,再对出现的问题进行分析总结并以文档的形式反馈给学生。内容包括语言的掌握程度以及还存在的问题;数据结构的基本内容掌握情况,提交程序的效率、有无按照软件工程的思想完成,还需重点解决的问题;创新能力、沟通和团队协作能力如何等等。

参考文献:

[1] John Malmqvi st. The Application of CDIO Standards in the Evaluation of Swedish Engineering Degree Programmers[J].World Transaction on Engineering and Technology Education,2006,5(2):361-364.

[2] 查建中. 面向经济全球化的工程教育改革战略[J].计算机教育,2010(11):2-7.

[3] 中国CDIO网站. CDIO简介[EB/OL].http:///vNews.asp?typeID=30&parentID=29. 2011.

[4] 苟喜霞.车载导航系统最优路径规划的研究[D]. 北京:北京交通大学,2009.

[5] 任雪萍,王立波,赵葆华.融入PIC-CDIO理念的“数据结构”课程教学改革[J].计算机教育,2012(7):29-32.

第9篇

关键词:软件测试;能力培养;教学理念;培养模式;探索实践

中图分类号:TP311 文献标识码:A DoI: 10.3969/j.issn.1003-6970.2012.03.009

Explore and Practice of Training the Ability for Software Test Talent

CaI Jian-ping

(School of Software Engineering Beijing University of Technology, Beijing 100101, China)

【Abstract】According to the requirements of Ministry of Education for training software talents, Aim at the software engineering features, and as a breakthrough for shortage of talent on software test, the paper analysis the employing demand of IT enterprises, study the training target of software testing talents and the training demand on the ability, explore a good method of the ability training for software test talents. Based on this, we actively undertake many practice activities about the ability training for software test talents, for example, concise the teaching philosophy of training software testing talent, build the new pattern of training the ability for software test talents, constitute a general outline for software test course, write corresponding book, establish laboratory, etc.

【Key words】software testing; ability training; Teaching Philosophy; Training Pattern; Explore and Practice

0 引 言

软件测试是软件工程的一个重要分支,是软件质量保证的重要基础。现代软件测试与传统的软件测试不一样,它是贯穿软件工程整个生命周期(从需求分析、软件设计、代码开发,一直到最后测试、验收和维护),涉及各种软件开发技术、应用技术以及测试技术,覆盖软件各种应用领域(如桌面软件、网络应用、信息系统、电子服务、嵌入式系统、数字娱乐等),面临不同的专业领域知识,所要求的投入与软件开发相比规模同等甚至更高。另外,软件测试是一项需具备较强专业技术、学习和创新能力的工作,软件测试人员除了需要有一定的软件测试实践经验外,必须要具有缜密的逻辑思维能力、全面的技术能力、各种测试工具的使用能力、敢想敢干的创新能力,要有较强的责任心和团队合作精神以及出色的沟通能力等专业素质。要成为一名合格的软件测试人才需要经过严格系统化的专业培养,并且在专业培养过程中一定要结合软件测试专业化的特殊要求,强调软件测试人员的工程实践能力。

目前,很多高等学校仅仅是在计算机专业或软件工程专业中设置一些软件测试课程,还没有提高到软件测试专业化人才培养这个层面。北京工业大学软件学院率先在这方面进行了探索和实践,将能力培养作为软件测试人才培养的重要内容和突破口,提出了“用工具,促能力”的教学理念,积极探索软件测试课程的改革与实践,最终建立通过学习和使用软件测试工具进行软件测试能力培养的新模式。并在此基础上,开展课程建设、教材建设、实验室建设等工作,取得了较好的效果。

1 “用工具,促能力”的教学理念

工程实践能力是计算机专业,特别是软件工程专业的基本要求之一。计算机技术或软件工程技术涉及到大量的知识内容,包含各种开发和应用技术,覆盖许多应用领域,需要有很强工程实践能力。对于我们在校的本科学生,由于从高中到大学,一直在学习,缺乏实际项目经历。如果按照传统的课堂传授理论知识的方法进行教学,辅助一般的实验,会让学生感到枯燥、乏味,提不起兴趣。

为此,北京工业大学软件学院要求在软件工程本科专业的培养计划中加大计算机基础课程和软件工程专业核心课程的实践教学环节(包括配套的课程设计,独立的实践课程,以及小学期的集中实训等),并特别在软件测试课程的实践教学上进行了大胆的改革和创新,提出了“用工具,促能力”进行软件测试人才能力培养的教学理念。该教学理念的核心思想是通过要求学生熟练地使用各种软件测试工具,来掌握软件测试相关知识、技术、方法和管理流程,提高软件测试的工程实践能力,提升软件测试的专业化水平。

熟练地使用软件测试工具能带来如下好处:

1)提高工作效率。

软件测试的工作量很大(据统计,测试会占用到40%的开发时间;一些可靠性要求非常高的软件,甚至会占到60%);另外,测试中的许多操作是重复的、非智力性的和非创造性的,但要求准确细致。最后,那些固定的、重复性的工作,可以由测试工具来完成,这样就使得测试人员能有更多的时间来计划测试过程,设计测试用例,使测试进行的更加完善。

2)保证测试的准确性。

手工测试常会犯一些人为错误。为此需要投入大量的时间和精力;而工具的特点是能保证测试的准确性,防止人为疏忽造成的错误。

3)有些测试很难开展,必须使用工具(如性能测试等)。

测试工具可以执行一些手工难于执行,或者是无法执行的测试。这是因为软件测试工作相当复杂,要求非常严格,很多测试在手工测试环境是无法完成的。

4)测试工具很好地保证测试工作的规范性和一致性。

软件工程最重要的内容就是管理,软件测试同样也是将管理放在第一位。

5)测试工具体现了先进的测试思想、方法和技术。

掌握并熟练地使用软件测试工具,能够快速和有效地掌握或巩固所学的软件测试的思想、方法和技术;运用软件测试工具开展软件测试工作,能够有效地提升解决软件测试中遇到的各种问题,增强软件测试的实战能力。

事实上,“用工具,促能力”的教学理念非常适合在工程化要求较高的软件工程核心课程中进行示范,予以推广。

2 探索软件测试人才能力培养的新模式

我们在“用工具,促能力”的教学理念指导下,对以软件测试人才能力培养为目标的教学方法与教学模式进行积极地探索和实践,确定了软件测试课程教学的知识体系以及学习和使用软件测试工具进行软件测试能力培养的实践教学体系,制定了软件测试课程教学大纲和实践教学课程大纲,从而建立软件测试课程教学及能力培养的新模式。

我们这里所说的软件测试人才能力培养新模式主要是指我们在对软件工程本科学生的软件测试能力培养过程中,强调“用工具,促能力”的教学理念,以开源软件测试工具为基础,结合精选的教学案例,大胆地将测试工具的掌握和测试工具的应用作为实践教学的重点,强化学生软件测试专业知识的掌握,促进学生软件测试实践能力的培养。这种实践教学的新模式,通过不断的探索和实践,充分得到学生的认可。学生通过软件测试工具的使用,大大提高了参与实践的兴趣,对软件测试相关的理论知识有了更深入的理解和掌握,运用工具解决测试项目实际问题的能力得到了加强。

2.1 软件测试人才能力培养的课程建设

软件测试人才培养专业性强,人员素质高,这要求我们必须科学地对软件测试课程体系进行论证,并按照软件测试人才能力培养新模式的要求制定出教学大纲。目前,学院在软件测试课程体系的设置上分三个层次:理论课程―软件测试,实践课程―软件测试课程设计,创新学分―软件协同测试。贯穿这三个层次的主线是软件测试工具,即通过软件测试工具在不同软件测试项目中的使用,强化学生知识的掌握和能力的培养,并按照工具使用流程要求,培养学生专业职业素质。

2.2 基于开源软件的软件测试实验室建设

软件测试课程对工程实践要求极高,对学生动手能力要求极强,因此软件测试实验室的建设,软件测试工具的配备除了支撑教学外,还是“用工具,促能力”教学理念的贯彻和通过学习和使用软件测试工具进行软件测试人才能力培养新模式的实施最重要的保证。

考虑到软件测试贯穿软件工程整个软件生命周期,涉及各种软件开发技术、应用技术以及测试技术,覆盖软件各种应用领域,需要用到多种测试技术、方法和测试类型。因此要建设能够让学生或受训人员全面参与这些实验或实践的软件测试实验室,特别是全面配置商用软件测试工具,这几乎是不可能的。首先,除一次性投入满足数十位学生同时上机进行实验或实践的要求外,经常性的升级维护费用就会让条件优越的高校或培训机构难以承受,更不要说大多数条件不优越的高等院校。另外,如果完全依靠商用软件测试工具开展软件测试的实践教学,除了面太窄、投入太高外,我们很难推广和普及在这方面取得的实践教学成果。

为此,我们提出了以主流的开源软件测试工具为基础,进行软件测试实验室建设的解决方案。该方案覆盖软件测试的各个阶段和各种类型,保证了国内许多院校在办学条件不足,实验教学经费有限,无法全方位引进商用软件测试工具的情况下,仍然能够很好地开设软件测试实践类课程。

实际上,我们在软件测试实践能力培养过程中,一直是要求学生使用开源测试工具。这是因为:

①开源测试工具的使用,特别是测试环境的建立,能够促使学生接触各种开源工具,如操作系统、服务器、数据库、页面开发语言、绘图、邮件等,培养他们搭建平台的综合能力。

②采用开源测试工具搭建测试环境开展测试工作,更有利于学生学习和理解软件开发技术和软件测试原理,提高学习兴趣。

③学生通过使用开源测试工具,除了完成课程设计所规定的测试任务外,还能够清楚地了解这些测试工具对测试技术和测试方法的支持以及这些工具在应用中存在的问题,并可以尝试自己动手改进这些测试工具。

2.3 软件测试课程配套的教材建设

为使教学理念真正得到贯彻,能力培养模式真正得到实施,必须解决与之配套的教材问题。为此,我们编写了《软件测试大学教程》、《软件测试实验指导教程》以及《嵌入式软件测试实用技术》3本教材。这3本教材不仅是课程的配套教材,而且还是软件测试课程建设和教学研究及改革等成果的最终表现,也是软件测试能力培养新模式实施的基石。《软件测试大学教程》已被北京市教委推荐为“十二五”普通高等教育本科国家级规划教材(待评审);另外,《软件测试实验指导教程》全面介绍了支持各种软件测试类型的开源软件测试工具的主要功能、应用流程及实际案例,涉及到测试管理、缺陷管理、代码分析、单元测试、系统测试、性能测试以及软件综合评测等重要实践内容。该教材配套有近1GB内容的DVD光盘,光盘中存放有覆盖软件测试不同阶段和不同类型的大量开源软件测试工具及配套的实践教学案例,保证了国内许多院校在办学条件不足,实验教学经费有限,无法全方位引进商用软件测试工具的情况下,仍然能够学习和推广我们的教学成果;最后,学术专著《嵌入式软件测试实用技术》对软件工程应用领域嵌入式软件的测试活动开展提供了专业支持。

上述教材的出版及使用,能够使我们的教学理念真正得到贯彻,教学大纲真正得到落实,教学新模式真正得到实施,实践教学的探索及改革有据可查,有迹可循。

2.4 软件测试精品课程的建设

精品课程的建设能够推动优质教育资源的共享、教学理念的宣传和教学模式的普及与推广,使学生得到最好的教育,从而全面提高教学质量。

软件测试课程自2009年评为北京工业大学校级精品课程以来,一直在努力开展精品课程相关内容的建设,积极申报北京市精品课程。通过近几年的软件测试精品课程建设,很好地推动了优质教育资源的共享,以及实践教学理念的宣传和实践教学模式的普及与推广。

软件测试课程在建设过程中,对教学内容、教学方法进行了如下的改革:

①在整个本科和工程硕士教学计划和培养方案的基础上,进行课程体系、教学内容及实验和实践环节整体配套和优化的教学改革;

②重视基础理论,采用案例驱动式教学方式,加强实践教学环节,注重基本技能训练与工程能力的培养;

③密切软件开发技术及测试技术应用最新动态,设计实践教学案例,增强课程内容的针对性和时效性;

④将软件测试课程理论教学与软件测试课程设计、软件协同测试等实践教学和创新学分整体考虑,努力达到培养高素质、专业化软件测试人才的要求;

⑤为使软件测试课程达到既定目标,开展了配套的教材建设。

总之,精品课程教学内容突出全生命周期软件测试概念、软件质量分析手段、现代软件测试技术、主流测试工具应用以及典型应用测试方法等,帮助学生了解和掌握现代软件测试的各种原理、方法和技术,并能够选择合适的软件测试工具进行相关测试。这些举措为培养学生今后成为高素质、专业化的软件测试人才打下很好的基础,许多学生毕业后在IT企业能够很好地从事软件测试工作。

软件测试精品课程网站是按照北京市精品课程网站建设要求建设的。网上的内容除了课程概况、课程内容、练习作业、教学课件、参考资料以及全程录像。由于软件测试课程包含有实践性教学,因此本网站包括实践教学指导等。除此之外,本网站还包括软件测试课程全面教育教学研究和改革的思路、方案和成果。可以说,本网站内容完整、资源丰富,其成果具有可示范性和可推广性。

软件测试课程建设得到北京世纪超星信息技术发展有限责任公司的大力支持,该公司将本课程作为优秀学术成果(超星名师讲坛――超星学术视频)进行了全程的录像和系统的整理,部分录像资源可在超星网上观看或下载,网址是: video.省略/playvideo.aspx?id=31475。另外,超星公司已授权我们可将本课程的完整学术视频放在学校精品课程网站上,使教师和学生共享其资源。

3 软件测试人才能力培养模式的实践

软件测试课程在不同的院校其设置是不一样(如理论课或理论课+实验课,学时、学分等)的,北京工业大学软件学院在软件工程专业本科生的教学计划中将软件测试课程设为专业必修课,其课程设置包括理论课及实验课(课程设计)两部分。理论课32学时,16周完成,每周2学时,最后参加学校考试周的闭卷考试。课程设计是期末小学期2周集中进行,共60学时。

3.1 课程设置情况

软件测试课程自2005年开设以来,就依据“用工具,促能力”的教学理念开展本文所提到的软件测试人才能力培养的新模式进行教学,讲授了8轮次,学习人数达500多人。

无论是软件测试理论课实验、软件测试课程设计,还是创新学分――软件协同测试,都是以软件测试工具为核心,结合精心设计的测试案例,使学生从测试需求、测试环境建立、测试策略、测试技术应用、测试用例设计与执行、测试结果分析,以及缺陷跟踪管理与测试报告文档撰写等方面完成实验内容和课程设计内容。

3.1.1 软件测试理论课程的实验大纲

软件测试理论课中安排了6个学时的实验内容,包括三个方面的内容(每部分内容2学时):代码静态检测、Java单元测试Junit、Gtk+界面测试。

3.1.2 软件测试课程设计大纲

软件测试课程设计按照《软件测试实验指导教程》开设了6大类型的软件测试项目,每个类型的测试项目要求学生同时使用主流的开源测试工具,体会先进和成熟的软件测试技术,提高学生的实战能力。

类型1:以测试过程管理为主,实验重点是缺陷管理、测试管理以及缺陷管理与测试管理的集成。涉及到的开源工具主要有Mantis、Bugzilla、Testlink、Testopia等。

类型2:以程序的静态分析为主,实验内容是程序理解、代码静态分析。涉及到的开源工具主要有Oink,Eclipse PTP/ CDT,以及分析Java代码的多种工具(如Findbugs、PMD、Checkstyle、Valgrind、Prefast等)。

类型3:以单元测试为主,实验内容是基于支持测试驱动开发(TDD)的单元测试框架xUnit的C/C++功能测试和C/C++及Java的覆盖测试。涉及到的开源工具主要有CppUnit、EclEmma、Gcov等。

类型4:以图形界面测试为主,基于单元测试框架对Java GUI进行测试,对网页进行测试。涉及到的开源工具主要有JFCUnit、HttpUnit、JWebUnit等。

类型5:以性能测试为主,除了继续在单元测试框架的基础上对Java应用进行单元性能测试外,重点是对Web应用系统进行整体的性能测试。涉及到的开源工具主要有p-unit、JMeter、WebLoad等。

类型6:以软件综合评测为主,对南京大学的EASTT工具进行综合应用(可辅助使用Panorama++试用版),全面了解软件评测的思想、方法和要求。

软件测试课程设计的考核内容包括:建立测试环境,运行测试工具,编写测试例子,加载被测程序,执行测试用例,分析测试结果,撰写测试总结报告(报告字数不少于1万字),最后登台汇报(PPT演讲)。

通过撰写报告和登台PPT汇报,培养学生的逻辑思维、归纳总结、论文撰写、多媒体制作以及登台演讲能力。3.1.3 软件协同测试创新学分大纲

软件协同测试创新学分实践课程主要是由教师布置具体的较大型软件测试项目,模拟多人异地得测试活动,让学生体验软件测试各个阶段进行协同的关键要素。包括测试需求分析、测试计划制定、测试用例设计、测试用例执行、测试结果收集以及测试资源和测试过程管理等各个环节的协同要求,学生通过协同分工完成整个课程任务,并在测试实践中总结方法,创新性的提出软件协同测试的解决方案。

3.2 实践效果

基于“用工具,促能力” 的教学理念下的软件测试人才能力培养的新模式在内容组织上做到了既能够调动学生专业兴趣,使其感到软件测试的实用性和挑战性,又加强了学生软件测试的实际动手能力。软件测试课程以主流的开源软件测试工具应用为基础,以实战能力培养为目的,易于教师开展软件测试的各项实践教学活动,而且学生对这种形式的实践教学反映非常好,学生参与实验的热情非常高,学生经过实践后收获非常大、能力提高非常快,学生为实践收集或设计的案例非常丰富,部分学生撰写的实践总结报告水平也非常高。另外,学生结合分组实践内容的安排,进行针对性地软件测试实践活动,同时也可以方便不同层次的学生根据自己的能力、时间和兴趣选择相关的实践内容进行自学和实践,进一步地拓展自己的专业知识和专业技能,为今后的职业生涯规划打基础。

企业对我们所取得的成果给予了认可。北京应用软件产品质量监督检验中心与学院签署了战略合作协议,确定在软件测试人才培养(如软件测试培训、实训及实习)、软件测试科研、软件协同测试平台建设以及嵌入式软件测试等基础建设方面开展合作。

2009年,北京工业大学软件学院所获得的北京市软件工程实践教学示范中心其建设内容主要是软件工程及其相关专业核心课程的实践教学及其学生的能力培养。按照什么样的理念和模式开展这些课程的实践教学,软件测试课程“用工具,促能力”的教学理念和在该教学理念指导下的软件测试人才能力培养模式做了一个很好的实践和回答。

4 结束语

目前计算机学院或软件学院学生的软件测试人才培养一直是高等院校计算机人才或软件人才培养的一个“短板”,一直缺少好的教学理念和教学模式。因此,开展软件测试人才能力培养的教学理念及培养模式的探索与实践是一件非常有意义的工作。对于这项工作,有关专家给与了充分的肯定,他们认为:软件测试人才能力培养的教学理念和新模式强调软件测试工具使用的重要性,同时重视教学实验成本和教学的灵活性,所有实验和实践活动的内容组织均以开源软件测试工具为主。通过实际测试项目的开展和工具的使用,能够使学生掌握软件测试的基本方法、技术和流程,提高他们的动手能力。而且这种教学理念和培养模式具有示范性和推广性。

参考文献

[1] 柳永坡. 让软件测试实验和实训课程轻松地走进高校或培训机构――介绍《软件测试实验指导教程》[J].计算机教育,2010(13):158.

[2] 柳永坡. 软件测试大学教程:软件测试课程专业教材[J].计算机教育,2010(12):158.

[3] 蔡建平. 开源软件测试实践教学方案设计[J]. 计算机教育,2011(6):103-108.

[4] 蔡建平. 软件测试大学教程[M]. 北京:清华大学出版社,2009,09.

相关期刊