HI,欢迎来到学术之家,期刊咨询:400-888-7501  订阅咨询:400-888-7502  股权代码  102064
0
首页 精品范文 软件工程课程设计总结

软件工程课程设计总结

时间:2022-11-15 19:58:59

软件工程课程设计总结

第1篇

【关键字】课程设计,软件工程技术,应用,问题

With the deepening of our reform and opening to outside world, we have achieved a great deal in economic development. Meanwhile, our country's education are enjoying rapid growth. In school education, especially in guiding students to curriculum design, we are often used software engineering technology. And also we are feel technology in software engineering curriculum design and the application status is constantly increasing. So the author analyses the application of technology in software engineering curriculum design and analysis of relevant problems, combining with his supervision experience and research.

Key words

Curriculum design, software engineering, application, problems

中图分类号: G423 文献标识码: A 文章编号:

一.前言

软件工程是计算机科学与技术本科专业一门重要的专业课。一般在软件工程课程结束后,会安排一些时间让学生做软件工程课程设计。软件工程课程设计的内容是让学生运用软件工程的知识设计一个应用软件系统,并写出相关的设计文档材料。在进行课程设计的时候,我们会经常应用到软件工程技术,例如图形的绘制等,都需要借助软件工程技术。结合当下学生在进行课程设计中存在的一系列问题,有必要加强软件工程技术在课程设计中的应用,提高课程设计的质量和效率。

二.课程设计中存在的问题

1.不重视可行性分析和需求分析

有学生认为在软件的生存期中,写程序(coding)最重要,因此,对软件工程中的其他阶段不重视,甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才清楚这是很危险的,万一有的需求事先不知道,而在编制程序的过程中才发现,而在已经编制的程序上不容易实现,就要重新改写程序,或在已编好的程序上打补打,破坏程序的结构,给程序的运行和维护带来极大的困难,作者在指导课程设计中看到不重视可行性分析和需求分析的课程设计很容易陷入困境,实际的开发进度往往比预期进度慢,有时候为了赶进度,学生就采取权宜之计,不惜损害软件的质量.

2.软件设计呈无序状态

软件设计一般要求进行概要设计、详细设计,以及必须的模块设计,才能进行编码,而课程设计中大部分同学的软件开发跨越了概要设计、详细设计以及必须的模块设计,直接进行编码,这种无序的软件设计只能带来人员组织的混乱、功能代码的重复开发,并导致系统最后可集成性差.

3.系统的使用说明书不正规、不完善

软件系统质量的优劣主要取决于用户的评价.目前,大多数课程设计做的软件虽然都采用了直观易学的图形窗口界面和菜单驱动技术,大大方便用户使用,但由于课程设计系统用户类型多样,理解的程度不尽相同,除一般的操作帮助外,解释清晰、内容全面的数据字典和使用手册是必不可少的.否则用户感到使用起来很不便,觉得难于操作.

4.系统开发过程中文档不完备

软件工程要求系统开发过程中的文档必须和所开发的软件完全一致,要清楚地说明系统开发到某一阶段时已经做了什么,下一步应该做什么,以及算法的精确描述或出处等,以便课程设计小组成员之间进行有效的交流,同时这些文档也是备忘录,对系统的维护和更新意义重大.不合格、不完备的文档给开发人员内部的工作交流带来了诸多不便.更严重的是如果没有准确的文档,诸如修改系统中的错误、改进和增添新功能、移植到其它软件环境等这些工作将非常难做.

三.软件工程技术在课程设计中的应用及其相关问题分析

1.合理选择课程设计的题目

由于该课程设计与软件工程课程内容密切相关,选题工作可以在软件工程课程开始讲授时布置下去,让学生有充足的时间思考,思考成熟后,在指导教师帮助下,将课程设计题目确定下来。然后学生一边学习软件工程课程 内容 ,一边着手收集课程设计所需的有关资料,做好课程设计的准备工作 。

课程设计题 目所涉及的问题规模和难度应该比较小。因为课程设计不同于课程设计,加上课程设计安排的时间比较少,学生投入的精力也有限,所以要控制规模和难度。指导教师在帮助学生选择题目时,可以选择学生比较熟悉的问题,如图书资料管理系统、学生成绩管理系统、人力资源管理系统等等,或者选择学生很快就能熟悉的一些问题 。

2.摆正程序编写工作在软件工程中的位置

学生在做软件工程课程设计之前,已经做过一些课程设计。比如在学习C、C++或 Java之后,利用 C、C++或Java所做的课程设计 。那些课程设计内容是使用高级语言设计和编写小软件 ,在那些课程设计中,程序编写是一项非常重要的工作,因为那些课程设计是以熟练应用某高级语言为目的。而在软件工程课程设计中,编写程序工作与需求分析、总体设计和详细设计等工作相比较,重要程度降低了。因为软件工程课程设计不是以熟练运用某高级语言为目的,而是以熟悉和运用软件工程知识为目的。实际上,按照开发软件的过程,当需求分析、总体设计和详细设计等开发过程完成后,用哪种高级语言来实现软件系统已经不是重要问题了。

学生往往认为程序编写工作重要,而认为需求分析、总体设计和详细设计等工作无关紧要,这是没有领会软件工程思想的表现。当确定课程设计题目后 ,有些学生不认真作需求分析、总体设计和详细设计等工作,匆匆忙忙开始编写程序,这种行为与软件工程课程设计的目的不相符。

指导教师要引导学生明确软件工程课程设计的目的,使学生清楚程序编写工作与其他软件开发工作的关系,让学生摆正编写程序工作在软件工程课程设计中的位置;告诉学生不能只重视编写程序工作而轻视其他工作;更不能不经过需求分析、总体设计和详细设计等阶段而直接开始程序编写工作。历史上,软件危机产生的原因之一就是错误地认为开发软件就是编写程序、程序就是软件,而忽视了程序编写之外的其他各项软件开发工作 。现在要通过做软件工程课程设计引导学生摆正程序编写工作的位置,用软件工程理论指导实践,防止过去的错误再出现。

3.熟悉常用技术和工具

按照软件工程课程设计的要求,学生在课程设计结束时,要完成全部的软件设计开发任务,不但要交出一个能运行的软件,还要交出设计过程中所形成的文档材料,包括需求分析材料、总体设计材料、详细设计材料、测试材料等。要做好这些文档材料,需要在课程设计中引导学生熟悉软件工程中常用技术和工具的使用方法 。

例如,在制作需求分析材料时,涉及到实体关系图、数据流图、状态转换图、IPO 图的使用;在制作总体设计材料时,涉及到模块化技术和层次结构图的使用;在制作详细设计材料时,涉及到传统流程图、盒图、PAD图、判定表、判定树的使用;在制作测试材料时,涉及到白盒技术、黑盒技术的使用。如果采用面向对象方法进行系统分析和设计,则要涉及到 UML 中的用例图、类和对象图、顺序图、活动图、协作图、构件图、部署图的使用。

上面提到的一些常用的技术和工具,在软件工程授课过程中,教师虽然讲过,但由于没有真正使用过,所以学生不熟悉。指导教师要引导学生利用课程设计来熟悉这些常用技术和工具。因为学生毕业后,既要会做程序编写工作,也要会做需求分析、总体设计、详细设计、测试等工作,熟悉这些常用技术和工具的使用方法,并且认真完成课程设计各项文档材料的制作 ,可以为毕业后从事相关的软件开发工作奠定良好的基础 。

四.结束语

综上所述,软件工程技术在课程设计中占据着十分重要的地位,并且其应用也是十分广泛的。因此,应该加强对软件工程技术的应用研究,加大其在课程设计中的应用范围和频率。

参考文献:

[1]王延青; 李海峰; 林森; 朱素霞; 倪泽辉 软件工程系列课程设计的分组及选题策略框架计算机教育2008-04-25期刊

[2]庞希愚; 王成 在课程设计中培养软件人才工程素质的研究与实践中国科教创新导刊2012-08-01期刊

[3]廖江福; 王宗跃 软件工程专业课程设计中的双语教学集美大学学报(教育科学版)2012-07-28期刊

第2篇

关键词:软件工程;实验;软件开发;实践

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

文章编号:1672-5913 (2007) 20-0015-03

1软件工程实验教学的意义

软件工程是一门理论与实践并重的基础课程,教学内容紧密围绕软件开发过程中的各种工程化方法、技术和思想。软件工程从工程意义上讲是指软件开发、维护、管理等活动的总体,从学科意义上讲包括软件开发相关的理论、原理、方法、技术[1]。

软件工程课程一般安排在本科三年级开设,此时的学生经过一二年级的学习和实践已经掌握了一定的计算机知识和编程能力,但分析解决复杂软件问题的能力以及工程化软件开发的意识还比较弱。而软件工程课程设计的目标是使学生系统地掌握软件工程及软件管理的过程、方法和工具,为学生将来从事软件的研发和管理奠定基础[2]。软件工程教学内容中的需求分析、设计和软件测试等软件开发技术以及工程化的开发过程(例如软件过程、配置管理、项目管理等)必须通过实际软件问题求解过程以及团队合作进行体验,而综合的软件开发能力更是需要通过一个完整的软件项目开发过程进行锻炼和培养。因此,软件工程课程实验是巩固课堂教学成果、培养学生软件工程实践能力的重要手段。

2总体思路

作为研究工程化软件开发方法和技术的学科,软件工程课程的课程实验主要以课程实践项目的形式进行,从实验目的看主要分为三类:方法性实践、实现性实践、创新性实践。其中,方法性实践是在软件工程课程教学中讲述某种软件开发方法后安排的实践,主要目的是加深对方法的理解。实现性实践的主要目的是让学生参与软件项目的开发全过程,一方面将学得的理论知识运用于实践中,另一方面培养学生的工程能力(包括软件工具的使用)和团队协作精神。而创新性实践的主要目的是培养学生的创新能力,通过在实践项目设计中,有针对性地引入开放性问题和不确定问题,启发学生在探讨中寻找合理的、创造性的解决方案。

2.1三个实验阶段

根据学生的知识和能力基础以及教学目标,软件工程课程实验可以按照由浅入深的顺序分为三部分,即:认知性导入实验、方法性实验和综合实践。而方法性实践、实现性实践、创新性实践三类实践内容又以不同的形式体现在这三个实验阶段中。

认知性导入实验通过一个很小的程序开发案例完成认知性导入,引导学生思考软件工程的基本思想和原则,体会规范化分析、设计、实现、测试的意义和必要性。方法性实验紧贴软件工程教学内容,以结构化分析设计和面向对象分析设计为主要的实验内容。综合实践以面向对象的开发方法和统一软件过程RUP为基础,引导学生完成一个完整的软件项目开发过程,包括需求获取、需求分析、系统设计、实现以及测试等基本步骤,同时强调数据库、网络等开发技术的综合运用以及相关CASE工具的使用,在此基础上还鼓励学生尝试一些新的软件开发方法和技术。

三个课程实验阶段具有各自明确的目的和定位:认知性导入实验完成认知导入,方法性实验帮助学生巩固课堂中所学习到的知识,而综合实践则培养学生综合运用各种软件开发方法和技术的能力。此外,三个阶段的课程实验中还穿插着创新性实践要求,通过各种开放性问题和不确定问题鼓励学生运用自己的思考能力寻找合理的、创造性的解决方案。

2.2课时安排

三个实验阶段中,前两个紧密围绕软件工程课程的教学内容,而综合实践则是对学生工程化软件开发能力的全面训练。因此在课程安排上可以将认知性导入实验和方法性实验穿插在一个学期的软件工程课程中进行,而在后续的软件实践类课程中安排第三个阶段的综合实践性实验内容。

3认知导入、方法性实验和综合实践

3.1认知性导入实验

通过软件工程课程之前的程序设计相关课程的学习和实践,学生已经掌握了一定的问题分析、算法设计、编程和调试能力,但分析解决复杂软件问题的能力以及工程化软件开发的意识还比较弱。认知性导入实验的目标是从软件工程实践的角度完成认知导入,引导学生完成从程序设计到软件开发的第一次跨越。

