软件工程课程设计总结范文

时间:2023-04-01 15:05:30

导语:如何才能写好一篇软件工程课程设计总结,这就需要搜集整理更多的资料和文献,欢迎阅读由公文云整理的十篇范文,供你借鉴。

软件工程课程设计总结

篇1

关键词: 软件工程课程设计 教学现状 教学模式评价体系

一、引言

软件工程是计算机科学、信息技术、软件工程等专业的教学计划中一门重要专业必修课[1],而软件工程课程设计是针对软件工程这门课程展开的一项理论与实践相结合的重要教学活动;它不同于毕业设计,更不同于简单的实验过程。它是软件工程教学的一个重要实践环节,为学生综合能力的运用、技术思维的形成、创造能力的培养搭建了一个平台,使学生除了掌握软件工程理论和方法外,还能够综合运用已学过的程序设计、数据结构、计算机网络、管理学和经济学等课程的技能、工具解决与其相关的理论或实际问题。

在软件工程课程设计中,很多本学科的学者与施教者总结了不错的经验,比如“激励机制”[2]、面向对象的自主实验教学[3]、课程相关体系研究[4]及相关的案例法教学实践设计[5]等,这些方法各有所长。我取其所长,结合亲身教学实践,从课程设计的目标要求,设计内容,设计的具体实施,学生成绩评价体系等方面,对软件工程课程设计教学模式作了系统的探讨。

二、软件工程课程设计的教学现状

长期以来,很多高校培养的学生存在着“什么都学过,却什么都不会”的尴尬局面,专业教育、教材与实际应用需求严重脱节[6]。传统的软件工程课程设计虽然也有设计的要求,但一般只是停留在组织学生编写软件项目若干设计文档这个单一环节上,忽略了对教学方法和内容的更新。目前,大多数院校软件工程课程设计课程教学中普遍存在的问题有以下几点。

1.课程设计目标不够明确,实验和设计不加区别。把软件工程实验和设计的要求同等对待,从而使设计内容偏少,验证性实验内容和方法偏多,实验过程变成了重复的复制和操作的过程,实验教学效果不理想,达不到培养学生独立思考和创新能力的目的。

2.课程设计内容比较陈旧,不能与时俱进。很多从事软件工程课程设计教学的教师本身缺乏项目开发的实战经验,对课程设计的内容往往从一些参考书籍的实例中拿过来让学生去做,有的甚至多年不更新设计内容,这样很容易给学生抄袭的机会,达不到课程设计的要求;同时,很多学生对设计的内容也不一定感兴趣,因此也容易扼杀学生的积极性和创新能力。

3.在项目组划分确定方面,缺乏对学生专业基础,性格和技能的分析与匹配,导致没有凝聚整组成员的合作精神和团队的开发能力。组长的核心作用很重要,但在具体的设计中,一般就是简单的按学号自然的分化,或者学生的自由组合分组,前者失去了团队能力的柔化组合与应用,后者导致少数技能较差的学生不能分到组中去而处于孤军作战的局面。

4.教师制定课程设计的指导要求目的不明确、不详细,监管力度不到位,导致项目开发团队在执行的过程中出现安排任务不合理,出现某些成员任务过重或者过轻的情况。

5.学生成绩的评分结果过于单一,评价体系不够科学合理。对学生的设计成绩的评价往往是指导老师根据学生提交的报告和设计结果来评分,这样容易忽略对学生综合能力(包括学生的口头表达能力,组织能力,团队协调能力等各方面)的评价。

因此,为了培养高素质的综合型软件人才,高等学校探索良好的软件工程课程设计教学模式就显得十分必要。

三、软件工程课程设计教学模式的探讨

针对当前多数院校软件工程课程设计课程教学中普遍存在的一些问题,我根据多年的教学经验,对该课程的教学模式作了如下探讨。

1.指导老师根据软件工程教学的特点,制定出软件工程课程设计的目标与通过该课程设计后可取得预期的收获。下面是我对软件工程课程设计制定的目标和可能的预期收获。

(1)通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,比如,软件项目的完整设计与开发过程、结构化技术、快速原型法和面向对象方法,等等。

(2)为学生适应毕业后团队合作开发规模稍大项目和综合应用本专业所学习的多门课程知识(例如,软件工程、程序设计语言、操作系统、数据库、网络编程等)创造实践机会。为学生提供主动学习(比如,对Web网页设计、或ASP交互网页技术、Java开发环境、网站构架如Struts,Hibernate,Spring,商用数据库应用、电子商务、客户机/服务器技术、Visio与Rational Rose,Sybase powerdesigner软件工具等内容的学习)、积极探索与大胆创新的机会。

(3)使学生通过参加小组团队的开发实践,了解项目管理、团队协作、与客户交流、文档编写、口头与书面表达的重要性。

(4)使每个学生了解软件工具与环境对于项目开发的重要性,并且重点深入掌握好一、两种较新或较流行的软件工具或计算机应用技术、技能。

(5)通过“稍大的”富有挑战性的软件设计项目开发实践,提高学生的自学能力、书面与口头表达能力、创造能力和与团队其他成员交往和协作开发软件的能力,提高学生今后参与开发稍大规模实际软件项目和探索未知领域的能力和自信心。

2.课程设计内容选择应该具有科学性和与时俱进性。课程设计内容选择十分重要,既要体现时代性,又要体现科学性和难度的适当性,因此要求指导老师对当前软件开发领域的整个动态有总体掌握。下面是我对当前软件开发领域进行的大致归类。

(1)网站开发类:包括休闲娱乐(音乐,影视,聊天,休闲运动,旅游景点等)网站;工商经济网站(摄影,日用家居,玩具等);文学网站(诗词/韵文,港台文学,民间文学,科幻文学等);体育与健身网站(极限运动,球类,健美/健身,运动常识,网球,乒乓球等);卫生与健康网站(医学理论,医疗器械,保健/养生,论坛等);国家地区网站(北京,上海,广东,江苏,天津等);教育培训网站(小学/中学教育,职业教育,高等教育,教育软件,培训机构等);其他等类型网站。

(2)应用软件类:如信息管理系统,汉字输入,转换翻译,文字处理,压缩解压,电子阅读,文档管理,字体工具,数据恢复等。

(3)系统软件类:如系统管理,内存管理,文件管理,系统测试工具等。

(4)游戏娱乐类:如网络游戏,Flash游戏,牌和棋游戏等。

(5)其他:如安全病毒,桌面工具等。

这样,课程设计的内容可以根据学生的兴趣和爱好从以上几方面进行选择,也可以由学生自己选择设计内容,指导老师把握学生选择的项目难易程度,同时提出所要达到的要求(包括完成日期,演示时间,学生所要提交的成果,文档资料,等等)。

3.课程设计项目具体实施

(1)确定开发团队。指导老师在班长和学习委员的协助下充分了解学生的兴趣、爱好、基本技能和未来学生的就业意向,学生在教师的指导下,有选择性地进行分组,一般3至5人为一组,并选定好组长。

(2)确定开发项目。指导老师给小组成员分配好开发任务,组长写好开发计划进程安排并提交指导老师检查以便及时修进。

(3)中期检查与指导。指导老师根据各个团队提交的开发计划,对各团队开发项目进程定期进行中期检查,检查各团队的项目进展情况,包括各个小组的开会记录,所查阅的资料,当前所遇到的困难,协助与指导小组面对困难所要采取的解决方法等。

(4)成果提交与演示。课程设计结束时指导老师要求按时提交项目的相关成果,并组织小组团队进行演示与简短的答辩。演示过程要求学生用5―10分钟时间叙述设计原理、过程、系统运行的情况和体会,叙述完毕后由指导老师或其他小组成员提问,指导老师和小组成员记录该学生演示情况和回答问题的情况,并以此作为下一阶段评定该学生成绩的一部分。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

4.建立合理,科学公正的评价体系。为了对每个开发团队中的成员成绩有个公正、公平和合理的成绩,因此必须建立合理、科学、公正的评价体系,本文建立的评价体系包括:学生提交成果,学生演示与答辩,学生自评与互评,教师评分。学生提交成果根据表1学生所承担的角色来交付;学生演示与答辩重点体现对系统的原理、过程、结论,以及开发体会进行表述;学生自评和互评体现了学生的自我认同和互相认同感;最后是教师的评分,教师的评定从以下几方面全面考虑:(1)学习态度是否端正,总体表现;(2)项目组织是否有条理,协作程度;(3)软件系统文档资料表达格式是否规范、符合要求,表达是否准确、完整、简单明了;(4)系统结构是否合理,功能是否正确,人机界面是否友好;除了符合上列基本要求具体评定可以参见下表1。最后学生的总评定成绩为:0.4×教师评定分+0.2×学生互评分+0.2×学生演示与答辩评分+0.2×学生自评分。

表1 评定标准

四、结语

软件工程课程设计是一门理论与实践相结合的应用性很强课程,我结合自身从事软件开发的经验和多年的教学,从以上几个方面探索了该课程的教学模式,在实践工作中虽然取得了一定的成效,获得了学生的认可与好评,但仍处于尝试和探索阶段。在实际指导过程中还存在不少问题,例如:个别学生的积极主动性不够,存在抄袭设计成果现象,等等。这些都需要继续努力,尤其是随着软件产业的飞速发展,如何培养高素质软件人才,对教师来说更是一种挑战。因此,教师应不断学习新的知识,提升自身的能力,把握学科的最新发展动态,探索新的教学模式,深化实践教学改革,为我国教育事业作出更大的贡献。

参考文献:

[1]张海藩.软件工程导论(第5版)[M].北京:清华大学出版社,2008:55-73.

[2]张引,杨小虎,陈越.“软件工程”课程实践中激励机制的探索[J].计算机教育,2007,(5):30-32.

[3]江颉,石晓耀.面向对象的软件工程自主实验教学改革[J].实验技术与管理,2007,24(7):112-114.

[4]王薇.软件工程课程体系研究[J].计算机教育,2007,(8):31-32.

[5]巫华芳.软件工程教学案例设计初探[J].教育与职业,2007,(11):139-140.

[6]马燕,张根耀,王文发.软件工程实验教学模式改革与实践研究[J].教育与职业,2006,(36):149-150.

篇2

关键词:普通院校;实践教学体系;工程实践能力;路线图

软件工程专业在我国高等院校还是一个很不成熟的专业,比起传统的工科专业来说,软件工程专业有更多的技术成分,因此,我们的教学体系和模式就要有别于传统的教学体系和模式。实践教学体系是否合适将直接影响软件工程专业毕业生的质量。对于重点院校软件专业和软件学院实践教学体系已有很多专家学者进行了研究与实践[1-3],而普通院校无论是师资,还是其他教学资源,都不能与重点院校相比[4-5],应该有一套有别于重点院校的实践教学体系。本文将对普通院校软件工程专业实践教学体系的构建进行探讨,并结合我院软件工程专业实践教学体系进行总结。

1实践教学体系构建原则

软件工程专业实践教学体系构建原则可以从4个方面考虑:软件工程专业特点、教指委的软件工程专业规范、软件工程专业的职业定位、人类认识事物的规律。

1) 软件工程专业是一个综合性学科,既有科学的要求,又有技术的要求。从学生的培养目标来看,普通院校软件工程专业含有更多的技术要求。目前国内大多数普通院校软件工程专业还是按照传统的理工科人才培养方式进行学生的培养,忽视软件工程专业知识体系的特点,从而导致学校的学生大多数随能按照培养计划完成学业,成为一名合格的软件工程专业的毕业生,但与企业的要求相差甚远,企业找不到合适的人才的现状。

2) 软件工程专业规范给定的软件工程专业知识体系包括:计算机科学与技术知识、软件工程知识和领域知识。计算机科学与技术专业、软件工程专业是实践性、应用性非常强的学科,要使学生掌握好计算机科学与技术的基础理论知识,应用软件工程技术的基本技巧与方法,就必须确保实践教学的教学质量。

3) 按照现在职场流行的说法,人才分为3类:白领、灰领、蓝领。根据本地区和学校的特色,我院软件工程专业的定位是培养“灰领”人才,因此,学生除了学习传统的计算机科学与技术知识、软件工程知识外,还要学习管理学知识,同时根据我校的特色与定位,把汽车设计与制造过程中信息结构作为应掌握的领域知识。管理学知识将用于团队管理、软件开发过程管理以及信息结构建模等开发活动;汽车设计与制造过程中的信息作为软件开发实践的应用对象,是软件的加工对象。

4) 人类对事物的认识是一个由简单到复杂,由具体到一般的过程,是一个分析与综合的过程,将随着知识的积累逐步深入。这就要求实践教学要按照培养计划进度设置不同的实践内容,而且可以根据学生的个体情况进行少量的调整。

2实践教学体系构建方案

现在高等教育的教育方式正在从以教师为中心转变为以学生为中心,既以学生的目的需要为中心、以学生的能力拓展为中心、以学生的知识结构为中心开展实践教学。因此,我们在设计实践教学体系时,始终注重按照学生理论学习的进度和学生能力提高的需求,依据软件开发过程的特点,分层次开设不同的实践内容。

