软件课程教学

2024-07-06

软件课程教学(精选十篇)

软件课程教学 篇1

一、交通规划软件教学特点

交通规划软件课程的理论基础性、实践性、应用性非常强, 其教学具有以下特点: (1) 理论基础性强。交通规划软件教学是属于工程应用层面的内容, 需要学生首先掌握交通规划的理论基础知识, 了解交通规划的过程, 一般包括交通规划目标的确定、交通数据调查、交通分析预测、交通方案设计、交通方案评价和调整, 需要重点掌握交通分析预测核心模块使用的交通规划模型, 交通发生模型包括回归模型、交叉分类法等, 交通分布模型包括增长系数法、重力模型法等, 交通方式划分包括回归模型、离散选择模型等, 交通分配模型包括全有全无法、用户均衡模型、随机用户均衡模型等, 要掌握各个模型的适用性和需要输入的参数。具备了扎实的理论基础知识, 才能较快的理解软件各个模块的功能, 提高软件应用学习的效果。 (2) 实践操作步骤多。整个交通规划软件的操作有多个菜单命令、输入和输出参数及选项设置, 程序操作步骤多且继承性强[1], 如在Trans CAD软件中, 绘制期望线:tools→geographic analysis→desire lines, 运用重力模型进行交通分布预测planning→trip distribution→gravity application。

交通生成阶段输出的小区的产生和吸引交通量是交通分布预测阶段的数据输入, 而交通分布矩阵又是交通分配的数据输入, 最后得到路网上分配的路段流量、V/C等指标, 作为交通方案制定的依据, 整个交通规划预测过程又是一个连续复杂的流程。因此, 学生不容易记住每个操作的命令和过程, 提高了软件教学的难度。教学内容更新快:随着交通规划理论的发展, 应用软件也具有发展性特点, 不断进行软件的升级更新, 加入新的模块功能, 使得软件教材的编制很难跟上软件的发展步伐。在实际教学中教师需要不断的了解软件的发展动态, 不断补充更新教学内容。 (3) 软件应用灵活性强。交通规划软件教学不仅仅让学生掌握软件操作过程, 还需要让学生能够根据实际项目的前期资料情况, 灵活运用软件的各个模块, 来处理和解决实际问题。如, 在路网创建过程中, 对于大型路网, 属性数据的单个录入是一项比较耗费时间的工作, 如果有Excel或者其他数据文件, 就可以导入到Trans CAD中, 建立其与路网属性数据表的链接, 快速进行路网属性数据的填充。

二、交通规划软件教学内容

交通规划软件基本操作:对于Trans CAD软件来说, 包括地图的Map、数据表Dataview、矩阵Matrix、属性和定位Selection、输出文件Layout、网络和最短路径Networks/paths等基本操作。每部分都有相应菜单命令, 完成一定的功能。软件基本操作是对软件的菜单命令进行熟悉的过程, 进而为进行更高层次的应用操作奠定基础。交通需求预测:经典的基于四阶段法的交通需求预测是是交通规划软件的核心部分, 包括进行交通路网和小区的创建, 进行交通发生预测、交通分布预测、交通方式划分和交通分配。OD (Origin-Destination) 反推:进行交通出行调查获得交通是进行交通规划的基础, 然而进行大规模调查需要投入大量的人力和物力, 因此, 选取一些关键路段进行流量调查, 通过OD反推得到小区之间的出行分布量是一种行之有效的方法。借助软件进行OD反推, 需要创建路网和小区、特征路段流量输入、创建种子矩阵等。公交需求预测:在Trans CAD软件教学中, 需要根据公交现状创建公交路线系统, 录入线路和站点属性数据, 创建交通小区和公交网络, 运用一定的需求预测模型进行公交流量分配, 得到线路断面流量、各个站点的上下客流量等输出结果。交通影响评价:主要包括创建路网和小区、交通分布预测、交通分配, 在没有初始交通小区交通量调查数据的情况下, 还需要进行OD反推预测, 进而得到项目开发前后目标年的交通预测结果, 并进行对比分析。

三、交通规划软件教学方法

根据交通规划软件教学特点, 结合实际教学过程的经验总结, 对于交通规划软件的主要教学方法总结如下。工程项目结合法:应用软件的教学主要是培养学生运用理论基础知识应用于实际工程的能力[2,3], 采用与工程项目相结合的教学方法, 就是根据教学内容和教学目的, 选择合适的工程项目, 进行教学设计和开展教学活动, 交通规划软件教学过程中的实践性性强的特点要求其与实际项目结合, 利用与交通规划、设计研究院进行的城市交通规划课题, 如城市综合交通规划、公交专项规划、交通影响评价、高速公路可行性评价等, 进行教学内容的设计, 使得软件教学既能贴近实际情况, 又能够适合课堂教学, 也有利于学生学习。任务驱动法培养实践能力:任务驱动是建构主义理论中的一种教学模式。在交通规划软件教学中, 要给学生布置软件训练任务, 如给定某个城市一个小区域的公交路网和前期公交出行调查数据, 让学生完成从路线系统搭建到公交规划方案制定的整个过程, 这些任务让学生分组独立完成, 调动了学生在学习中的主观能动性, 培养了学生相互协作进行处理问题、解决问题的能力, 避免了灌输式教学存在的弊端。屏幕录像法的应用:屏幕录像法是指在操作计算机软件的过程中, 利用专用录像软件将操作步骤、鼠标动作、鼠标移动轨迹及动态变化的屏幕信息记录下来, 制作成图文并茂的多媒体课件, 然后用于教学的一种方法。其具有操作过程的真实性、屏幕信息的动态性、教学过程的可控性、教学方式的灵活性等特点[4]。减少了对教学环境的依赖性, 也有利于学生自主学习。由于交通规划软件操作步骤比较多, 一方面要将操作流程步骤发给学生参考, 因为学生在课堂上一边记录操作步骤, 一边进行软件操作, 跟不上教学进度, 另一方面结合屏幕录像法, 将过程记录下来, 方便学生回顾课堂教学内容, 快速掌握教学内容。

交通规划软件教学是培养学生交通规划实践能力的重要部分, 本文总结了交通规划软件教学的特点和交通内容, 提出了与工程项目相结合设计教学内容、任务驱动法培养实践能力、屏幕录像法的应用的教学方法, 以期通过这些方面来提高交通规划软件教学的效果。

参考文献

[1]秦焕美.交通规划软件实验教学研究[J].实验室研究与探索, 2007, 26 (2) :50-53.

[2]刘晓红, 廖信斌.CAD/CAM软件课程教学方法探讨[J].湖南工业职业技术学院学报, 2007, 7 (4) :143-144.

[3]黄清.高职常用工具软件课程教学研究与探讨[J].太原城市职业技术学院学报, 2010, (11) :51-52.

《软件工程课程设计》教学大纲 篇2

英文名称: Software Engineering Course Design

学分:3 适用专业:

参考学时:

3周

实验学时: 3周 070472 课程编码:

上机学时:

计算机科学与技术(专升本)

大纲执笔人:

一、课程目标

系(教研室)主任: 李震

《软件工程课程设计》是实践性教学环节之一,是《软件工程》课程的辅助教学课程。通过课程设计,使学生掌握软件工程的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握软件开发的基本过程,将理论与实际相结合,应用现有的CASE工具和软件开发文档规范,完成一个基于数据库的应用系统(DBAS)的设计与实现,把理论课与实验课所学内容进行综合,并在此基础上强化学生的实践意识、提高学生的综合运用能力和创新能力。

通过本课程学习,使学生掌握软件开发的基本概念、软件开发技术和流程;独立完成所有程序、文档的编写和调试工作;开发一套基于C/S或B/S结构的基于数据库的应用系统。形成数据库设计开发的基本能力;提高综合运用理论知识解决实际问题的能力。

二、基本要求

1、课程设计要求学生按项目分组进行,每个项目组由10人左右组成,可根据分组情况分别担任项目经理、技术经理、软件工程师、测试工程师、配置管理员、数据库管理员等角色。

2、在规定的时间内完成1个小型项目的计划、需求分析、设计、编码、测试和交付的全过程,要求按照软件企业的正规开发流程组织实施,并按照给定的文档规范标准撰写相关文档。