认知性导入实验通过一个算法小程序(例如日期到星期的转换等)开发案例完成认知性导入,引导学生思考软件工程的基本思想和原则,体会规范化分析、设计、实现、测试的意义和必要性。认知性导入实验一般可以在一学期的第一次软件工程课上布置,要求学生用1-2周时间独立完成一个算法程序的规范化分析、设计、开发和测试过程并提交实验报告,内容包括问题分析、数据结构、算法及界面设计、完整的程序清单、测试过程及结果记录、心得与体会等。

本次实验采用简单的算法程序作为题目,是为了降低学生的认知难度并且通过规范化开发与以前程序设计时的对比加强学生对软件工程基本思想和原则的体验。实验以开发过程的规范性、个人体验和开放问题的思路为主要评价指标,不以算法和程序本身的正确性为主要的评判标准。

本次实验一般安排在一学期第一次软件工程课上布置,与之配套的课堂教学内容是 “软件工程概论”。课堂教学通过对软件工程基本思想和软件开发基本过程的介绍,使学生初步理解软件工程和工程化软件开发的含义,特别强调本次实验与程序设计作业的区别,即强调开发过程的工程性而不是算法和实现本身的正确性。此外,配套教学内容还对系统可用性、可维护性、可扩展性、测试自动化等开放性问题进行了铺垫,希望可以引导学生在完成基本功能之余能够加以思考和探究。

3.2方法性实验

软件工程的课程教学内容覆盖了完整的软件需求分析、设计、实现以及测试过程,对本科学生而言,主要讲述结构化方法和面向对象方法两部分。因此,这部分课程实验与相关教学内容同步进行,分为结构化分析设计和面向对象分析设计两个部分。方法性实验要求学生自由组合,分组完成,每组3人。每个小组从候选项目中选择一个完成结构化分析设计和面向对象分析设计两部分实践内容。本阶段实验可在导入性实验结束后布置。

本阶段实验以结构化及面向对象分析和设计方法以及UML基本表示法的掌握为主要评价指标,同时考查学生理解实际问题需求、解决具体问题的能力。本次实验与教学内容中的“结构化分析与设计”以及“面向对象分析与设计”配套。为了保证本次实验的顺利开展,相应的课堂教学需要着重强调以下内容:明确软件系统分析(做什么)和设计(怎么做)的区别,体会数据流图、系统结构图以及UML各类图的含义;在具体的系统分析和设计中需要综合各种具体要求和约束(例如可复用性、物理分布等)以及各种指导性原则进行系统分析和设计。

3.2.1结构化分析设计部分

这部分实验要求各小组使用结构化分析和设计方法完成实践项目的需求分析和设计过程,并在此基础上撰写实验报告(包括结构化分析和设计文档)。结构化分析阶段要求学生按照结构化分析的基本思想和步骤完成实践项目需求分析过程,将分析结果表示为相应的描述形式(主要包括数据流图、数据字典和加工小说明),并根据相关原则和判定方法保证数据流图的一致性和完整性。结构化设计阶段要求学生在结构化分析结果的基础上运用结构化设计的基本思想和步骤完成实践项目的结构化设计,包括初步的结构图映射以及后续的结构图优化。要求提交的结构化分析文档的内容包括总体需求概述、分层数据流图、数据字典、加工小说明等,结构化设计文档的内容包括总体设计说明、初始结构图、改进的结构图以及各模块说明等。

在完成基本实验要求的基础上,要求学生对一些开放性问题进行思考,并根据自己的理解在实验中加以体现:数据流图中文件的识别;对于数据流图分解程度的把握;对于系统模块物理分布的考虑;模块之间的交互设计,例如通信协议、数据格式等;对于系统可复用性的考虑等。

3.2.2面向对象分析设计部分

这部分实验要求各小组使用面向对象分析和设计方法完成同一个实践项目的需求分析和设计过程,并在此基础上撰写实验报告(包括需求分析和系统设计文档)。面向对象分析阶段要求学生按照面向对象分析的基本思想和步骤完成实践项目需求分析过程,将分析结果表示为相应的描述形式(包括领域模型、用例模型以及用例的详细描述等)。面向对象设计阶段要求学生在面向对象分析结果的基础上完成实践项目的面向对象设计,包括系统体系结构、结构设计、面向对象类设计等。

在完成基本的实验要求上,要求学生对一些开放性问题进行思考,并根据自己的理解在实验中加以体现:层次体系结构等体系结构风格的运用;面向方面(Aspect)、关注点分离的设计思想;系统可维护性和可扩展性的考虑、面向对象设计模式的运用;对于系统边界之外的外部接口的设计考虑等。

3.3综合实践

综合实践一般安排在软件工程课程后进行,此时学生已经学习并掌握了软件工程、程序设计、数据库等方面的基本方法和技术,而且即将走出校门参与软件开发实践。因此,综合性实验突出强调贴近实际软件项目的实践性以及相关软件开发能力的综合运用。实践性实验一般安排在软件工程课程后续的软件开发实践课程中,成绩评定完全根据课程实践情况。

综合实践以面向对象的开发方法和统一软件过程RUP为基础,引导学生完成一个完整的软件项目开发过程,包括需求获取、需求分析、系统设计、实现以及测试等基本步骤,同时强调数据库、网络等开发技术的综合运用以及分析、设计、测试等CASE工具的使用,在此基础上还鼓励学生尝试构件技术、AOP、Web Service等新的软件开发方法和技术。学生自由确定项目团队组成方式,每组设项目经理1名,项目组成员3~5人。每个小组从候选项目中选择一个完成整个开发过程,分需求分析、系统设计和系统实现与测试三个阶段提交文档、代码等实验结果,并提交最终的可运行软件系统进行检查。

与前面几个软件工程实验阶段相比,实践性实验具有以下特点:

1) 完整的软件开发过程。整个实验以一个实际项目的完整开发过程为主线,覆盖了需求获取、需求分析、概要设计、详细设计到实现和测试的整个开发过程。

2) 综合性与真实性。实验中要求完全实现所选择的实践项目,因此学生需要综合运用数据库设计、网络编程等知识,同时相关需求都来自于真实的管理信息系统项目,使学生能够体会到真实的软件开发过程中的一些问题(例如外部交互接口、第三方软件构件等)。

3) 开发过程的规范性。强调每个项目组的开发过程都应该遵从软件过程规范,同时在开发过程中引入基本的项目管理机制。

4) 学生的主体性体现得更见明显。实践项目的开放性更强,学生可以得到更多的自由发挥,例如学生自主参与需求调研确定详细需求、自由决定项目组组成模式和管理方式等。

4软件工程实验教学实践

我们在复旦大学计算机科学与工程系的软件工程相关课程体系建设中对这套三阶段的实验教学方法进行了实践。我们在第六学期安排软件工程课程,而在第七学期安排配套的软件实践课程,这样就使得软件工程实验教学具有很好的延续性和系统性。三个实验阶段中,前两个与软件工程课程配套进行,两个实验阶段作为软件工程课程配套实践占学生总成绩的40%。其中,认知性导入实验持续1~2周,另外安排1个课时进行讲解,方法性实验持续15周左右,另外安排3~4个课时进行讲解。综合实践安排在软件实践课程中进行,持续16周(共48个课时)左右,其中18个课时用于课堂教学、讲解和点评,30个课时用于实践(需求调研、项目讨论等)及上机,成绩评定完全根据课程实践进行。

这种三阶段的软件工程实验教学方法为学生提供了一条从编程序到软件项目开发的渐进式发展之路。通过这种系统的软件工程实践能力训练,学生可以将所学的各种软件开发方法和技术转化为综合的软件开发和管理能力,同时也对软件开发的一些现实困难(例如需求的不确定、测试覆盖度和效率、构件化开发和集成的困难等)有了初步认识,这些都为他们今后参加软件研发和管理打下了良好的基础。目前,复旦大学软件工程课程已经被评为上海市精品课程,在此基础上我们正在进一步推进软件工程课程体系建设。

参考文献

[1] 朱三元, 钱乐秋, 宿为民. 软件工程技术概论[M]. 北京:科学出版社,2002.

[2] 王志英. 实践教学:计算机人才培养的重头戏[J]. 计算机教育,2004,(9).

作者简介

彭鑫(1979-),男,博士,复旦大学计算机科学与工程系讲师,主要研究方向为软件构件技术、软件产品线、软件维护与再工程。

赵文耘(1964-),男,复旦大学计算机科学与工程系教授,博士生导师,主要研究方向为软件工程与电子商务。

钱乐秋(1942-),男,复旦大学计算机科学与工程系教授,博士生导师,主要研究方向为软件工程。

第3篇

关键词:工程硕士;开放式教学;课程组

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

1引言

软件学院软件工程硕士的培养目标是培养高层次、应用型人才,针对这个目标,其教学实施应着重体现出以下两个差异性:

(1) 软件工程学科领域和计算机学科领域间专业设置的差异性,这个差异应能够很好地体现培养应用型人才的目的;

(2) 工程硕士课程和软件学院本科课程的差异性,这个差异应能够很好地体现培养高层次人才的目的。

目前国内软件学院软件工程学科和传统的计算机科学学科在课程设置上差异还不显著,工程硕士的培养方案中甚至部分课程只是本科阶段的重复。虽然大都开始强调学生的软件项目实践,但普遍缺乏过程管理。本文在对IEEE的软件工程知识体系进行深入学习的基础上,针对软件学院软件工程硕士提出了实现开放式教学体系的教学改革方案。

2软件工程知识体系

2004版SWEBOK将整个软件工程知识体系分为11个知识领域(Knowledge Area,KA),其中前5个知识领域是按软件开发的生命期诸阶段排列的,即软件需求、软件设计、软件构造、软件测试和软件维护;后6个知识领域是软件开发中的支撑性或者辅的方面,可能覆盖软件开发的多个阶段,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量、相关学科知识领域。这些知识领域SWEBOK并没有重新系统规定,而是直接套用已经成型的各领域知识体系,因此不可避免地存在重叠和不匹配。

在SWEBOK的基础上,IEEE与ACM又共同拟定了CCSE。其中的核心部分是软件工程教育知识(SEEK)。SEEK由十个知识领域组成,包括:计算机基础(CMP)、数学和工程学基础(FND)、职业实践(PRF)、软件建模与分析(MAA)、软件设计(DES)、软件验证(VAV)、软件演化(EVL)、软件过程(PRO)、软件质量(QUA)、软件管理(MGT)。

可以看出,SEEK和SWEBOK基本内容是相近的。总的来说,二者都是包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识。

3高等教育教学改革研究状况

目前国内关于高等教育教学改革的论文很多,如翁敬农、刘云等在软件学院实践教学体系的内容与规划中提出了“一个目标”、“两种途径”、“三大环节”、以及“四级台阶”的具体步骤。王移芝、林艳琴提出基于“两段教学”的计算机基础课程的教学体系框架。谢芳清、闫大顺提出了以素质教育为目标的实践教学体系。王浩、胡学钢等提出计算机科学与技术专业实践教学体系的总体研究与建设。王志英以国家实验教学示范中心为例,提出实践是综合能力培养的基础,并以此构建计算机科学与技术专业实践教学体系。董玮、邱建华等以专业课“程序设计基础(C语言)”为例给出了建设实践教学体系的实践探索。然而目前还没有检索到专门研究软件学院工程硕士教学改革的论文。无论是从传统计算机科学与技术专业与软件学院软件工程专业的区别,还是本科生与研究生的区别来看,针对软件学院工程硕士的教学改革研究都是十分有必要的,同时也是迫切的。

4工程硕士的课程体系设计策略

我们以IEEE SWEBOK和CC2004SE的知识体系为主体,结合中国软件产业以及本院的具体实际情况,设计了中国科学技术大学软件学院软件工程专业的知识体系,作为我院工程硕士课程设置和教学计划实施的依据。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置可以分为三个层次,即导论性课程、软件工程核心课程和其他课程。如图1所示,该知识体系定义了7个知识体系子类。计算机基础和数学和工程学基础属于导论性课程、其他课程包含了职业实践、领域课程、软件工具、工程实践等四个子类。