按照学生能力培养的路线图,实践教学体系始终围绕着培养知识应用能力和创新能力进行构建。能力培养方面分为3个方面,即程序设计能力、软件开发能力、工程实践能力。实践教学课程体系由5个层次的实验构成:课程实验、课程设计、项目实训、开发实践、毕业设计,如图1所示。

2.1课程实验

本类实验主要是加强学生对所学知识的理解,“听过的会忘记,看过的会记住,做过的会理解”。实验内容分为3类。第1类:掌握和运用工具,包括语言类,软件开发工具类等;第2类:理解所学知识,包括操作系统、编译原理、设计模式、计算机网络、数据结构与算法等;第3类:同时兼顾工具学习和知识理解,如数据库原理。这类实验主要是学生按照实验指导书完成规定的实验内容,但也有一部分内容只给出实验目的,让学生自己设计实验内容(设计型),以兼顾学生的不同层次与兴趣。

2.2课程设计

本类实验的目的就是培养和训练学生对所学知识的综合运用能力和学习新技术、新知识的能力,属于规范中的设计型与综合型实验。教师给出课程设计题目、相应的背景描述和课程设计要求,学生在教师的指导下独立完成课程设计项目,时间一般为1~2周。实验内容和要求根据学生的理论课进程安排,如VC++课程在数据结构与算法设计之前开设,因此VC++课程设计要求学生做好类的设计、界面设计,数据存储用文件形式,对软件的效率不做要求;数据结构与算法设计课程设计,除了VC++课程设计的要求外,要增加对算法的效率和存储空间的要求;设计模式与UML建模课程设计除了VC++课程设计和数据结构与算法设计课程设计的要求外,增加软件可靠性与高效的要求等。所有的课程设计都要求界面美观。同时鼓励优秀学生应用一些还没有开设的课程内容。

2.3项目实训

本类实验的目的主要是训练项目的组织能力、工程实践和团队协作能力,着重开发过程的训练,按照软件生命周期,完成各阶段的工作。项目实训放在软件工程和数据库原理等专业基础课程之后,软件体系结构之前。同时开展多个项目,把学生分成小组,在不同的项目中担任不同的角色,教师扮演客户和技术总监的角色,要求学生按时上下班,实验室允许学生加班,学生要负责实验室设备安全。要上交较完整的需求分析与设计文档,特别是各部分的公共信息要完整。可以只实现部分需求,时间安排为2~4周为宜。

2.4开发实践

开发实践在软件工程的专业实验室或校外实习基地进行。2008年我们与东风悬架弹簧公司和武汉天喻软件有限责任公司合作,利用武汉天喻软件有限责任公司的PLM软件,装入东风悬架弹簧公司产品开发的基础数据。学生通过该平台,可以了解企业产品的开发流程,不懂的地方随时可以向企业工程师咨询;可以选定一个模块,按照PLM系统接口规范进行设计开发,然后集成到PLM系统中去。可以是替换原来的模块,也可以是增加新的功能,进行集成测试检验程序的可靠性和效率。时间安排为4~8周为宜,由学校教师与企业工程共同指导。

2.5毕业设计

毕业设计是大学教学过程的最后一个环节,是一个学生自主开发的综合性实践教学环节。通过毕业设计,能使学生综合应用所学的各种理论知识和技能,进行全面、系统、严格的技术及基本能力的练习。我院毕业设计时间安排为16周,鼓励学生把就业与毕业设计结合起来。学生在企业实习阶段参与项目开发,由企业导师进行项目开发的相关指导,回校在校内教师指导下完成论文和答辩。

3软件工程专业实践教学的师资要求

软件工程专业的实践教学要求实践教师既是实践的指导者,又是直接的参与者。要对学生在实践中遇到的各种问题给予解答,包括编程语法、算法逻辑、软件体系结构设计、用户需求分析、团队协作方法等;在实践过程中更多地是站在用户的角度对学生的成果进行验收测试,使学生体会到在现实情况下怎样的软件才能被用户接受,体会到用户怎样检查软件的可靠性、可用性、正确性,用户怎样评价软件的优劣。

软件工程专业的特征要求从事软件工程专业教学的师资队伍是一支具有综合素质的队伍,既有专业理论基础,又要有企业实践背景;要充当软件开发过程的各种角色――投资者、使用者、组织者、设计者、编码者、测试员等。课程实验主要由理论基础扎实的教师担任,课程设计由理论基础扎实的教师和有企业实践背景的教师共同指导,项目实训和开发实践主要由有企业实践背景的教师完成。

4结语

本文介绍的软件工程专业实践教学体系是我校通过几年的不断摸索与改正后形成的。在探索过程中获得了湖北省教育厅项目(软件工程创新型人才培养研究)和学校的支持(2007年软件工程特色专业建设费15万元)。该实践教学体系利用一些基础实验帮助学生理解和掌握专业理论知识,为今后的发展打下坚实的专业基础,同时通过参与各种项目,提供了发展其动手能力的环境,贴近了企业需求,提高了就业率。2009年我校软件工程专业的一次就业率达到了90%。由课程设计、开发实践和毕业设计构成的创新训练体系,使学生获得了科学研究方法和软件开发活动的工程化的经验。

参考文献:

[1] 李红梅. 面向能力培养的软件工程实践教学体系[J]. 高等工程教育研究,2009(2):84-87.

[2] 董玮. 引入实训体系,培养应用型软件人才的探索与实践[J]. 计算机教育,2007(23):10-19.

[3] 董玮,邱建华,杨英鹏,等. 培养应用型软件人才的实践教学体系的研究与实践[J]. 计算机教育,2008(10):16-18.

[4] 郑耿忠,刘秋梅. 地方性院校软件工程专业建设探讨[J].电脑知识与技术,2009,5(30):8477-8478.

[5] 郑耿忠,刘秋梅. 软件工程专业实践教学体系构建探索[J]. 电脑知识与技术,2009,5(27):7690-7691.

[6] 白伟华. 软件工程专业应用型人才培养模式的思考[J]. 计算机教育,2008(22):35-37.

Practice Teaching System of Software Engineering in General Institutes

FU Yong-zhi, WANG Wen-yan, SHI Lü-hua

(Department of Computer Science School of Electrical & Information Engineering Hubei University of Automotive Technology,

Shiyan 442002, China)

篇3

关键词:软件工程;应用型人才;项目案例;实践教学

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

1 引言(Introduction)

软件工程作为计算机和软件本科专业最综合最系统的一门课程,在促进学生巩固之前学过的专业知识、掌握软件开发过程及方法、理解软件工程实践等方面发挥了积极作用。但高校特别是三本院校在软件工程课程讲授时理论脱离实际,片面地强调理论学习而忽视实践能力的培养,理论部分过于抽象,在课程实验中,没有把握好课程在人才培养的桥梁和作用,缺乏贯穿纵向知识体系和学科的整体理解和思想,往往只是本课程章节或课程的综合理论验证,采用虚拟的实验案例,甚至将其设计成为章节内容验证练习,而不是围绕着软件工程整本书的整个知识体系进行实际开发项目。导致学生学完软件工程课程后还是不能理解软件生命周期、开发过程及相应方法,与社会对软件人才的需求存在差距,学生难以很快融入现代IT企业的运作[1]。如何培养起适合信息产业所需要的应用型、实践型人才,已经成为亟待解决的问题。因此要想将学生培养成为符合社会需要的软件工程人才,就应当改变目前的局面,全面考虑软件工程课程建设。

本课题研究主要针对目前软件工程课程理论脱离实际,同时很多教师过分强调软件工程理论知识的一面,忽视了软件工程必须有实践项目还具有经验性、参与性、发展性的特点,通过理论研究和教学实践对软件工程教学实践提供实践指导。加强软件工程实践教学的改革,通过理论与实践相结合的方法培养社会需要的应用型软件工程人才。解决三本院校软件工程课程教授中理论、实验与实际相脱离的问题。

2 针对社会需求,制定明确合理的教学计划

(Formulate a reasonable teaching plan based on

the social needs)

教学计划是各教学环境的整体设计方案,合理的专业的教学计划能为教学顺利实施提供指导,也是教学过程质量的有力保障,是人才培养的纲领和实施蓝图[2],它规定了课程结构和知识结构,明确了人才培养目标,构建了专业要求的课程体系,限制了教学环节的进程及内容。具体在制定计划时应秉持以下几点:

(1)树立应用型人才培养理念

在培养软件工程人才过程中要和一二本院校区别开来,我们应当以实际动手为主,培养适合企业操作岗位的技能人才。软件工程专业应坚持“以市场为导向,以就业为目标,顺应IT业发展趋势,以校企合作为手段,突出技能培养,走应用型开放式道路。”的办学思路,通过吸收国内外的优质资源,通过校企合作,共建实训实习基地和技术开发应用等多种合作办学,提高办学活力及效率。在人才培养模式上突出以技术应用能力为核心的人才培养特点,课程设置以市场流行的软件开发技术为主线由浅入深,技术的学习采用项目驱动、案例驱动的方式[3],不断提高学生实践动手能力,培养应用型技术人才,适应企业对人才的需求。

(2)构建应用型培养系统工程

学生在学校对知识的储备与社会对人才的能力需求如何契合的更好是学校应该要慎重考虑的问题。目前,软件服务外包产业对应用型人才需求量较大,软件工程专业可以和武汉软件外包单位合作,全面实施3+1人才培养模式,即,三年基础、专业课程学习加一年实训。这种嵌入式教学模式将会极大地提升学生的实际应用能力,他们进入企业后适应能力更强,上手会更快。在教学过程中,软件工程专业可以构建工程化的实践教学体系,以软件项目研发到软件项目运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习软件工程,建立试验―实训―综合设计―职业实践的实践教学体系,通过引进、开发真实的项目案例,让学生实际参与项目开发全过程,切实提高学生解决实际问题的能力,培养他们的综合应用素质。

(3)引入企业,接轨市场需求

基于工程化培养理念建立一批校企联合实习实训基地,实现教学过程与生产过程的对接,为应用型技术人才培养提供有力的保障。将一些行业内的企业而不单纯是培训单位引入校园,合作搭建项目开发平台,形成以研发项目促进学生实习实训,以研发项目带动师生科研发展的人才培养新途径,联合培养双师型教师。

3 软件工程实践教学采用的主要方法(The main

method of the software engineering practice

teaching)

软件工程实践课,包括课程实验、课程设计、项目实训和毕业设计等实践环节。

3.1 实例教学

在教授理论知识时,传统方法过度的在讲授枯燥的理论知识,学生没有实际的工程项目的经验,根本无法理解软件工程课程里的内容,在软件工程课程理论课上教师要通过典型的软件项目实例来讲解理论知识,将实例贯穿于教学环节,模拟软件工程项目场景,启发学生分析问题、进行方案设计,在项目案例讲解过程中抽象上升为理论知识,理论知识又反过来指导项目案例。

3.2 实验教学

相对于计算机科学与技术专业,软件工程专业更强调实践性和工程性能力的培养,这都需要在实践环节中培养,因此实验与实践教学是软件工程专业教学的重要组成部分,其实施质量对专业教学质量具有举足轻重的影响。软件工程专业可以构建“课程实验、课程设计、毕业设计”三级实验体系[4],三级实验体系粒度从细到粗,从具体到综合。教师需要设置好实验环节的内容、形式,实验课和课程设计时采用商业软件的开发模式,以实际项目和企业正常运作时人员的分工配合来进行实验教学,理论指导实践,实践强化理论,将系列的实践课程提升到工程项目训练,实际软件工程项目贯穿同步理论课的知识,让学生从需求分析、总体设计、详细设计、编码、测试到项目交付和管理维护等完整的软件开发过程进行系统实践学习,这样学生在一个真实的场景中实践,亲身体验并进行反思,只有实际操刀了,学生才能理会并掌握完整的软件开发流程、软件开发技术及软件开发方法。实验时以小组形式开展工作,四五个学生为一组,每组由组员推荐或自荐一位组长,负责协调、分工,组员在小组长的协作领导下完成项目的开发过程。项目驱动实验的软件工程实践教学可以帮助学生建构良好的软件开发认知模式并培养一定的软件工程素养[5]。在学生毕业前,开设项目实训和毕业设计,旨在培养学生的综合实践能力,通过这样的手段学生能比较真切地理解软件工程理论知识并掌握软件开发过程。通过实验,掌握一个完整软件开发过程,及过程中的每一个阶段的任务、目标、方法、工具,并熟练使用一些CASE(计算机辅助软件工程)工具来提升软件开发效率,保证软件质量。通过集中性的课程设计、毕业设计训练,使学生逐步培养编程能力、算法分析设计能力、数据库设计能力,能够结合专业知识实现用户需求,形成产品意识而不是作业意识,培养团队交流协作能力、积累工程经验、提高工程素养。每一个阶段制定可衡量的、明确的目标,激发学生的学习兴趣、提高知识的灵活运用能力、创新思维能力、综合分析能力、系统设计能力等,为培养符合社会需求的人才奠定基础。最后通过毕业设计综合性锻炼,实现学生就业的平滑过渡。