3、每组完成一个项目,题目可为学生信息管理系统、图书管理系统、在线考试系统、网上购物系统、超市管理系统等,也可自拟题目,但要经教师审核。

4、项目实训集中在机房进行,每天考勤,学生每天填写工作日志,每周进行周总结。

三、教学内容与学时分配建议

1、实训内容

(1)选题并制定项目开发计划

1天 由学生自愿或推荐选出项目经理,并成立项目小组,项目经理召集小组成员根据教师提供的题目进行选题,也可自由命题但要经教师审核通过。

针对所选项目讨论开发计划,明确项目的大小、范围、复杂度等,进行任务分解与任务分配,确定任务进度,确定完成项目的环境和工具,由项目经理完成《项目开发计划》。

(2)需求分析

2天

对系统的功能及性能需求进行分析,在项目组内答辩评审后,由任务承担人完成《需求规格说明书》。

(例如采用面型对象的方法进行需求分析,用Rational Rose工具进行UML建模。测试负责人组织书写测试用例。)

(4)概要设计

1天

在项目小组成员的配合下,任务承担人完成项目的初步设计任务,进行答辩评审后完成《概要设计说明书》。

(5)详细设计

3天

项目小组确定系统总体设计方案,建立软件系统的体系结构,并进行总体设计的答辩式评审,然后项目小组成员分工进行详细设计和界面设计,期间应建立数据库、表等,任务承担人完成《详细设计说明书》。

(6)编码及测试

7天

根据前期分析和设计工作进行代码的编写工作,要求给出详细的注释,包括:模块名,模块功能,中间过程的功能,变量说明等。

所有测试过程都要求采用综合测试策略;先作静态分析,再作动态测试。应事先制订《测试计划》,并要求保留所有测试用例,完成《测试分析报告》。

(7)项目交付、总结

1天

在全班范围内教师组织项目评审,项目经理完成项目开发总结报告。

2、提交内容

项目组按照软件工程文档模板要求提交以下文档的打印稿和电子稿:项目开发计划、需求规格说明书、概要设计说明书、详细设计说明书、编码清单(部分或全部)、测试计划、测试分析报告(部分任务)、项目开发中介报告。文档中必须注明完成者(签名)和完成日期。

每位同学要提交工作日志和周总结,需要项目经理签字。

项目经理提供本项目组的任务分工,及本项目组的成员工作评定,小组成员签字。

3、成绩评定 本次实训必须提交正式的针对特定项目的完整的设计文档和报告书。软件综合实训的成绩评定实行优秀、良好、中等、及格和不及格五个等级。优秀者人数一般不得超过总人数的20%。

四、教材及主要参考资料

《软件测试》课程教学探索与思考 篇3

关键词:软件测试;项目驱动;校企合作;课程改革

中图分类号:TP311

文献标识码:A

DOI: 10.3969/j.issn.1003-6970.2015.07.026

0 引言

随着软件规模和复杂性的大幅提升,如何保证软件质量的可靠性变得日益突出。而软件测试作为保证软件质量的关键技术之一,其在软件行业中的地位与日剧增,软件测试的理论和技术工具都在不断的更新。众所周知,软件质量的好坏直接影响着软件企业的发展进程,对软件质量的重视使得软件企业对软件测试人才的需求日益迫切,软件测试行业发展前景无限巨大。这也为众多计算机及相关专业的毕业生开拓了新的就业渠道,软件测试的教学工作显得越发的重要。基于上述背景,本文结合作者测试教学改革的实践,就该门课程的教学内容、教学方法等方面进行了一些探讨。

1 课程教学现状与面临的问题

当前,国内许多高校都没有单独开设《软件测试》这门课,只是把它作为《软件工程》课程的一个章节来讲,即使开设了该门课程的高校,大多因缺乏必要的测试实践经验及测试教学方法,教学效果往往不能达到预期的要求。因此如何帮助学生更好地掌握测试理论与测试技能,对我们的测试教学工作提出了新的挑战。目前,有关软件测试教学面临的问题主要有以下三个方面:

1.1 重开发,轻测试

目前,国内众多高校都或多或少存在着重开发,轻测试的思想,教学的主要精力都用在了对学生软件开发能力的培养,而忽略或轻视软件测试的教学需求,造成上述问题的主要原因有两个方面:一是,软件测试毕竟是新兴行业,目前国内重视的程度还不够,大部分软件企业招聘还是以软件开发岗为主,为了提高就业率,大部分学校只能侧重对学生编程能力的培养;二是,目前国内有关软件测试的教学素材还依然匮乏,好的测试教材不多,且软件测试实践环节需要的大量测试案例不足,教师自身缺乏实际的软件测试经验,从而造成很多教师都不愿意从事该门课程的教学工作,加之学生普遍认为测试没什么含金量,开发学不好才去学测试思想的流行,都给软件测试教学带来了极大的冲击。

1.2 课程内容设置不合理

目前,大部分软件测试教材对测试的讲解往往泛泛而谈,缺乏条理性,将测试技术、测试管理与测试工具混为一谈,学生很难把握测试的难重点,加之部分教材教学内容陈旧,不能紧跟测试最新技术前沿,学生学习兴趣度不高;测试课程内容普遍以理论讲解、概念介绍为主,缺少测试案例,淡化对学生实际测试能力的培养,学习的内容很难应用于实际的测试项目中。

1.3 教学手段和方法缺乏多样性

“PPT+板书”仍是测试教学的主要手段,教师注重满堂灌,学生只是被动的听,教学方法单一枯燥,学生课堂学习的积极性和学习效率大大折扣;而且教师在讲解测试基本原理时,往往就单一的测试知识点展开,忽略测试知识的完整性、渐进性,较少使用案例教学法,以项目驱动为主线展开知识,造成学生对测试原理理解不透彻,不能适应真正测试工作的具体要求。

2 课程教改思路

2.1 优化课程教学内容

软件测试教学重在对学生测试实践能力的培养,因此要合理分配好理论课程与实践课程的学时比例,尽量减少理论课程的教学学时,加大实践教学学时。理论课程的内容要做到“精而够用”,这就要求教师要着重梳理测试的基本理论、基本原理,挖掘出测试原理的精髓,摒弃不实用或对学生帮助不大的理论点,对测试理论讲解适度取舍。

笔者在实际的测试理论教学中,主要讲解测试的流程、黑盒测试、白盒测试、性能测试及面向对象测试等知识点,经实践证明,上述知识点能够做到“精而够用”。在实际的理论课程教学中,笔者不是单一的讲解每个测试原理,而是以项目驱动的方式展开,让学生在实际的测试项目中,循序渐进掌握测试的基本原理及方法。笔者选用在线招聘系统的客户端为测试项目,教学效果良好。对于测试工具的讲解则放在实践环节进行,提高了授课效率。

2.2 加强实践教学

软件测试重在实践,唯有重视实践,才能让学生真正掌握测试的基本方法,做到学以致用。为了达到对学生测试实践能力的培养,笔者精心设计了十次实验,这十个实验很好地涵盖了测试的基本流程及技术方法,具有一定的代表性。由于测试技术更新较快,在实验的设计中要充分考虑新技术、新平台的测试方案,如加入针对.net软件测试所需特殊性的测试技术实验、移动APP测试实验等,以培养学生适应未来测试工作的需要。

需要注意的是,仅通过单一的测试实验,学生还不能完全掌握测试的流程与技术,在有条件的情况下,还需通过综合性的测试案例来提高学生的测试水平,做到将各测试原理及测试方法融会贯通。笔者所在的学校现已进行了测试教学改革,增加了2个学分的测试课程设计,要求学生综合运用所学测试知识完成一个网站的测试实例,实践证明,学生学习积极性和测试水平都有很大地提高,

2.3 探索多样化测试人才培养方案

软件测试人才的培养与软件产业是无法割裂的一个整体。因此,培养符合社会要求的软件测试人才不单单是学校的任务,还应积极探索校企联合培养体系,把软件企业对学生的实际测试技能训练纳入到正常的培养方案中。尝试探索高校主要偏重对学生测试基本素质及基础理论知识的培养,而对学生测试职业素质及职业技能的培养则更多地置于真实的企业运行环境中去训练的人才培养体系。逐步建立高校与IT培训企业、IT企业的战略伙伴关系,鼓励教师与企业工程师的合作互动,打造共同奉献、共同获利的共赢平台。

