软件工程教学

2024-07-01

软件工程教学(共12篇)

软件工程教学 篇1

当前, 高职院校积极倡导“工学结合”的教学模式, 而项目教学法作为我国高等职业教育改革中重要的一个课题, 更符合我国职业教育发展“工学结合”的教学模式, 还是一个重要的教改改革措施。《软件工程》作为指导高职学生进行计算机软件开发与维护的一门重要而基础的工程学科, 《软件工程》的课程需要全面而系统地讲解软件工程有关的原理、概念以及典型的方法学, 高职学生在学习了《软件工程》课程之后, 能够掌握其规范、系统、可度量的方法来开发、运行以及维护软件。因此该课程的教学内容不但和计算机科学存在着相当密切的关系, 而且和管理学、数学、工程学等学科存在关联, 同时还要重视软件的基础理论知识以及通过适当的方法能够较好地分析与解决存在的问题, 并相当重视软件的设计及其工程的应用。由此可见, 《软件工程》是具有很强理论性、实践性、综合性以及指导性一门课程, 其教学的成效将直接影响到高职学生在未来职业发展中从事软件开发的能力以及项目管理的能力。本文把《软件工程》课程的教学结合项目教学法, 探讨在课程教学中如何更好地实践项目教学法。

一、项目教学法的内涵

在专业教学中, 项目教学法是把普适功能的教育目标 (比如合作交往能力、方法能力、责任意识、独立自主能力等等) 进行突出展现的一种教学方式。实施项目教学法需要基于一种完整的人格发展的学习理念, 让学习者尽最大可能获得其职业发展所必须的行动能力和管理能力等, 且使学习者在社会生活中应用掌握了更多的能力而成为社会成员中重要的一员。

和传统课堂教学方式相比, 项目教学法具有自身的特点, 而这些特点能够确保其教育目标的一致性, 也就是产品与行动导向、学习过程的自我组织、学习者与需求指向、跨学科性以及社会关联性。显然, 和传统的教学方法相比, 它们存在着较大的区别, 项目教学法主要表现的是改变了传统教学方法中的三个中心, 也就是通过以教师为中心转变成为以学生为中心、通过以教材为中心转变成以“项目”为中心、通过以课堂为中心转变成为以实际经验为中心。因此, 在实施项目教学法开展教学时, 需要遵循学生是知识意义的主动建构者更是认知的主体这一主导的教学理念。

目前, 项目教学法可以分为三种实施的方式, 即学习过程成为每个学习者都必须参与的过程及其创造实践活动的过程, 其注重的不是最后的学习结果, 而主要是完成项目的整个过程;师生之间借助共同实施的一个完整“项目”或工作来开展教学活动;在教师的知道下学生以小组合作进行工作的方式自行组织完成某个“项目”。

二、项目教学法实践于《软件工程》的教学

在高职学生学习软件工程的过程中目前还普遍存在着一个错误的想法, 也就是软件开发就是如何想办法编写程序或代码。为了打消学生的这一错误的想法以及使高职学生进一步体验到软件开发的整个过程, 在教学过程中积极开展软件开发的团队分工和合作, 并在《软件工程》的课程教学引入项目教学法, 在充分理解项目教学法内涵的基础上制定了针对某一软件开发所需的完整项目小组学习以及工作的流程。在整个项目活动中, 强调学生在完成项目活动的过程都要以小组为单位, 并给每个小组的成员进行分工, 分工后想办法开展成员之间的合作, 然后利用业务时间根据软件工程的规范与要求设计一个小软件。其后通过一整套的流程:项目可行性研究、项目需求分析、项目系统设计以及项目系统实现等等进行完整的软件开发过程的体验, 最后得到一个可执行软件和文档。在项目实施的过程中, 为了使教师方便地了解项目实施的情况以及软件开发的具体情况以及在遇到问题进行及时的指导, 各小组在软件开发中几个重要的时段都要求在课堂内开展阶段性的讨论或者汇报。具体的过程如下:

1、命题

根据教学内容的需要以及学生学习的现实情况, 教师给出多个软件开发的命题, 如“基于多媒体技术实现双语电子词典的实现”、“乌鲁木齐市公交车查询系统的设计”、“以能力和素质提高为基础的班级综合测评系统的设计与实现”等进行分析、设计以及实现具体的任务, 同时还需要征求学生对这些命题的意见或者建议。

2、角色分工

按照软件开发的工作量以及软件开发的流程对学生进行分组, 一般需要5-7人为一组较为合适。每个小组选出一位同学担任组长并实行项目组长负责的制度, 组长的工作需要安排和协调好组内成员的工作角色或任务;根据不同项目的需要一般可以分成三类, 即软件开发人员、用户以及同行专家。每个项目小组都需要首先明确其成员的所承担的职责以及扮演的角色。并在项目不同的开发时段, 组内成员可以更换角色而扮演不同类型的角色, 可以在需求分析阶段让小组成员扮演软件开发人员, 而在设计阶段又可以转变成用户或者同行专家等。从不同的角度, 用户和同行专家需要对组内开发人员所设计的软件或完成的项目提出有针对性的意见或建议, 并对其工作进行恰当的评价。

3、选题

为了在软件开发的过程中实现对比和竞争的目的, 要求两个小组共用同样一个选题, 且这两个小组互相作为同行的评议专家, 而在开展课堂讨论的时候要给对方所做的工作提出意见或建议。这样的规定有利于加强各个小组之间的学习和交流, 还可以使得这两个同样选题的小组能够在相互学习中进行比较与借鉴, 由此拓展学生的思维, 开阔学生的眼界。选题之后, 各个小组需要首先确定软件系统开发的目标及其初步的方案, 再就是选择、准备以及试用所需要的开发平台和数据库等等开发的工具。

4、阶段性开发工作

软件开发的过程通常有五个主要的阶段, 分别是可行性分析、需求分析、设计、编码以及测试等。每个阶段都要求根据规定编写代码和软件工程开发所需的国家标准或者ISO的标准对文档进行书写。而在每个阶段, 教师需要给学生提供相当数量的参考资料与软件开发样例或模板, 然后各个小组的成员按照事先的分工而承担起自身的任务, 并充分利用各种学习途径开展有针对性的专业知识学习, 同时收集有关的素材或资料。在软件开发的过程中, 各个组长在相当程度上承担着领导的责任, 要求小组成员开展分工和合作, 并且对开发过程的文档进行记录。

5、阶段性讨论与汇报

按照教学的需要以及各个小组软件开发的进度, 教师可以选择一个合适的时间, 通过教师的组织, 然后让各个小组进行课堂汇报、交流以及讨论, 首先由各个小组负责某个阶段工作的这一同学进行主要的汇报, 其汇报的内容主要是根据各组当前软件开发工作的进展来安排, 与此同时需要同题的评议专家对汇报或讨论的内容给出建议或意见, 而其它小组则作为用户一起参与到这个项目的交流与讨论之中。在阶段性汇报与讨论的过程中, 教师需要对汇报小组在该阶段的工作给出指导性的评价而不作决定性的评价, 尤其对其中的研究方法、研究思路以及研究过程尽量提出参考性的意见。

6、阶段性总结

在各个阶段完成之后需要交付的产品主要有可行性分析报告、软件概要设计说明书、软件需求文档、可运行的程序、软件详细设计说明书及其数据库设计的说明书、测试分析文档等等。因为在软件开发的过程所涉及到多个阶段的反复工作, 所以为了设计和调试软件需要在第4步到第6步之间反复执行多次, 一直到全部阶段性的工作都完成为止。

7、总结评价阶段

当全部的工作都完成之后, 各个组需要提交最终文档以及开发的产品, 然后教师对各个小组的开发成果进行有针对性的评价, 并对学生的最终成绩给出评定。学生最终成绩主要由“小组成绩”和“个人成绩”两个部分构成, 其比例为6:4。其中小组成绩主要是教师给出的, 这一成绩是教师对各个小组完成特定项目的总体评分, 可以从学生认识水平与学习能力、解决问题的创造力、团队协作精神、探索精神以及最终产品质量等多个方面进行;而个人成绩则由各个组长给出, 各个组长的成绩则由每个组员一起给出。显然, 这种多元化的考核结果对学生在整个项目活动的过程所作出的成绩进行了综合而全面的评价, 显然这样有助于学生发展全面而自由的个性以及提高学生的综合素质。

为了让学生可以及时感受和理解软件工程学科的方法, 需要紧紧围绕理论结合实践的目的, 把项目开发活动和理论教学有机地结合起来, 并把当前的教学内容贯穿于项目开发活动的整个过程, 以达到给学生指导和帮助的作用。

三、结语

开展基于项目教学法的软件开发活动有利于培养学生收集信息和处理信息的能力、独立思考能力以及分析问题和解决问题的能力, 从而为高职学生职业能力的发展奠定基础, 为其未来的发展提供理论上和智力的帮助。从项目开发的过程和结果来看, 学生的各方面的能力有相当程度的提高, 这说明在《软件工程》的教学中采用项目教学法有很好的教学效果。不过在开展项目教学的过程中, 需要教师注意选题的实用性、把握选题的方向并要结合所学的内容、充分相信学生的能力并要关注学生的思想火花以及捕捉学生的创新思维, 尤其需要制定好项目的评价方式从而能够更好地鼓励学生主动学习。

参考文献

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

[2]彭佳红, 彭佳文, 曹晓兰.基于案例的软件工程课程教学研究[J].高等农业教育, 2009 (11) :60-62.

[3]黄亚平.项目教学法在“软件工程”教学中的理论和实践[J].浙江工业大学学报 (社会科学版) , 2009 (8) :226-231.

[4]柳翠寅, 蒋斌, 欧方平.软件工程专业实行“项目教学法”的研究与实施[J].煤炭技术, 2012 (31) :246-248.

软件工程教学 篇2

课程名称:软件工程

英文名称:Software Engineering 学时数及学分:54学时 3学分 教材名称及作者、出版社:《软件工程导论》齐治昌、谭庆平、宁洪,高等教育出版社。大纲主笔人:郭

一、课程的目的、要求和任务

“软件工程”是计算机科学软件专业的一门重要专业骨干课程,它的主要目地和任务是: 1. 系统地介绍软件工程的基本原理、概念、技术和方法,简介软件工程的最新技术及其研究发展方向;2. 通过本课程的学习,使学生了解、掌握软件生存周期阶段的工程任务、具体过程、技术过程、技术方法和各种工具;3. 通过本课程的学习,使学生了解软件工程管理的重要性及基本的管理技术;4. 能将上述知识用于该课程的课程设计实习中,实现一个具体题目的全部软件开发过程。