在每一级实验过程中都采用“教师为主导、学生为主体”的原则,才有利于避免学生在学习上的依耐性、缺乏独立思考问题和解决问题的能力,因此要充分发挥学生的主体作用,运用教师的专业知识和项目经验言传身教地引领、启发学生学习、动手实践,不断引入新技术、新方法引起学生好奇心,激发学生探索学习欲望。教师需要动态地了解学生的接受能力,有针对性地因材施教、指导学生学习,让学生拥有自主学习、持续学习的能力,意识到自己学得会,也很有利于调动学生学习的主动性,只有这样,才能达到较好的实验课教学效果。在每一次实验后要及时地对本次实验加以分析和总结,通过本次实验遇到了什么问题?解决的方法是什么?实现了什么功能?还有哪些有待解决的问题?都要加以总结,并以报告的形式记录下来,有利于日后开展实验课程的教学。

3.3 社会实践教学

一个软件企业的正常运行需要多方面的人员协作与配合,如财务人员、开发人员、配置管理员、质量保证员、数据库管理员、网络维护工程师、系统架构师、软件测试人员、管理人员等,在学校里学生难以体会到一个软件开发过程中除编码测试人员之外的其他岗位的职责和特性,学生只有真正进入企业才能体会并有机会实践这些岗位。社会实践教学可以通过校企合作的形式,也可以鼓励学生自己去找实习单位,学生可以根据自己的兴趣和个人发展方向来自由选择角色,完成不同的任务,教师和公司导师给予引导。社会实践教学是一次综合性的实践活动,是学生走向社会的开始,通过社会实践教学活动,使学生能够逐步认识综合利用所学的专业知识,培养软件开发的技能,深刻体会企业软件开发与学习过程中编写软件的不同、软件工程各阶段角色任务管理和开发知识,提高自身的创新意识与创新能力,促进团队之间的沟通协作,为早日踏上工作岗位打下坚实的基础。

学生进行社会实践教学活动时,严格按照企业的规定,执行、考勤、日志、总结等实际工作环节,广泛使用协同开发平台,使学生规范化、有序进行社会实践活动。

4 结论(Conclusion)

通过对几年软件工程课程教学的思考和总结,以及调研一些其他院校软件工程课程,提出了三本院校中软件工程实践教学存在的问题以及软件工程实践教学改革的必要性,从课程教学计划的制订、实例教学、实验教学、社会实践教学等几个方面给出了切实可行的建议,同时这些建议也可为其他课程提供有意义的借鉴。

参考文献(References)

[1] 熊伟,洪玫.大学本科软件工程专业建设的探索与实践[J].理

工高教研究,2010,(2):59-61.

[2] 晏立.从社会需求的角度探索软件工程教育[J].教育与教学研

究,2008,(22):141-145.

[3] Roger S.Pressman.软件工程:实践者的研究方法[M].北京:机

械工业出版社,2011,(8):32-68.

[4] 熊凡,李伟波.项目驱动的软件工程实验教学探讨[J].中国电

力教育,2012,(2):77-79.

[5] 丁洁.软件工程的教学改革与实践[J].科学与技术信息,2009,

(9):555.

作者简介:

篇4

软件工程是一门建立在计算机科学和工程学基础之上,同时涉及数学、管理学、经济学和系统工程等学科理论与方法的学科及专业。软件工程教育兼具科学教育属性与工程教育属性,前者培养的是软件工程基础研究人才,后者培养的是软件工程技术、应用、管理和服务人才。我校作为一所普通本科院校,结合区域经济发展实际,将软件工程专业的培养目标定位为培养应用型、工程型软件人才。即能够综合应用计算机科学、数学及管理科学等学科知识,以工程化的原则与方法为指导,胜任现代软件工程环境下高质量软件的开发、测试和维护等工作的软件工程技术、应用、管理和服务人才。该培养目标可进一步解读为以下三点:扎实的专业基础、良好的工程学意识、较强的动手实践能力。

2CDIO模式下实践教学体系的构建

软件工程是一门实践性很强的专业,应用型、工程型软件人才的培养定位更加强调学生动手实践能力的培养和工程方法学的训练,因此,实践教学的体系建设和教学效果对学生的培养质量起着至关重要的作用。借鉴和吸收CDIO工程教育理念和标准,我们从教学内容和教学方法两方面对软件工程专业实践教学体系进行了重新构建和实践。课程实验、课程设计、综合实训、毕业设计四个层次循序渐进、由浅入深、环环相扣;在教学方法的构建上,我们从工程教育的角度出发,形成了“案例牵引、项目驱动、团队合作、引导互动”的教学模式。

2.1教学内容的构建

在教学内容的构建上,我们按照“以CDIO培养大纲为指南、以项目设计为导向、以工程能力培养为目标”的原则,将软件工程专业的实践教学体系分为以下四层次。2.1.1课程实验课程实验是单门专业课程教学中的实践环节,也是整个实践教学体系的基础,对学生基础专业技能的培养具有重要作用。为了加强实践教学,我们在绝大部分专业课和专业基础课中都设置了课程实验,根据教学目标的不同,课程实验设计为验证性、设计性和综合性等不同的层次。对于实践性很强的专业课程,如程序设计基础、面向对象程序设计等,采用完全实验教学的方式,通过一个完整的项目将课程知识结构串联起来,并通过“分而治之”的形式来学习各个知识点,将教师讲解与演示、学生实地操作有机融合起来,最后完成整个项目,以培养学生的动手实践能力和专业兴趣;对于理论性较强的专业课程,如数据结构、操作系统等,采用理论讲解与上机实践并举的方式,加强学生对专业基础理论知识的理解与应用。2.1.2课程设计课程设计是实践教学体系的第二层次,是在课程实验的基础上,选择一些实践性强且具有代表性的课程作为单独课程开设综合性课程设计。例如,Java程序设计课程设计、软件工程课程设计等。与课程实验相比,课程设计具有综合性和实用性的特点,学生在教师的指导下综合运用相关课程的知识和技术完成一个完整的设计或实现。通过课程设计的训练,培养学生运用专业知识分析问题和解决问题的能力,使学生的专业技能得到进一步的提升和拓展。2.1.3综合实训综合实训是以课程设计为基础,综合运用多门相关课程知识完成一个工程项目的实战训练。综合实训以项目为载体构建知识结构,将学科知识、专业技能与工程实践有效结合,体现软件工程领域中的工程学和方法学的实施,实施技术与管理能力训练和职业综合素质综合的培养[4]。根据方向不同,我们在软件工程专业开设了两门综合实训课程:(1)软件开发综合实训。以软件生命周期为主线,综合运用程序设计、数据库应用、软件工程、软件项目管理等学科知识,严格按照软件开发的流程与规范,完成一个软件项目的开发,最后提交软件产品和相关技术文档。(2)软件测试综合实训。要求学生以软件开发综合实训所完成的软件产品为被测对象,综合运行软件测试与质量保证、软件测试流程与方法、测试框架与自动化测试等学科知识,使用软件测试的方法与技术,设计测试用例和测试脚本,完成被测软件的功能测试与性能测试,生成测试报告,并对测试结果进行分析。2.1.4毕业设计毕业设计是实现人才培养目标的重要手段,是实践教学体系中最后一个综合性、创造性的实践环节;是对学生基础理论、专业知识与实践成果的全面总结,是学生综合素质与工程实践能力的全面检验[5]。为了提高毕业设计的质量,我们从以下三方面层层把关。(1)在课题选题上,强调选题的可行性和实用性,忌空忌大,选题最好能与指导教师的科研方向或学生的实习工作相关联;(2)在过程控制上,实行师生定期交流与汇报制度,确保毕业设计按计划保质保量完成;(3)在毕业设计报告及相关材料的撰写上,从规范性和科学性两方面严格要求,确保质量。

2.2教学方法的构建

2.2.1案例牵引案例教学是实践教学中的常用手段,具有直观性高、互动性强的特点。按照CDIO大纲能力培养的层次要求,结合各实践课程的教学目标,我们在实践教学中精心规划和设置了不同层次、不同复杂度的教学案例,以案例实现过程为驱动来安排教学内容和方法。在教学过程中,以一个具体的案例为线索,把教学内容巧妙地融合在案例之中,学生以完成案例任务为目标,在老师的指引下对目标问题进行分析与分解,并通过动手实践解决问题,真正做到“做中学”和“学中做”。在完成任务的过程中,不仅使学生的动手实践能力得以提高,也培养了学生的创新意识、创新能力以及分析问题、解决问题的能力。2.2.2项目驱动工程实践能力是专业技能的进一步升华和提高,是从整体上对工程项目的一种实做能力,是工程类毕业生必备的核心素质。根据CDIO“做中学”和“基于项目的教育和学习”的思想,我们在实践教学中广泛采用项目驱动的教学模式。强调以一个产品或系统从构思、设计、实现到运作的完整的构建过程来培养学生的工程实践能力。以软件开发综合实训课程为例,在课程中引入“项目驱动”的教学理念,以软件生命周期为主线,以项目为载体、任务为驱动开展实践教学。通过一个软件产品从项目启动到需求分析、设计、实现、测试、运行维护的整个生产过程的实战,培养学生的工程能力和综合素质。2.2.3分组教学团队能力是CDIO大纲要求工程毕业生必备的一种能力。在实际教学过程中,我们模拟企业的真实环境,将所有学生分为若干项目小组,每组由一名组长和若干名组员构成。根据任务分工不同,每名学生都被赋予一定的角色,组员在组长的指挥协调下通力合作,共同完成实验项目。实践表明,分组教学模式能较好地激发学生的学习热情,组员之间分工协作、互学互助,学生的沟通能力、协作精神和团队意识大为提升。2.2.4革新考核方式考核是对学生学习成果的认定和评价,良好的考核机制能对学生的学习过程和学习动机产生正确的指引作用,促进教学质量的提高。在实践课程的考核上,以能力培养为导向,采取多元的考核方式。引导学生在平时项目实训过程中加强专业技能的训练、工程能力的培养以及综合素质的提高。(1)对基础性的课程实验,重点考核学生专业知识与技能的掌握情况,采取平时实验成绩与期末上机考试成绩相结合的方式。(2)对课程设计和综合实训类课程,重点考核学生的工程实践能力和团队协作能力。采取以作品演示、项目答辩为主的考核方式,同时规范化的文档资料也是重要的考评指标。(3)对于毕业设计,重点考核学生的创新能力。科研能力以及分析解决问题的能力,考核方式同综合实训。总之,以能力培养为导向,注重能力考评。2.2.5校企合作校企合作是培养学生的综合素质和实践能力的重要途径。为了增强人才培养的针对性和毕业生与工作岗位的无缝对接,我们同中创、中远等知名软件公司开展校企合作联合办学。充分利用学校和社会两种教育环境和教育资源,联合构建工程型实践教学队伍与教学平台。一方面,学校聘请企业一线的工程师作为兼职教师来校授课,不仅充实了实践教学队伍,更带来了企业的最新技术和行业资讯;另一方面,选派优秀教师到企业学习锻炼,参与企业项目,提升师资队伍的水平。此外,通过在企业建立校外实训、实习基地,使学生尽早感受企业文化和接触到真实的企业项目,也为学生就业积累了丰富的工程实践经验。

3结束语

篇5

关键词:网络教学;软件工程;实验教学

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)09-2194-03

1 概述

软件工程是研究计算机软件开发与软件管理的工程学科,是一门理论性和实践性都很强的综合性课程。软件工程本身涉及到的知识内容很广,是将面向对象技术、程序开发方法和数据库原理等课程综合的过程。通过软件工程的学习,目的是培养学生独立分析和解决问题的能力,增强学生实践和动手能力,并熟练地掌握计算机软件的各种开发工具。

目前的软件工程课程,比较注重课堂教学,实验教学学时少,任务重,包含的内容多,如果学生之前没有花时间预习和准备实验,没有对整个实验过程作系统规划,会导致上实验课时无从下手,影响学生的学习积极性和学习效果,因此科学地规划软件工程实验课程并对实验课程进行教学改革是非常有必要的。该文提出了采用网络教学平台作为软件工程实验课程的辅助手段,对软件工程实践课程的教学改革进行了探索。利用网络学习的方法,能够在更大程度上调动学生的学习主动性和积极性,增强学习效果,更好地实现教学目标

2 实验课程网站建设

近年来随着网络技术的不断发展,网络教学模式越来越显示出其优越性。教学网站具有教学资源丰富、学习自由的特点,网络教学的模式也有利于学生自主学习能力和创新精神的培养。建立软件工程实验课程网站的主要目的,是让学生对所要进行的软件工程实验有整体的认识和了解,明确实验任务、实验要求和实验方法,对整个实验过程有合理的规划。根据软件工程开发的整个过程和技术要求,设置实验课程网站,主要包括以下几个模块:

2.1 课程资源

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

2.1.1 理论教学资源

课程介绍:是对课程的主要内容、课程的特点、课程学习的目的和任务等多方面作一个总括性的简介方便学生对课程有一个总体的把握与了解。

教学大纲:主要包括课程教学的内容与要求,对每章节的知识点、重点和难点进行说明, 阐述具体的教学安排和课时分配, 便于学生按照大纲的指导进行学习。