学生在企业真正的测试环境中,通过真实案例的测试锻炼,不仅可以培养和训练协同工作、沟通交流、角色转换的意识,形成实际的工作能力,还可以使学生适应软件企业的工作环境和业界标准,并和国际先进的软件开发理念和测试技术保持同步。

有幸的是,笔者所在的院系现已积极走出了这一步。目前,我系与上海博为峰软件技术有限公司通力合作,共同培养软件测试人才,系部也引进了该公司的测试方案,相关教师也在积极培训中。

2.4 提高教师测试实践水平

“打铁还需自身硬”,为了适应培养应用型测试人才的需求,要求教师首先自身要提高测试实践水平,积累测试实践案例,逐步提高测试实践教学水平,而决不能照本宣科去教育学生。鼓励教师多下企业、及时了解测试学科前沿知识及掌握最新测试技术。在有条件的情况下,可以尝试教师与企业工程师的角色互换,相互交流,相互学习。

2.5 鼓励学生参与测试改革

在平时的学生培养中,应注重发掘动手能力强,有测试学习兴趣的学生,加大对这些学生的培养力度,可以适当调整教学内容和教学方法,鼓励学生勇于创新,勇于实践新技术,积极参与各类测试学术活动,提高自身竞争力。同时,注意引导学有余力的同学积极参与权威行业的认证与培训,考取相关测试职业资格证书。

3 结束语

软件测试课程教学方案研究 篇4

关键词:软件测试,应用型人才,教学方案

0 引言

随着我国软件产业的蓬勃发展以及对软件质量的日益重视, 软件测试也越来越被软件企业所重视, 软件测试正在逐步成为一个新兴的产业。软件测试人才需求量加大, 目前, 国内软件测试人才缺口高达20万, 已成为我国软件产业发展的瓶颈之一。为了配合高校应用型人才培养目标, 很多高校都设置了软件测试课程。作为一名教师, 如何上好这门课程, 培养出具备一定理论和实践技能的应用型人才, 是教师们应该深入思考的问题。本文将对黑盒与白盒测试两个方面的教学方案设计展开探讨。

1 软件测试课程的地位

软件测试课程是软件工程及计算机科学与技术等相关专业的专业必修课。其教学目的是通过本课程的学习, 使学生系统地学习软件测试的基本概念和基本理论, 深刻理解和掌握软件测试过程的基本方法和基本技术, 了解和掌握软件测试技术和主要发展方向, 为学生将来从事实际软件测试工作和进一步深入研究打下坚实的理论基础和实践基础。

2 教学过程中存在的问题

很多学生持有这样的观点:软件测试就是对软件进行测试, 测试软件能否正常使用就行了, 根本不需要什么技术, 更不需要什么理论指导。由此可见, 学生首先从思想上对这门课程有敌对思想, 认为学这门课程无用。另外, 长时间以来, 国内很多软件公司都是重视开发, 而对测试重视不够, 导致学生认为学习测试没有学开发有前途。种种原因导致的后果便是学生学习的积极性不高。因此, 调动学生学习积极性成了教师的当务之急。

3 重点问题教学方案设计

软件测试是指使用人工和自动手段来运行或测试某个系统的过程, 其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。为了达到这个目的, 要求学生必须要熟悉软件测试的基础理论, 理解和掌握软件测试的基本方法、过程和技术, 掌握黑盒测试、白盒测试的测试用例的设计方法, 了解测试文档的编写方法, 熟悉主流的软件测试工具。可以说, 这是一门枯燥的课程, 如何让这个看似枯燥的课程变得有趣起来, 让学生更愿意主动去学习, 值得考虑。

3.1 上好第一节课

良好的开端是成功的一半。在第一节课中让学生产生学习的主动性, 会达到事半功倍的效果。目前的大学生普遍缺乏学习主动性, 所谓的“学习无用论”经常在学生间传播。因此, 调动学生学习的主动性并非易事。而学生最关心的事情之一就是就业。目前, 软件测试的人才需求量相当大, 待遇也较其它行业略高, 发展前景可观。因此, 可以把软件测试行业人才短缺的现状首先展现在学生面前, 让他们知道学习这门课程会有很大的用武之地, 从而愿意去学。

其次, 让学生明白软件测试课程的主要内容, 激发其学习兴趣。兴趣是成功的关键起点, 教师要想办法让学生产生兴趣。当学生得知人才短缺的信息时, 往往会更加专心听讲, 这时候教师可以用提问的方式提出一些问题, 当学生无法回答时, 教师便自然地引出软件测试的主要教学内容, 从而让学生明白今后要学习的重点是什么。

最后, 向学生提出具体要求。让学生明白今后应该如何学好这门课程, 按照什么样的步骤和方法去学习, 才能达到课程目标。

3.2 黑盒测试方案设计

首先要让学生明白黑盒测试的基本概念和功能以及黑盒测试与白盒测试的区别是什么。黑盒测试主要包括:等价类划分法、边界值分析法、判定表法、错误推测法等基本测试方法[1]。

(1) 等价类划分法。在讲这种方法时, 首先要讲明白引入等价类划分法的动机是什么, 也就是要避免冗余但又要进行完备的测试。因此, 仅挑选出某一类中那些有代表性的数据来测试, 这些代表性的数据在测试中的作用等价于这一类中的其它数据。让学生明白了这个问题后, 便可以很自然地引入等价类的概念以及等价类测试的步骤。在讲等价类的步骤时, 可以先给学生讲一个最简单的例子, 比如对于平方根函数的测试, 通过这个例子让学生明白等价类划分的目的和意义。当学生对等价类划分法有了深刻理解后, 再举一个略有难度的例子供学生深入学习。

(2) 边界值分析法。相对于等价类划分法而言, 边界值分析法的概念要简单些。在讲这种测试方法时, 可以从自身的思维和编程习惯入手, 大多数人在设计算法和编写程序时, 往往会过多地考虑多数情况下问题的处理方法, 而往往对于特殊情况 (包括边界情况) 却忽视了。比如把“≥”写成了“>”, 这些都是编程人员经常犯的错误, 以此例来引入边界值分析法, 学生往往会深有体会, 从而对这种测试方法产生认同。接着, 可以举一些实践经验的例子, 比如实际中通过边界值分析法找到的错误所占的百分比等。边界值分析法中, 要讲解的重点是如何寻找边界, 以及边界值分析法设计测试用例的原则。针对每条原则进行讲解时, 教师要尽量去寻找那些学生平时应用较多的例子。比如, 可以测试用户名的长度是否符合规则为例, 因为学生在上网时, 很多网站都要用到用户名, 以此为例可以达到吸引学生注意力的目的。

(3) 判定表法。在讲这种方法时, 首先向学生展示一个判定表的形式, 很多教材中都用到读书指南决策表这个例子 (见表1) , 让学生了解判定表的外观。

然后再根据这个例子, 对每一列的情况进行分别讨论, 讨论的同时把各列的具体情况分别在黑板上列出来, 可以用这样的形式来列:如果怎么样, 那么就采取什么样的动作。以第5列为例, 描述结果如下:“如果你对书中内容感兴趣, 书中内容使你糊涂, 那么请回到本章开头重读”。当描述完部分列之后, 可以让学生思考是否这些就是所需要的测试用例。接下来再引出判定表法的主要作用及应用场合:判定表是分析和表达多逻辑条件下执行不同操作的工具, 能够将复杂的问题按照各种可能的情况全部列举出来, 简明并避免遗漏, 设计出完整的测试用例集合。最后, 可以通过一个具体的例子来讲解判定表法的步骤, 例如NextDate函数的测试。

3.3 白盒测试方案设计

与黑盒测试一样, 首先要让学生了解白盒测试的基本概念与功能。白盒测试又可分为静态测试和动态测试。这里只讨论动态测试技术的主要方法:程序插桩、逻辑覆盖、基本路径测试等[2]。