其中计算机基础定义了软件工程作为计算学科所必需包含的计算科学基础以支持软件产品的设计与建设;数学与工程学基础提供了软件产品获得所需属性的理论和科学基础;职业实践则聚焦于软件工程师以职业行为从事软件工程实践所必需具备的知识、技能和态度;软件工程核心课程应该包含软件开发生命周期所涉及到的主要知识领域;领域课程包含了对于某个特定领域软件工程师应该接受的特定教育或经验;软件工具定义了从事软件工作所必需掌握的当前主流工具与软件产品等;工程实践则是学生使用所学到的知识从事实际开发活动,提供动手能力的重要环节。

对于工程硕士来说,大部分同学经过计算机本科专业的学习,已经具备了初步的计算机基础以及数学与工程学基础,因此目前其课程体系建设如图2所示,重点是完成软件工程核心课程教学,并结合IT界的最新技术趋势设计相关领域课程。教学改革的核心是如何设计软件工程的核心课程,并指导学生熟练掌握相应的软件工具,强化他们的实践动手能力。

5工程硕士开放式教学体系建设

对于如何设计软件工程的核心课程,我们的主要思路是打破原先各子知识体系间的界线,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,实现一个完整的开放式教学体系。如图3所示,整个开放式学习体系包含三个部分:

(1) 设计课程组:在理论环节采用课程组的概念,集中讲授较高层次的、符合硕士生水平的软件工程的某些重要环节;

(2) 开设实践教学环节:在实践教学中采用做中学(Learning by Doing或LBD)理念,由指导教师讲述软件工具的具体操作过程,同学实际动手学习;

(3) 强化工程实践:在工程实践中由学生自主选题,并将LBD中讲述的工具在项目整个生命周期中贯穿使用。

5.1设计 课程组

目前我院开设的高级软件工程和本科的软件工程课程内容并没有太大差别,对于软件工程的各个环节面面俱到,但又都比较浅显,对于工程硕士的培养显然是不合适的。因此我们设计了软件工程课程组的理念,初步设计了以下课程:

(1)“软件开发管理”(Managing Software Development)

(2)“软件系统架构”(Architectures for Software Systems)

第一门课程主要针对以后立志从事软件工程管理方向的同学,课程针对IT项目集中阐述如何实现风险、资金、工期等各方面的管理;第二门课程主要针对以后立志从事软件高级开发方向的同学,课程主要讲述复杂软件系统架构层上的设计,介绍目前通用的软件系统结构、设计技术以及实现这些结构的模型、表述方法等。这两门课程对于软件工程硕士应该至少必修一门。除了这两门课程,其他软件工程类的课程包括了设计模式、软件测试、语言类课程如J2EE、.NET等等,学生可根据自己的实际情况进行选修。

5.2开设实践教学

针对该课程组,我们开设了实践教学环节,采用做中学理念,由指导教师(可以由助教担任)根据事先确定的主题,选用具体工具讲述如何使用该工具完成项目开发的某具体环节,工具涵盖了项目管理、架构设计文档化以及测试等软件项目开发的主要方面。

对于软件工具的选择,有两种思路。一种方法是对软件工程的不同环节分别选择不同工具,例如项目管理选Project、开发文档化选Rational、测试再选别的工具这样来做,但结构分散,不利于整体化考虑。另一种是采用套件,完成项目开发全程的所有操作,目前我们选择了两种套件,一是微软的VSTS,该套件和微软的Visual Studio开发平台绑定,适合学习.net开发框架的同学;另一种是IBM的RSA,该套件和Eclipse开发平台绑定,适合选择开源J2EE开发框架的同学。

5.3强化工程实践

大多数的软件学院目前都开设了专门的工程实践环节,但实际的效果并不尽如人意。因此我们将工程实践环节也纳入到开放式学习体系中,以前面所说的理论以及实践教学环节来指导学生更好地高质量完成整个工程实践。

从教学方法上,工程实践应尽可能地贴近现实项目,除了常见的软件工程文档,我们还要求学生提交过程管理类文档(软件开发合同、会议记录、工作日程记录、合同执行报告:财务报告和开发过程报告、个人总结、小组总结等)。

从技术上,学生可以自由选题,也可参考工程实践题库中的选题。选题涉及所有领域课程包含的内容。要求学生必须采用实践教学环节中介绍的工具全程介入项目开发的各个阶段。学院设立专门的工程实践网站提供学生选题及交流,以及指导教师的监督。

从教学形式上,则注重如何实现应用型软件人才的核心能力分析与培养,要求学生运用职业实践子知识体系中的相应内容,锻炼学生的口头表达能力、书面表达能力等。通过学生的开题演讲、采用各种工具完成相应的项目文档、结题答辩等环节来实现学生职业素质的培养。

从实践效果评价上,我们制定了一系列的成绩考核方法、管理考核信息、分析考核结果、评价教学质量等措施,实现完整的考核体系。

6结论

软件工程专业学生的培养,在学科教育与培养面向市场需求的人才方面有着事实上的矛盾。软件学院现有的实践教学体系存在着专业课程设置定位不准确、课程实验师资不足、实验教学内容质量不高、实验指导和管理落后等问题。根据软件工程专业教学所面临的挑战,在充分调研IEEE SWEBOK和CC2004SE知识体系的基础上,针对软件学院的工程硕士,我们提出了软件工程硕士开放式教学体系的建设,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,制定了一套较为完整的开放式实践教学实施计划。

参考文献 :

[1] Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering [EB/OL]. [2004-08-25]. /ccse/SE2004Volume.pdf.

[2] 翁敬农,刘云. 北航软件学院本科生实践教学体系的研究与实践[J]. 计算机教育,2007(11).

[3] 王移芝,林艳琴.“计算机基础课程”实践教学体系的研究与实践[J]. 实践教学,2008(8).

[4] 谢芳清,闫大顺. 计算机工程专业实践教学体系的研究[J]. 中国科技信息,2008(9).

[5] 王浩,胡学钢,侯整风,等. 计算机科学与技术专业实践教学体系的研究与建设[J]. 计算机教育,2007(11).

第4篇

关键词:软件工程教学改进实践

中图分类号:

1、引言

提起软件,在当今社会人们并不陌生,正是由于软件的发展,使计算机应用逐步渗透到社会生活的各个角落,使各行各业都发生很大的变化。这同时也促进人们对软件的品种、数量、功能和质量等提出了越来越高的要求。然而,软件的规模越大、越复杂,人们的软件开发能力越显得力不从心。于是,人们开始重视软件开发过程、方法、工具和环境的研究,软件工程应运而生。

“软件工程”主要介绍软件工程的基本原理、开发方法和开发工具,通过本课程的学习,使学生了解和初步掌握开发1个软件项目所使用的方法和工具,以及“软件工程”的发展过程和发展趋势,为进行软件开发打下1个良好的基础。

2、课程特点

1。课程综合性强。

软件工程与其他计算机课程,如程序设计语言、数据结构、编译原理、数据库以及操作系统等课程都是相互作用和影响的。在1定程度上说,软件工程讨论的是在实际开发当中综合运用这些课程中讲过的理论和方法,将这些课程的理论和方法放在1个统1的目标下,这个目标就是在有限的时间及预算条件下,开发出高质量的令用户满意的软件。

2。课程内容不断更新。

软件工程课程的教学培养目标应该以市场需求为导向,使课程培养的学生真正能够在软件行业中发挥作用。因此,在授课时,我们不能拘泥于教材内容的限制。在讲解基本原理、基本概念和基本方法的同时,介绍1些新方法、新技术。这样,有助于开拓学生的视野和培养创新意识与开发能力,使他们走向社会后不至落伍。

3。课程的实践性强。

软件工程是1门实践性很强的课程,它是各种开发经验的总结与提炼。在学习过程中不但应注重概念、原理、方法和技术的掌握,更应注重方法、技术的实际应用。学习软件工程必须投身于软件开发的实践,才能真正领悟软件工程的精髓。

实际教学当中,这门课的教学效果往往不是很理想,教师觉得这门课教起来较困难,学生学习中多数也觉得枯燥无味,很难达到较好的教学效果或获得较强的实践能力等预期目的。如何改善?结合软件工程的课程特点,笔者认为可以从以下几个方面来改进《软件工程》的教学质量。三、软件工程教学改进的内容和方法

1。教学过程引入实际案例

软件工程课程涉及面很广,如果不结合实际工程项目进行教学,很难把教学内容教授给学生。因此,在教学过程中引入案例,将复杂抽象的概念用具体生动的实例进行诠释,能够收到事半功倍的效果。例如,在授课时教师可结合1个“学校教材购销系统”实例,给学生介绍具体的开发过程和方法。

另外,学校还可邀请领域内有实际经验的资深程序员,针对软件工程中具体理论和方法在实际开发中的应用,在课堂上和学生进行面对面讲座,深入浅出地作讲解。这样,学生可以更加熟悉、掌握软件开发的过程。

2。组织课堂讨论,形成教学互动

我国有句名言:“授人以鱼,不如授人以渔”。学生是教学活动的核心,教师要利用合适的方法调动学生的积极心理和参与意识,改变传统的教师高高在上的教学方式,让学生参与教学过程,有机会发表自己的看法。

比如在讲授需求分析这章内容时,可结合“学校教材购销系统”这个案例,要求学生按照软件工程教学的思想和方法认真做好需求分析。在实施过程中,首先由学生独立思考,给出解决方案。然后在课堂上,组织学生进行讨论,分析各自解决方案的优劣,并进行综合。最后由老师进行总结和评价,指出该案例所涉及的理论知识及其应用方法,就学生提出的问题进行解答。这样通过组织学生讨论,可使学生进1步理解和掌握课程内容的方法和步骤,使抽象的知识变得看得见,用得着,大大激发了学生学习的兴趣和自信。

3。加强实践环节

从本质上看,软件工程的实践性和综合性是其他相关课程难以比拟的。因此,必须结合设计项目和实际应用加以施教,才能取得良好的教学效果。那么,在把握教学进度的同时,必须及早安排好课程设计,让学生同步开展课程设计。这样,理论课讲完了,课程设计也基本结束,学生们能从理论和实践的结合上,加深对软件工程知识难点、重点的理解,进1步深刻理解软件过程和系统消化理论知识,训练项目设计的思路,锻炼实际开发能力,培养严格规范的项目开发方法和步骤,体验文档编写整理、阶段性评审总结以及软件测试等各个方面的工作流程,直接培养了学生从事实际开发的能力。

四、结束语

在教学中,我们还应根据学生的具体情况,因材施教。总之,通过不断改进教学,使学生能更好地理解、掌握知识,运用所学服务社会。

参考文献:

[1]史济民等。软件工程。北京:高等教育出版社,2002。12

第5篇

软件工程专业是在计算机科学与技术等学科的基础上发展起来的,因此课程体系的建设不仅需要计算机科学的理论知识,同时也需要把工程经济学领域的知识包括进来,课程设置应始终以软件开发的整个流程为主线,培养学生良好的软件编程思想、软件项目管理和软件开发的团队合作精神。财经类院校的课程体系建设应该避免照搬其它工科院校的培养方案,应该以教育部的软件工程专业建设指导思想的基础上,根据自身的特点梳理软件工程系列课程之间与其它相关系列课程之间的关系,合理衔接,避免重复。课程设置要突出软件工程的重要地位和价值,专业模块的划分要突出行业特点及行业市场的需求。建立以能力培养为主线,分层次,多模块,互相衔接的课程教学体系,通过增加案例教学、添加社会和企业需要的专业技术课程,从而最大限度的发挥课程体系的作用。

2课程体系在专业建设中的位置