教学日历:用来描述课程的进度安排。学生可以通过查看教学日历, 事先预习教学内容,使得课堂学习更有目的性和针对性,提高了教学效率。

授课教案和课件:这是学生自主学习最重要的部分,包括各章节的文字教案和多媒体教学课件。如果学生课堂上没有完全理解授课内容的,可以带着问题在课下继续进行自主学习,能调动学生的自主学习的积极性,提高教学效果。

预备知识:列出学生已经学习过的与软件工程设计有关的课程目录,如程序语言、数据库、操作系统等,引导学生复习一些在软件工程中需要涉及到的相关知识。

2.1.2 实验教学资源

实验大纲:根据课程实验的要求组织实验项目,编写实验大纲,主要包括各个实验的实验目的、实验原理、实验内容和实验环境等。注意实验项目内容应从简单到复杂对学生进行引导, 给学生留下充足的学习思考空间,引导学生自主学习的方式和解决问题的方法,

课程设计要求:主要包括分组情况、任务分配、任务书的规范说明、提交方式、打印格式和成绩核定方法。

此外,还可以给出实验计划表和课程设计计划表等实验详细信息,使学生能合理规划好整个实验环节所要完成的任务。

2.2 项目任务

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

2.2.1 项目实例

教师根据学生的知识结构和实际情况,虚拟设计一两个小型系统,作为项目实例,如停车场管理系统、借还书管理系统等。贯穿软件生命周期整个过程,从问题定义、可行性分析、需求分析、总体设计、详细设计到调试分析和软件测试,给出项目的全过程设计。

学生通过实例学习,对软件工程开发项目有全面的认识和了解,知道软件生命周期的各个过程应该做些什么,如何进行可行性研究,需求分析的任务是什么,采用什么分析工具,怎样能全面周到的做好总体设计规划,详细设计阶段的设计说明书的作用是什么,系统模块如何划分,程序实现的方法有哪些,怎么设计软件测试方案以及软件维护说明书。

2.2.2 项目题库

教师可为学生准备一些软件项目, 如停车场管理系统,在线考试系统,图书管理系统,学生信息系统,银行卡管理系统,教材定购系统,工资管理系统,设备管理系统等,建立项目题库,每个项目配备相应的项目任务书,以便学生选择项目,下载相关的项目任务书,完成项目计划。

项目题库中的项目,要不断更新。项目的来源可以根据企业的需求、也可以是教师自己的科研项目,要对各个项目进行共同讨论,决定项目的可行性,并根据教学要求和课程特点,对实际项目进行剪切或划分成子项目,使其具有可操作性和实践性,便于学生操作和实训。

2.3 软件工具

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

2.3.1 建模工具

对几种UML统一建模工具进行简单介绍,并提供软件下载,安装方法和使用教程。学生可以采用不同的分析工具,建立系统的分析模型,并做好需求分析和系统设计。

主要的建模工具有Microsoft Office Visio、Rational Rose和PowerDesigner三种。Microsoft Office Visio中引进了软件分析设计功能到代码生成的全部功能,可以更轻松地将流程、系统和复杂信息可视化、可以创建多种类的图表。Rational Rose主要是对开发过程中的各种语义、模块、对象以及流程、状态等进行比较好的描述,能从各个方面和角度来分析和设计,对系统的代码框架生成有很好的支持。PowerDesigner是一种数据库建模工具,允许使用一种结构化的方法有效地创建数据库或数据仓库,它还提供了直观的符号表示,使数据库的创建更加容易,并使项目组内的交流和通讯标准化。

2.3.2 编程工具

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

2.4 文档资料

该模块主要列出整个项目所要提交的各类文档资料。此外,还应该提供统一格式的实验报告和课程设计任务书范本,便于学生下载,并按要求填写内容。

项目文档:主要包括有可行性分析报告,需求规格说明书,项目计划书,总体设计报告,详细设计说明书,软件系统的程序代码,软件测试报告以及用户使用手册等。

规格说明:可以给出一些规格说明的样例和标准,学生可以使用非形式化、半形式化和形式化等方法描述需求分析规格说明,详细设计规格说明,并给出系统各部分的设计规格说明书。鼓励学生学习和使用形式化的方法描述规格说明,例如:有穷状态机、Petri网以及Z语言等,这样可以用数学方法研究和验证规格说明是否正确,并消除二义性。

2.5成绩评价

该模块主要给出实验教学各阶段的成绩考核方式及评定标准。课程实验中,上机操作占课程实验成绩的50%(含平时上机操作和考勤),课程实验需要提交的文档和报告占50%。课程设计因为是分小组进行,成绩评定可以分成个人成绩和小组成绩两部分,个人成绩主要根据个人在小组中所分工作多少和完成工作情况来确定,小组成绩则由各个小组阶段成绩和系统最终验收的情况来确定(如系统是否达到需求规格说明中的功能性、提交的文档是否全面和规范, 源程序编写是否规范、可维护性等)。

每个项目组都应该进行汇报,展示自己的成果,由教师和其他同学组成评审团, 对每个项目组的汇报进行评审和打分, 提出修改意见和建议。汇报结束后, ,教师要进行总结点评, 并写出评语。既要评价项目成果,也评价学生的表现,帮助学生整理学习内容, 鼓励学生的积极性。

3 网络辅助教学

建立软件工程实验课程网络教学平台后,如何让学生充分利用平台资源进行网络学习,也是必不可少的关键部分。整个教学实践过程可在教师引导下, 学生自主管理, 分工协作, 这样既锻炼了学生参与项目管理的能力, 又训练了学生之间的团队合作精神。有了网络学习平台,在理论课程学习的同时,学生可以分三个阶段完成软件工程实验课程:

1)网络学习:该阶段主要学习课程资源,同时,学生进行选题,分小组和分派任务,进行项目的可行性研究和项目的需求分析。

2)课程实验:该阶段主要是让学生学习建模工具,通过使用建模工具,完成项目的分析过程,并进行系统的详细设计,划分系统的各组成模块,给出系统的各部分设计规格说明书。

3)课程设计:该阶段主要是根据项目的需求规格说明书和系统设计文档,采用合适的程序设计软件完成对整个系统的代码编写,遵循代码的开发规范。设计测试用例,对系统进行测试,并提交相关文档。

成绩评价部分由教师来完成,每个阶段都要进行阶段性评价,并根据项目的最终完成情况给出整体评价。要着力培养学生软件工程开发工具的应用能力, 要求学生按规定提交项目要求的各种文档,形成较为科学的综合成绩评定方法。

4 结束语

软件工程实验课程的教学改革是软件工程课程改革的一个重要部分,教学方法和实验环境是软件工程实验课程改革得以实现的重要保障。利用网络教学平台辅助软件工程的实验教学, 可以实现资源共享,使得学生对整个实验教学有全面的认识和了解,有利于调动学生的学习兴趣和主动性,提升学生分析问题能力和实际解决问题的能力,对增强学生的项目管理能力和开发能力,起到很好的作用。

参考文献:

[1] 张海藩.软件工程(第3版)[M].北京:人民邮电出版社,2010.

篇6

关键词 软件工程 实践教学 导学制 虚拟

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

The Application of the Software Engineering

Practicality Teaching on Virtual Enterprise

WU Zhinan

(Yichun College, Yichun, Jiangxi 336000)

AbstractThe traditional practicality teaching of software engineering has such problems as not having coherent cases, not having real environment and not having students master all kinds of knowledge and skills. Based on virtual software enterprise, the guided learning system is meant to accomplish the teaching task by means of establishing a class-teaching organization in accordance with the real software engineering enterprise under the supervision of a guider. In this organizaiton, students are given the identity of a software engineer., the all-round experience of solving problems in real situation, and thereby they can handle the task and master the knowledge in the field of software engineering.

Key wordssoftware engineering;practicality teaching; guided learning system; vitual

0 引言

“软件工程”是一门指导学生高效高质量完成软件工程任务的课程,是对软件开发活动教训及经验的积累和总结。该课程对对学生未来的软件工程实践具有重要的指导作用。然而在实际的教学实践中,学生往往对已总结的理论缺乏具体而贴切的理解,而且认为课程枯燥无味,或者只对里面涉及到的工具和技术感兴趣,忽视了软件项目开发中各种辅助管理过程的重要作用。这种重技术轻管理的意识在学生中非常普遍,甚至在中国很多小型软件公司中也很常见。究其原因,是在软件工程学习中对其中的管理技能和工程技术技能缺乏全面的掌握,这也是软件工程教学常见的教学问题。为提高软件工程教学质量,将实际软件企业制度引进教学实验课堂,是一种较好的解决办法。

1 基于模拟软件企业的导学制基本思想

基于模拟软件企业的导学制的思想,是指在学校软件工程实验教学中,把软件企业的运行管理机制引入到课堂实

验项目中,让学生扮演软件企业项目开发的各种角色,结合软件工程课程学习,完成软件工程实验教学。具体执行的流程如图1:

具体来说,在整个课程的学习过程中,教师扮演的则是“导学员”的角色。在课程的初级阶段教师即借鉴企业管理制度,建立模拟软件企业的组织机构。根据每个阶段不同的实验任务――如需求分析阶段的需求分析任务,软件设计阶段的概要设计和详细设计任务等――确定该阶段的虚拟企业角色,并分配到每个学生,让学生来亲自来组织、实施并相互配合完成任务。但在组织实施前,老师应该详细地描绘实施蓝图,同时根据对工程活动的理解,查阅相关资料并制定该阶段活动计划,分派任务给各角色人员。整个实施过程在教师的指导下进行,实施完成后根据软件企业进行阶段评审,最后由导师根据其质量进行评价,完成相关实验任务。该方法核心是将企业运行的一套流程尽可能真实地引进课堂,其目的是通过这套制度让学生获得多方面体验,包括协作、沟通、计划等管理技术,以及在具体实施软件工程活动时的学习开发分析技能,并最终达到全面理解软件工程理念的目的。

2 教学实施的关键问题

基于模拟软件企业导学制是一种操作性很强的实践教学方法,教学需教师严密计划,精心组织,敏锐观察。该教学方法实施的关键环节,现以问题的形式阐述如下:

2.1 如何建立一个模拟软件企业组织

一个软件企业的正常运行需要多方面人员的合作和配合,如市场人员、开发人员、测试人员和行政管理人员。但作为一个课堂引入的虚拟企业组织,其主要功能是让学生在课程学习时有个真实的情境,通过虚拟企业的运行,学习体会软件工程知识。因此,引入软件工程课程的虚拟企业只需配备主要职能部门,学生就能进行仿真运行。这些主要的职能部门包括项目经理、软件需求分析调研员、软件的系统分析设计人员,软件程序员和测试人员等主要开发测试人员和管理人员。同时将学生分为3-5人一组,以便每个学生充分学习软件工程各阶段角色任务管理和开发知识。同时,每一个阶段偏重的任务不同,学生的角色也应随之有所改变。这样的组织虽简易,但却有很高的可行性。同时也是有利于学生对企业运作环境有较为真实的体验,学习多方面的知识,达到完成软件工程实践知识的目的。

2.2 如何管理和运行

在真实的企业中,一个项目接下来,相应的组织便成立。那在软件工程实践教学中,如何使项目组有秩序地运行呢?所以,教师在实验之处就应选择好一个软件教学项目,教学时应做好充足的准备,制定好教学计划和项目实施计划,确定每个阶段应配备的人员。在确定好项目的角色后,教师还应进行预先指导,以引导其完成本堂课涉及的项目活动计划和任务。随着教学过程的推进,教师也需推动虚拟企业项目开发的进展,每个项目的结束以软件项目的里程碑为主要标志。在进行下一个项目阶段时,再按照项目计划来指导分配人员扮演其他角色。

2.3 如何运用该组织结合软件工程教学内容进行实验教学

软件工程教学中,教师应以一个完整软件项目进行实验教学。结合软件工程的阶段性知识讲解,逐步运用该虚拟软件组织进行教学。

在运用该组织时,教师在事先做好教学计划、明确各阶段任务的同时,还应注意对学生的引导和扶持。比如在可行性研究阶段,学生由于缺乏对软件开发过程的了解,通常难以制作项目开发计划。此时老师可以讲解一个以往的软件开发计划,使学生能够预估,有些过程还需老师先做一些框架,然后才能放手让学生做。在理论课教学时,也可以先以实例让学生理解。在此过程中,人员的组织和分工可由导学员(老师和高年级学生)来指导,以减少过程执行的困难,帮助学生顺利完成。一般来说,在开始学习新知识时,学生总是很不熟练,对过程一知半解,没有经验。所以在初始阶段,即以掌握软件工程各阶段知识为主要任务的阶段,老师主要起指导作用,引导学生探索完成任务。第二阶段是课程设计阶段,通过前段时间学习,学生已对主要知识和过程有所了解,但缺乏综合衔接的能力。这时给学生布置一个项目任务,放手给学生去组织实施,老师仅作为一个指导者,起监督和评价者的作用。

2.4 如何建立有效的评价机制