(1) 程序插桩。程序插桩方法是指往被测程序中插入操作来实现测试目的的方法, 即向源程序中添加一些语句, 实现对程序语句执行、变量变化等情况的检查。实际上, 就是向程序中插入一些语句, 从而获得所关心的信息。这也是在调试程序中经常用到的一种方法。在讲解时, 可以引入一个包含有循环的程序段, 教师可以提出多个问题, 比如循环体实际被执行了多少次?某一时刻某个变量的值是多少?从而引导学往程序中插入相关语句, 并将这些所关心的信息打印出来。通过这种方法, 不仅能够让学生比较轻松地理解程序插桩的方法, 而且还能够活跃课堂气氛。

(2) 逻辑覆盖。逻辑覆盖是白盒测试中动态测试的主要方法之一, 在这一部分的讲解中, 应该把重点放在各种覆盖标准的概念上, 教师在讲解时, 要多重复几遍, 以易于学生加强记忆。在具体讲解每种覆盖标准的过程中, 可以举一实例, 分别用不同的覆盖标准来覆盖。

(3) 基本路径测试法。对于这一方法, 教材上一般分4个步骤来讲解。在教学过程中, 不能一开始就讲解这4个步骤, 而要首先告诉学生基本路径测试法的最终目的是设计测试用例, 使得基本路径集中的每一条路径得以执行。那么, 如何得到基本路径集?接下来讲解具体的求解步骤。步骤讲清楚之后, 再列举具体实例, 在实例求解过程中, 可以适当设计教学互动环节, 以提高学生的课堂参与度。

4 结语

随着软件开发规模的逐步扩大, 软件测试的重要性变得更加突出, 越来越多的高校纷纷开设了软件测试课程。本文对软件测试中常用测试用例设计方法的教学过程进行了描述。教学实践证明, 软件测试课程教学效果良好。对相关专业毕业生流向调查统计发现, 许多学生毕业后在国内知名IT企业从事软件测试工作, 就业前景大好。

参考文献

[1]佟伟光.软件测试[M].北京:人民邮电出版社, 2008.

课程案例教学法软件工程论文 篇5

一、案例教学法的设计原则

案例教学法是通过真实的案例,并与我们身边熟悉的生活内容相联系,来学习专业的课程知识的过程。但是案例教学方法并不是随便设计的,在案例设计中要遵循一定的设计原则。下面我们简单论述一下,软件工程案例教学法设计的基本原则。

1.目的性

众所周知,软件工程课程是一门理论性比较强的课程,在教学过程中要求理论与实际情况相联系,让学生把理论知识应用到实际联系中去,发现问题,解决问题。巩固软件开发专门技术,并应用到实践中去,因此,在案例选择和设计的过程中,要按照教学目标和要求来展开。

2.真实性

案例设计的真实性是指,要通过实际的项目作为研究和讨论学习的核心,给学生营造一个真实的学习环境,在课堂教学中,通过接触真实的问题,来提高学生的实践动手和操作能力,为以后的软件开发提供坚实的实践基础。另外,还要邀请国内经验比较丰富的老师或资深比较深厚的软件工程师,对案例进行编写以及对开发的实际项目进行讲述。

3.代表性

软件工程课程涉及的方面比较广泛,系统的设计和开发都比较广泛,因此在教学过程中,案例的选择还要具有典型性和代表性。具有代表性的案例才能将实际的理论知识更好的应用和实践,同时也扩大了应用的范围,对培养学生解决问题的能力和思维方式有着积极的意义。

二、案例教学法的设计方法

面向对象方法学和生命周期方法学是软件工程的两种基本方法学,这两种方法学都把软件的生命周期,分别分成几个不同的阶段对系统进行分析、研究、设计、实现。因此在对于案例教学法的设计,要按照不同的阶段对系统开发进行设计,针对其中不同的现实问题设计不同的解决方法和案例,并且对案例的应用要分阶段的进行降解。当整个案例课程教学方法完成后,再对学生布置几个综合性的案例,对所学的知识进行巩固和加深印象。一般来讲,综合性的案例内部联系往往比较紧密,包括的内容也通常比较多,运用和调动的知识和技术也比较广泛,因此,从整体上来说,综合性的案例教学,对学生综合能力和综合知识的提升发挥着重要的意义。

三、案例教学法的应用