二、大纲基本内容及学时分配 1.概论(4学时)

1)软件危机

2)软件工程概论

3)技术审查和管理复审

说明:要求学生掌握本节内容;2)、3)是本节重点。2.可行性研究(4学时)

1)可行性研究的任务及步骤 2)系统流程图与数据流图 3)数据字典

4)成本效益分析

说明:要求学生掌握本节内容;1)、2)、4)是本节重点。3.需求分析(8学时)

1)需求分析的任务及分析过程 2)验证分析的图型工具

3)验证软件需求 4)原型法

说明:要求学生掌握本节内容;1)、2)、3)是本节重点。4.总体设计(8学时)

1)总体设计的任务及过程 * 2)软件设计的重要概念及规则 3)软件设计的图形工具 * 4)面向数据流的设计方法 * 说明:要求学生掌握本节内容;1)、3)、4)是本节重点。5.详细设计(8学时)1)结构化程序设计

2)详细设计的工具 3)Jackson 设计方法 4)Warnier 设计方法

5)程序复杂度的定量度量方法

说明:要求学生掌握本节内容;1)、2)、5)是本节重点。6.编码(4学时)

1)程序设计语言的分类及选择 2)程序设计的风格及方法 3)程序设计自动化及工具

说明:要求学生掌握本节内容;2)是本节重点。7.测试(8学时)

1)软件测试的目标及测试的步骤

2)黑盒测试、白盒测试及测试方案的设计 3)单元测试、集成测试、验收测试 4)调试及软件可靠性的估算

5)自动测试工具

说明:要求学生掌握本节内容;1)、2)、4)是本节重点。8.维护(4学时)

1)软件维护的定义及特点 * 2)维护的进行过程和可维护性

说明:要求学生掌握本节内容;1)是本节重点。9.软件工程的管理技术(6学时)

1)成本估算

2)进度计划及人员组织

3)软件的质量保证

4)项目计划的制定及管理

5)软件工程的管理工具

说明:要求学生掌握本节内容;1)、3)、4)是本节重点。10.面向对象方法学引论(6学时)

1)基本概念及面向对象建模 2)对象模型 3)动态模型 4)功能模型

说明:本节内容选讲;1)是本节重点。11.面向对象分析(4学时)

1)面向对象分析的基本过程及需求陈述 2)建立对象模型、动态模型、功能模型 3)定义服务

说明:本节内容选讲;1)、2)是本节重点。12.面向对象设计(6学时)

1)面向对象设计的准则、启发规则及软件重用 2)系统分解

3)问题域、人-机交互、任务管理、数据管理等子系统的设计 4)设计类中的服务、关联及设计优化 说明:本节内容选讲;1)、3)是本节重点。13. 面向对象的实现(4学时)

1)程序设计语言的选择 2)程序设计风格

3)面向对象测试

说明:本节内容选讲。

三、与其它课程的关系

1.先行课程: 程序设计语言、数据结构、操作系统、编译原理、数据库等。

2.后续课程:高级程序设计语言概论、软件工具与环境、信息管理系统(MIS)、计算机辅助教育等。

四、考核方式

1.期末闭卷考试 占总成绩的50–60% 2.课程设计 占总成绩的30% 3.平时成绩(作业、上机和课堂考勤等)占总成绩的 10-20%

五、参考书目

软件工程教学 篇3

[关键词]VF软件工程案例教学法

Visual FoxPm(以下简称VF)作为一种高效的小型关系数据库管理系统,因其易掌握,操作性强等优点,目前已普遍地被各高校列入非计算机专业的计算机文化基础教学计划中。随着用人单位的要求不断提高,手握一张计算机二级证书也成为应聘竞争中强有力的砝码。并且相对于C语言等二级语言而言,更高的可操作性使学生学习起来更容易上手,因此,VF逐渐成为经济管理类、工商类、文科类、医科类等各专业学习数据库管理系统必不可少的应用技术课程。

1VF课程的特点

VF是当今惟一的既兼容SQL又保留其本身“自含型”语言的PC数据库开发环境,它包含“结构化”和“面向对象”两类程序设计,支持程序设计和交互操作两类工作方式,既可通过辅助工具实现用户界面的可视化设计和部分程序的自动生成,又可通过COM组件实现对多媒体应用和Web应用的支持。VF课程的特点是内容量大、图形多、界面多、逻辑结构多。它的具体内容包括:数据库技术概述及VF简介、数据库及表的基本操作、查询与统计、结构化程序设计、菜单设计、表单设计、报表设计等。通过内容的学习,学生最终要掌握以数据库为核心的信息系统开发的基本过程和设计方法,具有使用计算机解决实际问题的初步能力。

2在vf教学中引入软件工程思想和案例教学法

(1)软件工程思想的引入

软件工程思想是指导计算机软件开发和维护的一门工程学科。软件工程的理论特别适用于指导实践性很强的课程,这一特点恰巧和VF想契合,VF不但要求学生对理论知识的理解和掌握,更注重学生的实际操作技能。由于数据库公共课要以掌握系统开发为最终目标,VF课程的教学又大多采用“语言基础一程序设计一系统开发”三段式结构,为此,提出将软件工程理论与数据库系统教学相结合,并适当将软件工程理论提前应用于VF教学的思路。在教学中,我们所面向的学生大多数是不具备编程思维的非计算机专业学生,因此用软件工程的思想,将其在VF学习上打开一条思维的道路,更有利于其学习这门课程。

(2)案例教学法的引人

案例教学法是指向学习者提供案例研究的学习环境,包括從实际案例中选取资料,让学习者以调查员的身份去了解案情,通过对资料的收集、分析、决策,最终使问题得以解决,并得到可行的结论。在教学中,往往有学生问道,VF这门课程到底有什么作用。学生提出这样的问题不是没有道理,因为就我们现在的教学课本,学生并不能看出他能解决什么实际问题,如果照本宣科,学生也无法使用这些书本上的知识去解决实际问题。因此,在教学过程中,通过对企事业单位中的实际项目或从中抽取出的模拟项目作为案例进行研究,为学生创造一个仿真环境,使其在课堂上就能接触到实际问题和环境,从而学会在复杂条件下利用所学理论解决实际问题,也能提高学生的学习兴趣。

3在开课的时候就需要做好相应的准备工作

1开课之前

教师要根据VF课程的特点,考虑案例和知识点的吻合程度,根据不同的专业以及教学时间,考虑案例的实用性和理解性,并对案例进行设计。准备的案例最好是一个与学生相关的实际问题,让学生处在一个真实的情境中,以培养学生处理实际问题的能力。

2开课之初的教学铺垫

在开课之初,教师先要向学生介绍开设VF课程的目的、课程的特点、课程的设置和学习目标等,让学生对VF课程有一个初步的印象和大体的了解,然后,再把精心设计的模拟项目展示给学生,让学生在学习具体知识之前就了解工程项目的蓝图,了解一个实际项目的组成及要解决的问题。这样做可以使学生带着任务学习,激发学生的求知欲,并能激励学生积极地寻找解决问题的方法和步骤。在向学生展示项目的同时,教师还要向学生介绍项目的开发过程,向学生渗透软件工程的主要思想,让学生了解软件是有生存周期的。所谓软件生存期包括:可行性研究、需求分析、概要设计、详细设计、程序编写、软件测试和软件维护,其中的程序编写只是软件开发的一个很小的阶段。自学生接触软件概念开始,就让其树立正确的开发观。

软件工程教学 篇4

一、软件工程教学中存在的问题

作为计算机专业的一门重要必修课程,软件工程能为学生今后从事计算机大规模软件开发与维护工作打下坚实的基础,对于学生而言是不无裨益的,但在实际的教学过程中往往许多学生对这门课程并不感兴趣,不愿学或学不进去,甚至听不懂。通过近几年从事软件工程课程的教学工作及与学生之间的交流沟通,笔者发现学生之所以如此的原因有多方面,其中与教学环节息息相关的主要问题如下:

1. 学生对课程定位有误

软件工程是一门综合性很强的课程,除了计算机科学,还涉及数学、管理学、经济学工程学等多种学科,这一特点决定了软件工程是一门很抽象的课程。软件工程的教学目的是通过学习软件工程的基本原理、技术与方法,将其应用于指导软件开发的全部过程,但学生往往在刚接触该课程时对课程的教学内容和教学目的存在误区,许多学生在拿到教材时竟误以为是学习如何编程的科目。由于学生对课程认识最初的误区,导致学习一开始就存在盲目性,在学习过程中也存在着现实落差,会影响后续的课程学习。

2. 理论性强、课时有限导致教学效果不理想

与计算机专业的大部分专业课程相比,软件工程的理论性强尤为突出。通过该课程的学习,学生必须具备扎实的软件工程理论知识,并熟练掌握软件设计、开发、测试、维护技术。正因如此,大部分高校选用的都是偏重理论教授型的教材,可操作性较差,从软件工程的基本概念、开发模型到软件生命周期中的每一个环节、技术手段、实现方法,教材中目之所及全是理论,导致学生在学习的过程中需要记忆大量的文字内容。由于理论课时有限,教师在课堂上势必采用照本宣科、满堂灌的教学方法,从而引起学生的反感。其次,若没有足够的时间消化,进而系统地学习,该课程前后内容易混淆,同时大量的文字内容也导致学生在课余提不起看书的兴趣。

3. 实践性要求高但缺乏锻炼的契机

在课程的教学中如果一味讲授,而较少给学生提供实验尤其是项目环境,学生也会觉得该课程难于理解、用处不大,进而导致厌学的情绪。由于计算机专业学生毕业后很大一部分从事软件研发相关工作,因此该课程的实践教学也将直接影响到学生毕业后的项目开发及管理能力。但是传统的软件工程实验教学模式无法给学生提供项目锻炼的契机,原因如下:

(1)文档欠缺规范化机制

由于实验条件受限,老师仅给出项目各阶段文档模板,要求学生按规格编写相应文档,但往往没有企业项目开发中的严格评审机制,学生很难建立标准化、规范化思想。

(2)学生难以参与软件开发的全过程

学生在实验教学中开发的系统仅仅作为作业提交给教师,教师大概的检查代码,而没有严格的代码走读过程,也未交付用户使用,没有真正意义上的验收测试,更别谈维护。学生无法发现各阶段中存在的问题,因此对软件工程的实验认识仅仅停留在与编程语言课程的实验同一高度。

二、软件工程教学策略的探讨

针对上面提到的软件工程教学中存在的问题,结合实际教学经验总结,要改变软件工程教学现状,达到理想的教学效果,根源在于改变教学内容安排与教学方式,合理设计教学,激发学生学习兴趣及学习的主动性。作者认为可以从以下几个方面着手:

1. 根据学生初始认知结构,调整教学内容安排

本课程的学习者多为大学三年级学生,之前已系统学习了程序设计基础、面向对象程序设计、数据结构和操作系统等课程,学生大都具备了一定的计算机程序开发能力,具有学习本课程的知识基础。

虽然软件工程教学内容上较少体现与其他计算机课程的综合,但软件工程与其他计算机课程都是相互作用和影响的。除此之外,软件工程课程自身的知识体系内容也是前后联系相互渗透的。因此,在教学内容的安排上应该注意该课程与其它相关课程间以及该课程前后内容之间的相互联系与知识渗透。

首先,从计算机专业课程体系结构着手,站在系统的角度为学生解释专业课程体系,让学生对软件工程可程在专业知识体系中所处的层次和地位有一定了解,以避免后期的盲目学习。我国目前计算机专业的本科教育中,课程体系可分为以下几部分:程序设计语言、数据结构、人机交互、程序设计方法论和软件工程。教师可将已开设和未开设的课程分别划入到这几类中,通过实例让学生理解软件工程的课程性质以及它与其它专业课程之间的区别和联系,帮助学生形成对课程的正确认识及认识到这门课程的重要性。通过对课程体系的了解,学生也可以在平时的学习中自主地将已学的相关课程知识融汇贯通到软件工程的学习过程中。

其次,由于软件工程生命周期的各阶段相互联系紧密,学生很容易在学习过程中与前期的内容混淆,因此,在每一个章节的伊始,教师应以该内容环节为要点对软件生命周期模型进行分析,找准该章节在整个周期中的地位与作用,同时也起到了知识的复习与巩固作用。其次鉴于分析方法和设计方法的相似和共通性,在学习相关知识点时,可将前面内容的复习与新内容的学习一起进行,也可以帮助学生在学习的过程中区别记忆,加深对知识结构的理解。

2. 以案例教学为主的理论教学策略设计

传统的填鸭式教学方法,以教师作为课堂主体,学生被动的接受老师灌输的大量理论,很难激起学生学习的热情,因此传统的教学方法不适应软件工程的教学需要,而采用案例法的教学则可以解决这一弊端。

案例教学法系指教师在教学过程中,以真实的情境或事件为题材,提供学生相互讨论之用,以激励学生主动参与学习活动的一种教学方法。

案例法教学分三个阶段展开:

第一阶段,重难点精讲。以教师为主导,对授课内容中的重点难点进行精讲,在这个过程中要充分利用好的教学手段如多媒体教学,以提高授课效率。这一过程可为后期的案例分析教学做好充分的准备。

第二阶段,案例抛出。以学生为主体,教师布置相关案例,学生进行分组,教师引导学生进行深入讨论,让学生扮演项目开发中的各种角色,模拟真实开发环境。以需求分析阶段为例,学生可以扮演项目经理、开发人员和用户,大家各抒己见,通过激烈讨论来实现最终的分析结果,并在课后形成文档,以作业的形式提交。

第三阶段,总结。学生讨论结束后,由各组派一代表向教师汇报讨论成果,组与组之间可以相互交流经验。对于学生在案例分析过程中遇到的问题,教师可依据实际经验解答;对于学生在案例分析中忽视的一些客观存在的典型问题,教师提出补充。

案例教学法对教师本身的素质要求较高,因为案例教学要达到好的教学效果首先要对案例进行精心设计,其次教师曾具有大型项目开发的经历,并积累丰富实践经验,对于学生在情境中遇到的一些问题才能给出合理解答。因此,该教学方式更适用于具有企业项目开发背景的教师。

3. 以项目驱动为主的实践教学策略设计

所谓项目驱动教学法,是师生通过共同实施一个完整的“项目”工作而进行的教学活动。这里的项目,是指以生产一件具体的、具有实际应用价值的产品为目的的任务。

软件工程实验教学应避免采用传统的固定安排实验时间,以写文档编代码为主要实验内容的教学方式。实验教学环节可采用项目驱动的模式,以大作业的形式贯穿学期始末。

在课程初期,教师布置项目课题,学生进行自由分组(6~7)人,各小组根据兴趣选择项目,每1组根据学生的个人能力分配角色,并选出组长1人负责项目的整体工作进度安排与组员间的协调工作,并定期向教师汇报各项目进度。

在开发过程中严格遵循以下要求:

(1)各组的开发进度应对应教师的授课进度适当延后1周。

(2)项目开展的每一阶段,都必须以组为单位提交标准化、规范化的阶段文档,并要求组内部成员执行严格的文档评审机制。

(3)实现阶段产出的代码应在组员间进行代码走读。

(4)测试结束后,各小组提交全部软件配置,由教师随机将软件系统交付别组试用,发现错误,反馈给开发小组进行维护工作。

这种项目驱动的实验教学模式,让学生完整经历软件开发的各个阶段,为未来的学习工作打下了一定基础,同时也是一个对课堂知识加以理解应用、融汇贯通的过程。在开发过程中,组员之间的协调工作培养了大家的团队意识,这是软件人员一种最基本的职业素养。

4. 反思性评价机制的建立

教学过程中,为激励学生的学习积极性,评价是不可缺少的重要环节。而传统的课程教学评价普遍存在功利化、单一化和单向化倾向,不利于学生主动性和积极性的提高。

为提高学生的学习主动性好积极性,培养学生的反思能力,本课程建立反思性评价机制。反思性评价是指教师和学生在多元、客观、开放的评价过程中,根据基础性发展目标和学科学习目标的达成度、学与教过程的合理性、学与教策略的有效性等方面即时生成的信息,主动反思、不断调节学与教的行为,以促进学生的学会学习与教师的学会教学相统一的发展性评价方式。

软件工程课程考核的重点不应是理论考试成绩,而是学生运用软件工程的思想和方法进行软件开发及项目管理的综合能力,具体评价可由自评、组内互评、组间评价及教师评价4种评价方式构成。评价的内容应针对软件工程一学期的完整教学活动中对专业知识的学习态度和成效、对小组的贡献,对项目的责任感、团队意识、项目成果等方面。由于软件工程的理论教学和项目开发呈现明显的阶段性,因此该评价方式也应分阶段性的进行,最终形成一个结合4种评价方式,分阶段性的反思性评价体制。

自评以学生为主体,通过他们在自己不同阶段的表现对自己进行纵向的分析比较,同时与其他同学进行横向对比评价,便于他们从中学会独立地运用自己的理智,全面地认识自己,从而增强学习的责任感、自信心和自我效能感;组内互评则以小组为背景,由组内各组员间进行互评,在小组其他成员的评价下使学生清醒地认识自己的优势和不足,在今后的学习中不断完善自我;组间评价以整个小组为评价主体,在小组间以组为单位实现互评;教师评价则以教师为评价主体,站在宏观的角度,基于对全体学生学习状态的整体把握对每个学生的的个人表现给予中肯评价。组内互评、组间评价和教师评价这3种传统的他评方式,既激励了学生开发过程中的认真严谨,又实现了组与组之间、学生与学生之间的良性竞争。

在整个教学过程中,教师也要根据学生的学习效果对自己的教学过程及行为进行反思性评价。可通过撰写教学反思日记及设定教学阶段性效果分析等手段,记录教学过程中存在的问题并提出解决方案来及时地进行总结,从而在教学过程中不断提高自身的教学能力以达到更好的教学效果。

通过以上反思性评价机制的实施,学生与教师主动反思、不断调节学与教的行为,以促进学生的学会学习与教师的学会教学相统一的发展性评价方式,进一步提高了学生自我认识和评价的方法及能力。

三、结束语

以上对于软件工程教学的现状分析和教学策略的提出是在近年实际教学工作中的一些思考和经验的总结。作者已将以上若干教学方法应用到教学工作中,并取得了较好的效果,学生学习的积极性主动性明显提高。但随着计算机科学日新月异的发展,软件工程的教学也不断有全新的知识内容涌现,因此对该课程教学的探索是一项长期而艰巨的任务。除了改进教学内容安排、教学模式外,教师本身的专业素养不断提高也是相当重要的。

摘要:软件工程是高校计算机专业学生的一门必修课程,文章分析了软件工程教学过程中存在的问题,并从教学内容、教学设计和教学评价体制三个方面对其解决策略进行了的探讨。

关键词:软件工程,案例教学,项目驱动,反思性评价

参考文献

[1]张海藩.软件工程导论[M].北京:清华大学出版社,2003

[2]戴庆,肖红,潘俊辉.信息类本科专业案例教学实践研究[J].长江大学学报(自然科学版),2009,3

[3]罗凌.基于项目驱动的ASP.NET程序设计课程创新教学法研究[J].计算机教育2009,13

浅谈软件工程课教学心得 篇5

浅谈软件工程课教学心得