学生实验评价应仿照软件开发企业来进行。老师模拟真实企业给各个人员一定工资标准,以各阶段的实验成果(比如该阶段的项目计划书,需求文档等)作为评价依据,在导学员的指导下进行综合评价,参照基本工资,根据绩效,给定虚拟工资(根据该虚拟工资可以使学生了解工程经济管理),以占工资的百分比作为该阶段的评价分数,从而达到评价学习目的。

3 基于教学方法的基本原则

该教学方法实践性强,过程也较复杂,在实施教学时应把握一些原则,具体如下:

(1)以学生为主体,以老师为主导。在实验教学过程中,学生是学习的主体,教师起指导作用。教师通过给出任务,适时指导,促进学生主动完成项目活动的组织任务和技术实施任务,充分发挥学生的主观能动性,大胆探索,多方求知,全方面学习,激发其个人潜能。

(2)先导后做,由易到难。由于对新知识不理解,学生在一开始时往往茫然不知所措。此时老师要做到亲自示范,讲解实例,对于给定的实验任务,要手把手引导,甚至老师做一部分,然后让学生做另外一部分,这样让整个过程才能可行和可控。

从大的方面来说,软件工程实验的各个实施阶段,老师应逐渐引导,使之可行;在课程设计阶段则让学生放手独立去做,独立完成,自主决定各种计划和阶段任务。

(3)计划要周密,简易可行。从实施的教学经验可以看出,要顺畅实施本方法,需精心准备,全面计划,这是本实验顺利有序实施的重要保障。从一开始老师不但要制定教学计划,还要制定项目实施计划,并将其分派到各个教学实践阶段中。在每个阶段的项目实施中,也要指导学生完生该项目阶段的实施计划。这样才能使过程可控可管理。从教学实践反馈来看,周密计划的制定对教学成败具有决定性的意义。

4 实施效果和总结

基于模拟软件企业的导学制在软件工程实验教学以来,相比较传统的软件教学方法来看,学生对软件工程的管理能力和对整个软件工程整个过程理解的把握能力有很大提高,实践能力的提高也促进了对软件工程和其相关课程知识的理解。从毕业学生反馈来看,该方法能尽可能缩小学校课堂与企业开发实践的差距,提高了学生的综合知识运用能力,一改以前软件工程知识教学中学生只获得片面不连续的知识理解情况。总之,基于模拟软件企业的导学制在软件工程实验教学中已取得不错的教学效果,其教学思想和措施可为其他的课程提供有意义的借鉴。

参考文献

[1]李伟波.项目驱动式的“软件工程”教学模式研究与实践[J].北京:中国电力教育,2009(6).

[2]王延青,李海峰,林森,朱素霞,倪泽辉.软件工程系列课程设计的分组及选题策略框架[J].北京:计算机教育,2008(8).

[3]宋三华,王娟娟.软件工程实验教学模式探究[J].济南:中国管理信息化,2010(9).

[4]彭博.软件工程课程行动导向式教学法的研究[J].昆明:大家,2009(11).

篇7

(一)传统的计算机软件类学科教学模式特点

计算机软件类专业的教学目标是要求学生掌握专业相关的理论基础,熟悉软件开发工具的各项功能,熟练运用这些工具编写应用程序以解决实际问题,达到培养高层次、实用型、复合型、具有国际竞争力的人才要求。传统的教学模式和理念,是以知识的灌输为宗旨,重知识传授,轻实践训练,因此造成的结果就是学生的实践动手能力差、问题解决能力薄弱、工作适应周期过长,学生很难将学到的理论知识和实际的项目实践顺利结合起来,甚至个别学生仅仅是为了考试而学习,死记硬背,对根本不了解课程设置的意义。本文经过分析总结认为传统教学模式主要有如下几个弊端:

(1)重视理论教学,轻视实践教学。由于教学环境的局限性及实验设备的不齐备性,教师的授课效果经常不能及时在学生的动手实践中反馈出来。而且教师在授课过程中有意或者无意的偏向理论讲解,使得学生在学习过程也偏向于死记语法规则等,忽略教师真正的授课意义。虽然教师在授课时配有相关例题操作,用以说明每个知识点的实际应用。但由于授课环境有限,教师最多也只能让学生查看程序运行结果,学生只知其果,不明其因。同时由于缺乏实景教学,即使简单明了的内容,也要花更多的时间去讲解,演示,从而浪费了宝贵的教学时间。

(2)教学被动,学生积极性低。传统的教学模式,基本上都是一整节课,教师在上面讲,学生在下面听。学生一直处于一种被动接受的状态,教师讲什么就记什么,讲者有意,听者无心,而且一味的被动接受抽象的概念更使得学生的积极性降低,无法激发学生的自主学习兴趣,也无法激发学生在主动求知欲和创造望。

(3)理论和实践结合力度不够。由于理论和实践不是同步进行的,由于学生在学习理论知识时容易种种不同的困惑,但是在实践当中又不能很好的运用反应出来,因此造成了理论学习水平和实践能力的参差不齐,根本达不到计算机软件类专业教学规划的要求。

(4)学生考核系统单一。目前中国的教育现状仍是以应试为主,即使在高校里考试也还是一个检验学生学习是否合格的首要标准。但是如今的考试形式一般以笔试的结果定输赢,考核形式单一,导致学生在学习时更多的是采用死记硬背的方法来进行理论方面的学习,这样造成了许多高分低能的现象出现。

(二)基于软件工程学的方法论

软件工程是用工程科学的知识和技术原理来定义、开发和维护软件的一项工作,主要研究的内容包括开发技术与开发管理两大方面。软件工程学方法论是人们为了克服“软件危机”而做了大量的工作,而逐渐形成了系统的软件开发理论、技术和方法,它们在软件开发实践中发挥了巨大的作用。软件工程方法论就是在整个软件工程的生命周期中提炼出来的上升到理论高度的一种思想,它可概括为:目标、过程和原则。

(1)软件工程方法论目标。即采用有效合理的方法生产具有正确性及可用性的产品,它形成了对过程、过程模型及工程方法选取的约束。

(2)软件工程方法论过程。就是如何在生产一个能满足需求且达到工程目标的软件产品步骤中完成对生产过程的分析、设计、确认,它贯穿于整个开发过程。

(3)软件工程方法论原则。则是围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。采用软件工程方法论开发软件的时候,从对任务的抽象逻辑分析开始,一个阶段一个阶段地进行开发,每个阶段的开始和结束都有严格的标准。本文利用软件工程方法论中的软件复用技术与项目管理学结合提出了新的教学模式。软件复用作为软件工程方法论里的一种技术或者思想,在整个软件工程中占有重要的地位,对能否实现软件产业的工业化进展起着关键的作用。它主要是指利用现有的软件资源来构建新的系统,避免重复劳动的方案。

并且软件复用并不局限于代码的复用,复用的过程延续完整的软件生命周期。项目管理虽然是管理学的一个分支,但在整个软件生命周期中要想使软件产品实现或者超过设定的需求和期望,就必须采用项目管理来贯穿整个软件生命周期中。它是在项目活动中运用专门的知识、技能、工具和方法,使项目能在有限资源的限定下达到相关项目的目标。在相关项目中项目管理主要是协调和管理,而方法论则为项目进程提供了持续稳定的方式方法。

基于软件工程方法论教学体系的构建

本文针对计算机软件类专业的特点,并结合学校现有的资源以及传统教学模式的弊端,进行了新型教学模式的研究,提出一种基于软件工程方法论的教学模式。它将经典的软件工程方法论提升到理念的高度,跳出软件开发这一领域,应用到了高校计算机软件类专业人才的培养教育模式当中去,并组织力量认真进行改革实践,经过验证取得了很好的效果。基于软件工程方法论的教学体系就是将软件工程方法论当中的一些技术和思想融入到教学过程当中去,通过CDIO的教学模式,将实践项目和课堂教学很好的结合起来,使学生能从项目中以整体的角度把所学的理论知识融入到项目。

(一)课程体系的改革

在综合考察计算机软件类专业的课程教育体系后,运用软件复用技术将实践项目与相关专业课程串联起来,这样不仅有利于课程体系的建设,也理顺了各门课程之间的关系和侧重点,对关联课程的时间安排,教学内容的设计、课时量的安排等方面都会产生深刻的影响,使整个课程体系的教学安排更合理,教学目的更明确,更有利于对整个教学体系的优化。在界定计算机软件类专业课程范围的基础上,通过对现有的计算机软件类专业课程知识点以及课程知识点之间衔接关系的分析,建立课程间知识点网络及扩展知识复用库,减少重复知识点的讲授,实现课程间的无缝衔接,使学生在常规授课内容外能利用扩展知识复用库提高自己分析问题、解决问题的能力,从而达到课程间知识点讲授的最优化,如图1所示。

(二)教学模式的创新

1.项目管理式教学模式

本文根据计算机软件类专业教学中理论与实践紧密结合的要求,提出了项目管理式教学模式的思想,将软件工程中的项目管理作为技术手段引入计算机软件类专业学科的教学过程中。在教学过程中,首先考察计算机软件类专业建设的相关资料,为决策提供内容支持。其次,制定有效合理的教学规划,同时根据市场的需求制定细粒度的扩展计划。最后,在学期开始时,将学生按兴趣、爱好划分小组,以小组形式进行系统学习和沟通。将整个教学过程当做一个大的项目,而项目内不同的项目组负责的任务不一样,但最终的任务都是一样的,使教学任务落实到每一个人,达到教学目标,例如成立了Web开发小组,Flash兴趣小组、C++、Java学习小组等等。为保证该方法的顺利进行,要求教师有相关的管理能力,例如:整体管理能力、沟通协调能力以及其他相关能力等。其中沟通协调为其中最为主要技巧,这样不仅能让每个学生都能感到老师的关怀、爱护和鼓励,而且更能激发学生的学习热情,具体做法如:多使用一些非正式的沟通,合理使用Y理论,肯定学生的学习成果,及时解决学生提出的问题等等。

2.教学形式改进

在教学形式上,采用有规划的机房授课方式,向学生开放实验室,这样既避免填鸭式教学的被动性,又将理论的学习和实践操作实时的关联在一起。教师在进行授课的时候就可以既讲理论又教实践,不仅能提高理论学习的效果,更重要的是能将理论与实践结合,使学生的问题能及时的反馈给教师,从另一个方面来看,这种教学方式还可以提高学生的学习兴趣,增强学生记忆力,提高学生的创新和动手实践能力。

3.三步培养模式

整体教学模式采用“例证讲解、课程设计、毕业设计”的三步培养模式。例证讲解就是指教师在授课过程中更多的是类比实际案例,将课程的重点、难点融入到案例中来,同时课堂氛围采用启发式、辩论式教学,使课程的讲解更有针对性、实用性,课堂氛围更活跃,有效地提高学生的创新能力。例如在进行数据结构的树的理论学习时,选择一个树的应用案例,并结合树的一些理论知识,与学生进行探讨,抛砖引玉,启发诱导学生提出自己的理解,然后与学生一起讨论其可行性,已达到加深强化理论学习的作用。课程设计要做到的要求就是是项目化,对每门操作性和系统性较强的课程,要采用系统的、规范的、可度量的方法安排课程设计,并进行项目式的管理。

针对课程的区别,制定不同的课程设计指导方案,并加入扩展知识复用库,包括一些如Eclipse、VisualStudio等开发工具的介绍,成功的案例介绍、参考书籍介绍等信息。使学生能在实践的同时参阅资料,是理论与实际有机的结合起来。毕业设计选题以实际的项目为背景,联合校企的业务背景,从立项到收尾,涵盖软件生命周期的全过程。如参与到《xx市党务政务管理系统》的开发中去,实行与企业单位类似的管理模式,小组长负责整个小组的进度考察,每个小组成员分配不同的功能模块,同时尽量平衡每个小组成员的个人能力,使学生体验到企业中开发项目的流程、规范,学习做事的方法,更深层次的感悟团队合作的意识,提高学生的就业竞争力,为以后在工作中更快的进入角色打下坚实的基础。通过长期的观察统计,并将一些反应学生竞争力的能力水平按一定的指标量化后,可以得到采用新的教学模式与传统教学模式下学生的学习效果图,如图2所示。

(三)考核系统的改革

传统的学生绩效考核体系主要采用的是以理论笔试成绩为主,平时的表现和课程设计为辅,这样很容易造成高分低能的现象出现,因此建立良好的学生能力考核系统对培养合格优秀的计算机软件类专业人才极为重要。根据当前社会对计算机软件类专业人才的能力需求,提出综合考核系统。该考核系统从专业理论知识、动手实践能力、独立解决问题能力、创新能力和团队合作5个方面进行评价,相应的制定出行之有效的评价指标和标准,并将该指标落实到学生学习的整个过程。专业理论知识评价主要是对学生的基础理论知识掌握程度进行度量,在整个评价系统中根据实际情况确定比例分配,一般来说不宜超过65%。动手实践能力评价通过增加一些实践操作类题目,条件允许的话使用机房上机考试的方法。独立解决问题、创新能力不好做定量分析,因此对教师有较高的要求,需要教师有相对客观一致的评价标准。而团队协作来在课程设计和毕业实习中却可以很好的体现出来,根据每个小组的任务进度、分工、协调和交流等方面,可以很清晰的形成对团队协作能力评价的素材。在整个评价过程中,要合理分配每部分所占的比重,不同的时间段侧重的方面不同,形成多元化、多维度、客观的评价结果。