案例教学是软件工程课程教学的主要方法,对于案例教学法的应用,我们要考虑以下方面的因素。首先,通过案例讲解后,让学生们知道软件工程的基本方法和原理,然后把一个具有代表性的、真实的、易于理解的实际案例导入到软件工程的教学中去,把软件工程课程中抽象的概念和理论,通过具体的实际案例生动、形象的表达出来。举例来讲,当讲授课程中生命周期方法学时,课程讲解从问题的定义出发,再对其进行可行性研究和需求分析,然后进行设计,编码、测试和维护等一系列的教学管理工作。这样把学生接受的`知识有序的连接起来,让学生在具体的案例中掌握DFD、E-R图、Warner图、HIPO图以及Jsckson图的绘制和测试方法,并且理解基本的含义和作用,以达到良好的教学效果。其次,案例教学的应用必须要调动学生的动手能力,让学生参与到案例教学的设计和分析中来,这样才能培养学生的实践能力和动手操作能力。对此我们对软件工程课程进行了综合案例设计,具体设计内容主要从如下几个方面来阐述。

1.确立项目开发计划

首先,项目组完成“可行性研究报告”的撰写,然后根据“可行性研究报告”确立项目开发计划,对每个组成员进行分配任务,确保每项任务的进度和项目使用的各项工具。对每项任务需要完成的时间和日期进行规定,最后再对项目开发计划进行评审,不断完善。

2.需求分析

需求分析是项目开发和设计研究性强度的分析,通过对项目任务的结果和进度,相关负责人员对项目需求性进行分析,并撰写“需求分析说明书”,然后再经过相关的评审人员进行评审,不断完善需求分析内容。

3.软件设计

参考项目进度和任务分配结果,以及“需求分析说明书”,由相关负责人对项目进行初步设计,并对具体的设计内容和任务进行细分,其他人员要辅助开展完成项目设计任务。然后对设计内容撰写“软件设计说明书”其中包括数据库设计、功能设计以及人机界面设计,并撰写相关的“软件测试计划”。其中人机界面设计是一个重要的环节,在设计过程中要兼顾考虑技术和人两个方面的因素,保证界面的一致性、简洁性以及易操作性。

4.实现

按照项目的具体任务要求,以及相关的指导说明以及计划书等,完成具体的软件工程项目设计,达到项目设计的要求,实现项目设计的目标,并撰写相关的程序设计清单。

四、结语

《软件工程》课程教学方法的探索 篇6

关键词:教学改革;软件工程;教学方法

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2012)02-0163-02

一、概要

1968年秋,NATO(北约)科技委员会召集近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。会上首次提出软件工程的概念[1]。软件工程是指导计算机软件开发与维护的工程学科;是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理措施和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它[2]。虽然软件工程应用了几十年,软件人才依然紧缺,大部分大学毕业生刚毕业缺少项目经验、实用技能和职业素质。用人单位不得不再投资,对刚毕业的大学生进行再培训,IBM公司和Microsoft公司对新员工的技术培训就是一个很好的例子。虽然各高等院校意识到这一现象,对软件专业、计算机应用专业都开设有软件工程课程,但是由于软件人才培养的实践性、连贯性、分工协作性,使得在大学环境下培养软件人员的方法、手段上面临着不少困难,具体表现在:软件专业的大学生在校园里缺乏实战项目、大学缺乏软件项目经理、缺乏有实际软件项目开发经验的教员。目前国内《软件工程》教学还是老师讲得多,学生做得少。学生也只是注重具体的编程能力,对于软件开发项目的全局不够重视,团队观念不够强,学生学得不扎实,兴趣不是很高。鉴于本文作者具有国内外软件开发公司的多年工作经验、多个项目的项目经理的工作经验,具有国内外大学的学习、科研经验,具有《软件工程》、《软件开发》、《项目管理》等课程的教学经验,特此介绍《软件工程》课程的教学方法,从理论和实践两个方面促进高校《软件工程》课程的教学改革,目标是充分调动学生学习的积极性、主动性和能动性,培养学生大型软件开发项目的综合能力。

二、教学目标和内容

本课程的教学目标是让学生掌握求解软件的基本思想、工具、技术、过程和方法,为从事计算机软件开发、测试与维护奠定良好的基础。从实用的角度讲述软件工程的基本原理、概念和技术,强调软件开发过程的方法研究,使学生掌握软件分析、设计、实现和测试等基本技术以及面向对象分析和设计的基本方法。通过案例研究和实践,实际运用软件工程的原理,掌握软件项目管理和团队开发的基本技能。具体内容包括软件工程与软件过程概念、结构化分析、设计和实现、面向对象的分析、设计和实现、软件项目管理基础、统一建模语言基础等内容[3、4]。

三、教学方法

众所周知,大学本科软件工程及其相关專业的学生,在大学学习期间,对软件开发接触的不是很多,特别是大型的项目,更是时间上和环境上的不允许。因而学生更注重于具体的编程技术而缺乏项目组及其团队精神。为此我们探索对《软件工程》课程的教学进行改革。中心思想是以学生实际情况为基础,以实际项目开发为主线,以企业软件开发过程中的问题为引导,特别是以本人多年的企业软件开发经验为实例,在讲述理论知识的同时,举出软件开发过程中遇到的实际问题,并讲述利用理论知识和其他知识解决问题的方法。为此特别设计若干个实际开发案例。从课程的第一节课开始,就要求学生和实际的开发案例联系起来。随着理论知识的逐步讲解,软件项目的实际开发过程的各个阶段也接着逐步进行。每一个阶段的完成,就是下一个阶段的基础及开始。最终系统地完成整个软件开发任务。具体来说,就是将课程讲解分成软件需求分析、系统原型建立、系统设计实现、系统测试、和系统总体报告等五个相互关联的软件开发阶段讲解,考核方式也是围绕着这五个阶段,要求学生每个阶段都提交阶段报告,最后现场演示并提交总体开发报告。这样既解决了以往教学上理论讲解和实际软件开发脱节的问题,又解决了对众多学生考评的问题。下面以一个冰酒销售系统为实践案例进行说明:首先,在教学的第一堂课,就提交给学生软件开发案例,即用户(冰酒销售商店老板)自述:“我是一个果园农场主,又是一个冰酒供应商。我向市场上提供不同种类的冰酒。我的客户可能是小商店、超市、批发商、或个人。客户可以通过电话购买冰酒,也可以到我的商店上门买酒。我以前是将每一次客户及购买信息登记到一张卡片上,并计算费用。我还要根据客户不同的要求送货,当然送货费用越远越高。我将所有的卡片放到一个盒子里以便查询。月末我还要对卡片进行统计。随着我的销售量的增加,我发现越来越难于应付了。现在需要用电脑系统来管理。”让学生已开始就有思想准备,就有一个目标,就有一个问题,即如何去完成软件开发任务。然后引导学生要有团队精神,要求学生自行组成软件开发小组,每一个开发小组4人,最多5人,最少3人。并将软件开发任务和以大作业形式分五个阶段提交报告的考核形式及要求分发给学生,使学生能够真正从软件工程和实际软件开发的角度对该课程的学习内容和要求有一个初步的认识。接下来的课程内容按照上述实践案例的实际项目开发过程进行分阶段段讲解和实施。第一阶段是软件需求分析阶段。本阶段首先讲述软件工程与软件过程概念,然后讲述结构化分析的方法和手段,再接着引入面向对象的程序设计和面向对象的需求分析方法,组织学生讨论,模拟软件需求调研以及起草用户需求分析报告。本阶段结束时,每个开发小组提交一份软件需求说明报告。报告内容要求包括报告封面、目录、各组员单独起草的软件需求说明报告、组内讨论分析结果及每个成员对该报告的贡献比例、和开发小组提交的软件需求说明报告。注意事项:可以按照不同的报告模板格式书写,但是主要内容不要遗漏,主要内容应该有实体关系图、数据流图、数据字典、概要功能说明、和详细功能说明。第一阶段提交的软件需求分析报告,我们会及时批改并反馈给学生。第二阶段是系统原型建立阶段。该阶段是在第一阶段的基础上进行的。在该阶段,主要是介绍各种软件工程的开发方式,包括结构化开发方式和面向对象的开发方式,并选择目前比较流行的原型建立快速开发方式对冰酒销售管理系统进行开发。特别强调系统原型的建立一定要在第一阶段的软件需求报告的基础上实施,切忌想当然的自行设计。该阶段结束时要求提交系统原型报告,其内容要求有报告简介、报告目标、报告范围、定义及缩略语、系统原型设计(对于本案例,主要是界面设计)图示及文字说明,报告后面必须有附录,即大作业第一部分,按照老师反馈信息修改后的小组提交的软件需求说明书。第三阶段是系统设计实现阶段。本阶段是在第一和第二阶段的基础上进行的。在第三阶段,主要介绍结构化程序设计的准则,包括模块化、抽象、迭代、信息隐藏、启发性规则以及面向数据流、面向数据结构的设计方法,同时介绍面向对象的程序设计的基本方法、设计风格,以及统一建模语言等设计工具。第三阶段要求在软件需求说明报告和系统原形报告的基础上提交系统设计、实现报告。报告内容及格式要求有简介、目标、范围、定义及缩略语、系统设计(包括用例图、类图、顺序图、活动图、和功能模块图及其文字说明)、系统实现(包括描述系统实现的环境,开发工具等)、参考、和附录(包括文档说明、小组成员贡献说明等)。第四阶段是系统测试阶段。本阶段是在第三阶段系统实现的基础上进行的。这一阶段主要讲解软件测试的各项技术和测试方法。要求学生提交测试计划和测试报告。其中测试计划内容应该有范围说明(冰酒系统概述和文档描述)、参考资料、测试计划(包括单元测试、集成测试、和系统测试的测试进度,对功能和性能进行测试的测试方案,测试环境,和测试人员安排)、和测试说明(包括功能测试说明,要求提供测试用例,例如系统进入测试、客户管理测试、产品库存管理测试、订单录入测试、订单修改测试、单查询测试、订单统计测试,以及性能测试,例如压力测试、系统反应速度等。软件系统测试报告内容应该有范围说明、参考文献说明、测试结果概述、详细测试结果说明(包括各功能模块的测试,要求截图及说明)、和总体评价。在完成了上述四个阶段的任务后,就是第五阶段的系统总体报告阶段。本阶段主要是概括总结,综合、串通上述四个阶段。在此阶段主要介绍软件开发过程中遇到的一些实际问题,而这些问题往往与各阶段的衔接有关。同时介绍软件项目管理,引导学生以项目经理的视野去看待问题。作为对学生的考核,要求各开发小组提交系统开发总体报告,同时作现场演示汇报,每一个学生对其他小组的演示进行现场评分,作为最终分数的一部分。

本教学方法以一个实际开发案例为主线进行讲解,解决了大学校园里缺乏实际软件项目开发的难题,提高了学生的学习兴趣,同时避免了大批学生一个老师带造成的程度差异,考核繁琐等问题。本教学方法在深圳大学软件工程专业09级50多名学生进行实验。学生们对《软件工程》课程有了初步的理解,特别是对团队精神和项目经理角色有了深刻的体会,教学效果良好。

参考文献:

[1]Roger S.Pressman,SoftwareEngineering-A Practitioner's Approach,Sixth EditionM].McGraw-Hill,2005.

[2]Jeffrey L.Whitten.系统分析与设计方法(第6版)[M].肖刚译.机械工业出版社,2004.

[3]张海藩.软件工程导论(第五版)[M].清华大学出版社,2008.

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

作者简介:朱安民,分别于1987年和1990年获得同济大学计算机科学专业学士和博士学位,于2005年获得加拿大圭尔夫大学计算机工程专业博士学位,目前是深圳大学计算机与软件学院的教师。

软件课程教学 篇7

一、概念的抽象和混淆

通常软件是由程序、数据和文档等构成的。从未学习过《软件工程》课程的学生往往认为程序即是软件, 这种看法是严重错误的。如果不区分这种基本概念, 学生会认为软件只需要编程而忽视需求分析、设计和测试等工作任务, 而这些任务却是开发软件的重要任务, 其比重远远高于编程。在教学中可以借助比喻、案例和启发式等多种教学法避免概念抽象和混淆。教师先用电饭煲产品作比喻, 可把程序看成是电饭煲, 程序具有“煮饭”等功能;把数据看成是电饭煲要加工的各种饭菜, 数据是要程序处理的;把文档看成是电饭煲说明书和设计图等资料;把软件看成是电饭煲+饭菜+说明书等。通过比喻, 学生初步认识了软件、程序、数据和文档的概念和彼此之间的关系。然后教师用学生熟悉的暴风影音等软件作为案例进行演示和分析, 其程序是指暴风影音图标所对应的“.exe”文件, 通过该程序可以打开播放界面实现各种功能, 其数据包括影碟文件和在线影视数据等, 这些数据被程序加工才显示出丰富的影视效果。由于用户会遇见播放等问题, 暴风影音提供了在线帮助文档。通过这个案例学生能把软件概念和真实的软件建立起联系, 深化了学生对概念的认识。最后学生根据自身体验分析一款熟悉的软件并指出软件中的程序、数据和文档文件。学生会依据之前对概念的认识主动思考“软件中的什么文件是程序?什么文件是数据?什么文件是文档?”等问题, 学生互动带来了良好和轻松的学习气氛, 之后教师再进行点评, 包括对问题分析和学生表现等方面进行点评。经过上述教学, 学生能较好分析游戏软件, 能把存盘文件和存储用户名和密码的数据库归类为数据, 能把游戏密技说明书和游戏教学视频文件归类为文档, 能找出游戏对应的“.exe”程序文件。

二、细化软件开发模型

同任何事物一样, 一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段, 这称为软件的生命周期。生命周期模型规定了生命周期划分成哪些阶段及各个阶段的执行顺利。典型的软件生命周期模型特点是模型数量多、知识抽象性和模型工作任务多等, 这使学生很难区别各个模型的特点, 很难激发学生的学习兴趣, 很难让学生参与模型工作任务的实践, 以及很难弄清彼此间的关系。把抽象知识适应性地转化为具体的和容易实践的任务能降低学生的学习难度。在教学中, 可先让学生以团队的形式讨论分析软件工作任务的开始时间和工期等内容细化软件开发模型, 再绘制出细化后的软件开发模型, 最后比较和讨论分析各种软件开发模型, 这能使学生更加深刻地认识软件开发模型。以增量模型教学为例, 先让学生团队在课堂上召开会议, 讨论软件立项和以头脑风暴法粗估计系统功能。讨论软件立项是让团队成员提出软件项目交给团队共同讨论, 其目的是统一成员意见和激发学生的学习兴趣, 它是后继工作的基础。要召开好会议要把握好会议时间和系统功能规模等几个要点, 会议时间要短, 以5~10分钟为宜, 时间过短就会有成员没有机会参与讨论, 时间过长会议效率将降低。团队成员都要熟悉已立项的软件系统, 这样所有队员才能积极参与到会议中, 这样的软件可以是寝室管理系统或教务管理系统等。系统功能规模以4~6个主要功能为宜, 功能过少就不能很好地仿真真实的系统, 很难激发学生兴趣, 功能过多则很难在规定的时间内完成任务。然后再让学生团队讨论估算每个功能的开始工作日期以及需求分析、设计、编码和测试等任务的工期, 功能的开始工作日期按业务紧急优先度安排, 开始工作日期应安排在前序功能的编码或测试阶段, 功能的工期取各个成员估计工期的平均值。这样做能避免学生感觉知识抽象, 让学生感觉到事物较具体且容易实施。最后要求学生应用Excel软件制作表格填写系统各个功能的开始工作日期和需求分析等任务的工期, 并依此生成甘特图。由于学生在计算机文化基础等课程中未绘制过甘特图, 因此教师要演示操作如何绘制表格和生成甘特图。该教学法能让学生全程参与实践, 从而强化了对增量模型的认识, 学生能通过甘特图较直观地观察到工作任务间的关系以及功能之间的关系。通常学生都较好地完成工作任务, 但存在工作任务开始工作日期安排不合理等问题。例如, 某功能的开始工作日期安排在前序功能测试工作任务之后, 教师可以组织学生讨论这样的安排是否会导致开发人员无事可干, 让学生更加深刻认识模型。

三、面向用户的需求分析教学

软件需求分析是指对要解决的问题进行详细地分析, 弄清楚问题的要求, 确定系统必须要做什么。软件需求可分为三个不同层次的需求:业务需求、用户需求、功能需求。它们分别从组织、用户和开发人员角度描述了需求。当软件规模较小, 软件开发关注的是代码而不是需求, 而现代软件都较复杂且规模较大, 需求分析在软件开发中越来越重要甚至直接关系到软件的成功与否。在实际教学中, 学生通常不会区别需求的层次性, 其直接关注的是功能需求, 其更关注的是如何编码实现系统。但由于软件复杂和规模较大, 不可能直接获取到软件功能需求, 这导致学生认为用户需求是直接获取的。面谈、问卷、UML用例图和用户故事点等技术方法是用户需求获取的常用技术方法。这些技术方法的一个共同特点是需要用户参与到需求分析中, 由于学生没有工作经历不能够把用户的业务需求描述出来, 这加大了学习难度, 所以用户角色不应该由学生扮演。相对而言, 教师工作和生活阅历丰富, 能较好认识和描述业务, 用户角色可由授课教师或邀请相关教师扮演。扮演用户角色的教师其职责是学生交互描述需求和审核学生是否正确描述出用户需求等。学生团队的工作是设计面谈和问卷问题以及应用用户故事点等方法描述需求。学生设计的问题往往存在不够系统、题量偏少、需求相关性较低和未从用户角度描述需求而是描述系统操作等问题, 教师在教学时应该要注意该类问题的发生和指明问题所在。这种教学法把传统的讲授法转成用户和开发人员的沟通交互教学, 把需求案例讲解转成开发人员描述需求和用户对需求进行审核, 其特点是仿真度较高、可操作性高和实践性强等。

文中探讨比喻等教学法在软件和程序概念中的教学应用, 探讨在教学中融进软件功能以及功能的工作开始日期和工作任务工期, 细化软件开发模型避免教学空洞, 探讨软件需求层次及面向用户需求层次的教学方法。教学实践表明, 这样的教学把抽象的知识具体化、形象化和层次化, 强化了教学实践性, 能够提升教学效果。

参考文献

[1]李亚红《.软件工程》课程教学改革探讨[J].长江大学学报 (自然版) , 2013, 10 (01) :1, 96-98.

[2]孟庆见.软件工程课程教学方法改革研究与实践[J].福建电脑, 2013, (04) :29, 167.

[3]张振琳, 张雪松, 于慧艳“.软件工程”课程实践教学改革探索[J].中国电力教育, 2012, (29) :90, 103.

[4]李金靖.对软件工程教学方法的探索[J].信息系统工程, 2012, (04) :153-154.

《数学软件》课程的教学改革初探 篇8

随着科学技术的快速发展, 数学模型已经在社会各个领域得到广泛的应用, 数学软件就是建立数学模型的强有力工具, MATLAB、Mathematica、SAS等都是很优秀、应用广泛的数学软件[1]。数学建模, 数学实验等一系列基于应用的数学课程需要有数学软件的支撑, 数学算法思维被引入实践教学当中, 数学软件的应用正是算法思维得以实现的程序设计工具[2]。高校数学相关专业开设了数学软件课程。数学软件课程主要针对只讲定理、推导、计算, 理论性比较强的课程, 如高等数学、线性代数、微分方程、图论等, 讲授如何运用MAT-LAB、Mathematica等数学软件, 结合数学模型、算法设计和软件应用, 分析推导过程, 计算结果, 通过理论与实践相结合加强学生对所学知识的感性认识[3]。

二、《数学软件》课程的现状

面向21世纪高速发展的科技, 高等教育肩负着培养基础扎实、知识全面、有创新思维的实践性人才, 而高等教育主要以课堂讲授、理论教学为主, 这对于《数学软件》等实践性较强的课程教学远远不够[4]。

1. 大纲教材难定。

数学软件引入高校教学的时间不长, 推广过程中还存在各种问题[1,2]。其中的关键问题是教学大纲难以确定, 究其原因, 主要是目前数学软件的授课内容无法指定, 可以选择教学的软件多不胜数, 如MATLAB、Java、Mathematica、Lingo等, 不同高校、不同专业所安排的教学内容各不相同。从而, 各单位也只是根据具体的大纲来选定教材, 整个《数学软件》课程的教学大纲、教材和教学参考书都没有形成规范, 难以统一。

2. 课时安排偏少。

《数学软件》课程安排偏少, 课时数不足[4]。以我校为例, 在课程安排上, 仅为数学系学生在第5学期开设数学软件选修课, 这意味着并不是全部学生都会选修, 而在此之前并没有其他正式的课程介绍数学软件, 学生没有机会系统地学习软件计算。课程总计只有48学时, 其中16学时为授课, 32学时上机训练, 在这么短的时间内, 要将科学计算的理念讲授给学生, 使他们在将来能运用数学软件工具来解决问题, 这对教师的教学能力要求过高。

3. 理论考核欠妥。

《数学软件》作为一门以实践训练为主的课程, 在理论传授、实践训练以及考核方式上面都应该以实际操作为主线[4,5], 然而, 现在的教学除了稍微加大了实践训练课时之外, 在其他方面未见有改变, 特别是考核方式, 很多高校不能摆脱传统的考核模式, 还是采用理论考核, 以卷面成绩作为对学生掌握数学软件程度的评价。实际上, 理论考试成绩优秀的学生, 其实际动手能力不一定很强, 而编程能力强的学生, 其理论考试成绩往往处于中等或中上, 因此, 实践课程只做理论考核明显是不合理的。

三、教学改革初探

数学软件作为算法设计和数学建模不可或缺的工具, 很有必要在高校的数学相关专业开设该课程, 让学生学习并掌握相关编程技巧。针对我校数学软件课程设置与课堂教学的不足, 初步提出以下教学改革措施。

1. 转变教学形式。

在《数学软件》教学过程中, 时刻联系数学建模的方法与模型, 把数学建模的思想融入课程教学当中, 重视如何将实际问题抽象成为数学问题, 重视模型算法的理论推导和优化运算。在教学中强调相关的数学建模知识点, 提高学生的思维能力, 引导学生提出解决问题的方法, 并能够运用数学软件自行设计算法并编写程序, 最终解决问题。

2. 拟定教纲教材。

《数学软件》课程作为数学专业学生的专业课程, 需要确定教学大纲。我们首先应该借鉴其他优秀高校的教学经验, 由教学课题组的教师一起讨论, 教学大纲应该以实践为主题, 可以安排MATLAB、Mathematica、SAS、Java等的一种或多种数学软件的教学, 给学生安排更多的机会上机训练, 训练应该突出重点, 强化学生动手能力。合适的教材可以不只一本, 教材的内容应该是以实践指导为主体, 结合我校学生的实际情况进行选取, 同时可以选择实践训练指导用书。此外, 结合课题组各位老师的教学经验, 参阅数学建模、数值分析、算法逼近等相关课程的经典教材, 自行编著适用于我校数学软件教学的教材。

3. 加强理论授课。

实践训练必须有相关的理论基础, 《数学软件》总的课时量应课程安排有部分课时用于理论授课, 我校安排理论授课的课时比例比较合理, 但该增加。在理论课程中, 给学生讲解数学建模中常用的算法模型和经典的案例, 由浅入深、由表及里地讲解每一个重点和难点, 深化学生对理论知识的理解, 强化学生利用数学软件来解决实际问题的手段和方法, 培养学生使用计算机程序处理问题的能力。为学生的实践训练奠定理论基础。

4. 激发学生积极性。

我校《数学软件》课程作为专业选修课开设, 本专业学生选修应该是兴趣所致, 但教学过程中发现, 学生学习缺乏应有的热情, 特别是上机训练的课时, 学生动手练习的积极性不足, 对于课堂练习和课后作业都应付了事。针对这种情况, 教学需要调动学生的学习兴趣, 关键在于开课的前几个课时, 特别是第一课时, 可以通过介绍生活中的工程建模引入数学软件, 由此引入课程教学。在授课过程中, 不仅要介绍某个函数的功能作用, 而且还要介绍该函数的使用方法和使用技巧。运用类似这样的教学技巧, 有望提高学生的学习积极性。

5. 转变考核形式。

《数学软件》课程应该以实践考核为主。减少理论考试所占的比重, 重点考核学生实际编程解决问题的能力。上机考核给学生提出实际工程中所面临的实质性问题, 让学生根据自己所掌握的知识基础, 提出自己的想法, 建立数学模型, 并使用数学软件来整理算法, 编写、编译、运行程序, 最终解决问题。

数学软件已经成为数学建模解决实际问题中不可或缺的技术型工具。为了培养学生丰富的数学算法思想, 为他们的想法提供了实践平台, 在高校的《数学软件》课程教学中应该考虑利用多种有效的教学手段, 开启学生的算法设计与构造模型的思维和技巧, 鼓励他们大胆创新, 促进学生对于一种或几种数学软件的偏好, 达到提高教学质量的目的, 为新时代的发展培养技术型人才。

摘要:随着自然科学和计算机技术的快速发展, 数学软件已经成为数学建模强有力的技术型工具。高校教学已经开设了《数学软件》课程, 本文分析了现有的教学模式, 针对课程教学过程中遇到的实际问题, 结合本校的教学情况, 初步探讨了《数学软件》课程的教学改革, 提出了《数学软件》教学改革措施。

关键词:数学软件,实践教学,教学改革

参考文献

[1]王海英.数学知识、数学建模、现代数学软件关系与结合途经的探讨[J].中国地质教育, 2011, (1) :95-97.

[2]吝维军, 季素月.数学实验——数学方法、数学软件和数学应用的融合[J].大学数学, 2011, 27 (1) :153-156.

[3]刘智, 黄磊.数学软件在高等数学教学中应用及价值分析[J].价值工程, 2011, (30) :238.

[4]苏东宁, 赵珅, 宋方臻.MATLAB教学应重视科学计算能力的培养[J].中国现代教育装备, 2009, (5) :73-75.

“软件工程”课程教学改革研究 篇9

为了解决软件工程课程教学中的诸多问题, 国内许多高校都对课程的知识体系、教学模式、考核方式、实践过程等进行探索与创新。由教育部高等学校计算机科学与技术教学指导委员会统一组织, 清华大学刘强、浙江大学陈越、南京大学骆斌等老师组成课题组共同研究形成了软件工程课程教学实施方案。中国人民武装警察部队学院消防工程系的杨晨影[1]和王威[2]分别就软件工程课程的教学内容、教学方法、教学实践环节和考核环节等做了研究, 表明项目教学法在课程教学中收到了良好的效果。赣南师范学院的巫华芳[3]就软件工程课程教学中的案例设计做了研究, 总结了案例设计的一般原则与基本方法。胡杨等人[4]对Web软件时代的《软件工程》课程改革与建设进行研究, 提出基于项目驱动的教学组织方法。

一、“软件工程”课程教学中的问题分析

通过对吉首大学连续多年所开设“软件工程”课程的教学过程及教学效果分析, 结合多篇相关教改论文的分析, 发现当前的“软件工程”课程教学存在以下主要问题:

1. 重理论, 轻实践, 理论与实践结合不紧密

目前, 国内高校普遍沿用传统的教学方式, 以教师课堂授课为主, 侧重讲授软件工程开发中的相关理论, 学生被动听课, 通常感觉所学内容过于抽象, 无法调动学习兴趣。即使每个学校都开设了对应的实验课程, 往往也侧重对学生文档撰写能力的提高, 无法从市场需要出发, 让学生利用软件工程的开发思想, 结合需要解决的实际问题, 设计出真正可行的软件系统。

2. 教学内容无法反映技术的快速更新

随着信息技术的快速发展, 人们积累了大量的软件开发经验, 并不断出现许多新的软件开发方法和开发工具。另一方面, 由于人们利用软件处理问题的领域不断扩大, 问题的复杂度也不断增加, 这些均需要人们不断调整软件工程授课的内容, 增加新的软件开发思想、软件开发方法和软件工具使用等方面的知识。而目前, 由于教材内容[5更新速度远远跟不上技术的更新, 使得教学内容也无法及时更新。

3. 课程考核无法真正反映学生对知识的掌握程度

首先, 目前大量的考试仅用于检验学生对课程知识的掌握程度, 促进学生进一步学习的功能无法实现, 让学生对考试的认识浮于表面, 同时还导致了部分学生害怕考试, 在心理上抵制考试。其次, 考试形式单一, 由于期末考试容量有限, 时间比较固定, 不能全面、客观、及时准确地反映学生对知识的掌握程度, 无法发现具有巨大潜能的同学。此外, 一方面, 由于考试在课程结束之后进行, 结果分析则需要等到学期结束才能进行, 根本无法对学生的学习过程进行指导;另一方面, 考试结果分析也进行是对成绩分布做出简单的统计分析等, 没有深度考查其中的原因。由上可见, 现有的课程考核无法反映学生对课程知识的掌握, 更无法体现学生应用课程知识的能力。

二、“软件工程”课程的教学改革策略

课程的教学改革将从教学的知识体系、课程教学实施、实践课程改革及考试改革等四个方面进行实施:

1. 以IEEE-CS与ACM最新发布的软件工程知识体系为基础框架, 结合教育部高等学校计算机科学与技术教学指导委员会组织撰写的软件工程课程教学实施方案, 从当前软件工程的理论和实践出发, 融合企业的先进技术和最佳实践, 构建以统一开发过程、面向对象技术和UML语言为核心内容的“软件工程”授课内容体系、授课大纲及授课进度安排。

2. 课堂教学改革:在课堂教学中, 主要采用案例教学的策略, 通过利用各种不同类型的案例的讲解, 让学生通过对实际案例的学习, 将抽象模型与实际应用结合起来。在案例的选取过程中, 需要遵循以下原则: (1) 实用性原则, 即所选案例能够满足专业培养的需要, 可用适当的课时对案件进行讲解, 有利于学生对软件工程开发过程的理解。 (2) 完整性原则, 所选的实例能完整反映软件开发的全过程, 在授课过程中, 可以通过对同一案例不同阶段的持续讲解, 让学生逐步学会对项目的分解和分析。 (3) 规范性原则, 即所选案例的描述、分析、设计以及文档的撰写等符合软件工程专业规范要求。 (4) 多样性原则, 即所选取的多个案例之间要具有一定的差异性, 让学生能体会到不同的软件设计方法、不同的软件开发模型以及不同工具使用等方面的特征, 以便于在实际工作中能合理选择, 灵活运用。

在授课前, 教师首先要选择好合适的案例, 设计好案例讲解的流程, 并预留若干问题供学生思考与讨论。在讲授过程中, 教师需要对案例的应用场景及注意事项做出交代, 引导学生积极思考, 并在学生的讨论过程中记录好重点问题。在学生讨论结束后选代表发言, 并由教师做出一定点评和总结。

3. 实践教学改革:通过“软件工程”课程项目库建设, 在实践教学过程中依据学生的学习能力、兴趣等分成不同小组, 并为每个小组分配合适的项目进行实验。实验中需根据学生的特点进行角色分配, 为了更好的完成专业培养目标的需要, 在实验过程中还需将学生的角色进行适当轮换, 让每个学生能体验不同角色在不同阶段的职责与任务。

4. 考核机制改革:通过随堂考查、实验考核、项目分组评分、试卷考试等多种方式, 全面考核学生对知识点的掌握情况, 及时准确的了解学生学习效果。此外还需完善课程的试题库、试卷库及项目库的建设。

三、总结

通过对“软件工程”课程的教学进行改革, 并在吉首大学软件服务外包学院软件工程专业中进行实践, 已经取得了初步成效。学生在全国软件工程师考试和各项软件大赛中均取得优异成绩, “软考”通过率远远高于省内其他高校, 有多位同学获得省级以上竞赛大奖。接下来, 我们将进一步完善课程教学改革, 完成课程教学体系建设, 完善课程的项目库、试卷库和试题库, 让学生更好的掌握软件工程理论知识, 能更灵活合理的进行软件分析与设计。

摘要:“软件工程”课程教学中存在重理论轻实践、理论与实践脱节等问题。文章分析“软件工程”课程教学中出现的众多问题, 结合基于项目实战的教学方法, 设计多元、典型的教学案例, 从理论教学、实践操作、考核体制等诸多方面进行改革。

关键词:软件工程,案例教学,项目实战

参考文献

[1]杨晨影.软件工程课程教学改革初探[J].教育与职业, 2009 (12) :122-123

[2]王威.项目教学法在《软件工程》课程中的应用研究[J].教育理论与实践, 31 (9) , 2011:53-54

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

[4]胡杨, 苏琳.Web软件时代的《软件工程》课程改革与建设[J].中国成人教育, 2010 (5) :111-112

《软件工程》课程的教学研究 篇10

一、在教学中采取两种不同的教学思维:

一种是按概念、理论、方法、举例、总结的传统理论系列模式进行教学;另一种是按实际工作中的思维方式进行讲解。即先由实际现象启动, 激发学习兴趣, 归纳讲解一个经典应用案例, 如通过开发大学生比较熟悉的学籍管理系统, 逐步进行系统的分析、设计、编程、测试等工作, 归纳总结软件的开发方法及项目管理思想。这种以理论教学同案例驱动的教学方式相结合, 针对性强、贴近实际应用, 对提高学生的学习兴趣, 促进理解, 加深印象, 效果明显。

二、加强教师与学生之间面对面的沟通。

尽管在以前的教学中, 我们利用校园网上开发了网络实验教学辅导系统以及交流平台, 目的是加强和巩固了学生在课堂上和在教师指导下的实验内容, 使学生在计算机“不断线”的情况下进行学习, 实践证明效果并不理想。而通过师生面对面的交流, 指导教师能与学生针对所开发项目进行深入的交流和分析, 使学生亲身体会在软件开发过程中所必须完成的系统规划、需求分析、软件设计、程序编码、测试、运行和维护等一系列工作。在讨论中, 学生思维活跃, 讨论之后形成完整的书面资料, 如需求规格说明书、总体设计说明书、详细设计说明书等。实践证明, 这种由教师参与的学生讨论, 可以充分调动和激励大学生的想象力和创造力, 对于学生理论学习与开发实践的结合效果极佳。

三、编程实践加强分组合作。

软件工程的前序课程是一些程序设计课程, 这些课程的作业任务往往是由学生单独完成, 而规模稍大的程序却是由多人共同为完成的。因此为培养学生的项目管理思想, 实践教学过程中, 教师根据学生的具体情况进行分组, 以4-6人为一组, 自主分工合作, 锻炼学生的分工协作和交流能力。课程的最后由每组组长在课上给全班同学作15分钟的讲演。讲演要求以幻灯的形式边讲解边做演示, 其它学生对不解处做提问, 由该组成员作回答, 所有组讲演完毕, 老师对每组的优缺点做出评议, 以帮助大家以后的学习。另外, 大学生设计的案例可以保存下来作为本课程知识的拓展和延伸, 也可以作为教师的一种宝贵教学资源供教学参考或供学生设计时参考, 从而形成一个不断积累, 不断提高的良性循环。这样的实践教学环节, 学生投入了很高的热情, 积极, 认真的作前期资料的整理, 后期演示文稿的制作, 以及讲解的准备, 大家齐心协力, 分工明确, 每组在课后自发组织开会, 讨论方案。讲解主题丰富, 有深度, 有趣味。对于在教学中发现的很优秀的学生, 我们将会纳入到教师的实际科研工作中, 对于老师、学生都是一件有意义的事情。

总上所述, 软件工程课程具有较强的系统性、综合性和实践性, 已成为培养大学生具有计算机应用知识和能力的重要课程。我们在多年的教学实践中逐步形成了自己的一些特点, 当然还要不断的向其他兄弟院校的同行学习, 共同发展、共同提高。

摘要:本文从《软件工程》课程的特点以及培养目标出发, 探讨了在大学《软件工程》课程中如何进行教学设计, 并在总结自身教学工作的基础上, 提出了实施案例教学的一些方法和途径。

关键词:案例,教学,软件,工程

参考文献

[1]软件工程导论 (第6版) , 清华大学出版社, 作者:张海藩、牟永敏ISBN:9787302330981, 印刷日期:2015-5-14

上一篇:进度管理模型下一篇:工作过程管理