通过调研、走访、学习名牌大学、重点大学、国家示范性软件学院的经验和做法,总结财经类院校软件工程专业的建设,根据自身的特点和实际情况,依托财经类院校在经济、会计、管理等方面的专业优势,建设具有鲜明财经特色的学科专业体系,总的建设方案指导思想是:“整体设计、分布实施、发挥优势、突出特色”。建设的内容包括师资配置与建设、实训环境建设(包括实验室和实训基地)和课程体系建设。对于课程体系建设,主要从以下几个方面进行:梳理课程关系、夯实课程内容、教学方法建设、课程教材建设和实践体系建设。为保证软件工程专业建设质量,构建质量保障与反馈体系,总体建设结构如图1所示。

3课程体系主要建设内容

(1)梳理课程关系。通过划分课程群,梳理以软件工程为主线的课程之间的关系,重新梳理和制定大纲,确保基础课、专业基础课和特色专业课知识衔接合理,保障知识体系的连贯性,避免知识点缺乏或知识点重复,以及知识体系不连贯等问题。

(2)夯实课程内容。通过梳理好的课程关系,筛选课程内容,保障课堂内容充实。为增强对课内内容的巩固,在课外开展“软件工程设计大赛”、“数学建模大赛”以及认证类课程等作为补充,促进学生的主动学习,提高学生的基本技能和软件开发素质。

(3)教学方法建设。按课程群划分,组织同类课程组教学方法和教学手段的研究。改革现有的、传统的课堂教学方式,精炼教案内容。以培养兴趣、激发创新激情为出发点,加强案例教学和实践环节,通过增加案例教学、添加社会和企业需要的专业技术课程,从而最大限度的发挥实践实训课程的作用,真正使学生体会和做到学以致用。

(4)课程教材建设。以软件工程为主线的课程群体系研究的同时加强教材建设。目前采用“内编外引”的方式,做好教材的自编与挑选工作。在软件工程类课程中的教材都要求是重点教材,规划教材或原版外文类教材,选择质量高、特色鲜明的教材。

(5)实践体系建设。建立起更加完善的、与课程群体系相适应的实验、实训、实践教学体系。实践训练课程划分五个层次,分别为基本训练、基础理论训练、专业训练、工程训练和创新训练。使实践类课程涉及到的理论由浅入深,程序规模由小到大,开发队伍由个体到团队。实训环节中还考虑了加强与企业的合作,将企业的资源优势与学校的理论知识优势充分结合,共同设计和建设课程群中的实训项目。

4解决的关键问题

(1)把握主线与特色的关系。目前已有多个示范的软件学院,软件工程专业根据目标不同,有向高层次培养也有的向国际化目标培养。如何地足于地方,结合财经类发展特色,对课程群内容进行筛选和改革是解决的主要问题之一。目前特色软件工程专业建设的方针是首先确立以软件工程为课程群的主线,保障基础内容的涵盖和衔接。另一方面,结合财经学院特点,在开发案例、管理项目和课程选择上体现特色,如面向金融软件开发实践,因材施教培养实践动手能力,开设《软件项目管理与工程经济学》等课程内容。

第6篇

关键词:工作过程;课程体系;计算机软件

中图分类号:G64

文献标识码:A

文章编号:1009-3044(2017)10-0111-02

现在信息技术的发展,是信息技术各方面全方位的发展,不仅是计算机硬件配置越来越高,计算机网络带宽越来越大,移动终端越来越流行,甚者包括提供给用户服务的计算机软件系统也是功能越来越强大,操作越来越方便,正因为这样,信息技术已经极大地提高了人类社会的生产效率和生活质量。正是信息技术全方位的发展,给信息大类下的每个专业的高职教育带来了严重的挑战,计算机软件专业分属于信息大类中一个重要的专业类别,自然也不例外。如何使高职计算机软件专业教育水平跟得上信息技术的发展,是各大高职院校计算机软件专业教师必须面临的重大问题。课程体系是专业教学的设计大纲,只有对计算机软件专业的课程体系进行时时更新和调整,才有可能维持教学水平,才有可能适应信息技术的发展,才有可能培养出适合软件企业的人才需求。课程体系是指一个专业不同课程按照课程顺序排列,是教学内容和进程的总和。课程体系中是由哪些课程组成,每门课程是由哪些课程内容组成,构成了课程体系研究中的关键。

1.计算机软件专业的课程体系现状

通过走访高职院校,与高职院校计算机软件专业教师和同学进行沟通交流,了解各高职院校计算机软件专业的课程体系,对课程体系进行分析和调研,认真进行分析总结,得出了如下的几种现象。

1)课程体系中有些课程不符合专业的特点。主要表现在有些课程与信息技术有联系,但是与软件专业没有联系。

2)课程体系中的课程之间关系体系不明显,没有体现出课程之间的先导课程和后续课程之间的关系。

3)课程体系中的每门课程内容没有明确,这很容易造成教师在授课时的随意性和盲目性。

4)课程体系中的课程及其课程内容已经淘汰过时,没有进行及时更新和调整。

从以上的几种现象可以看出,当前计算机软件专业的课程体系构建还是存在很多的问题,根据调查的结果,有的课程体系是根据模块化设计的,有的是根据岗位群设计的等等,几乎每一个高职院校课程体系的构建都依据一套设计原则,设计出的结果总是顾此失彼。

2.基于工作过程的课程体系构建方法

通过到企业一线去进行参观,考察,调研。了解目前企业开发哪些类型的软件应用系统以及不同类型的应用系统的市场份额,了解不同类型的应用系统整个开发和实施流程,包括需求分析,项目设计,数据库设计,软件代码开发,软件测试和软件实施等。通过市场调研,了解不同类型的软件应用系统的整个工作过程,了解研究工程过程中所涉及的技能点和职业素质,最后研究出适合人才培养方案的计算机软件课程体系。

3.基于工作过程的课程体系构建内容

根据软件企业和行业调查结果显示,当前采用Java语言进行软件系统开发市场份额最高。通过搜索“世界编程语言排行榜”结果显示,近三年来Java语言开发比例分别是18.2%,16.7%和21.4%,由此我们确定Java语言作为计算机软件专业的核心语言。计算机软件应用系统主要分为C/S结构和B/S结构,C/S结构和B/S结构各有优缺点,但根据目前流行趋势来看,B/S结构更受客户欢迎,因此我们将选择B/S结构的web软件系统作为研究重点。

基于上述分析,我们重点调研了基于Java语言开发的web系统的工作过程。掌握了web系统在完成之前经历了需求分析,系统设计,数据库设计,系统开发,系统测试和系统安装与维护整个工作过程。通过研究,我们构建了下表的软件专业的课程体系。同时通过企业调研和网络搜索,了解行业内使用Java语言开发各种web系统采用的最新技术,包括前台框架技术和后台框架技术。当前行业内,在前台框架技术方面,普通浏览页面多采用基于响应式的bootstrap框架,能够做到屏幕自适应效果,在PC和手机上都能够进行方便的浏览页面,省去了过去分别在PC和移动终端上单独设计浏览页面的工作,提高了工作效率,在管理员页面,我们采用easyui jquery框架技术来进行页面设计。在后台框架技术方面,不同的web系统采用不同的框架技术,在诸如ERP企业web系统和OA办公自动化系统等,我们采用流行的SSH框架技术进行后台设计,在诸如电商web互联网系统,我们采用流行的SSM框架技术进行后台设计。在构建过程中,将工作过程中所涉及的理论知识和实践操作技能,我们按照了专业基础课,专业核心课,专业核心高级课程的三层架构进行了课程设计,使课程体系结构设计具备层次感。之所以要有层次感,使学生在学习时有基础,对技能的掌握能够层层递进,最终能够达到融会贯通。同时在构建过程中,我们不仅确定了课程名称,还确定了每门课程的课程内容大纲,之所以要确定课程内容大纲,是防止任课老师在授课时的随意性和盲目性,最后偏离了课程体系的知识结构。高职计算机软件专业基于工作过程的课程体系构建内容如下表所示。

第7篇

关键词:软件工程;案例教学法;实施

中图分类号:TP311.5-4 文献标识码:A 文章编号:1007-9599 (2012) 09-0000-02

一、引言

《软件工程》是计算机软件专业的一门核心课程,在软件开发实践中发挥了重要作用。《软件工程》中的方法与技巧不仅能用于软件开发过程,还能促进组织管理协作能力的发展,对培养学生的软件素质,提高学生的软件开发能力具有重要的意义,为将来从事软件开发及项目管理工作打下良好的基础。

《软件工程》是一门比较难学的课程,内容抽象,理论性、逻辑性比较强。对于学生来讲,一些知识点很难学懂学透;对于老师来说,如果仅仅是照本宣科,纯理论的讲解,那么学生听不懂,会失去学习的兴趣,教学效果差。

采用什么样的教学方法能提高学生学习本门课程的兴趣,提高他们的教学效果,促进本课程的教学?是我们每位教师值得思考的问题。通过多年软件工程的教学,总结经验得出案例教学法可以促进软件工程的教学。

二、案例教学法

案例教学,就是在教师的指导下,根据教学目的要求,组织学生对案例的调查、阅读、思考、分析、讨论和交流等活动,教给他们分析问题和解决问题的方法或道理,进而提高分析问题和解决问题的能力,加深学生对基本原理和概念的理解的一种特定的教学方法。

案例教学方法有一个基本的假设前提,即学员能够通过对这些过程的研究与发现来进行学习,在必要的时候回忆并应用这些知识与技能。案例教学法非常适合于开发分析、综合及评估能力等高级智力技能。为使案例教学更有效。学习环境必须能为受训者提供案例准备及讨论案例分析结果的机会,必须安排受训者面对面地讨论或通过电子通讯设施进行沟通。但是,学习者必须愿意并且能够分析案例,然后进行沟通并坚持自己的立场。

案例教学的具有自身的特色:1.鼓励学员独立思考。案例教学没人会告诉你应该怎么办,而是要自己去思考、去创造,使得枯燥乏味变得生动活泼,而且案例教学的稍后阶段。每位学员都要就自己和他人的方案发表见解。通过这种经验的交流。一是可取长补短、促进人际交流能力的提高,二也是起到一种激励的效果。2.引导学员变注重知识为注重能力。学员一味的通过学习书本的死知识而忽视实际能力的培养,对自身的发展有着巨大的障碍。3.重视双向交流。在案例教学中,学员拿到案例后,先要进行消化,然后查阅各种他认为必要的理论知识.这无形中加深了对知识的理解,而且是主动进行的。捕捉这些理论知识后,他还要经过缜密地思考,提出解决问题的方案,这应视为能力上的升华。同时他的答案随时要求教师给以引导,这也促使教师加深思考,根据不同学员的不同理解补充新的教学内容。

三、在软件工程教学中采用案例教学法的意义

传统的软件工程教学是给学生讲解许多的理论知识,并没有说明如何将理论知识与实践相结合,以理论指导实践,通过实践加强对理论知识的理解,采用的是填鸭式的教学方法,学生上课积极性、主动性不高,感觉学习枯燥乏味,产生厌学心理,学生的情绪会同时影响老师的积极性,使课堂气氛非常的沉闷。

要有好的教学效果,除了要求老师对本门课程的知识非常熟悉,教学经验丰富以外,还要求老师在上课时,采用比较好、先进的教学手段和教学方法。通过本人对软件工程课程的研究,认为在软件工程教学中以“案例导向、项目驱动”的教学方法,引导学生理论与应用相结合,理论指导实践,通过实践反过来加深对理论知识的理解,学生利用软件工程的原理、方法、工程技术在实践中学会发现问题、分析问题、研究问题、解决问题,更好地进行软件开发。

四、案例教学法在软件工程教学中如何实施

案例教学法在软件工程教学中组织实施的总原则:先从小的案例教学入手,学生适应后再进行大的案例教学,把学生分成若干个组,在规定的时间让学生阅读材料,之后让学生互相提讨论并解答,让学生对案例进行展示,老师对学生的案例进行评价和总结。以下分别讲解案例教法在软件工程教学的理论、实验、课程设计中的实施。

(一)案例教学法在软件工程理论教学中的实施