实施效果

篇8

关键词:软件开发;能力培养;案例教学

当前计算机专业或软件工程专业的学生存在着学用脱节、实际开发能力偏弱等问题。尽管很多高校计算机专业、软件工程专业在软件方面的课程体系上是将整个学科专业的知识按一定顺序和层次分解,使得学生能够循序渐进地学习和掌握知识,这无疑是行之有效的。但掌握了软件开发领域的知识,并不意味着同时具备了软件开发的能力。事实上,学生虽然接受了系统的软件开发专业知识的学习和软件开发技术应用的训练,但软件开发能力低下的情况还相当普遍。要从软件开发的“菜鸟”,成长为软件开发的高手,或者称之为“高级蓝领”,必须通过长期的历练,没有捷径。但好的教学案例和人才培养模式,对促进软件人才的成长和开发能力的提升有很重要的作用[1]。

1软件开发人员能力要求

由于软件开发是一项技术综合性很强的工作,因此,企业对软件开发人员能力的要求也是综合性的[2]。按照教育部对软件学院学生实践能力培养的要求和工程应用型人才培养的定位[3],软件学院的学生在软件开发过程中,既要能将用户的需求映射到良好的软件体系结构,在进行应用软件总体设计时有大思路和大局观,也要能运用现代软件设计方法和编程技术在进行详细设计时关注细节,实现高质量的软件;在考虑软件实际应用时,既要支持国际化及本地化的应用要求,也要支持软件及运行平台升级、操作系统迁

移的应用要求;在技术应用能力上,既要对使用的编程语言和开发环境有很好的把握,也要能综合运用前期所学的操作系统技术、数据库技术、网络编程技术、图形图像处理技术、人机交互技术等专门技术;在软件工程素质上,既要具有软件工程技术和管理方面的知识,还要具备良好的团队合作、交流和文字与口头表达能力。上述这些就是现代IT企业对软件开发人员的能力要求。

2案例实践教学对软件人才培养的意义

案例实践教学对软件人才培养具有以下优势:

1) 学生通过案例学习不仅对理解和掌握计算机软件的抽象概念及原理十分有用,而且对学习先进的软件编程方法、使用先进的软件开发技术、提高自身的软件开发能力大有益处。

2) 学生通过对案例代码的阅读分析,可以使一些一知半解的概念突然变得清晰易懂,使一些久思不解的问题变得豁然开朗。

3) 通过案例学习,学生能够零距离接触到软件高手,深深为他们巧妙的方法、过硬的技术、认真细致的精神、追求完美的态度所折服。

3实践教学案例的设计

案例设计的内容、质量以及案例教学的水平是案例实践教学的基础,是案例学习成功与否的关键。

作者简介:蔡建平,男,教授,研究方向为软件工程、嵌入式软件测试和数字媒体技术。

3.1案例设计要求

设计支持软件开发能力,特别是综合开发能力培养的实践教学案例是许多高校计算机软件类专业教学面临的问题。

首先,这样的案例对于高年级的学生要涉及到他们前期所学的计算机软件开发各个方面的知识和技术,如程序设计、面向对象编程、数据结构与算法、操作系统、数据库、网络通信、图形图像处理、人机交互、软件体系结构,等等;另外,要帮助这些学生在通过案例学习后,建立起软件开发的大思路或大局观,对软件的质量要求(特别是可靠性要求)、维护要求(特别是软件功能扩充及升级要求)有很清晰地了解,并能够反映到软件的设计和实现上。最后,学生学习完案例后,要了解支持软件跨地域、跨平台和跨时间的应用需求,并掌握保证这些需求得以实现的相关技术,如软件的国际化和本地化、软件及平台的升级、平台移植或系统迁移等技术。

在案例设计中最为关键的问题是案例能够在各高校无障碍地推广,不要因为经费、实验环境等问题使案例设计成果没有应用价值。因此,案例设计要求全部使用开源代码或开源技术。事实上,开源软件的使用,不仅有利于通过免费的开源软件大大降低搭建实验环境所需的条件,使学生能够零距离地学习优秀软件,全面提升自身的软件开发能力和软件开发素质,而且学生可以根据专业兴趣或学时安排,有选择地对其中的软件和技术进行更深入的学习和专门的研究,形成自身的技术特长和研究方向。

案例设计中还有一点要特别注意:所选择的案例不要涉及很深的领域专业知识,又是人们感兴趣、经常接触到的东西,这样有利于激发学生的学习兴趣;另一方面,希望案例涉及多种计算机软件开发的主流技术,如面向对象程序设计技术、客户/服务器技术、多线程技术、网络编程技术、数据库技术、图形学、GUI等众多软件技术;最后,希望所设计的案例是综合性的应用软件,以适合学生综合开发能力的训练。

3.2案例详细设计

基于上述的案例设计要求,以及早期项目的研发经历,我们选择股票软件作为软件综合开发实践教学的案例。首先,股票软件不涉及很深的领域专业知识,又是现代社会人们非常关注、感兴趣、且有可能经常接触或身陷其中的事物,学生容易入门和感兴趣;另一方面,这类软件其工作模式主要是客户/服务器的工作模式,涉及到面向对象编程技术、网络通信技术、数据库技术、图形技术、用户界面技术以及数据结构与算法等众多软件技术,其综合性很强,对学生综合开发能力的训练非常合适;最后,我们所选择的股票软件Stock-0.0.9是一个早期的开源股票软件,它是一个股票软件的雏形,易于学生学习和完善,包括做第二次开发。将该软件作为案例进行实践教学可让学生接触和应用如下开源技术:

1)Linux操作系统及虚拟机技术;

2)GCC程序设计技术(包括编译技术、调试技术及集成开发技术等);

3)MySQL数据库应用技术(基于C/C++应用编程接口API的MySQL数据库开发技术);

4) 基于套接字编程的网络通信技术(支持TCP/IP协议的开源liptcp++库的应用);

5) 基于Gtk+的界面设计技术(应用Glade支持界面的设计及应用框架的生成);

6) 股票软件的结构化程序设计及面向对象编程技术等。

在对Stock-0.0.9进行编译生成可执行目标代码并建立其运行环境的过程中,学生能够接触和了解到程序设计的强类型机制、可靠性编程思想、软件构造方法、C/S工作模式实现手段、开发环境及应用环境升级对策、软件国际化及本地化应用要素、操作系统迁移或移植问题等方面的内容,使学生真正掌握基于复杂图形用户界面的大型应用软件开发的方法和技术,理解现代软件开发方法学和现代程序设计思想,增强他们解决实际问题的工程实践能力。

4案例教学实践及成果

4.1实践情况

软件学院针对教育部对软件学院学生实践能力培养的高要求和软件工程硕士复合型工程人才培养的定位,以及学院学生(特别是非在职的工程硕士研究生)综合性实践能力太弱等实际情况,经充分论证,确定了提升学生软件综合开发能力的培养目标,分别于2006年下半年在学院为本科生开设了“界面设计”课程,为软件工程硕士开设了“高级软件编程技术”课程。这两门选用同样案例,讲授了10多次,受益学生达800多人。在这期间,课程的教学案例和实践资源也不断得到补充和完善。

4.2实践成果――教材建设

学院考虑到案例实践教学的效果以及教学案例和实践资源的成熟与完整,决定将案例和课程资源进行总结与提升,出版与之配套的实践教材,推广相关的实践教学经验,让国内高等学校计算机和软件相关专业的实践教学从中受益。学校对此工作提供了经费支持,同时在清华大学出版社的支持下,完成了《软件综合开发案例教程――Linux、GCC、MySQL、Socket、Gtk+与开源软件》的编写工作,该教材已于2011年2月出版发行。

1) 教材的主要内容。

除了有大量篇幅讲述计算机应用的主要开源技术外(如Linux操作系统、GCC编程语言、网络Socket编程通信、MySQL数据库管理、Gtk+界面设计),特别通过实际案例――Stock股票软件将这些技术融会贯通在一起,并站在更高的角度上对软件体系结构、应用软件开发模式、软件的国际化与本地化,软件开发和应用环境升级方法以及平台移植技术等充分地介绍和实例说明,以此达到授人以渔的目的。可以说这是一本集各种主要的计算机开源技术应用于一体的软件综合开发实践教材。

2) 教材的特色。

① 能够满足计算机、软件工程及相近专业高年级学生在前期学习了程序设计、操作系统、数据库、计算机网络等计算机专业基础课程后,急需通过一个案例或一个项目来应用这些专业基础知识和技术进行综合性实验或实践,提高自身计算机技术综合应用能力的需求。

② 除了对主流的计算机开源技术做了详细地介绍和举例分析外,还特别地突出了计算机开源技术在实际股票软件项目中的应用,很好地支持着案例驱动式的实践教学。

③ 教材所涉及到的实验教学资源相当丰富,覆盖面相当广,且全是开源软件或开源工具,保证了国内许多院校在办学条件不足,实验教学经费有限,无法全方位引进商用软件工具的情况下,仍然能够开设出软件综合性开发的实践课程。

总之,该教材作为案例实践教材,自始至终强调和灌输现代软件开发方法学和现代程序设计思想,强调软件综合开发能力的培养。该教材所涵盖的大量技术内容、实操案例及问题解决方案,如果学生能够完全掌握并能实际地用于软件项目的开发,从软件开发能力上说已达到一个高级蓝领的要求了。

5案例实践教学的实施方案

北京工业大学软件学院在学生软件综合开发能力培养上分别针对软件工程本科专业的学生和软件工程专业学位的学生开设了选择同样案例和教材的不同课程――“界面设计”和“高级软件编程技术”。下面我们主要以本科生为例,介绍在“界面设计”课程中案例实践教学的实施方案或课程大纲。

5.1课程设计目的

学院在四年制软件工程专业本科生的教学计划中,为大三的学生在第二学期安排了“界面设计”的课程,60学时,2学分,共15个实验单元(每个单元4学时)。

“界面设计”课程是按照教育部对国家示范性软件学院培养工程化软件实用人才的要求,以界面设计为立足点,对前期所学的主要计算机技术(如软件开发、程序设计、网络编程、数据库应用等)进行综合训练。

要求学生在掌握界面设计的原则、方法和常用技术,掌握当前主流的开源界面开发工具Gtk+和开源界面设计工具Glade进行界面设计及实现等技能的基础上,通过具体的案例――股票行情分析软件,将计算机软件开发所涉及到的相关知识综合在一起,开展实践活动。

通过该实践课程,除了使学生掌握界面设计的全部流程和技术,培养学生界面的设计能力外,可使学生接触和学习基于复杂图形用户界面的大型软件开发的方法和技术,了解Linux操作系统、编程语言、程序设计、编译应用、图形界面、数据库、网络通信、软件体系结构、应用软件开发模式以及平台移植等技术在实际软件开发或应用项目中的具体应用,达到增强他们工程实践能力的目的。

5.2课时安排

该课程设计以《软件综合开发案例教程》为实践教材,其实践教学方案主要是按照15个实验单元并依据教材内容和知识单元组织进行制定的。

第1单元:对课程设计提要求,对Linux操作系统知识点进行讲解,并安排学生进行Linux操作系统的实际应用,学会Linux虚拟机的安装、配置和使用。

第2单元:对应用GCC进行软件开发知识点进行讲解,安排学生进行GCC开发应用实践,学会编写工程文件、用GCC编译C/C++程序、调试程序、建立集成开发环境。

第3单元:对网络通信及Socket编程知识点进行讲解,安排学生进行网络通信的Socket编程实践,学会在libtcp++环境下建立客户/服务器的工作模式。

第4单元:对MySQL数据库应用知识点进行讲解,安排学生进行MySQL应用的相关实践,学会用MySQL C API进行数据库应用的简单开发。

第5单元:对Gtk+用于界面设计的知识点进行讲解,安排学生进行Gtk+的界面设计实践,学会用Gtk+和Glade进行简单界面的开发。

第6单元:介绍股票交易的相关知识、股票软件一般包含的内容和所涉及到的技术,安排学生学习和使用国内主流的股票软件,学会股票软件的使用方法和使用流程。

第7单元:对开源股票软件Stock进行分析讲解,并带领学生将Stock源码编译成可执行的二进制码,要求学生学会处理编译和连接过程中出现的各种问题,特别是强类型问题。

第8单元:对应用软件国际化和本地化相关知识和技术进行讲解,对Stock软件的Gtk+1.2界面实现方法进行分析,并带领学生解决Stock软件中文显示问题,要求学生掌握在Gtk+的界面控件上和绘图区中正确地显示中文、英文及数字方法。

第9单元:对Stock软件的数据库应用编程、网络通信编程等实现方法进行分析,带领学生解决股票数据库的建立、股票数据的导入等问题,要求学生掌握Stock软件中用MySQL C API进行股票数据库应用、用Socket进行网络通信的开发技术。