软件工程课是一门理论性、实践性、工程性很强的课程,在软件工程学课的教学中,教师富有哲理、情趣,生动形象,亲切活泼的`教学语言,不仅能活跃课堂气氛,而且能深深地感染和吸引学生,激发学生的学习兴趣,启迪学生的思维,提高个人与团队协作和专业实践精神,使教学收到良好的教学效果.

作 者:肖新凤 作者单位:广州大学华软软件学院,广东,从化,510990刊 名:科技信息英文刊名:SCIENCE & TECHNOLOGY INFORMATION年,卷(期):2009“”(23)分类号:G71关键词:教学语言 启发式 案例化 探索式 批评式

软件工程课程绪论教学方法研究 篇6

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

文章编号:1671-489X(2015)06-0081-02

1 引言

“软件工程”是计算机本科教学中的一门专业基础核心课程[1-2],该课程主要讲授软件工程的基本概念、基本原理和基本方法及相关技术,强调软件开发问题的分析和解决。但是,由于软件工程理论内容抽象,软件开发过程复杂,使其具有一定的深度和难度,成为计算机科学中“教师难教、学生难学”的课程之一。学生往往觉得软件工程枯燥,提不起兴趣,同时还产生一股畏惧感。这成为软件工程教学中需要解决的难点问题。

绪论课是对授课对象的“启动”与“激发”。绪论教学将会给学生带来先入为主的影响,为了让学生更好地掌握软件工程知识,拥有一个优秀的绪论教学是具有重要意义的[4]。因此,讲授好软件工程绪论,对于增强学生学习软件工程的兴趣和学习主动性[3],优化教学效果,有着至关重要的作用。本文介绍软件工程绪论教学过程中需注意的问题和总体框架,并且详细阐述软件工程绪论的课堂实施细节。

2 软件工程绪论教学中注意强调的问题

通过以上论述可以看出软件工程绪论的教授是软件工程这门课最重要的一部分,但是在教学过程中需要注意以下几个问题。

1)让学生了解编程和软件工程之间的关系,让学生摒弃以前认为编程就是软件的看法。

2)让学生了解软件工程学的背景和目的,及了解软件工程学产生的原因是什么?它是为了解决哪些问题?

3)让学生了解开发小型系统和开发大型系统的方法是不一样的,开发大型系统要使用软件工程的思想完成。

4)让学生知道将软件定义为程序是错误的,让学生深刻理解软件生命周期模型的概念。

5)介绍软件生命周期的过程中要按功能和文档两个方面介绍,让学生能够条理清晰。

6)强调软件质量评价在软件工程中的重要作用,让学生深刻理解软件的可维护性、可靠性和可理解性的重要性。

7)重点介绍软件和软件生命期模型的概念,让学生理解软件生命周期的每个阶段之间的相互关系是至关重要的。

8)强调软件质量评价的重要性,强调小型程序和大型软件系统的评价方式是不一样的,要详细分析大型软件系统的评价方式。

3 软件工程绪论教学过程的总体框架和课堂实施细节

为了更好地让学生了解软件工程的基本概念,理清软件工程的基本思想,本节详细介绍了软件工程绪论的课堂实施细节。

软件工程绪论教学过程的总体框架 为了更好地介绍软件工程绪论教学的过程,软件工程绪论教学的总体框架如图1所示。首先介绍软件工程学的背景和目的,也就是介绍软件工程学到底是解决哪些问题;接下来介绍软件工程学的产生,及软件工程学的名称是怎样来的——它是来源于工程开发的思想;然后掌握软件和软件生命周期的概念,详细讲解软件生命周期各阶段之间的关联;强调软件质量评价的重要性;最后讲解软件开发方法和软件自动工具的概念。

软件工程绪论课堂教学的实施细节 根据上节介绍的教学总体流程图,详细描述总体流程中每个流程的实施细节。

1)软件工程的背景和目的。首先,教师要以问答式开始这一部分的教学。

问题:“同学们在修完编程等课程后,你们能够做什么?”

回答:“字符编辑或报表打印程序等”。

问题:“要研制一个大型软件系统,你该怎么做?”

一部分回答:“一头雾水。”一部分回答:“很简单。”

到底是什么样呢?引出学习软件工程的必要性:这门课可以让我们知道怎样使用更少的人力、物力和财力开发一个高质量的软件系统。然后进入课堂细节,讲解“软件工程”是从“编程”演变过来的,知道软件工程学的目的,了解软件工程学的产生。

2)软件和软件生命周期模型的介绍。在这一部分可以使用如图2所示的生命周期图来描述。该图可做成动画形式来表示每一个阶段的递进形式。首先进入可行性研究与计划阶段,然后进入设计阶段,接着进入编程阶段、测试阶段和运行与维护阶段。根据图示详细描述每个阶段的功能和要输出的文档。最后要做出总结:实际软件系统的开发不可能是理想化地按瀑布模型进行,人们理解问题总有一个反复的过程,所以从后阶段回复到前阶段是不可避免的。例如:设计阶段发现需求说明书有不完整或不正确之处,就须“再分析”;测试阶段发现模块界面有错误,需进行“再设計”;运行阶段为了扩充系统的功能,需要进行“再分析”“再设计”“再编程”等。

3)软件质量评价,重点讲解软件工程学的最终目标是获得高质量的软件,所以如何评价软件质量是一个重要的问题。软件质量的定义还是非常模糊的,人们对此尚未形成一致的看法,但一般说来倾向于从可维护性、可靠性、可理解性和效率等方面对软件作较全面的评价,详细介绍这几方面。最后要给出总结:对于一个小型程序,可以希望它是完全正确的,但对长达几万行甚至几十万行的大型软件,一般不能奢望它是“完全”正确的,这一点也无法证实。同时为了保证软件质量,在软件开发过程的各个阶段就应该采取多种有效的技术和一系列质量保证措施,使得软件能够高质量地顺利完成。

4)软件开发方法和软件自动工具。这一部分使用问答方式开始讲解,提问:“软件工程学的最终目标是什么?”回答:“软件工程学的最终目标是以较少的投资获得质量较高的软件产品,也就是说要‘高产优质’。”同其他工程学科一样,达到这个最终目标的两个主要途径是“纪律化”和“自动化”。“纪律化”:就是寻找一些规范的“求解过程”,使开发工作能够有计划、有步骤地进行。“自动化”:就是使开发过程中的某些工作用计算机来完成或用计算机来辅助。

①软件开发方法。首先讲解软件开发的发展是从个体→集体的劳动成果。为了使软件研制走上工程化的轨道,必须寻找一些标准的规程,以便为开发人员给出指导和约束。最终得出结论:在软件方法的指导和约束之下,面对错综复杂的问题,开发人员就可按统一的步骤、统一的描述方式,纪律化地展开工作。这是高产优质的保证。

②软件自动工具。由于所需工作量极大,常称软件开发是“劳动密集”的工作。为提高生产率并保证质量,人们很自然地希望能够实现开发过程的自动化,如PSL/PSA、AIDES和SDL/PAD。

上面详细介绍了软件工程绪论讲解的详细过程,通过上面课堂的组织,可以激发学生探索未知领域的强烈愿望,从而在教学中引导学生进行发现问题、解决问题的主动求知。

4 总结

本文介绍了软件工程是计算机本科教学中的一门专业基础核心课程,它的理论内容抽象,软件开发过程复杂,学生往往觉得软件工程枯燥,提不起兴趣。而绪论课是对授课对象的“启动”与“激发”,因此,软件工程绪论的教学组织和讲授是至关重要的。本文介绍了软件工程绪论教学过程中需注意的问题和总体框架,并且详细阐述了软件工程绪论的课堂实施细节。

参考文献

[1]骆斌,葛季栋,丁二玉,等.软件工程专业课程体系的研究与创新实践[J].计算机教育,2010(12).

[2]刘强,陈越,骆斌,等.“软件工程”课程教学实施方案[J].中国大学教学,2011(2).

[3]魏芳波.大学物理课程中绪论教学改革的实践[J].高职高专教育,2010(10).

[4]栾加双,王亚军.绪论教学在大学授课过程中的重要性探讨[J].课改新探,2008(10).

“软件工程”教学策略探讨 篇7

“卓越工程师教育培养计划”是教育部于2010年6月启动的为期10年 (2010—2020年) 的重大改革项目。该项目旨在全面提高我国工程人才培养质量, 对于计算机专业则是要求其以新的教学改革尝试, 培养具有高工程素质的卓越软件工程师。笔者以这一计划为大背景, 围绕软件工程专业课教学, 深入探讨该门课程的性质及课堂教学策略, 以期能够引导学生通过学好软件工程, 成为一名卓越的软件工程师。

2 软件工程教学中存在的问题及分析 (The analysisfor issues taking place in teaching softwareengineering)

软件工程是核心专业课[1,2]。该门课程能将先前学习的程序语言, 面向对象思想, 算法设计与分析, 网络原理, 数据库建模, 开发工具等综合地融合到一起, 在设计层面使之成为一个整体的工程方案, 解决需求分析中的领域问题。作为软件工程专业的学生, 应当通过学习软件工程这门课程, 综合地领会各种基础课程在软件建模中的具体应用, 并通过分析和设计案例, 体会现实需求与抽象设计的转换之美, 为将来成为一名软件工程师打好基础。然而受教学资源、课时以及学生自身条件等诸多因素限制, 在实际教学过程中, 学生更倾向于较快地进入编程阶段, 而对早期的分析设计阶段认识不足。由于软件工程专业的学生, 在长远规划上, 应被培养成为软件设计人员或软件工程师, 而不应是专职编码人员, 因此对于教学期间出现的这种现象:易倾向编程而非重点优化设计, 应当给予重视并在授课策略上作调整。笔者认为出现这种现象的原因可归结为:

(1) 预修的课程较多强调编程, 较少关注设计, 导致一种惯性思维——跳过设计直接编程。如C++语言, 授课时更多的是讲解如何编写一个类型、构造函数的编写规则, 以及继承、重载、多态等编写规则和运行原理, 而较少用标准制图的方式描述类型的设计以及类型间的逻辑关联。

(2) 不是所有的预修课程学生都能透彻领会, 依据“短板原理”, 未领会的理论将使学生在设计阶段卡壳, 想不出哪些理论方法可使设计进行下去, 导致学生设计热情锐减。例如学生对网络原理理解不深, 将影响数据传输协议的选用。

(3) 从需求分析中抽象必要的设计词汇, 并将这些词汇通过绘图、编档以展现业务逻辑, 是一种必要的设计能力。然而, 这种能力对于工科学生而言较为薄弱。部分学生词汇贫乏, 导致设计时的逻辑、时序关系不清晰, 给接下来的设计带来不便, 从而失去设计的乐趣。如从需求中抽取动宾短语绘制业务流程图, 部分学生对词性把握不当或选词不妥, 使得词汇在语义上有重叠, 直接导致制图过程不顺畅, 而这会为后续设计, 如从动宾短语映射功能类型带来麻烦。

(4) 案例规模较小, 学生在头脑中简要构思即可编程实现。案例规模小, 学生不能通过案例感受设计的重要性, 往往是先编程后补文档。这直接导致一个后果, 一旦需求变动, 整个程序和文档几乎要重做:这不是软件工程的初衷。反之, 一个规模较大、层次分明且兼具扩展性的设计对于开发软件的成败是决定性的, 通过观摩此类软件设计, 能使学生感受到设计给编程带来的便利。

(5) 缺乏使用开发工具的经验, 不能很好地在设计概念和编程概念之间进行映射。比如选用在.Net框架下开发软件, 由于学生不具有一定的使用经验, 想不出设计在转为具体编码时可能面临的问题, 甚至对于设计能否编程为可用的软件都缺乏信心。尽管有观点认为做设计时不要陷入技术细节, 笔者也同意这一说法, 但对一个技术经验不足的学生片面强调设计只会使学生认为软件工程课程虚飘, 落不到实处。相反的, 一旦学生有开发工具的使用经验, 那么设计和编程会在学生头脑里往复映射, 使学生心理上有掌控感, 因此即便设计上出现问题, 学生也极有可能自行寻找办法修正。

3 软件工程教学策略探讨 (The discussion forsoftware engineering teaching)

基于前一部分的讨论, 笔者认为软件工程在教学策略上要强调三个方面:

(1) 设计与代码的转换方式。即在为软件建模时, 挑选典型的图例为学生展示相应的代码转换, 体现编程与设计是相辅相成的。

(2) 选取规模适中的案例并结合软件工程的设计元素, 强调建模时准确抽取词汇的重要性。软件工程涉及的编档和制图在本质上都是词汇, 准确的抽取词汇能使得文档和图纸在整体上层次分明, 归属明确, 在各自的具体表达上也能逻辑合理, 时序清晰。

(3) 使用工具为软件模型映射实现框架。通过映射框架并作讲解, 能使学生掌握软件的基本建制方法, 还能刺激学生学习使用建模或编程工具的热情, 使得进一步编码以完善软件成为可能。

为了在讲授软件工程时强调这三方面, 笔者在实际教学期间形成以下策略:

(1) 结合真实企业案例, 主体讲解抽取词汇, 制图和编档。重点讲解词汇的层次性, 以及词汇与制图、文档的关联。

(2) 选取代表性制图, 实际演示如何转化为必要的函数并进行初步的类型封装。重点体现于函数名称和类型名称上, 只要能体现制图逻辑即可, 不需给出函数或类型的具体实现。

(3) 参照较为完整的软件模型, 演示如何配置主干对象以形成可运行框架。重点讲解相关设计元素与可运行框架的对应关系。

4 软件工程教学策略的实践效果 (The practices ofour software engineering teaching strategy)

为了实施前文提出的软件工程教学策略, 笔者所在单位深入企业调研, 与企业合作, 主要目的有三个:其一, 获取企业在用人方面的实际需求, 如希望毕业生能重点学习哪些语言、平台;其二, 邀请企业提供建议, 定制专业课程, 如与Oracle合作共建专业体系;其三, 由企业提供真实案例供教学使用。这些目标都与2013年ICSE (InternationalConference for Software Engineering) 大会中给出的调研结果不谋而合[3,4]:一定程度上说明, 软件工程的教学是离不开企业案例的。应用本文教学策略的结果是令人鼓舞的, 主要表现为:

(1) 学生通过观摩整个案例的设计文档, 并参照关于编档和制图的讲解, 能够理解案例的设计逻辑, 对于制图时用到的标准图形元素能够自然的接受并记忆。再加上课堂上对个别典型制图如活动图、时序图做编码上的映射, 学生能更好地体会图纸与编码之间的转换方式, 增强了学生编制软件的信心。

(2) 以练习题的形式要求学生重新手绘当堂指定的图纸, 以加深记忆有关制图。只是观摩、参看, 不足以掌握和消化必要的制图方法, 往往是“提笔忘字”, 知识点认识模糊。只有要求学生再现图纸, 真正落实到纸面上, 才能有助于细节的把握, 也能促使学生重新审视整个图纸的逻辑关系, 以此巩固加深记忆。实际教学效果良好, 学生能自主地讨论并基本再现指定制图, 同时, 能够认识到良好、标准的制图对软件建模的作用, 不再认为软件工程是空洞无物的理论。

(3) 通过参考制图及演示图纸如何转变为可运行框架, 不仅提高了学习软件工程的兴趣, 同时也带动了学好工具软件的积极性。在学生基本理解和记忆了必要制图之后, 我们实际演示并建立了软件的可运行框架, 如以.NET为平台, 使用Visual Studio工具建立配置文件并初始化必要的主干对象, 使整个程序框架能够运行[5]。通过这种方式, 学生能够感受到软件的基本制作步骤, 并对学习必要的工具和完善其余的软件代码产生了极大的兴趣。

(4) 学生自组讨论软件设计文档并能提出编码时可能碰到的问题。基于可运行框架的演示, 学生能主动地参照设计文档在头脑中构建软件模块, 对于构建时可能有问题的地方, 能主动地先行自组讨论, 再与教师提问确认。有时尽管限于认识不足, 教师的解答学生不能完全理解, 但学生仍能清楚地知道问题出在哪里, 以及需要补充哪些知识点。

5 结语 (Conclusion)

本文对软件工程教学当中存在的问题以及成因进行了探讨, 继而给出了一种软件工程教学策略。该策略强调软件工程的课程重点是理解和掌握有关的建模理论, 而不是要求学生掌握建立软件的所有方面。在软件工程的课堂上重点仍应是设计, 而不是编程。笔者不否认编程经验对良好设计的支撑作用, 但能理解标准的软件工程理论并能掌握运行框架的建立方式, 对于软件工程的课程教学而言已足够。至于具体的完善工程的实践经验, 则有待于在卓越工程师的职业生涯中继续实践、完善。

摘要:以“卓越软件工程师教育培养计划”为背景, 分析软件工程在专业中的位置和意义。对软件工程教学中存在的问题进行了深入探讨, 提出了一种软件工程教学策略, 指出提升教学效果和教学质量的实践改革思路。

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

参考文献

[1]蒲保兴.软件工程课程教学改革与实践探索[J].软件, 2011 (5) :114-115.

[2]荀启峰.应用型卓越软件工程师培养模式探讨[J].软件工程师, 2014 (2) :42-43.

[3]Chris J.Pilgrim.Industry Involvement in ICT Curriculum:A Comparative Survey[C].2013 ICSE, Advanced Software Engineering Education, 1148-1153.

[4]Andrew Meneely.Samuel Lucidi:Vulnerability of the day:concrete demonstrations for software engineering undergraduates[C].2013 ICSE, Advanced Software Engineering Education, 1154-1157.

软件工程教学 篇8

随着我国产业经济结构的战略调整, 我国软件产业对计算机软件人才的需要也发生了很大的变化, 为了适应社会对人才需求, 培养社会需要的应用型人才, 各大专院校对计算机专业及相关专业的课程设置也在不断地进行调整, 都先后开设了“软件工程与项目管理”这门课程, 并逐渐成为了计算机主干专业课。

“软件工程与项目管理”这门课是软件工程专业中核心课程之一, 它具有理论深、涉及面广、实践性强等诸多特点, 是一门涉及计算机科学、数学、经济学、法学、管理学、心理学等多学科的综合性学科, 是一门比较难教、难学的重要课程。那么, 如何应用情境教学于这门课中, 使学生能够在情境中理解每一个工程过程和相应管理的真正含义, 这是本文要论述的中心。

课程特点及存在的问题

为了适应社会对教育的新需求, 我国各个大专院校都在不断探索新的教学模式, 国家也成立了许多示范性院校, 并在教学体制、国际合作、教材建设、课程改革、实践教学、项目教学、情境教学等等并已取得了很多成果。虽然一些院校在课程教学中对项目教学和情境教学都做过许多探索并投入了很大的关注, 但还存在着一些问题:

1. 在课堂教学中, 还仅处于离散式的“项目教学”方式, 孤立地使用一些案例, 这样会使教学内容发散, 过程整体性不鲜明。

2.在课堂教学中, 虽然使用了一些情境教学, 但还是仅仅遵循了原来理论教学过程模式, 并未按着典型工作任务模式来完成情境的教学。

如何才能把握好情境教学, 我们应该关注如下一些要素:

(1) 情境中的活动不应该仅仅是一个案例, 而应该是一个贯穿整体的过程活动, 一般情境存在前驱或后继。

(2) 参与情境中的角色要分明, 责任要清晰, 并且要有一定的连续性。

(3) 情境中的角色不仅要担当一定的任务, 同时一定要有最终的工作成果。

(4) 对每个情境中的角色都要有最终的评价。

(5) 在情境设计中应该提供一些技巧和模版, 使学生能够快速模仿并进入角色。

情境教学方法研究

首先打乱传统教材理论授课顺序, 根据软件工程工作任务进行典型工作情境设计 (包括:过程、团队、角色、任务、责任、成果、评价等) , 并溶于整体教学典型项目中。教学结果为学生提交的成果物 (模仿项目标准模版) , 学生量化评价系统、实用教学课件软件平台。

情境教学研究依据下例“教学研究链”为依据, 逐项进行研究并加以实践。

教学大纲->课程知识抽象重构->工作情境设计->典型项目设计->模版化项目成果->量化学生评价体系->实用教学课件软件平台

1. 教学大纲。教学研究以“软件工程与项目管理”的教学大纲为主要依据。

2. 课程知识抽象重构。根据教学大纲, 对传统教材中的理论和技术内容进行知识重构, 把相对分离的内容 (软件工程与项目管理) 进行有机地结合, 根据知识关联性和重要度, 构建软件生命周期主线模型。

3. 教学内容情景化。由于这门课实践性较强的特点, 它更强调由团队合作来完成一个项目从需求、设计、开发到维护整个过程。本阶段重点研究关注在课堂教学中如何把教学班级组成团队、如何给每个人确定不同的角色、责任、任务, 如何进行角色更换, 如何进行各个阶段的项目管理, 同时引入社会竞争机制, 让学生们充分地感受到社会软件企业中的开发氛围和管理过程, 使所教知识能与实际充分地联系起来, 增加兴趣和理解。

4.教学内容项目实践化。在讲解课程教材内容中如何选择教学项目是很有重要的。教学项目中应该选择什么的案例、案例内容应该包括哪些内容、应该如何与社会实际相结合、应该如何把实践中先进的知识及时追加到教学中去等等。

5.教学内容模版化。由于课本中的内容都是比较抽象的, 学生在学习过程中只能是浅层次地理解, 导致记忆时间有限, 对于这些知识在实际过程中是如何被应用等知之甚少。为此本阶段的研究重点是关注在实际项目开发和管理过程中, 是如何应用教材的知识内容的, 我们将到企业去收集第一手资料, 进行抽象整理、去粗取精, 并进行适当地简化, 再结合教学大纲做成软件生命周期各阶段关键性的模版, 为同学们提供模仿模版和示范实习。

6.教学内容评价体系化。由于在整学期的项目教学中, 每个人都要在项目团队中担当一个角色, 每个角色都要有一定的责任和任务, 为此, 当项目教学结束后, 项目组长都要对团队中的每个人进行评价。本阶段研究内容重点应该关注在项目教学中, 组长应该如何进行评价每个人, 评价体系和指标是什么, 如何量化这些评价指标 (可以包括许多方面, 例如:学习能力、理解能力、调查能力、动手能力、完成作业情况、完成质量情况、规范性情况、执行力情况、团队合作情况、积极性情况等) 。

7.实用教学课件软件平台化。根据以上研究的结果进行综合整理, 以软件的形式形成一个实用课件软件。其内容是沿着软件生命周期的各个阶段, 对每个阶段的教学内容, 重点掌握知识, 案例教学内容和要求, 以及涉及的管理、设计的各种模版。这里的特色是模版都是来自于社会软件企业的实际模版。

创新特色

1.情境教学主线清晰。以工作情境为主线, 典型项目为基础, 标准模板为成果物, 学生量化系统为评价。

2.情境设计来源于实际。以沈阳某软件外包企业的实际工作过程情境为参考模型, 设计每一个情境和角色。

3.项目贯穿整个课程。课程中采用的项目将不再是片断性的案例, 我们协商软件企业共同选择实际项目。

4.对传统教学顺序重新进行整理。对传统教材中知识点进行顺序打乱, 重新整理抽象, 以典型工作任务为中心, 情境教学和项目教学为载体, 把教材中的理论知识都有机地贯穿于其中。

5. 采用先进的实用模版。本课程的部分成果均采用软件企业常用的标准并以一定文档形式体现。

6. 可量化的评价体系。根据工作任务设计一个学生评价体系, 让团队管理学生, 让学生评价学生, 使学生们体验到团队合作及对工作的认真态度。

7. 构建可裁剪的教学参考平台。按着软件生命周期构建一个软件平台, 使学生可以系统学习软件工程整体过程, 同时结合课程学习进程, 自动生成各个阶段相应文档成果物。

结束语

情境教学并没有固定的形式, 它不仅要看课程内容与社会实践的紧密程度如何, 还要取决于授课教师的工程经验如何, 只有两者有机结合才能设计出出色的教学情境。本文针对软件工程与项目管理课程做了一些探讨, 并在教学中经过实践并取得了较好的效果。

参考文献

[1]叶俊民, 胡金柱, 李蓉, 等.软件工程案例教学研究.计算机教育, 2007 (7) :19-21.

[2]白晓清, 等“.软件工程”课程教学改革探讨.高教论坛, 2007 (2) :121-123.

“软件工程”教学方法探讨 篇9

关键词:软件工程,主流程线,案例教学,扩散思维

软件工程的概念是为有效地控制软件危机的发生而提出来的, 它的中心目标就是把软件作为一种物理的工业产品来开发, 要求采用工程化的原理与方法对软件进行计划、开发和维护。软件工程是一门旨在开发满足用户需求, 及时交付, 不超过预算和无故障的软件学科。软件工程的主要对象是大型软件, 它的最终目的是摆脱手工生产软件的状况, 逐步实现软件开发和维护的自动化。

鉴于软件工程产生的背景、目标和宗旨, 对这门课程的教学, 我们从以下方面来探讨其教学方法。

一、把握软件工程教学的总体思路是教学的关键

1. 引导认识软件工程的重要性

软件工程虽然是一个年轻的学科, 但它具有鲜明的实践性, 近年来在计算机领域中, 它的地位越来越显得重要, 不仅大型软件项目离不开它, 就是一般的, 甚至小型软件项目, 也必须运用它的概念、原则和方法。软件分析人员、软件设计、编程、测试、维护人员, 以及软件管理人员都必须很好地掌握软件工程知识, 才能适应岗位工作的要求, 特别是在当前, 软件产业已经被中央、各地方政府和有关部门当作国民经济中新的增长点的形势下, 软件工程更加受到重视, 同时, 事实也一再表明, 不掌握软件工程知识, 不按照软件工程的要求去做软件项目, 提供给用户的产品只能是低质量的, 难于维护的。

2. 归纳软件开发的主流程线

在软件工程教学过程中, 把握软件开发的主流程线是软件开发的基础, 其不仅能使我们掌握其学科目标和宗旨, 而且能为我们今后开发软件项目起到很好的指导作用。我们知道软件生存周期是指一个软件从提出开发要求开始直到软件报废为止的整个时期。一个软件开发得好不好, 质量高不高, 从其生存周期可以得到体现, 高质量软件经得住考验, 是经久耐用的。软件开发的过程直接体现在软件生存周期中, 对软件开发过程的研究成果要确保软件设计的可行性。总揽软件工程教材, 我们归纳软件开发主流程线, 即从“需求分析”到“概要设计”“详细设计”“编码”“测试”“产品提交”, 最后到“维护”阶段。同时掌握好这几个阶段的主要任务和工作是开发好软件的基础。

3. 帮助扫除软件工程学科中的文字障碍

所谓文字障碍指的是在软件工程课程中涉及或在其教学过程中经常运用到的专业术语、概念的应用或表达。比如什么是软件危机, 软件生存周期的概念是什么, 软件生存周期模型有哪些, 需求分析讲的是什么, 什么是结构化分析方法, 如何用数据流图来表达系统的功能, 数据字典是用来做什么的, 软件设计的基本原理是什么, 软件开发的增量模型又是什么, 利用面向对象的方法需要建立哪些模型, 它们分别的侧重点是什么等等。这些都是要在教学过程中扫除的文字障碍。掌握这些术语、概念的应用或表达, 可以通过平时的锻炼、记忆或下面我们要讲到的通过实例教学加强理解, 在理解的基础上加强记忆并掌握方法和原理。

二、对软件开发过程中的关键环节采用案例教学

制作一份需求规格说明书, 其主要的填写要求抽象成模板的形式如下:

1. 背景

(1) 待开发的产品的名称;

(2) 本项目的任务提出者、开发者、用户及实现该产品的单位;

(3) 该系统同其他系统的相互来往关系。

2. 系统定义

(1) 项目来源及背景;

(2) 项目要达到的目标, 如市场目标、技术目标等;

(3) 系统整体结构, 如系统框架、系统提供的主要功能, 涉及的接口等;

(4) 各组成部分结构, 如果所定义的产品是一个更大的系统的一个组成部分, 则应说明本产品与该系统中其他各组成部分之间的关系, 为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。

3. 应用环境

(1) 设备环境;

(2) 系统运行硬件环境;

(3) 系统运行软件环境;

(4) 系统运行网络环境;

(5) 用户操作模式;

(6) 当前应用环境。

4. 对功能的规定

(1) 功能编号;

(2) 所属产品编号;

(3) 优先级;

(4) 功能定义;

(5) 功能描述。

5. 对性能的规定

(1) 系统响应时间需求;

(2) 系统开放性需求;

(3) 系统可靠性需求;

(4) 系统可移植性和可扩充需求;

(5) 系统安全性需求;

(6) 现有资源利用性需求。

通过对上述需求规格说明书实例的讲解, 我们不仅要学会掌握这种文档的书写格式、规范和原则, 而且还要学会其他比如概要设计说明书的写法, 详细设计规格文档的写法, 编码文档的写法, 测试计划文档, 测试设计, 测试跟踪, 测试总结, 产品提交手册, 软件维护过程文档等的写法。通过具体实例让学生进行演练, 使其真正达到学以致用, 学用结合的目的。

三、对软件工程中的相关知识点采用扩散思维教学

所谓扩散思维是指使学生的思维不仅仅局限在某一点上, 而是针对相关知识点的拓展, 从而产生新的思路和方法的一种思维形式。由于每一门课程都不是孤立存在的, 因此要想很好的把握该课程的教学, 其教学思路应该有所延伸。比如说软件工程课程中多处涉及到数据结构、数据库、操作系统等的一些知识和概念, 我们除了在课程教学顺序上将数据结构、操作系统等课程排在软件工程课程之前教学外, 教师在授课过程中还应该有新的思路供学生参考和启发学生思维。

参考文献

[1].软件工程案例教程/韩万江编著.北京:机械工业出版社, 2007.5

[2].软件工程/史济民等编著.2版.北京:高等教育出版社, 2002.12 (2004重印)

[3].软件工程.全国高等自学考试指导委员会组编

软件工程教学 篇10

关键词:探究式教学,软件工程,激励评价,自主学习,实践教学

软件工程是计算机专业核心课程,主要讲授软件工程的原理、技术和方法,对软件开发过程具有重要指导作用,具有理论性强、涉及知识面广和强调实践三个特点[1],要求学生不仅要掌握好理论知识和方法,同时还要重视实践性教学的设计和安排,使学生能够理论联系实际,学以致用,注重培养学生良好的软件工程能力和团队协作精神,为培养高素质应用型计算机专业人才做出贡献。

由于软件工程课程涉及内容及知识面比较广,且处于不断发展和完善过程中,从而使该课程成为计算机专业课教学中的难点。同时IT企事业用人单位对应届毕业生并不很满意,他们认为当前大学生在校期间并未为将来所从事的工作做好充分的准备和具备相应的专业能力[2],没有达到应用型计算机专业人才的目标。

针对以上问题,为满足应用型人才培养特色名校建设工程的需求,以切实提高学生的自主学习能力和实践应用能力为目标,本着“以人为本”的教学理论,将探究式教学模式应用于软件工程的教学过程中,旨在提高学生的自主学习能力和实践应用能力,满足应用型人才的培养目标需求。

1 探究式教学模式实践

探究式教学法是一种较高层次的教学方法,是促进学生运用已掌握的知识去获取新知识的重要手段,它对学生认知能力、探索能力和应用能力的培养,具有其他教学法都无法取代的重要作用[3]。在探究式教学过程中,学生的主体地位、自主能力都得到了加强与提高。探究型教学以整体教学理念和执着的教学研究情怀为支撑,把知识的内发现过程转化为教学过程,是目前高校教学过程中倡导的教学方法之一。

下面针对软件工程课程特点及培养目标,探讨探究式教学模式在教学内容研究、课堂教学及实践教学等方面的实践。

1.1 教学内容研究

探究式教学不仅仅是一种方法论,更是一种教学范式;不仅要解决“怎么教”,还要解决“教什么”。在教学过程中,重视和加强教学内容的研究、修改、调整和更新非常必要。由于计算机技术的飞速发展,相应软件开发方法也不断地发展与更新,因而需要不断研究教学内容,不断对教学内容进行调整与更新。由于目前面向对象的程序设计方法为当前开发主流,因而在教学内容方面重点介绍可修改性和重用性更高的面向对象软件工程理论与方法。

根据课程的培养目标和具体培养方案,教材选用张海藩编著的《软件工程导论》,教学内容按照软件开发流程进行,从软件工程概述、系统分析、系统设计、系统实现、系统维护和软件项目管理等方面进行编排,其中项目管理贯穿整个软件开发过程,见图1。

1.2 课堂教学

软件工程课程的教学以软件的开发过程为主线,分阶段讲授软件开发周期中各个阶段的方法与原理。为使学生积极参与到教学过程中,在课程开始的时候,将学生分为若干个项目小组,每个小组4~5人,每组选择一个项目并选择一个组长,项目随着课程的讲授进度而进行。项目按照软件开发周期分阶段进行,将每个开发阶段分解为涵盖不同知识点的子任务,让学生根据所学知识点分析并实现相关任务。

探究式课堂教学的主要流程见图2,主要分为讲授基本知识点学生、学生分组讨论、汇报讨论结果、教师评价、课堂小结五个环节。在授课过程中,可根据授课内容对前四个环节适当调整,同时前四个环节可根据实际情况分成知识点循环进行。

在课堂教学过程中,授课内容选择被学科公认、最基本、最主要和核心的内容。讲授时间一般不超过20 min,授课方法可以根据授课内容采用案例、启发、任务驱动等教学方式;然后留出10~15 min的时间让学生以项目组为单位结合项目进展情况进行讨论,让学生们用刚学到的知识应用于项目对应阶段的开发中,有什么问题随时向教师提问。教师根据学生所提出的问题进行筛选,选出1~2个关键问题组织学生共同探讨并进行解决。在这个过程中,学生可以踊跃发言。同时,为了检查学生的讨论情况,选其中一个组为代表,汇报讨论结果。教师及时进行客观评价,增强他们的自信心,使他们获得成就感。分组讨论的形式也有多种,可以根据实际教学内容选择。比如讲授到需求分析这个阶段,在分组讨论环节,让每个组的学生分别担任需求方与开发方,需求方叙述其应用需求,开发方了解并记录需求,并进行共同协商讨论,形成需求文档。通过角色扮演,不仅增加了课堂的趣味性,而且使学生们能够身临其境般地参与到项目开发过程中。这样不仅培养其分析问题以及解决实际问题的能力,同时培养其团队协作及沟通能力,这也是软件工程课程的一个重要目标。

1.3 实践教学

探究式实践教学不再是传统实践教学过程中的依据具体步骤验证教师讲的结论,而是从引出和探讨所学知识点入手,设计实验方案、搜集和分析数据、尝试实践应用、评价和报告实验结果,把验证性实验变成“探索式”实验[4],从而更符合学生的认知规律和学习特点,激发学生的主动探索能动性,提高学生分析和解决实际问题的能力[5]。

与其他专业课相比,“软件工程”更偏重于采用工程化的方式设计和开发软件,强调学生解决实际问题能力和团队协作精神的培养。在实践教学过程中,要求学生结合所学理论知识,以项目团队方式开发一个具有一定规模的软件系统。实践过程分为需求分析、系统设计、编码、系统测试及维护等阶段,同时在每个开发阶段撰写相应的技术文档作为其阶段性成果,见图3。教师只提出实验要求和目标,具体的实践过程由学生自己设计。根据实践要求,在实践教学过程中结合项目驱动教学方法,侧重培养学生的团队合作精神以及分析和解决实际问题的能力。这样可以使学生能够参与一个完整软件的开发过程,并且每个人都有明确分工,分别担任不同的角色。

实践教学的时间安排与课堂教学同步,与课堂教学紧密结合。在讲授每个开发阶段的理论知识后,紧接着进行该阶段的实践教学,并形成相应的阶段性成果。比如讲授完系统测试以后,实践内容即是对完成的项目进行测试。测试的目的就是尽可能多地发现软件中存在的问题。而人总是容易发现别人的错误,却很难发现自己的错误。因而在进行系统测试时,采用互换测试的方式,每个项目组不直接测试自己的程序,而是测试其他项目组的程序,这样才能尽可能多地发现程序中存在的问题,使测试过程更加成功。同时,能够从别人的程序中发现问题,使学生更加具有成就感。测试的主要依据是前面形成的文档(需求规格说明书和系统设计说明书)。测试过程中,把测试过程中发现的问题记录下来形成测试文档。

实践成绩主要包括学生完成项目的情况以及各阶段文档撰写情况。项目完成情况的考查以答辩的形式进行,答辩过程模拟项目验收过程,由教师和各项目组长担任需求方,项目组成员担任开发方,首先由各项目组成员演示所做的项目,演示完毕后验收人员进行提问,最后根据项目完成情况和学生回答问题的情况对其进行评价。

1.4 阶段性激励评价

清代著名教育家颜昊先生说过:“教子十过,不如奖子一长”[6]。花费过多时间和精力去苛求学生,倒不如用心去发现其优点,并以此鼓励他,使其体验成功的滋味。美国行为主义心理学家桑代克在他有名的“效果论”中强调,激励学生最好的方法是适时、适度地奖赏,及时对他进行赏识性的评价[7]。激励评价就是教师对学生进行客观评价,其目的就是增强他们的自信心,培养合作精神,使他们获得成就感。因此,在教学过程中需要千方百计地为学生创造成功的机会与条件,让学生去获得成功并体验成功。一旦他们获得成功,有了成就感,教师要及时给予肯定和鼓励,使他们感受到“我能行”。

软件工程授课是按阶段、分任务进行的,每个阶段都会形成相应的成果,如需求分析和设计阶段的成果主要是文档,而实现阶段的成果为可运行的程序。教师需要及时对学生完成的阶段性成果进行验收并进行评价,对其取得的成果进行肯定和鼓励,并及时发现存在的问题,从而保证项目的顺利进行。在对学生的阶段性成果进行及时激励与评价后,能够增加他们对后续各阶段开发的信心。同时在进行评价时要兼顾学生的个体差异,进行差异性评价。以促进每个学生的发展为目标,强调促进学生有差异地发展,对不同学生提出不同要求,从而更好地满足不同层次的学生发展需求,更好地发挥不同发展层次的学生的潜力与能力,更好地实现“以人为本”的教育理念。

2 结束语

探究式教学是一种非常有效的教学方法,符合学生的一般认知规律,对于增强团队协作意识以及提高学生的表达能力、自主学习能力和分析问题能力具有非常重要的作用。笔者在对软件工程课程的特点及存在问题研究的基础上,将探究式教学模式应用于软件工程教学过程中,取得了较好的效果,同时也大大提高了学生学习的积极性和主动性,提高学生软件开发能力和团队协作精神。接受此法教学的学生获得国家大学生创新项目3项,校级大学生创新项目9项,在ACM程序设计大赛中获得二等奖5项,在全国软件各种比赛中均有很多学生获奖,同时毕业设计和毕业论文的质量也有了较大程度的提高。

参考文献

[1]杨抒,王业,金晓龙,等.美国高校软件工程课程本科教学内容设置及分析[J].计算机教育,2013(11):113-118.

[2]李广原,马楠.国外软件工程教学法初探[J].计算机教育,2011(1):86-90.

[3]蒋宗珍,李军.高校探究式教学的理论内涵及组织策略[J].重庆第二师范学院学报,2013,26(4):153-154,170,176.

[4]余聂芳,李晓梅,何佳.基于学生自我价值体现的大学计算机基础自主探究式实践教学探讨[J].计算机教育,2009(12):105-106.

[5]陈彩贞.探究式实践教学初探[J].中国西部科技,2006,5(4):81.

[6]胡向华.如何激发学生学习的热情[J].教育教学论坛,2012(40):97-98.

软件工程教学中存在的问题及对策 篇11

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

“软件工程”是一门理论与实践并重的基础课程,在教学实施方面存在较大的难度。现有的软件工程课程存在着体系不统一、定位不明确、知识与现实脱离等问题,课程内容比较庞杂和抽象,教学实践环节薄弱。因此,如何使教学内容先进、讲授生动实际、实践效果良好,一直是软件工程课程教学需要解决的难点问题。

1.软件工程课程教学改革现状

普通高校传统的实验教学过于强调理论知识的积累,这限制了学生个性的发展、技能的培养和创新素质的形成。其课程设置与实践教学内容都严重滞后,实践教学学时占总学时也很少;在实践教学内容方面对理论内容进行验证的实践教学环节占较大比例,而有利于培养应用能力的综合性、设计性实验等实践性教学比例偏少;在实践教学安排上仍采取先理论,后实践的顺序来确定实践教学环节。特别是对实践教学内容、方法及过程与创新性应用型软件人才的培养目标是否相适应等问题的研究还相当不够。具体体现在:

(1)实践教学体系设置不够完善,缺乏对实践教学的过程管理,没有建立配套的质量监控与评价体系。

(2)对实践教学的认识不到位,存在着重理论,轻实践;重课内,轻课外的倾向,缺乏对实践教学内容的总体设计,实践教学的内容及形式陈旧。

(3)实践教学教学方法单一,仍旧采用以教师为主以灌输为主的教学方法,使学生的主观能动性、动手能力和创新精神的培养受到了很大的限制。

(4)不重视工程化思想的培养,普遍缺少对学生工程能力和职业素质的训练,没有很好利用先进的实践教学管理平台跟踪管理学生实践项目。

(5)实验设备和计算机专业教师严重不足,目前的实验室设备与管理模式已很难满足实践教学的要求,缺乏具备行业工程领域背景和国际化背景的高水平创新实践教学团队。

2.改革教学方式

在计算机科学与技术专业的四个专业方向中“软件工程”课程都是重要的专业必修课,该课程的教学效果直接影响到专业的发展,因此有必要从课堂教学、实验教学、实践教学这三个环节入手探索“软件工程”课程的一种新的教学模式。

2.1案例辅助教学

“软件工程”课程主要内容涉及指导软件开发的原理、方法、工具。若脱离了软件开发实践,这些原理、方法、工具会变得枯燥、难懂。在“软件工程”课程教学中引入案例辅助教学能有效地提高教学质量。课程中的每个重要知识点都应配备若干相关案例。在整个课程的教学中应有1到2个贯穿始终的综合案例。综合案例应为一个较为实际的软件系统的开发过程,包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试。综合案例中应包含各开发阶段中涉及的任务、技术、方法及工具。学生应在课余时间认真阅读案例,并进行分析,老师同步在课堂上讲授案例,然后学生在实验课中,按照案例中的步骤重視案例中的系统开发过程,最后总结归纳。

2.2实训式实验

实训式实验是通过实例演示及模拟、课堂练习、课后作业这三个环节使学生通过实验训练很好地掌握相关技术及方法。实训式实验包含如下三个环节:

(1)实例演示及模拟

每个实验,教师应先讲解实验步骤及要求。之后教师讲解并演示一个案例,在此过程中学生同步模拟每个实验步骤。教师做一步,学生跟一步,若有学生出现问题,教师及实验员应及时辅导使其能跟上大家的进度。

(2)课堂练习

案例讲解演示之后,教师应布置1到2个类似练习题学生参照前面所讲解的案例,按步骤完成这些练习。学生练习过程中教师应全程指导,实验课结束时学生应将实验结果以电子邮件形式发给教师,并书写实验报告。

(3)课后作业

实验课结束时,教师应布置一个相关作业,学生在课下参照教师讲解的实例及课堂练习完成作业,以巩固相关知识。

2.3综合实践

“软件工程”课程的教学中应注重综合实践环节的建设。综合实践环节包括以下三个方面:

(1)“软件工程”课程设计

“软件工程”课程应设置两周左右的课程设计。课程设计的目标是让学生体验软件开发的全过程,且学会与他人合作,培养团队精神。课程设计过程中,学生分成若干小组,每个小组选择一个项目,该项目的规模应与课程综合案例的规模类似。每个小组应完成项目的问题定义、可行性研究、需求分析、总体设计、详细设计这些阶段。各个小组由组长负责组织、分工、控制进度等,对小组成员的最终课程设计成绩有一定的分数浮动调整权;组长带领全组顺利完成任务,总评可加一定分数。小组完成项目之后,应提交项目开发各阶段文档及课程设计报告。

(2)与其它课程的课程设计相结合

计算机专业的很多课程(如数据库原理、信息系统开发、数据结构、C语言等)的课程设计都与软件开发相关,可将这些课程的课程设计作为“软件工程”课程的辅助课程设计。在这些相关课程的课程设计中,可通过恰当地选择设计题目,将软件工程的原理、方法、工具应用于这些课程设计中,使学生体会到软件工程方法与各种软件开发的关系。

(3)与毕业设计相结合

计算机专业的毕业设计主要是进行实际的软件开发。目前毕业设计中学生一般面临全新的题目,设计过程中学生既要分析研究系统又要熟悉开发工具,这样很多学生会觉得头绪太多,忙不过来,最终不能完成一个理想的系统。鉴于此可将毕业设计作为“软件工程”课程设计的延续,延用课程设计中的分组,每个小组延用课程设计中的题目。由于课程设计时间较短,课程设计时各小组只进行了粗略并且简化的项目开发,在毕业设计的半年中,各小组可在课程设计的基础上进一步完善扩充已有成果,按照软件工程的步骤最终得到比较理想的系统。

参考文献:

[1]王同喜,张勇.软件工程课程教学设计与改革探讨[J].科技创新导报,2011(7)

[2]宋礼鹏,韩燮.“软件工程”课程教学模式探索[J].中国电力教育,2011(7)

软件工程教学 篇12

五步教学模式就是以能力培养为导向,根据地方高校软件工程教学目标以及对软件工程知识体系的认识,围绕教学大纲和考试大纲,按照学生认知规律与心理,参考2001年制定的ACM草案、ACM和IEEE联合发布的CCSE2005以及国内外经典教材和软件工程学的最新研究成果,以专题讨论、项目辅导、技术讲座等多种个性化教学形式的组合为教学手段,以“教师传授理论原理——教师案例分析——学生讨论——学生实践——学生提交作业”五步来组织教学的模式。在这种教学模式中,教师应承担传授、讲解、答疑、指导、协助等多重任务,而不是单纯地传授知识,教师应为学生服务;学生承担主动学习、提问、实践、讨论、上交作业等多重任务,而不是被动地接受知识。学生可根据自身特点有针对性地展开学习,教师则因材施教[2,3]。

1 五步教学模式的特点

1.1 教学内容不局限于课本

根据ACMCC2001草案,软件工程学的七大核心专题为:(1)软件过程和软件生命周期模型;(2)需求分析;(3)软件设计(以面向对象系统分析OOSA、面向对象系统设计OOSD为主);(4)测试和评估;(5)软件进化(强调可维护软件的特征、软件成熟度、软件重构和软件重用等);(6)软件项目管理(强调开发人员的组织、项目进度、软件评估、项目风险、软件质量保证、软件配置管理、项目管理工具等等);(7)软件工具和环境(重点为变成环境、需求分析建模工具、测试工具、配置管理工具、工具继承机制等)。这七个核心内容是掌握软件工程理论的最小子集。然而,目前国内出版的教材基本上没有完全覆盖这七个核心内容,有的甚至还停留在对面向过程的结构化方法的详细论述上,却忽略了目前更适用更流行的面向对象方法,有的教材连项目组织、项目风险、软件构架、软件成熟度等十分重要的内容都未给予足够论述。同时,软件工程作为一门在飞速发展的学科,教材难以及时、全面、准确地反映一些当前的新方法和新工具。因此,教学内容不应局限于课本,而应根据客观实际需要适当补充知识点,以扩大学生的知识面和实际应用能力。

1.2 教学形式丰富多彩

传统教学模式主要以教师为中心的传授,“填鸭式”的教学形式往往使学生被动地接受知识,枯燥乏味,难以调动学习兴趣。而五步教学模式强调以学生为中心,充分发挥教师的多重作用,努力营造一个学生自主学习、自我学习和相互学习的氛围。教学形式包括课堂教学、专题讨论、技术交流、技术讲座、个别辅导、小组实践等,整个教学活动围绕案例及提问展开。这样,既激发了学生的主动性,让学生根据自身行为的信息来实现自我反馈,又强化了教师的指导作用。

1.3 教学步骤灵活机动

五步教学模式中的“五步”不一定要顺序进行,可根据实际需要进行调整,在不同阶段教学主体发生变化,既能突出教师的作用,又能调动学生的积极性和创造性,较好地做到理论与实践相结合。同时,五步教学模式可以将整个教学活动的周期延长,从课堂内拓展到课堂外,又从课堂外引伸到课堂内,教师课堂内的讲解会引发学生课堂外的思考与实践,学生课堂外的疑惑会在课堂内受到重视和解答。因此,五步教学模式能更有效地激发学生展开课内课外学习,提高学生的自学能力和动手能力。

1.4 有助于提高学生的创新能力

创新能力是智力因素和非智力因素的综合,具体包括创新人格、创新思维和创新技能三方面要素。创新人格就是人的诸多人格特征中,能使人长久地保持创新欲望的个性品质,它是创新能力的动力系统;创新思维是思考自己所不熟悉的问题,而且没有现成的思路可以完全套用的思维活动,它是创新能力的智能系统;创新技能是反映创新主体行为技巧的能力,是创新技能的指导和约束下形成的,属于创新性活动的工作机制[4]。在五步教学模式中,学生根据个人兴趣组成实践小组展开软件工程实践活动,学生的创新人格、创新思维和创新技能都得到了提高。学生在这种自主、互动的学习环境下会面临各种困难,需要积极调节好心态,迎难而上,认真思考,广泛查阅资料,意志力、思维的灵活性和凭借信息能力提高显著。

1.5 对师资要求较高

在教学过程中,教师要承担传授、讲解、答疑、指导、协助等多重任务,同时,要根据客观实际需要适当补充教学内容,还要以不同的教学形式来组织教学。此外,教师利用课外时间通过QQ聊天、Email等方式与学生加强沟通实施情感督学,保持师生间的美好情谊以便及时给学生以协助和指导,为学生展开课外学习打开方便之门。因此,这种教学模式不仅要求教师具有过硬的专业知识和业务能力,而且要求教师具有强烈的责任感和热情。

2 五步教学模式的应用效果分析

2.1 调查对象、内容、问题设计方式

调查对象:衡阳师范学院计算机科学系计算机科学与技术专业及衡阳师范学院南岳学院计算机科学与技术专业的大四学生各20名。

调查内容:主要包括课程内容、教学模式、应用实践三方面。课程内容的组织安排和课程所包含的内容是课程教学的核心要素,从课程内容的编排组织和课程内容的实用性、通俗性、合理性、先进性方面进行调查研究。教学模式主要从学生对五步教学模式的反馈意见进行调查。应用实践从学生在作业及应用实践中遇到的主要问题进行调查。

问题设计方式:单选、多选、简答。问题一:你认为学习软件工程课程对你开发软件系统有何帮助?单选。问题二:请你对如下软件工程概念的熟悉程度进行选择?单选。问题三:你对传统的软件工程教学模式是否满意?单选。问题四:你对五步教学模式是否满意?单选。问题五:请从编写文档、软件过程模型选择、开发方法使用、开发工具使用、软件测试中选择你在实践应用中碰到的最大困难,可以多选。问题六:你认为五步教学模式对你的创新能力(创新人格、创新思维和创新技能)有何影响?简答。

2.2 调查结果及效果分析

前五个问题的调查结果分别如表1-表5所示。从表1中可见,大多数二本和三本学生都能认识到软件工程学习的意义,三本学生和二本学生存在一定的认识差异。从表2中可见,学生对UML建模语言接触较多,而CMM模型较为陌生。这说明学生对软件设计方面较为重视,而对开发过程管理不够重视。二本学生总体掌握情况要比三本学生好,说明学生的基础差异会影响教学效果。从表3、表4中对比可见,学生对五步教学模式的满意度高于传统教学模式的满意度。二本学生和三本学生都能接受五步教学模式。从表5中可见,二本和三本学生在实践应用中都会碰到大量困难,有的学生认为均是最大困难,说明理论与实践存在一定距离。在教学过程中,还应进一步加大学生实践。同时,学生的个体差异也会影响教学效果。

学生在问题六的问卷中谈到“学习与实践过程中,有喜悦也有痛苦,……学会如何克服困难……提高了意志力”、“……更喜欢思考问题了”、“……在同学们的帮助下完成了任务”。调查结果表明:总体上五步教学模式有助于提高学生的创新能力,对学生创新思维的提高影响最大,其次是创新人格和创新技能。

3 结论

五步教学模式能较好地吸取已有教学模式的优点,如:采用“导学为主,助学、督学为辅”的教学模式、启发式教学模式[5]、项目教学模式[6],还能将整个教学活动的周期延长,从课堂内拓展到课堂外,又从课堂外引伸到课堂内,教师课堂内的讲解会引发学生课堂外的思考与实践,学生课堂外的疑惑会在课堂内受到重视和解答。这种教学模式能更有效地激发学生展开课内课外学习,提高学生的自学能力、动手能力和创新能力,还能突破有限的课内教学时间的限制,有效地解决教学内容多教学时间少的矛盾。

参考文献

[1]教育部高等学校计算机科学与技术教学指导委员会.贯彻《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》的一种建议[M].北京:清华大学出版社,2008.

[2]朱雅莉,魏书堤,梁小满.地方高校“软件工程”课程教学改革探索[J].福建电脑,2009,25(10):38,98.

[3]教育部软件工程学科课程体系研究课题组.中国软件工程学科教程[M].北京:清华大学出版社,2005.

[4]何名申.创新思维与创新能力[M].北京:中国档案出版社,2004.

[5]白丽梅,孙东升.《软件工程》教学改革探讨[J].中国科教创新导刊,2008(2):45.

上一篇:朗读与高职英语教学下一篇:语义场理论词汇教学