本课程主要介绍了软件危机的产生、消除软件危机的途径、软件工程的定义和基本原理;软件生命周期的基本任务、软件模型;传统方法学:结构化分析、结构化设计、结构化实现;面向对象方法学:面向对象分析、面向对象设计、面向对象实现;统一建模语言;软件计划、组织、控制、国际标准。重点和难点的内容是:软件工程的定义和基本原理;软件生命周期的基本任务、软件模型;结构化分析、结构化设计、结构化实现;面向对象分析、面向对象设计、面向对象实现。

这门课程涉及的理论知识比较多,内容比较抽象,教师在讲解课程内容时,如何使这门课程上得有声有色,学生听得津津是道,除了优化课程教学内容,有较强的表达能力以外,还要采用好的教学方法。

在本课程的理论教学中,我们都是以案例为导向,对软件生命周期的基本任务、软件模型的教学,举出三个案例,结合我们的理论知识,要求学生分析与计论出三个案例分别适合采用哪种软件模型,以及采用这种模型的原因。通过仓库管理系统、教师工资支付系统等案例讲解如何采用传统方法学对软件进行分析、设计、实现,面向对象分析、面向对象设计、面向对象实现知识的讲解,贯穿的案例是ATM自动取款机系统、电梯系统。

(二)案例教学法在软件工程实验教学中的实施

软件工程知识的掌握,不仅需要掌握理论知识,也需要大量的实际动手的训练。在实验课中,以案例为主线设计实验内容。本课程安排的实验如下:

1.系统分析----数据流图。2.系统分析----状态图及数据字典。3.软件总体设计---软件的系统结构。4.软件详细设计---程序流程图及判定表。5.白盒测试-----逻辑覆盖。6.白盒测试-----基本路径测试。7.黑盒测试---等价划分及边界值分析。8.自动售货机系统对象模型的创建。9.自动售货机系统动态模型的分析。10.自动售货机系统功能模型的创建。配套与教学内容相对应的上机实验,使理论与实践想结合,使学生得以融会贯通所学知识,学生能对所学的理论知识有更深的理解,加强实践运用的能力。

(三)案例教学法在软件工程课程设计中的实施

精心设计和实施综合性的课程设计,以循序渐进的任务驱动方式,指导学生完成综合性的实验任务。本课程安排了56节课的课程设计,课程设计案例的题目:1.教师工资支付系统的研究与设计;2.仓库管理系统的研究与设计;3.ATM模拟系统的研究与设计;4.图书管理系统的研究与设计;5.无纸化考试系统的研究与设计;6.校友录系统的研究与设计;7.餐饮系统的研究与设计;学生也可以自拟题目。可以三个人一组或单人完成一个项目,在完成项目期间,学生可以互相探讨,也可以与老师探计。项目成果最终以论文+系统的形式上交,论文要求如下:第一章是引言,第二章是系统分析,第三章是系统设计,第四章是系统实现,第五章是系统测试,第六章是总结,然后附录是主要的代码。这些项目可以使用传统方法学的方法,也可以采用面向对象的方法进行分析、设计、编码和测试。

通过案例项目开发过程中发现的问题,有针对性地学习软件工程理论。使学生在实践中学会发现问题、研究问题、分析问题、解决问题。使得学生能对所学的知识建立完整的知识体系。

五、总结

在软件工程的教学过程中,采用案例教学法,打破了传统的填鸭式的教学方式,实现以”案例教学法”促进”软件工程”教学,激发了学生学习的兴趣,使得枯燥乏味的课堂学习变得生动活泼,提高了学生学习的主动性,达到了较好的教学效果,学生通过软件工程课程的学习,掌握软件工程的原理和方法,根据软件规模,用传统方法学或面向对象方法学对软件系统进行分析、设计、编码、测试、运行维护。提高学生的软件开发能力,为将来从事软件开发及项目管理工作打下坚实的基础。

参考文献:

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

[2]宋雨著.软件工程实践教程.清华大学出版社,2011,3

[3]刘光洁著..NET软件工程与项目案例教程.清华大学出版社,2012,1

第8篇

【关键词】软件工程 多媒体课件 开发

随着科学技术转化为推动各行各业发展的动力,软件技术、多媒体技术不断被改进并应用于教育教学当中,软件工程在多媒体课件中的应用范围不断扩大,受到越来越多人的关注。软件工程应用于多媒体是通过核心内容改造,通过工程化的方法提高多媒体的表达能力以及多媒体的吸引能力,如,音频、视频、游戏等吸引学生的眼球,提升教学效率以及课堂教学有效性。

1 软件工程的开发流程

软件工程方法经过几十年展得到升华,其运作思想与运作方法不断得到更新,不同种类、不同类型的工具软件被开发应用,形成针对过程的方法以及针对对象的方法。这两种方法子在实践中被检验,过程方法被广泛应用,这种方法属于结构化方法,它的中心思想为软件生命周期论。目前,软件生命周期论将软件工程的开发划分为以下几个阶段,第一,形成软件开发宏观计划。这一阶段的主要工作内容为:明确软件系统的总体目标以及软件系统的总功能,根据实际需要评估软件开发的必要性以及开发过程中可能出现的风险,并初步形成软件开发的实施计划。第二,根据需要进行需求分析。这个阶段的工作内容主要为分别分析软件工程各个项目的具体功能,得出各个软件项目的具体定义,例如,使用软件的群体分析、软件数据的分析、进行软件分析所需要的文字档案等。第三,具体进行软件设计。软件设计阶段还需要具体分为软件总设计、软件分设计两个阶段。软件总设计时段主要的工作内容为:将初步统计的各项使用需求设计为软件的各项功能,并理清各个软件模块的结构关系。软件分设计的具体工作内容为:具体规划软件各个模块的功能接口、工作流程以及形成软件设计档案。第四,软件程序编写。这个阶段的工作内容为:通过程序语言编码将已经完成的软件设计档案转化为具体的计算机程序代码。第五,对设计好的软件进行测评。这个阶段的主要工作内容为:检测软件模块的使用情况,对软件的组装情况进行测评。第六,对软件工程进行维护。软件在使用过程中会出现这样或者那样的问题,这就需要对软件进行维护,保证软件正常使用。

2 多媒体课件开发流程

2.1 课件开发原理

进行课件开发就要对课件的需求进行分析,根据调查确定课件的各个功能模块,例如,课件要能够在网站上被,同时能够单独使用;课件的引导功能不能被忽略,课件能够引导学生知道自己的学习进度、页面,并可以在随意页码切入进行具体学习;课件需要有书签模块,能够使学生离开后准确找到自己之前进入的页码;课件还需要有检索模块,帮助教师或者学生快速找到自己想要的内容。

2.2 课件的开发

使用课件之前要明确课件的使用性质,课件要实现模块化,在使用过程中及时发现问题,并对其进行调整。课件还要实现多功能化,既可以被教师使用,也可以被学生使用。例如,当学生自学完毕后,通过课件的全屏、小屏切换功能,转化为教师使用模式,并且全屏模式可以实现字体、亮度等调整,方便教师完成课堂教学。课件的其他功能还要实现智能化,例如,课件的检索功能要分为模糊检索、精确检索、关键字检索、题目检索等内容,检索功能下分为不同类型的检索项目,降低师生检索教学内容的难度。另外,还需要对教师、学生的课堂需求进行调查,研发动态测试题生成模块,师生按着设定的模式键入测试题题目要求,课件会相应形成测试题,并可以自主批改测试题,按着测试题的完成情况形成测试评估,联接测试的评价页面。这样的程序既节约开发时间又节省开发精力,形成的测试页面还可以给学生以参照,帮助学生形成自我评价。

3 软件工程思想与多媒体课件研发相结合

3.1 软件工程思想的引入

课件是软件的重要组成部分,因此也会具有软件的基本特点。随着社会的不断进步与发展,多媒体课件的研发也朝着专业化、系统化的方向不断发展,并且规模也在不断的扩大。尤其是在教育部门的倡导下进行的网络课程、教学软件的开发等,更加具有科学化和规范化的特点,并且顺应时展的潮流。多媒体课件的研发从另一个角度来看,就是利用工程思想、方法和技术进行的软件开发。此外,从当前时展的状况来看,软件工程思想应用到多媒体课件的研发当中是一种必然的趋势,将软件工程思想应用到多媒体课件研发当中,可以将教育辅助和软件工程相结合,实现多媒体课件开发的创新与跨越式的发展。

3.2 多媒体课件的研发

多媒体课件的开发与教学设计和一般的软件开发不同,具有一定的特殊性。多媒体课件作为软件工程的特殊组成部分,其在研发的过程中也具有一定的规律性。其具体表现为以下几个方面:

3.2.1 对课件内容的设想与开发

多媒体课件在进行研发时,主要根据特定的课程内容进行设定、研制,需要明确课件研发的意义和作用、以及使用的群体等问题,它是多媒体课件研发的开端和目的所在。

3.2.2 多媒体课件的设计

多媒体课件的设计是研发的关键,因此需要加强对该部分研发设计的重视。多媒体课件的研发与一般的教学设计不同,多媒体课件需要对其中的课程内容、学习者分析等进行细致的设计,实现总体体系轮廓明确,具体内容详细的目标。在进行教学设计和结构设计时,相关的工作人员要根据为其设定的中心进行完善的设计。在进行教学设计时要从课程教学的角度进行,在进行结构设计时,应考虑使用者使用的层次感以及其浏览的顺序等因素,既要保证两者内容的明确划分,同时又要使其保持内在的联系,使其符合教学的规律。

3.3 多媒体课件的评价

这个阶段主要为多媒体课件功能的测评,通过记录课件在课堂上的使用情况,对课件的教学功能以及自学功能的实现情况进行评估,在实践中发现课件的不足,例如,对课件的主体结构、课件的组成要素、课件呈现在人们面前的内容等问题进行检查,并提出维建议,形成书面报告,促进课件的完善。这个环节是课件的开发反馈环节对提高课件质量非常重要。

4 结束语

综上所述,随着软件技术的快速发展,教育教学应用软件技术的范围不断扩大,这使得教学水平不断提高。软件工程的多媒体课件开发越来越受到人们的关注,这样工作不仅有利于多媒体课件发展的专业性、提高课件的表现力以及吸引力,更有利于教学质量的提高。多媒体课件的开发者要不断提高软件工程的应用质量,从而不断提高多媒体课件的开发水平。

参考文献

[1]费华英.基于软件工程的多媒体课件开发探究[J].南昌教育学院学报,2013,12:114+116.

[2]刘嘉夫,齐昕,李前杰,熊鹰,马焕春.基于Unity3D的水污染控制工程多媒体课件开发[J].中国教育技术装备,2014,04:98-100.

[3]杨佩玉.基于软件工程的多媒体课件开发探究[J].电子技术与软件工程,2014,09:95.

[4] 雷耿华.基于Web的羽毛球教学CAI多媒体课件开发[J].电子测试,2014,13:31-33.

[5]蔡建春.从角色扮演类游戏中寻找多媒体课件开发的灵感[J].电子制作,2014,24:135.

[6]张瑜.多媒体软件工程的研究[J].计算机工程与科学,2014,S2:186-188.

作者简介

张莉(1977-),女,河北省大名县人。硕士学位。现为郑州幼儿师范高等专科学校高校讲师。主要研究方向为多媒体技术。

第9篇

【关键词】高职 组态软件控制技术 课程标准 设计

【中图分类号】G 【文献标识码】A

【文章编号】0450-9889(2016)08C-0074-03

随着当前工业自动化集成度越来越高,管控一体化技术在企业中的应用也在不断扩大,从而推动了组态软件控制技术课程在高职自动化类专业中的开设,并将其作为专业骨干课程,但各高职院校在开设课程过程中对课程目标、内容和要求等方面具有一定差别。笔者根据多年来组态软件控制技术课程的教学经验,设计出广西职业技术学院自动化类专业组态软件控制技术课程标准,在此与大家进行探讨,共同推动组态软件控制技术课程教学质量的不断提高。该课程标准展示如下。