第10单元:对Gtk+2.0特点进行讲解,带领学生解决Stock软件从Gtk+1.2到Gtk+2.0升级中遇到的各种问题,要求学生掌握确保软件能够升级的软件设计思想和问题解决方法。

第11单元:对在Windows上进行Gtk+应用程序设计的方法进行讲解,带领学生将Stock软件从Linux上移植到Cygwin和MS VC上,并解决移植过程中的问题,要求学生掌握一般软件移植的基本要点和基本方法。

第12单元―第13单元:学生按分工要求开展独立实践活动,并撰写实践报告。

第14单元―第15单元:学生按分工要求进行PPT的实践汇报和实践成果的演示。

5.3课程设计组织

课程设计以课题组形式开展,6人一组,每组必须完成6篇报告(Linux虚拟机使用总结报告、Linux下GCC编程总结报告、MySQL数据库应用总结报告、基于TCP/IP的Socket编程总结报告、用Gtk+设计图形用户界面总结报告以及股票分析软件实现技术总结报告),指定课题组长(完成报告6),课题组其他成员分别完成报告1~5,每人1个,不能重复。

课程设计以实践为主,完成教材中所布置的实验习题。作业以电子方式交付。

5.4课程设计考核

对每位学生,课程设计考核包括四部分:

1) 电子版课程设计报告(40分),对于报告其撰写要求如下:

① 每个报告不少于1万字(不能以图表代文,论述为主);

② 报告的基础是每章的实验习题;

③ 报告可分4~5章(第一章概述,最后一章总结,其他章节自行组织);

④ 报告以教材为样式进行排版;

⑤ 报告不要出现网上拷贝的痕迹,网上摘录的要进行相应处理,严禁聊天用语、博客用语以及混乱的控制符和全角符号;

⑥ 图表要清晰,重要的图表要亲自画或截,不要拷贝。

2) 每位同学要准备总结报告的PPT汇报(10分钟的汇报),汇报成绩20分。

3) 每位同学要进行所选报告的成果演示,演示成绩20分。

4) 考勤成绩20分。考勤10次,每次2分,考勤缺席5次的无成绩。

5.5基于案例的“界面设计”实践教学效果

“界面设计”课程自2006年开设以来,学生普遍反映良好,口碑颇佳,软件开发的综合实践能力得到了明显的提升。

最近,我们对学生学习该课程的体会和感想进行了调查,学生普遍认为案例内容和实验方案丰富、实用和生动,大大地开拓了他们的眼界。通过基于复杂图形用户界面的大型应用软件开发方法和技术的学习和实践,对现代软件开发方法学和现代程序设计思想有了更进一步地理解,增强了软件综合开发和解决复杂问题的工程实践能力。特别是对软件开发有了大局观,对软件开发中软件设计和高质量代码编写的重要性有了新认识,对优秀开源软件和开源技术有了极大的兴趣。下面是部分学生在课程设计实验报告中对“界面设计”的案例教学谈到的心得体会:

1) 通过这门课的学习,我基本掌握了Linux虚拟机的使用,以及Linux下的GCC编程,应用软件图形用户界面GUI的界面设计,网络数据库应用技术和网络通信技术,并能进行具有图形用户界面程序的开发,提高了应用C/S模式、管理数据库数据等实际应用能力。由于平常主要都是理论课程,实践机会比较少,大家组队进行开发就更少了。通过此次实践,我体验到了团队开发的重要性,学会了如何合作开发,并大大提高了我解决问题的能力,为以后工作学习增加了丰富的经验。

2) 以前学习Linux时仅把它当作一种单纯的操作系统,没有在上面做开发,导致对Linux了解不多。经过半个学期基于Linux的股票案例学习后,我收获颇多。我主动收集和阅读了大量资料,并锻炼了实际动手能力。我学到了如何在Linux环境下搭建开发环境、进行编程和开发,并对MySQL,GCC,Gtk+等开源软件在Linux下的应用有了初步的认识,加深了对Linux下编程整体流程和工作细节的理解,知道了Linux下调试程序的方法,真正了解了程序在Linux下从编译到运行以及排错的全过程。

3) 这次课程设计我们的收获非常多的,首先大家对于一款良好的软件应该具有什么样的功能和性能有了比较清楚的认识,这对于我们以后在软件开发乃至今后的工作都是有益处的。其次,这次复杂的课程设计锻炼了我们各方面的能力,包括团队合作、资料查找、学习、融会贯通以及查错能力,等等。可以说对我们的综合能力是一次极大的考验。在整个工程的过程里,大家接触了很多以前没有触及过的知识并对其有了较为深切的理解。最后,本次课程设计沟通了我们几位同学之间的感情,在辛苦工作的同时,也留下了难忘的回忆。

4) 我觉得这门课对我很有帮助,让我学会了一个我以前不会也没接触过的有用的软件,学会了如何使用Gtk+来进行图形界面的设计。通过这一学期的学习,课上听老师对一些知识的讲解,对Linux更加熟识了,对如何在Linux下安装各种有用的软件更加清楚。在课后我们组成小组,分工明确,每个人认真地负责自己的那部分的工作,查资料,学相关的知识,然后再给小组的每个组员讲,使组内的成员对大家的工作都很熟识,这样合作起来就更加的融洽,而且也可以互相讨论和帮助。在这门课上学到了很多知识,也锻炼了动手能力,最后作报告培养了大家的语言表达能力。总之,我觉得这门课很有意义。

5)Stock股票软件的成功运行让我们对自己的能力充满了信心。从最开始我们兴致勃勃地组成一个小组,憧憬着成功的那一天开始,一路磕绊,直到今天我们看到一个完整的软件,这里的每一个细小的环节都有着我们为之付出的艰辛努力。这与我们小组成员的团结努力是密不可分的,尤其是负责编译、调试和排错的组员。课程设计中遇到的问题,不但没有将我们击垮,而且在问题解决过程中,使得我们对许多知识又有了新的理解。感谢学院给我们提供了这样一门自己动手的课程,它对提高我们的编程能力非常有帮助。

6) 这次课程设计使我建立起一种坚持到底不放弃的精神。之前的我总是缺乏恒心,一旦进展不顺即想放弃。这次强迫我接触很多不会的新东西,而且时间上有限制,令我不得不一次次与失败和不顺打交道。在翻越这一道道“沟壑”的过程中,我觉得自己的毛躁在逐渐退去,变得越来越稳健。我想精神上的成长可能比知识的增多对我来说意义更大。

6结语

我校专家对这种模式的案例实践教学给予了充分肯定,指出计算机学院或软件学院学生的软件开发综合能力培养一直是高等院校软件人才培养的一个“短板”,一直缺少好的实践教学方案、好的实践教学案例和好的实践教学教材。因此,软件开发综合能力培养的案例教学在传统实践教学的基础上做了很有意义的探索和实践,其成果显著、资源完整,具有很好的推广和普及基础。学校为了强化该项成果在软件工程专业学位研究生能力培养上的转化和推广,将研究生的“高级软件编程技术”课程列为学校重点建设的精品课程。因此,我们相信,随着精品课程建设的深入开展,软件开发综合能力培养的案例教学基础将进一步夯实,其成果将会进一步凝练、宣传和推广。

参考文献:

[1] 蔡建平. 软件综合开发案例教程[M]. 北京:清华大学出版社,2011:序

[2] 陈红霞,毛京一,滕月鹏. 计算机蓝领到软件蓝领:高职软件开发人才培养模式探讨[J]. 计算机教育,2010(1):135-137.

[3] 教育部办公厅关于进一步加强示范性软件学院建设工作的通知[S]. 教高厅(2007)4号.

The Comprehensive Ability Training for Software Developments Based on Case Teaching

CAI Jianping

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

篇9

关键词:JAVA程序设计基础;课程设计;PSP

1前言

在程序设计类课程中,实践教学环节一般包含两个方面,即实验教学环节、课程设计环节。实验教学环节是对理论教学中的知识点进行实践;而课程设计环节是对本门课程乃至之前学习的课程知识综合性的练习和实践,对学生动手能力的提升具有非常重要的意义。课程设计是对某一门课程进行教学策划的研究活动,具体来说是指在学完专业课一段时间内,安排组织学生用学到的知识在一定的时间内有组织或者分散地完成一些任务。目前在大学计算机教学过程中,很大一部分程序设计类课程都开设了课程设计,以期学生在课程设计中能够掌握程序设计的基本思想、软件开发的基本流程、程序调试的基本方法[1]。目前存在的问题本文针对河南中医药大学JAVA程序设计基础课程设计执行过程中出现的问题进行总结。在实施过程中总结遇到的问题,有学生的学习态度问题,包括对课程设计不重视,认为课程设计不重要;有教学计划设计问题,指软件工程课程安排在程序设计类课程之后,学生对软件开发流程没有整体概念,无从下手;评价方法和评价标准过于简单、单一,且随意性强,没有严格的评价标准,造成课程设计的质量下降。可见,问题集中在学生的态度问题、基本开发软件的技能、教师的评价标准这三个方面[2]。鉴于学生的学习态度问题,教师对不同层次的学生进行调查,原因主要为:课程为考察课,重视程度不够;课程学习起来太难,难以接受,更不想动手做东西;课程设计以往采用分组形式,每组人数较多,存在浑水摸鱼的情况。对此,教师在组织课程设计实施过程中引入WWH模型,从学习动机、知识储备、实际操作三个方面对学生课程设计实施过程进行干预。

2课程设计过程控制

在JAVA程序设计基础课程设计实施过程中,教师采用WWH模型来完成课程设计的组织和实现。WWH具体是指Why、What和How。其中,Why解决的是在态度层面上学生的学习动机问题,也就是为什么要来学习本门课程;What解决的是在知识层面上学员的知识储备不足问题,也就是学生需要掌握哪些专业的知识才能支撑具体的编码实现;How解决的是在技能层面上,学生的实际操作技能问题,也就是如何解决课程设计实现中的疑难困惑。Why(为什么学)Why是学生对待课程设计态度层面的问题。进行课程设计的意义需要借助相应的素材,从专业层面、课程层面、就业层面进行分析。使用最常用的方法案例,选用一个正面案例及一个负面案例。正面案例讲授的是用心完成课程设计,将获得什么收益,包括对前期知识系统性复习,代码调试能力提升,代码量增加,取得很好的成绩;反面案例讲授的是如果不学可能导致的严重后果,比如挂科、重修等。What(学什么)学什么是知识层面的问题。学习的知识一般包括定义、概念、标准、要求、原则、区别、特点、基本组成要素等。课程设计时需要分析学生在掌握相关技术时还缺乏哪些知识,哪些技能掌握比较匮乏。比如:“软件工程”中软件开发的系统化流程,结构图、流程图的绘制,在代码结构以及代码调试方面能力较差[3]。由教师提供相关的书籍、材料进行补充。How(如何做)“如何做”是学生完成课程设计的基本技能。“如何做”一般是指课程设计实现过程中需要学生重点实现的内容,包括课程设计报告、软件,如软件开发中各个模块分配的时间比例如何?哪个模块分配的时间最多、人力最大?“如何做”包括了软件开发的流程以及软件开发中的技术。在这个过程中需要教师能够进行指导,协助学生分析各个模块重难点,进而确定分工。

3课程设计目标考核

在课程设计环节执行过程中,除了加强过程控制外,对结果目标的考核是非常重要的一个方面,学生的态度问题究其原因,其中一个方面是在教学评价过程中课程设计环节评价指标不明确,教师对学生课程设计评价结果与实际有偏差,造成学生浑水摸鱼的现象存在。所以软件开发的工作量和质量如何衡量、如何评价,是课程设计评价环节的一个重点内容。河南中医药大学JAVA程序设计基础课程教学中引入PSP(PersonalSoftwareProcess)模式进行评价。PSP认为在软件评估过程中有下列四个因素需要考虑。1)任务有多大?用代码行数(不包括空行/注释行/单字符行)来表示,或使用功能点来表示。在实施过程中采用两种方式相结合的形式,首先确定功能点的个数,按照功能点逐个确定代码行数。2)花了多少时间?一组人所花费的时间可以用人数*时间来表示,但是由于学生的基本功有差距,此标准对学生课程设计的工作量计算并不适用。3)质量如何?交付的代码中有多少缺陷?在课程设计中将交付定义为在“代码完成”的时候,交付给负责测试的学生,并完成测试用例表。使用缺陷的数量来除以项目的大小,也就是缺陷的数量除以总的代码量,衡量评价一个软件的质量。4)是否按时交付?这个指标对学生不适用,学生完成课程设计的时间有明确的要求,不能延期交付。综合以上几点,在课程设计目标评估中,结合PSP模式并对其进行课程设计评估的相关修改,通过功能点数、代码行数以及缺陷数来评估课程设计中软件的质量。

4结果调研