一、课程性质与定位

组态软件控制技术课程是高职电气自动化技术专业的专业核心课程,其目标在于培养学生在电气工程师岗位上从事电气设备和自动化系统集成开发等方面的职业能力,达到本专业获取中、高级职业资格证书考证的基本要求,也是技术技能型人才所必须掌握的基本要素。

在课程设置上,前导课程有电工电子技术、单片机原理与接口技术、PLC控制系统安装与编程、变频调速系统安装调试与运行维护等,后续课程有自动化生产线安装与调试等。

二、课程设计思路

引入自动化仪表与装置行业标准,以工程项目和企业自动化技术员职业成长过程所对应的典型工作任务为学习内容,将职业素质培养融入课程,实施教学做一体化的过程性评价方法,具体设计思路如下:

第一,组建以学院专任教师和企业专家的课程开发和实施团队,分析电气自动化技术在专业职业岗位的工作任务,按照一定的逻辑关系进行排序,对完成任务应具备的知识、能力、素质做出较为详细的描述,形成团队成员认可、线索清晰、层次分明的工作任务分析表。

第二,根据能力复杂程度,整合典型工作任务。召开有教学专家、课程建设团队人员参与的课程标准建设会议,形成课程标准。

第三,引入自动化仪表与装置行业标准,校企共同进行课程整体设计、单元设计、教学组织设计、教学情景设计。

第四,以相关企业自动化控制系统操作、维护维修等职业岗位的工作过程为导向,从初级到高级,从简单到复杂,设计反应车间监控中心控制系统设计、开关量组态工程设计、模拟量组态工程设计、铝加工组态控制系统综合设计四个学习项目,包含简单工程的建立与运行、南南铝业模拟铝挤压组态控制系统综合设计等16个情境。

第五,根据教学规律及认知过程,构建教学计划、考核评价办法、课程考核标准及题库、多媒体教学资源建设,按照资讯计划、决策实施、评价反馈等步骤组织教学。

三、课程目标

(一)总体目标

通过组态软件控制技术课程学习,学生掌握组态软件控制技术的理论知识、操作技能,并具备工业自控系统组态、控制软件编程、参数设置调整能力,为从事电气工程师等工作岗位打下基础,并注重职业素养和诚信教育,提高学生的综合素质。

(二)具体目标

1.知识目标。(1)掌握课程中组态控制技术中常用的基本术语、定义、概念和规律,在今后工作中应能较熟练地应用这些概念和术语;(2)掌握组态控制技术组态方法,通过工程实例,学会制作组态相关工程;(3)对组态控制技术的发展趋势有所了解。

2.能力目标。(1)具备组态软件编程的基本能力;(2)具备组态软件与开关量设备、模拟量等设备的联机调试能力;(3)具有较强的典型自控系统设计能力;(4)能完成组态控制系统综合设计。

3.素质目标。(1)具备自我管理、团队精神、交往能力;(2)诚实守信,具有完成任务和解决问题的能力;(3)具备创新能力和自我学习能力;(4)具有吃苦精神和责任心,勇于承担责任,具备良好的沟通能力。

四、课程内容与要求

组态软件控制技术课程的项目、学习情境、要求以及对应的学时数,如表1所示。

五、课程实施的建议

(一)教学方法

针对不同的学习情境,选用不同特点的教学方法,主要教学方法如表2所示。

(二)教学评价

课程考核与评价采取笔试、口试、实操、作业展示、项目总结等多种方式,学生自评、小组评分、教师评分相结合,过程考核与结果考核相结合,注重能力和过程考核,过程考核占总成绩60%,结果考核占总成绩40%,如表3所示。

(三)师资条件

组成一支职称结构、学历结构、年龄结构、专兼比例合理的课程教学“双师”结构师资队伍。主讲教师由校内专任教师担任,应具有硕士以上学历或中级以上职称,能综合运用行动导向教学法,能较好掌握计算机技术、网络技术等新知识新技能,并具有相关职业资格技能证书,动手能力强;辅助教师由企业兼职教师担任,应具有较强的专业技术技能,具有较丰富的企业一线工作经验,具有高级工以上职业资格证书。

(四)教学条件

1.教学场地条件。教学做一体化教室:要求配备有电脑、组态王软件、PLC、板卡、智能仪表等设备,并且配备多媒体教学软件、投影仪和白板,方便开展一体化教学。

2.实训设施、仪器配备要求。学生每人一台电脑,4人为一个小组,需要配备PLC、板卡、智能仪表等设备;组态王6.55网络版软件(50用户)一套。

(五)其他说明

1.由于组态软件控制技术课程对实践经验及操作技能要求较高,应由专业技能熟练的骨干教师和企业技术人员共同实施,以学生为主体,教师主导,按照“教、学、做”一体的方式组织实施。

2.同时组态软件控制技术应用性强,应重视现场教学,通过认识企业生产流程,掌握组态软件控制在工业生产上的应用,提高教学效果。

六、小结

组态软件控制技术课程标准在自动化类专业中经过多年检验,取得了良好的效果,在培养高素质技术技能型人才取得了良好的效果,学生普遍反映良好。当然,该课程标准也存在一定的问题,比如软件的更新换代和功能提升,教学方式多元化发展,需要不断修改课程标准来适应需求,相信通过不断的努力,将来课程标准会得到逐步完善。

【参考文献】

[1]王佐芳.高职院校课程标准建设探析[J].中国电力教育,2011(32)

[2]王雨华.关于高等职业教育课程标准建设的思考[J].辽宁高职学报,2011(5)

[3]钟建珍,李桂霞.从教学大纲到课程标准转变的思考[J].职教通讯,2012(3)

【基金项目】2014年广西高等教育教学改革工程重点课题(2014JGZ159)

第10篇

关键词:软件工程;案例教学;不足反思;项目开发驱动教学

引言

软件工程是计算机相关专业的一门核心课程,具有综合性、实验性极强的特点,其研究的范围非常广泛,包括软件开发的技术方法、工具和管理等许多方面,而且新的技术方法和工具源源不断涌现[1]。该课程的学习目标旨在提升学生的分析与设计能力、编码能力、工程素养及团队协作精神,为学生成为一名合格的软件工程师打下良好的理论、技术及工程基础。为了实现这一培养目标,很多院校对软件工程课程教学进行了改革,其中最为重要的改革应属于引入案例教学[2]。案例教学法是指教师以一个实际项目的运作为主线,讲授软件开发的全过程,讲解时贯彻理论与实践相结合的原则,从工具、方法、技巧各个角度,对学生进行实用性培养,同时重点培养管理和设计能力,在理论上有的放矢,强调理论的适用和适度[3]。案例教学法的引入改变了传统教学中知识内容枯燥、理论性强、学生难以理解运用的状况,在一定程度上激发了学生的学习兴趣,活跃了课堂氛围,提高了教学的质量。但是,在软件工程实际教学过程中,我们发现了很多问题,教学常常达不到预期效果。

1、软件工程案例教学过程中存在的问题

1.1以“老师教,学生听”为主

软件工程课程教学虽然引入了案例教学,但是,学生在教学过程中仍然处于被动接受状态。从案例的选择到案例的开发过程讲解仍然以“教师教,学生听”为主,学生仅仅是项目开发的“旁观者”而不是“参与者”。因此,学生很难真正体会相关理论的重要性,更不用说转化为自身的能力素质。学生学完课程后,往往“什么都知道,却什么都不会”。

1.2案例选择不合理

在案例教学中,教师通过把知识点与案例相结合,使学生从个案的分析、比较中,更深入地了解软件系统开发与管理过程,软件工程案例教学的不足反思与对策研究文/田怀凤最终达到技术和知识点的掌握,因此案例项目的选择至关重要[4]。项目太大涵盖的内容太多,学生很难在有限的课堂教学中把握。项目太小又很难全面包含把软件工程的相关理论。有的项目算法相对密集,性能要求高,而功能需求简单,也很难用工程化的方法和手段对其开发过程加以促进。甚至有的教材或者教师仍然以C/S模式的软件为开发案例,不符合目前对软件B/S结构或者安卓开发的需求,使得学生学完软件工程课程之后,感觉课程的理论与现实需要脱节,影响学生学习课程的兴趣。

1.3不能满足学生对课程的不同期望

软件工程课程一般开设在大三下半学期,这时学生们的动手能力和专业技能差别很大。有些学生经过C++,JAVA等课程的学习以及参加大学生创新项目等方式,已经积累了一定的软件开发的经验,他们往往希望能深层次、系统的参与软件开发,培养管理能力,团队合作能力等。还有些学生由于自身主动性及能力的原因,动手能力还很弱,案例教学对他们而言更像“纸上谈兵”,往往只能记住一些理论、方法,不能通过课程的学习提高专业技能。

1.4实践课时不足

为了配合案例教学,软件工程课程一般会设置实践课时,供学生进行项目开发实训。但是,由于实践课时较少,(一般8课时左右),在这么短的时间内,往往只能完成项目的分析和设计的文档,其他工作要由学生课后完成,因为缺乏监督,难以确保每位学生都能保质保量的完成。

1.5对最新的项目实训工具介绍不足

随着软件工程理论的发展,软件项目实训的工具也在不断涌现,比如CASE工具、自动化测试工具、项目管理工具、配置管理工具等。在以往的案例教学中,教师往往注重讲解案例项目的开发过程理论,很少涉及这些工具的使用介绍,而实际情况是很多学生不知道用什么工具来表示分析设计的结果,也不清楚数据库设计、软件测试、项目管理等相关工具有哪些,如何使用。

1.6考核方式不能有效地激发学生的课后学习兴趣

采用平时30%+考试70%的考核方式,考核的重点还在理论知识的“纸上谈兵”,不能全面反映学生课后的努力,不能有效激发学生的学习兴趣。

2、改进措施

为了切实提升教学质量,培养学生的专业技术能力,我们以解决问题为目标,以教学模式的改变促进教学内容和考核方式等多方面有针对性地改进。

2.1以学生为中心的课堂教学模式

彻底改变以“教师讲,学生听”为主的教学模式,改变教师的角色,让教师的“教”变为项目的“引导”,学生的“听”变为项目的“开发”。把案例教学,变为项目驱动教学[5]。在整个教学过程中,由教师引导学生进行项目开发,让学生在开发过程中感受软件工程的理论,变“要我学”为“我要学”,再由教师对相应理论进行指导总结。具体实施方案如下:(1)有选择性的分组分工,满足不同学生对课程的不同期望在课程学习之初,教师对全班学生的专业技能和课程学习期望进行调研,选择专业技能较强或者有一定的软件开发经验的的几名同学担任组长,再由组长以自愿的结合的方式招募组员,将全班同学分成5人左右一组的几个项目小组。组长担任项目经理,小组中的其他成员根据能力分别担任编码、测试、数据库、美工等角色。这种分组方式,既防止了随机组合时的各组学生专业能力不均衡,又满足了不同学生的不同角色期望,自愿组合又利于团队融洽和交流。(2)从学生的实际需求产生项目案例在案例项目的选择方面,也完全以学生为中心,让每个开发小组自行选题。一般来说,功能需求较多,流程复杂而实现技术难度较小又为大家所熟悉的题目最适合。为了确保每组都能选到适合的题目,教师进行了引导,引导学生们从自己的日常生活需要出发,选择各类信息管理系统作为项目案例。比如“大学生社团管理系统”,“校园二手图书交易系统”等。(3)教师走下讲台,引导学生进行项目开发课堂教学不再是结合案例的理论讲授,而是根据软件开发的生命周期,由教师引导学生小组进行项目开发,并在开发的过程中,总结软件工程的理论。比如在需求分析阶段,教师首先让学生在课后以小组为单位,讨论自己项目的需求,再由教师在课堂上组织他们进行交流汇报,每一组汇报时,其他小组的成员都成为用户角色,提出新问题,直到确认项目的需求。然后由教师总结需求分析的方法,引导学生使用MicrosoftVisio和RationalRose进行需求规格说明书的撰写。软件生命周期的其他阶段按照同样的方式进行,先由学生小组自行主动学习开发,再由教师组织交流讨论,总结方法,引导学生使用相关项目开发的工具,一步一步完成项目开发。在这个过程中,由各小组的组长分配任务,协调安排人员,因为组长们有一定的项目开发经验和开发技能,保证了项目能顺利进行。小组内每个成员的团队协作能力和组长的组织管理能力都得到了锻炼。(4)成果汇报,总结经验在实践课时,安排所有学生进实验室,集中完成项目开发。由于各小组学生的能力有差异,项目进度各不相同,集中开发,有利于各小组的交流学习,教师也能随时指导。等所有小组的项目开发任务完成后,由小组组长进行成果汇报展示,教师和其他同学充当评委,指出得失成败,总结经验。教师从项目实践中让学生感受文档、规范编码、团队合作、项目管理等重要概念。这种“学生自学找出不足-交流汇报找出解决办法-教师总结理论经验”的项目驱动教学方法,极大地提升了学生的学习兴趣和主动性,取得了较好的学习效果。教师从知识传授者变成了项目开发的引导者、组织者和评价总结者。