按照WWH模型组织实施课程设计进行过程控制和引入PSP模型进行课程设计目标考核,在现有课程JAVA程序设计基础上实施,并对结果进行调查研究,数据显示,学生在课程设计的代码量均在1000行左右,最少的在600行。从代码量来看,学生在课程设计中代码量在各个小组之间差距不大,这有助于小组之间竞争,并进而促进软件功能点的增多。在软件开发中引入PSP评价代码质量,使用测试用例方式统计软件完成情况、性能、稳定程度,进一步提高了代码的质量,并让学生在课程设计中了解了软件开发的流程,课程设计报告的完整度和质量有所提升。

5结语

课程设计是程序类课程不可或缺的一个环节,对课程设计量和质的控制是非常重要的。使用合理评价体系对课程设计的工作量和软件质量进行评价,是从结果逆向来促使学生提升课程设计质量的一种方式,加强目标管理也是实践性课程教学目标实现的一种重要途径。加强过程管理以及目标评价,是提升课程设计质量的重要保障。

参考文献

[1]吴军其,刘玉梅.学习设计:一种新型的教学设计理念[J].电化教育研究,2009(12):80-83.

[2]章杰,陈笑蓉,皮建勇.项目实践为导向的教学方法在软件开发课程中的应用[J].计算机教育,2010(5):91-94.

篇10

关键词:软件工程;课程群;课程群体系

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

1引言

软件工程是运用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术和管理的方法;是将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程。中国的软件产业以软件工程为指导思想得到了迅猛发展,使得软件工程人才的培养发生了巨大的变化。然而,人才需求与教育供给的不足产生了矛盾,以传统的课程体系、单一的课程模式来培养软件工程人才已不能满足软件产业发展的需求,成为软件工程教育发展面临的一个重要问题。解决这一问题的关键之一是需要在不断的教学过程中,研究适应软件产业发展需求的人才培养模式以及相应的软件工程教学思路和方法,形成一个正确的课程群体系,在该课程群体系的保证下,不断提高教学质量使软件工程教育得到健康稳步发展。

传统的软件工程人才培养课程体系存在着以下几方面的问题:(1)工程特点不明显。课程安排过于传统,偏重计算机科学与技术的课程模式,偏重基础理论和方法的传授,没有突出现代软件工程的发展特点,忽略了体现软件工程特点的关于质量、进度、成本、度量、团队、管理等方面的教育和实训。(2)分工不细,与应用领域结合不紧。软件工程的应用范围不断延伸,已经深入到各个方面。而软件工程的教育却没有达到与应用领域的紧密结合,造成事实上的脱节。(3)单一的课程模式,不利于整体知识的贯穿。传统的课程体系中,与软件工程有密切联系的课程没有形成一个课程群,每门课程都是按照各自课程的体系独立授课,使得有些知识点过于重复,有些知识体系不能有机地衔接。(4)软件工程教育与软件产业结合不紧。软件工程的教育不能及时更新教育理念,不能及时跟踪软件工程行业的最新发展趋势。造成当学生毕业后参加工作时,不能很快适应较大型软件的个人或团队开发。(5)忽视交流能力的培养。交流能力是工程能力培养的重要方面,但现有的软件工程教育体制却秉承了传统的教育方法,忽视交流能力的培养。鉴于以上这些问题,开展以软件工程为主线的课程群体系研究是非常必要,也是很有意义的。

2研究现状

目前,单纯的计算机学科式教育已跟不上当今产业界对工程型IT人才的迫切需求。不仅如此,服务于单纯的计算机学科式教育的传统的实践教学也日益暴露出与企业需求和现代化工程型人才培养不相匹配的弊端。如何突出实践教学的效果,如何将相关的课程组成一个课程群,使工程化培养在整个培养模式中的地位、分量和作用不断加强,使学生的知识体系更加科学化、系统化、更加连贯、更加适应社会需求,是目前绝大多数学校和用人单位共同需要解决的课题。

2003年教育部设立了“软件工程课程体系”研究项目,以确立我国软件工程教育体系的框架。由若干著名高校联合组织了课题组,深入分析ACM和IEEE的《Computing curriculum-software Engineering》[1],研究探讨我国软件工程学科的教育思想、课程体系、教学计划等,并结合国内部分著名高校软件学院的教学成果,形成了《中国软件工程学科教程》[2]。国外,在软件工程专业人才的培养中也提出了许多建议,如文献[3]中谈到Computing curriculum-software Engineering对软件工程人才培养发挥着很重要的作用。

据调查,通过几年的探索,目前中国三十多所国家示范性软件学院均在不同程度上创建了一套以质量为目标,以主动服务于企业为特色,按工程领域需求培养,设置相应的课程体系与实践环节,同时建立与国内外知名企业合作,成立校内外实训基地,建立新的工程型软件人才培养模式。

南京大学软件工程专业推行的工程化实践教学体系可以简单地用“一个教学理念、两个培养阶段、三项保障措施和四门实践课程”加以概括。一个教学理念,指树立工程化能力培养与基础理论教学、专业能力培养并重的教学理念。两个培养阶段,指分别设置工程化教学阶段和企业实习阶段,把工程化素质培养作为学生全培养期中自始至终关注的主线。三项保障措施,指通过教学方法创新、评价体系创新和实验室建设创新,保障了工程化教学理念的实施。四门实践课程,指设立了程序设计、软件工程课程、信息系统课程、网络平台四门特色化的工程化实践课程。中国国防科技大学在软件工程专业教学改革实践中,围绕着以建立科学的软件工程教学内容体系为前提,突出实践,激发学生主动探索和实践的热情,利用案例式教学,同步构筑立体化教学互动平台。东南大学软件学院提出了校企合作培养工程型人才的模式,通过教学的探索和实践,把教学和工程实践紧密地结合起来,突破学期、授课教师、课程各自独立的局限,实现总体设计、综合布局、交叉穿插、协同配合的新模式,取得了较好的效果。

3课程群体系的建设思路

工程型软件人才的培养需要有一个贯穿始终的工程概念作指导的课程体系和与之配套的实践环节。在课程群体系建设中主要考虑了以下几方面的问题。

(1) 梳理以软件工程为主线的系列课程之间的关系,确定以软件工程为核心的课程群的内容和课程群体系架构。明确课程群中的基础课程、专业课程和核心专业课程,以及它们的主要内容和大纲,确保课程群的知识体系结构合理、知识衔接合理、实践环节安排合理,以避免知识点缺乏或知识点重复,以及知识体系不连贯等问题。因此,我们深深体会到深入讨论和研究课程群内课程之间的关系和内容是至关重要的。

(2) 课程群的内容设置既要考虑夯实软件工程的基础,又要考虑软件工程的素质和工程化思想的培养。软件工程的基础是建立在多个不同学科之上。它不仅需要计算机科学的理论和基础知识,诸如数学、工程学、项目管理及其它应用领域的概念,同时也需要培养学生软件工程的基本素质和基本技能。考虑设立了“程序设计类课程+软件工程类课程+数据库、网络等专业类课程+认证类课程”的课程群体系。特别应该强调是在本科的早期阶段,为了避免学生养成不良的编程习惯,树立规范编程和团队合作的思想,在加强程序设计类课程的实训环节同时,考虑个体软件过程和小组软件过程等软件工程基础和素质课程的设置。认证类课程的融入旨在提高学生的基本技能和软件素质。

(3) 建立起更加完善的、与课程群体系相适应的实验、实训、实践教学体系。工程化思想的培养离不开实践环节。如何提高学生的创新能力和工程实践能力是课程体系实践环节设计的关键。实验是吸收、消化课程内容的第一实践环节,实验内容的设计既要考虑对基本知识的理解又要考虑对后续内容的铺垫,既强调知识与技能的融合,又强调创新思维能力的培养。整个实验课程体系的设置涵盖了“技能、基本知识、设计、综合、创新”五个层次。实训是对课程内容的总结,在加强案例教学的同时,遵循学生的认知规律,合理安排实训的内容,既考虑课程内容的衔接又考虑加强工程化的训练,把提高学生的创新能力和工程实践能力贯穿于整个实践环节的始终。我们采用了目标驱动式的实训策略,使学生在实训初期,就了解最终完成的系统要实现的功能。从系统目标出发建立层次化的实训架构,使学生变被动为主动,有的放矢、完整系统地构建自己的知识和技能体系,增强学生在设计上的全局观念。实训环节中还考虑了加强与企业的合作,将企业的资源优势与学校的理论知识优势充分地结合,共同设计和建设课程群中的实训项目。

(4) 进行教学方法和教学手段的改革,使其适应软件工程人才的培养。软件工程类的课程内容纷杂,在教学过程中容易出现空洞的说教。为了避免这一问题,改革了现有的、传统的课堂教学方式,在加强案例教学和实践环节的同时,多采用课堂讨论、小组报告、项目答辩等多种形式的教学方法。在课程群体系的建设中重点研究、设计和提出能够贯穿于软件工程为主线的课程群的案例。该案例的设计以培养兴趣、激发创新激情为源点,从软件工程的基础入手,使学生能够循序渐进地接受并融会贯通所学知识,再进一步地激发创新激情。通过案例的学习,既能巩固已学过的知识,又能在此基础上让学生实际运用他们所学过的知识和技能,模拟案例提出相应阶段自己的问题,并给出解决方案,真正使学生体会和做到学以致用。

(5) 以软件工程为主线的课程群体系研究的同时加强教材建设。目前我院在软件工程类课程中采用的教材都是原版外文类教材,这些教材从理念上来讲是比较新的,但是其中的案例都是国外企业较为流行和实用的,有些内容和我们的国情存在着差距,国内学生接受起来有些难度。为此在引用国外教材的同时,设计符合国情、符合软件工程人才培养要求、符合课程群建设以及贯穿于整个教学环节的案例教材是我们研究和建设的重点。

4解决的关键问题

(1) 课程群内容的筛选。软件工程专业主要以培养高层次、工程型、国际化人才为目标。如何确立以软件工程为主线的课程群内容来满足这一人才培养目标,如何在课程群中强调软件工程的相关概念、原理和观点,帮助学生形成系统的软件工程思想,如何在知识的涵盖面、创新灵活性和知识与实践的结合上取得适当平衡,是解决的关键问题之一。

(2) 课程群体系的改革。工程型的课程体系是进行工程型软件人才培养最基础的环节,如何在传统课程体系的基础上,加强各课程之间的衔接、配合,增加贯穿始终的案例教学、添加社会和企业需要的专业技术课程,从而最大限度地发挥课程群体系的作用。考虑将多个课程模块整合在一起,覆盖软件工程教育知识体系SEEK的所有知识领域,并与IEEE-CS/ACM联合推出的软件工程计算教程CCSE 2004的教学要求基本吻合,保证课程群内容的科学性和系统性。

(3) 加强先进教材体系建设。遵循“体现素质教育和创新能力培养”、“稳定性和先进性相协调”的原则,在借鉴国际著名教材的基础上,结合科研成果,对原有教材不断更新改版同时,着力建设与课程群体系相匹配的高水平教材及实验、实训教材。

(4) 校内外实践教学体系的建立。实践教学体系包含课程实验、课程设计、综合实践等内容。课程实验、课程设计是保证课堂教学的非常重要的实践环节。如何选择合适的案例贯穿整个课程群体系,是激发学生学习兴趣,确保学生掌握一些重要思想的关键。综合实践活动既可以在校内进行也可以在校外实施。校内的综合实践活动是通过贯穿于整个知识体系的大型案例,让学生实际参与,并承担相应的角色,在实践过程中让学生充分理解和应用所学的知识。校外实训基地的建立为学生与企业无缝对接提供了便利条件。校内外实训体系的建立也是学院联系社会、联系企业的重要途径,也是促进学生就业的直接渠道。实训基地是学院进行教学改革和工程化培养最前沿的,同时也是最富有成效的阵地。因此,建立稳定、有效的实践教学体系,是关系到人才培养成败最重要的环节之一。

(5) 信息化平台的建立。学院信息化建设为整体教学环节提供了有力的平台支持。如何建立合理、高效的以软

件工程为主线的课程群体系信息化平台,也是全面实施教学改革所必须要解决的问题。按照突出“知识的综合运用能力”、“系统的分析设计和集成能力”、“科技创新和团队协作能力”培养的指导思想,建立起支撑课程群的实践教学环境。充分利用现代教学手段和网络资源,构建在线资源、案例库、答疑区,增加与学生的交流,提高教学质量。

5结束语

针对软件工程专业人才培养的需求,加强以软件工程为主线的课程群体系的研究和建设,不仅使我们的教学内容更加科学、系统、规范、丰富、充实,也加强了与企业之间的联系,使得课程教学与实践教学更加协调,实践内容更加丰富,提高了学生的实践能力。

今后我们还要进一步加强和完善课程群体系的建设,在建设中既要进一步充实课程群的课程内容,协调各课程之间的相互关联、衔接,还要充分考虑各教学、实践环节的完善和改造,引进和借鉴校外资源和社会资源,使学校的教学优势与企业实践平台等一系列优势资源结合在一起,在使学生得到良好培养的同时,企业也得到了优秀的人才,学校的培养质量也得到了全面提高。

参考文献

[1] Computing Curriculum―Software Engineering: Final Report,IEEE Computer Society /ACM Joint Task Force on Computing Curricula[EB/OL]. /ccse/volume/FinalReport-5-21-04.pdf.