2.2以项目开发为驱动设置教学内容

在以项目开发为驱动的案例教学中,对教师的能力提出了更高的要求,教师要能对项目开发的全过程精准的把握。在教学过程中,把教学内容巧妙地和项目开发任务结合起来,在学生最困惑最需要帮助的时候给与实践和理论的指导。每个阶段开始之前,提前将以往容易被忽略的项目实训工具进行介绍,比如软件分析与设计的工具MicrosoftVisio,面向对象设计工具RationalRose,数据模型建模工具PowerDesigner,软件集成编码开发工具VisualStudio等,让学生们掌握最先进的工具,更方便他们进行项目的开发。

2.3项目开发为主的考核评价方式,激发学生的学习兴趣

以项目开发为驱动的案例教学法,需要学生花费大量的课余时间,所以我们采用“项目发过程50%+项目文档20%+开卷考试30%”的方式进行考核。项目开发过程成绩=团队对软件工程的执行情况+团队的分工与协调情况+软件的复杂程度和最终实现情况。这种考核方式既要求学生小组不折不扣地完成项目过程开发,又充分强调了项目文档的重要性,再通过开卷考试强化软件工程重要的理论概念,将理论和实践充分集合,激发了学生的学习兴趣,取得了很好的效果。

3、结束语

以“学生为中心,项目开发为驱动”的软件工程课程教学方法,能更好地激发学生的学习兴趣,将学习的角色从受众变成主动者,让学生从枯燥的理论学习环境中解脱出来,全面深入体验软件工程分析、设计、编码、测试的开发过程,更好地培养了学生的理论应用能力,团队合作能力,问题解决能力,提高了工程实践能力。接下来,有条件的学校可以开设软件工程课程设计课程,或者与企业合作,选择最新的、为企业生产应用所需要的项目作为开发案例,让学生真正的做到学有所用。还可以将好的项目案例形成案例库[6],供后面的学生参考选择开发。培养具有高素质专业技术人才是一项需要长期坚持的系统化工程,需要持之以恒的不懈努力以及教学实践的不断尝试和反馈。

参考文献

[1]张海藩.《软件工程导论》(第6版)[M].清华大学出版社,2013

[2]王辰尹.面向应用型IT人才培养的软件工程教该关键问题研究[J].计算机教育.2014

[3]李峰.计算机软件工程专业卓越计划实践教学.计算机教育.2013

[4]吕云翔.《软件工程实用教程》[M],清华大学出版社,2015

[5]谭貌.软件工程专业多课程协作项目驱动教学模式研究[J],计算机教育,2011

第11篇

关键词:移动软件;项目实训;实践教学;教学方法

中图分类号:G434 文献标识码:A 文章编号文章编号:16727800(2014)001019102

基金项目基金项目:西华大学软件工程特色专业项目(10TSZY317)

作者简介作者简介:唐剑梅(1975-),女,西华大学数学与计算机学院软件工程系讲师,研究方向为软件工程、信息检索技术。

0 引言

作为校级特色专业,笔者所在学院的软件工程系近年来积极推进特色专业建设进程,设有软件开发、软件测试及移动软件开发3个专业方向。在西华大学特色专业建设基金的资助下,各专业方向的课程体系建设日趋完善。由于实践教学贯穿于高等人才培养的全过程,是提高人才培养质量、实现高等教育目标的关键环节[1],软件工程学科和软件产业不断发展,以及全国对高素质软件人才需求量激增的形势下,针对软件工程学科实践性极强的特点,学校较大幅度地增加了实践类课程和环节所占的比例。“移动软件开发项目实训”是近年来新开设的移动软件开发方向学生必修的一门很重要的专业实践课程,这门课将为培养更加符合社会实际需要的移动软件开发人才打下坚实基础,因此迫切需要研究和探索该课程的教学方法,以更有效的手段和方式提高教学质量。本文将从分组安排与项目选题、教师课堂讲授环节、学生实践实施环节、课程考核方式等方面进行研究。

1 合理分组,严格筛选项目选题

“移动软件开发项目实训”课程开设在大三下学期。此时学生已经学完了大多数基础及专业课程,移动软件开发方面也已经具备了Android平台下的开发基础。对于该阶段的学生来说,急需在大四的专业实习及毕业设计到来之前做好更充分的实战准备。因此,该课程的教学目标是:使学生学会移动软件开发项目的需求分析、设计、实现及测试相关技术,能将之前学到的点状知识和技能集结到面,同时整合训练各种移动软件开发所涉及到的主要技能点,为学生将来从事实际的移动软件开发工作做好技术准备。本课程不再采用前期程序设计语言实训课所采用的单元式训练为主、综合训练为辅的方式,而是采用实战项目的方式,让学生完整地实现一个综合性的中小型项目。

在该课程的第一堂课上,由教师对整个课程的概况和目标进行介绍,并给出该门课程的进度安排,让学生了解整个项目实训流程。接着进行分组安排,采用自由组合的分组原则,要求每组2~3人,并推选一个技术和沟通能力较强的学生为小组长。相对教师直接指派而言,自由组合的好处是各小组成员配合更加默契,课后的交流合作更易展开。而且学生中已有自发组织的软件开发兴趣小组,这样他们可以保持兴趣小组的组合来进行实训,更易于出成果。分组结果可能存在某些小组成员开发能力都较强,但某些小组成员开发能力都较弱的情况。对于较强的小组,可鼓励他们发挥创新精神和主观能动性,多在设计方面出新点子,在项目中大量使用新技术。课程结束后可鼓励其将成果用于参加一些竞赛,如Android平台软件开发大赛等。对于较弱的小组,则可降低对创新性的要求,建议他们选择一些注重基本技术的项目,即适于边学边练进而对技术的应用达到一定熟练程度的项目,这样能减少学生的畏难情绪,激发学生的学习兴趣和动力,使学生对移动软件开发的学习由被动变为主动,以便更好地将书本上学到的知识转化为实战经验。教师对移动软件开发中的几大技术进行介绍,提出实训项目选题要求(如要求不重题、要具备实用价值、要涉及不少于3个较大的技术面的综合应用等),并安排各小组根据自身的兴趣进行课后选题调研。

第二次课则由各小组作选题报告,汇报选题背景及意义,阐述项目涉及的主要技术面,其余各小组可给出建议和意见。这样既可集思广益,又避免了小组选题内容过于雷同。由教师进行审核和点评,工作量或涉及的技术面达不到要求的小组需重新选题,直至题目通过为止。教师要严把选题关,避免出现小组找寻现成源码项目抄袭的现象。

2 学生分阶段提交项目文档,进行阶段汇报

实训项目在规模和技术上应是企业实际开发项目的浓缩,因此要求是一个完整的项目。按照软件工程的思想和规范,至少包括需求分析、软件设计、编码实现、软件测试、进度控制、项目成果这6个工作过程,再根据具体情况,添加版本控制、文档书写、项目等工作过程,从而更加真实地模拟企业项目[2]。结合移动软件开发项目的特点,以及各小组题目涉及的主要技术面,各小组可根据自身项目情况对项目进展进行阶段规划和裁剪。教师则按照所有小组都会经历的开发阶段收取小组提交的阶段项目文档,听取小组的阶段汇报,进而评估其开发进展情况。

题目确定后,课程内容分阶段完成,各小组需按阶段要求提交相关文档,主要阶段包括:

第一阶段:在完成系统背景及功能概述和需求分析后,提交需求规格说明书。

第二阶段:进行软件系统功能界面规划及总体架构设计,提交软件设计文档。

这两个阶段由小组成员共同讨论完成。学生在这两个阶段同步进行开发前的技术准备工作,包括Android平台及Eclipse工具的使用,以及相关技术知识的复习等。

第三阶段:小组长分配开发任务,各成员分别进行自己所负责模块的实现与测试。此阶段持续时间较长,过程中要经历期中检查,各组需提交各模块的开发文档及已完成部分的代码。

第四阶段:进行集成测试,提交测试报告。

第五阶段:进行系统优化与改进。

第六阶段:程序打包。

第七阶段:教师验收项目,检查实训报告。

第八阶段:期末项目验收答辩,答辩通过后整理提交相关文档及代码。

教师事先通过学校的课程中心网络平台建好“移动软件开发项目实训”课程网站,将编制好的课程阶段进度表上传提供给学生下载使用,以便学生对整个课程安排心中有数。学生提交阶段成果也通过课程网站进行。

3 教师及时进行阶段总结及讲评

在整个实训过程中,教师要在3个阶段集中进行阶段总结及讲评。课程第一阶段完成后,教师根据各小组提交的需求规格说明书进行一次集中讲评,及时发现问题并要求小组整改,避免因需求分析阶段的失误而导致最终软件不合要求的情况发生。

第二阶段完成后,教师根据各小组提交的软件设计文档再进行一次集中讲评,以便及时纠正小组设计中的不合理之处。

第三次阶段总结安排在期中检查后,在各组提交部分模块开发文档及代码后,教师及时发现学生技术上的问题,对各小组项目开发中的典型性技术问题进行汇总及解答。虽然各组开发设计的主要技术面不完全一样,但仍采用集中讲评,目的是对用到相关技术的小组起到引导和提升作用,同时让未使用到该项技术的学生学习借鉴。毕竟各组项目涉及的技术面有限,因此应尽量全方位提升学生的知识和技术面。

4 强调课后不断线

“移动软件开发项目实训”课程总共只有48个学时,每周3学时,共16周,因此要想学生在如此有限的课时内通过这门课能有更多的收获,课后的继续学习必不可少。因此,教师一定要对各小组提出项目开发课后不断线的要求,对于各自完成的部分,各小组成员要尽量抽出共同的课余时间聚在一起继续完成。笔者所在学院的实验中心未被上课占用的机房对本院学生是免费开放的,这为各小组课余在机房继续进行项目开发提供了平台。

移动软件开发技术发展非常迅速,新技术层出不穷,更新很快,教师既要引导学生采用课堂上学到的知识和技术进行项目的设计和开发,也要在课后随时关注行业最新进展,保持对新技术的敏锐触角,也即课后对新知识新技术的了解和学习要不断线。

5 强调过程考核,注重答辩环节

为了使学生在实训过程中能够真正地提高他们的实践动手能力以及分析问题、解决问题的能力,能够独立完成一定规模难度软件的开发,除教师自身要努力提高个人授课能力和改进实训方案之外,还要有一套完善的考核机制对学生在实训过程中的表现和成绩进行评价,使学生能够对自己有一个正确的认识,及时看到自己的不足和差距,并调整自己的学习方法[3]。移动软件开发项目实训是通过任务来驱动学习的,让学生能够在完成任务的过程中不知不觉地熟悉和掌握最主流的技术,因此有必要通过阶段性考核,给学生定期施加压力,有助于他们更好地完成最终的实训任务。

在课程进行的一、二、三、四阶段,学生均要提交相关的阶段文档材料;在课程的第七、八阶段,学生将提交实训报告、最终的源码及相关文档。这些可作为教师进行过程考核的依据,教师可据此对学生的阶段性成果进行考核。同时,为培养出具有良好职业素质和操守的软件从业人员,对学生的学习态度和纪律性也要严格要求并纳入考核范围,所以教师每次课上要对学生的出勤情况进行考核。同一小组的学生,教师要根据其表现和承担的开发任务量给予不同的成绩评定。

6 结语

“移动软件开发项目实训”是一门实践性很强的课程,能集中训练和提高学生进行移动软件项目开发和设计的实际技能,是移动开发方向的核心专业实践课程。根据该课程的实际实施情况来看,本文关于该课程的教学方法激发了学生的动手兴趣和积极主动寻求解决问题的热情。但由于该课程为近年新开实践类课程,其教学内容也应紧随移动软件行业的发展而不断更新,所以其教学方法和措施目前还处于初探阶段,尚需持续不断地总结、改进、探索和创新。后续可考虑从两方面着手改进:一是与企业合作,引进真实项目进行实训[4];二是设计开发一个基于软件交付过程的平台,以便在软件交付过程的各个阶段,由教师设定学习任务、考核指标,通过学生提交的成果, 教师输入判定的各个项目成绩,然后由系统自动生成学生最终的考核成绩,从而改进实训教学手段[5]。

参考文献参考文献:

[1] 王皖陵,吴光龙.计算机专业实践教学体系的建立[J].实验室研究与探索,2007,26(6):8587.

[2] 黄能耿.基于工作过程的软件实训项目设计[J].无锡职业技术学院学报,2010,9(2): 5961.

[3] 张必英,胡文.计算机软件校内实训过程的管理[J].实 验 室 科 学,2011,14(1):180182.

第12篇

关键词:软件工程;程序设计;课程群;建设;实践

软件工程专业的培养目标是面向我国软件产业培养急需的工程应用型人才。软件产业的发展要求学生具备较强的系统分析、设计、开发与维护能力[1]。为培养学生软件系统方面的相关能力,许多高校的软件工程专业都设置了系列课程模块,如程序设计课程模块、网络技术课程模块、计算机体系和操作系统课程模块、软件工程课程模块等,这些模块往往是一些单独课程的组合,有很多学生学了这门课程,又忘记了那门课程,到毕业时专业能力达不到社会所要求的层次。程序设计课程群是软件工程专业系列课程的重要组成部分,其承载的技能培养目标是专业培养的子目标[2],处于非常重要的地位。课程群建设是专业建设的一部分[3],有利于打通课程知识脉络,避免课程内容重复或前后脱节,使前后连贯,内容融合,进而获得整体优势[4]。程序设计课程群主要培养计算思维能力、算法设计与分析能力、程序设计与实现能力和系统分析开发能力[5]。学生通过程序设计课程群的学习,可掌握1~2门程序设计语言,更进一步理解程序设计方法,熟练掌握常用的数据结构和算法,形成良好的程序设计风格,可独立分析、设计和开发中小型软件系统。所以对程序设计课程群进行研究并积极实践对专业培养目标的实现具有重要现实意义。

1问题分析

目前,大多数高校信息类相关专业都开设了程序设计系列课程,一般为C语言程序设计、数据结构与算法、java程序设计等。许多高校都将C程序设计作为第一门程序设计课程[6],一般安排在第一学期或者第二学期,学完C语言之后,再学其他程序设计课程,如数据结构等。由于C语言本身比较灵活且语法内容比较多,对于初学者来说并不太好掌握。一些教师在授课过程中,没有站在软件设计的高度思考教学内容,往往过多地强调语言成分的语法和语义,而忽视了计算思维能力[7]的培养,使学生从开始就扎进程序设计语言的细枝末节中去,忽略了软件工程思想的渗透,到最后学生掌握了一些语法,却不能写出较为优美的程序或没有形成较好的程序设计思维和风格。算法是程序的灵魂,数据结构和算法在课程群中具有基础和核心地位[8]。在实际教学过程中,学生普遍反映数据结构和算法课程抽象难学,在学习和实际应用中出现的问题比较多,很难写出能正确运行的程序,学习过程中成就感不强,学完之后还是不知道如何应用,很难达到预期的效果。由于在前期的学习中,程序设计基础没有打牢,对常用的数据结构和算法没有真正掌握,模块化程序设计思维没有有效建立,良好的程序设计风格没有形成,导致后续的高级面向对象语言程序设计学习很难深入,最终导致软件分析与设计能力得不到有效的提升。

2程序设计课程群建设

我校软件工程专业采取校企合作办学模式,由吉首大学和中软国际共同建设,企业参与人才培养的全过程,在具体实施过程中,学校侧重于理论教学部分,企业侧重于实践教学部分[9]。程序设计课程群是软件工程专业课程体系的重要组成部分,企业参与讨论与建设,确定该课程群以软件设计能力培养为主线,以C语言程序设计、数据结构、面向对象技术、算法设计与分析几门课程为基础组建课程群,C语言程序设计开设在第一、二学期,数据结构、面向对象技术、算法设计与分析分别开设在第三、四、五学期,第六学期可开设JavaWeb程序设计或Asp.NetWeb程序设计,使课程群在能力构建和开设形式方面形成一个不间断的体系。

3程序设计课程群实施

3.1精讲课程主要内容,提高程序设计能力

课程组教师首先需要站在软件分析与设计的角度研究各门课程在课程群中的地位和作用,把课程群中的系列课程作为一个有机的整体,研究各门课程的主要教学内容,针对课程重点、难点、疑惑点进行精讲,做到理论与实践课并重,有效提高学生程序设计水平。在课程群系列课程中,由于第一门课程是后续系列课程的基础,所以学生必须掌握它。在C语言的教学中,要渗透软件分析与设计的思想,把握程序的主要框架,不纠缠于一些细枝末节的语法。函数是C语言教学中的重点,需要重点突破,从模块设计的角度来考虑函数设计,对于一个具体的函数,则要掌握函数的返回类型、参数类型以及参数个数。如用函数处理一个数组时,需要传递数组的首地址和数组的规模,首地址用指针表示,数组的规模则有两种表示方法,一是数组的长度,二是数组的起始下标和结束下标,这两种方式可能会分别应用到不同的地方,如果教师一直不提示第二种方法,则将来学生在写数组做参数的递归程序时可能会遇到困难。从多年的教学实践来看,如果学生真正掌握了函数设计方法,再加上必要的算法知识,一般情况下,程序设计就会变得得心应手而且十分有趣;对于数据结构课程,采取以数据存储(内存)为主线的方法,将重点放在数据的存储和相关算法方面,在算法实现时渗透模块化的思想,需注意头文件和实现文件的定义,因为数据结构内容具有很强的连贯性且程序的初始化工作较多,如链表的具体应用则先要建立链表、树的遍历和节点的查找等则先要建立树、图的遍历和最短路径及关键路径等则先要建立图,在实验过程中有意识地把一些基础工作放入头文件,则会极大地提高实验的效率;在面向对象技术教学中,以面向对象程序设计的方法为核心,以语言中的面向对象机制为主要内容,在适当的时候引入《ThinkinginC++》、《EffectiveC++》、《ThinkinginJa-va》等优秀书籍中的一些思想和经验,要注重面向对象程序设计过程中大的程序框架的合理性以及具体处理算法的正确性;在讲授算法设计与分析的时候,应集中精力将主要算法讲透,直到学生学懂为止,在实现算法时,应充分运用面向对象设计的思想,将算法封装在类中;在web程序设计教学中,采用案例驱动的方式,精讲软件项目设计中的主要方法和主要问题,培养学生工程化设计思想。精讲的目的是让学生多练,精讲之后要布置任务并为学生提供练习环境和相关指导,必须充分发挥教师主导和学生主体作用,教师要认真检查学生的作业、实验和练习情况,及时纠正问题,引导学生运用软件工程的思想设计程序,培养学生良好的程序设计思维和程序设计风格,激发学生自觉学习和实现相关算法,最终提高程序设计能力。

3.2大规模开展程序设计训练,培养程序设计能力

为培养学生算法设计与分析能力,学院在晚上和周末开放了实验室,在实验室搭建了ACM在线测评系统(ACMOnlineJudgeSystem),并接入了校园网,结合C程序设计、数据结构与算法等课程部署了大量习题。学院利用课余时间,有计划组织学生进入实验室进行编程训练,并为每次训练配备了指导教师。平时,学生也可以在寝室登录平台进行训练。教师在讲授C程序设计等课程的时候,要求学生利用课余时间在ACM平台上完成至少上百道题的训练,并将完成情况计入课程的平时成绩。通过大规模开展在线程序设计训练,学生的程序设计能力有了明显的提高。

3.3开展课程设计训练,培养工程化设计思想

在课程群中除开设理论课程对应的实验项目之外,还针对整门课程开设了综合性课程设计项目,如C语言课程设计、面向对象技术课程设计、javaweb课程设计,单个课程设计周期为1-4周。学院课程设计项目主要由企业教师指导完成,该类项目采用分组形式,在组内模拟软件企业运行模式设置相关岗位角色,学生在仿真企业环境中,利用仿真的软件开发项目,进行轮岗和角色体验,培养学生的软件工程应用能力、软件项目开发与测试能力、职业素质等,从而使学生熟悉软件项目开发流程和规范,养成良好的软件开发习惯。课程设计结束时,要求学生演示并讲解自己的项目开发情况,由学院教师和企业教师组成评定小组进行评分。

3.4改革考核与评价方式,理论与实践、平时与期末相结合

理论与实践相结合。程序设计课程群内的课程都是实践性很强的课程,其目的是运用所学的知识解决实际问题,决定了课程的期末考核要综合考虑理论和实践两部分内容。理论部分主要考查学生对基本概念的理解和对基本知识的掌握情况,实践部分侧重考查学生的综合应用能力,这两部分成绩都在期末完成,占课程总成绩的60%左右。平时与期末相结合。期末考核重在体现学习的结果,平时成绩则侧重于体现学习过程,在课程总成绩中,平时成绩占40%左右,即一门课程约有40分来自平时的学习过程。平时成绩一般由出勤、作业和平时实验情况、课程设计情况组成。在学期开始第一堂课的时候将课程评分方式告知每一个学生,必须抓紧平时的学习,若平时分小于20分,则取消课程考试资格或直接将课程总成绩记为不及格。

4结语

程序设计课程群对培养学生计算思维能力、算法设计与分析能力、系统分析与设计能力具有重要作用。本文分析了学生在课程群学习中遇到的一些问题,从软件分析与设计的角度对课程群进行建设与改革,提出了以C语言程序设计、数据结构、面向对象技术、算法设计与分析等几门课程为基础组建程序设计课程群,给出了课程群的主要知识与能力体系要求,通过精讲课程主要内容、大规模有组织地开展程序设计训练、企业教师指导课程设计、改革考核与评价方式等方法进行教学改革,学生的程序设计能力得了到较大的提高。

参考文献

[1]韦迎春,文俊浩,陈蜀宇.以能力培养为核心构建示范性软件学院实践教学体系[J].中国高等教育,2011(2):49-50.

[2]乔付,王国权,张凤武.CDIO理念下计算机程序设计课程群建设探索[J].内蒙古师范大学学报,2011,24(11):39-41.

[3]孙雷,王新.计算机专业程序设计课程群的研究与实践[J].教育教学论坛,2013(11):222-224.

[4]翁伟,吴克寿,吴芸,等.程序设计课程群建设探索与实践[J].计算机教育,2009(23):123-125.

[5]王海舜,蒋巍巍.基于程序设计能力培养的软件设计类课程群架构[J].计算机教育,2012(2):23-26.

[6]万臣,谢芳,胡泉.计算机专业程序设计课程群的建设与研究[J].合肥工业大学学报:社会科学版,2009,23(1):33-36.

[7]汪红兵,姚琳,武航星,等.C语言程序设计课程中的计算思维探析[J].中国大学教学,2014(9):59-62.