期刊大全 杂志订阅 SCI期刊 投稿指导 期刊服务 文秘服务 出版社 登录/注册 购物车(0)

首页 > 精品范文 > 软件技能论文

软件技能论文精品(七篇)

时间:2022-04-17 07:52:00

软件技能论文

软件技能论文篇(1)

关键词:自主学习;外文文献研读;软件测试;双语研究性教学

0、引言

软件测试是从事计算机软件开发和维护专业的人员应该掌握的一门技术。软件测试是软件工程中的关键活动之一,是保证软件质量的重要手段,其工作量通常占软件开发总工作量的50%以上,而对于某些可靠性要求极高的软件系统,如航天、银行等领域的软件系统,软件测试占软件开发总工作量的比例甚至达到60%~80%。软件测试的目的是发现软件中的错误,并及时修正这些软件错误,以减少软件在后出现错误,提高软件产品质量。软件测试是一项需要专业技能的工作,它包含许多理论和实践。如果缺少这些理论知识和实践经验,测试的深度和广度就不够,测试质量也就无法保证,从而导致软件质量达不到要求,影响软件的可信性。

由于国内软件产业的现状所致,很多的软件公司属于软件外包型公司,这些公司以软件开发为主。这样,软件工程专业很大一部分学生毕业后通常从事软件开发或者程序员工作,这也影响着学校对软件工程专业的设置。因此,当前高校在软件工程专业课程设置上往往将很大一部分精力放在软件开发课程的设置上,如各种语言的学习、软件开发方法的学习等。但是,软件工程不仅包括软件开发,还包括软件测试以及软件维护。大部分国外大型软件公司,如微软、IBM等公司,这些公司对软件测试非常重视。在这些公司内部,软件测试人员数量并不比软件开发人员少,因为一个优秀的软件产品最终是通过不断的软件测试进行验证和评价的。随着软件工程课程的不断完善,当前软件测试的重要性已逐渐得到重视,很多高校已将软件测试课程作为软件工程专业课程中的必修课程。该课程是软件工程的核心组成部分,是连接软件开发和软件的纽带。通过本课程的学习,学生要了解软件测试及其管理的重要性,掌握软件测试基本理论、技术和方法,具备研究设计测试用例和使用自动化测试工具的基本方法和实践能力,能将测试驱动的理念融入软件开发、维护的研究与应用中,从工程化角度提高和培养学生从事大型软件的测试技术和能力。

尽管软件测试课程已作为软件工程专业的必修课程,但从教师和学生两个角度对该课程的调查反馈发现,教师觉得该课程不好教,教学效果不好;而学生感觉该课程较空洞,没有发现其在实际软件开发中有多大的应用。这主要因为在传统的软件测试教学中,学生只是被动地参与,听教师授课,听教师讲授各种软件测试概念和方法,但学生并没有真正学到这些理念,并没有对这些方法进行应用。所以这种传统的软件测试教学方法效果很难令人满意。

扬州大学信息工程学院将软件测试课程作为一门双语研究性课程进行试点改革,探讨如何更好地进行软件测试课程的教与学。本文将以该学院软件工程专业软件测试课程为例,探讨学生自主学习的软件测试双语研究性教学方法。笔者作为该课程的授课人实施了本文的软件测试教学方法,其目的是研究如何促进学生进行双语研究性教学,促进学生主动学习软件测试新技术,从而让学生学到软件测试课程中的一些测试理念,让他们了解软件测试在整个软件开发过程中的重要性。

1、软件测试双语研究性教学

软件测试双语研究性教学主要包括三方面内容:教学、研究、实践。这三者在软件测试双语研究性教学中的关系是:以教学为本学习,以研究为重点突破,以实践为辅助训练。下面分别介绍这三方面的内容:

1)教学方面。

软件测试双语研究性教学和传统的软件测试教学一样,根据软件测试教学大纲进行教学,主要包括软件测试基本概念、软件测试基本方法、白盒测试、黑盒测试等。由于研究性教学过程中加入了研究,所以教学是以基本的测试理论和技术为主。另外,在教学过程中,由于本课程属于双语课程,所以教学过程中采用英文PPT,中文授课方式进行教学。另外,教学主要以启发式教学为主,让学生更多参与课堂讨论,由于本文主要讨论研究方面,所以这里对教学不做详细讨论。

2)研究方面。

本课程采用的是研究性教学,因此研究是本课程的重点和特色。本课程所采取的研究方式主要以学生自主学习为主,采用阅读文献的方式。由于本课程是双语教学,研究过程中所提供的文献材料全部是英文论文,这些材料都是从当年软件工程领域顶级国际会议中选取的有关软件测试方面的最新技术和方法,这样有助于学生开阔视野,了解最新的软件测试技术、方法,及软件测试发展的方向。这一部分的实施方法将在第3节进行详细介绍。

3)实践方面。

软件工程是实践性很强的专业,同样,软件测试也是如此。需要通过不断的实践才能理解和掌握软件测试技术,将测试理念贯穿到软件工程项目中。本课程软件测试实践主要包括三方面内容:一是验证性实践,熟悉已有测试工具,学会使用这些工具,并利用已有测试工具生成测试用例;二是自己开发软件测试工具,主要根据研读的论文进行工具的设计和开发;三是软件测试工具的验证和评估,主要是对自己开发的工具进行验证和评估。一方面利用已有测试工具来验证当前软件测试工具,另一方面,利用已有软件测试知识评估测试工具在故障识别方面的效率,这有助于学生更深地掌握软件测试技术,了解什么样的测试技术是好的测试技术或者方法,是有效的测试工具。这一部分也不是本文的重点,因此不详细展开讨论。

2、软件测试双语研究性教学特色

本课程作为扬州大学软件工程专业的试点课程,采用双语研究性教学方式进行课程的授课和学习。对于双语性教学,主要采用英文材料,中文授课;而对于研究性教学,主要是让学生进行自主学习最新的软件测试技术和方法,研读相关的英文论文,进行专题报告和讨论,并鼓励学生开发实现这些技术。因此,在本课程的教学过程中,主要体现了5个特性。

(1)自主性:让学生从给定的英文材料中自主选择学习材料,自主组建团队,自主与英文材料作者联系、沟通、交流和讨论。

(2)协作性:学生必须要组建团队,团队成员数量由2~4人构成,团队之间相互协作、配合,共同完成整个研究性学习过程。

(3)互动性:在学习过程中,必须要与论文作者沟通和交流,真正把握论文作者的真正意图,并尝试提出自己的见解,与论文作者进行讨论。

(4)实践性:要能够实现论文材料中的软件测试方法,在工具开发过程中,鼓励学生采取测试驱动的开发方法,并利用所掌握的软件测试技术去测试自己的工具。

(5)研究性:在研读论文过程中,要对论文进行深入的讨论和研究,特别是对作者的思想以及未来工作、论文中的不足进行研究,提出可能的解决方案。

3、软件测试双语研究性教学实施

笔者主要针对软件测试双语研究性教学过程中的研究过程的实施进行讨论。在本课程中,研究主要是采用学生阅读文献的方式进行自主学习的研究,主要针对当前最新的软件测试技术进行学习和研究。研究性教学具体的实施过程如图1所示。

首先,教师从当年软件工程顶级国际会议中选取软件测试相关的研究技术论文放入文献库中。这样的文献库主要用于学生对当前软件测试的学习和研究。对于本科学生来说,独立地去研读这些最新技术还有一些难度,而且时间上也紧张。因此,研究性学习主要采取团队方式一起研究,这样学生进行自由分组,并且每个小组指派一名学生作为小组组长负责该小组的研究性学习进展。

有了文献库以及学生分组后,就进入自由选题阶段,即各个小组从文献库中选取自己感兴趣的论文。在各小组确定自己的研究论文后,进行论文的研读。在论文研读过程中,要求每个小组每周至少讨论一次,讨论各小组的分工任务完成情况,对原文的理解情况,以及对遇到的问题进行讨论,并且项目小组要及时记录这些讨论记录,每周发送给任课教师。另外,在研读论文过程中,每个小组要用英文与论文作者进行沟通与交流(如果作者没有回复,可以选择与课程教师进行交流),并将交流过程中的对话记录下来作为课程成绩考核的依据。

在论文研读后,需专门安排几节课进行专题报告和讨论,主要用于检查各小组对原文的理解情况。专题讨论内容包括三方面:一是学生对论文内容的理解;二是学生需要提出对论文的见解和观点,挖掘论文可能存在的问题或对论文中的未来工作部分提出见解;三是本小组研读论文的体会分享。在专题报告中,我们还邀请了学院的一些其他教师参与进来与学生们一起讨论,一方面,教师对各个论文本身进行点评;另一方面,教师对各个小组的表现进行点评。另外,在专题报告中,强调学生的参与,就是大家要多提问,多讨论。

专题讨论后,各小组要对原文中软件测试技术进行实现。其中,在软件测试技术实现过程中,鼓励采用测试驱动的软件开发方法;另外,需使用已有的软件测试技术和工具进行测试。在完成开发软件测试工具后,需要选择一些例子进行软件测试技术的验证。最后,各个小组需要提交一份总结报告,主要是关于技术实现进行总结,包括这几方面内容:对论文原文的理解或技术改进,采用的测试技术和工具,技术改进效果的验证和评估。

4、实施效果

该课程已在2012-2013年秋学期的扬州大学软件工程专业的一个班按照本文教学方式进行实践。该班学生40人,我们从2012年ICSE(International Conference on Software Engineering)、FSE(Symposium on the Foundations of Software)、ISSTA(Symposium on the Foundations of Soft-ware)、ICST(Intemational Conference on Sottware Testing,Verification and Validation)、ICSM(Inter-national Conference on Software Maintenance)等国际顶级会议上选取了44篇软件测试相关的论文作为学生学习的资料库。然后让学生自由组队,每组2~4人一起研读论文。最后组队15组,选择了15篇论文进行学习和讨论。在研读论文过程中,建议学生自己与论文作者用英文进行交流和讨论,讨论论文中不能理解的内容;在研读完论文后,我们组织了专题报告,报告主要包括三方面:一是论文主要内容;二是学生对论文的看法以及学生自己的想法;最后就是分享研读过程中的体会。另外,我们鼓励学生用英文进行报告(其中一组采用英文进行报告)。专题报告过程中我们还邀请软件工程系相关教师一起进行点评。

通过这样的学习,大部分小组完成得较好,基本能理解论文内容,也提出一些想法和改进措施。在研读论文后,学生对论文内容和自己的想法进行实践,实现相关技术并进行实验验证。几个月的学习后,大部分学生对这门课的研究性教学方式比较认可。我们以问卷的方式对学生进行了调查分析,调查主要包括对课程教学方式的认可,对自己收获的认可等。发放调查问卷40份,收回有效调查结果28份。该调查问卷由11个问题组成。前10个是选择题,如表1所示,是对当前教学方式和教学效果的同意或支持程度,由1~5这5个选项构成,其中1表示非常支持(同意),2表示支持,3表示无所谓,4表示不支持,5表示严重不支持。统计结果如表1所示。最后一个调查问题是关于这门课程的建议。从表1中可见,学生还是比较渴望学习新的知识,比较认可这种学习方式;另外,学生对自己的学习效果也比较认可。最后,无论从考试效果,还是学生的反响来看,这门课所采用的教学和学习方式是比较成功的。该教学方式也得到学院的认可,所采用的教学方式也得到科技日报、新华报业网等主流媒体的广泛关注和报道。

软件技能论文篇(2)

关键词:软件工程;试验;软件装置;平台;问题;特点;应用;功能;分析

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)23-5598-02

正如上文所述:软件工程课程作为现阶段高等教育教学体系中计算机科学及技术相关学科教学工作开展过程当中的重要构成要素之一,旨在培养学生软件工程设计、分析以及测试工作的实践操作能力,进而为现代经济社会的建设发展输送质量更高的复合型计算机软件操作人才。从软件产业的发展角度上来说,新时期软件产业高速的发展使得软件工程学科教学工作面临着前所未有的发展机遇与挑战。现代经济社会建设发展新时期,各行业领域对于软件系统的需求正呈现出较为迅猛的增长趋势,以上实际情况与软件产业的发展趋势要求软件工程学科教学作出必要的改进与完善,以适应软件产业的工程化、规模化、综合化以及系统化发展趋势。该文基于对现阶段存在于软件工程教学作业中问题的分析,从软件工程实验装置建设的基本特点与软件工程试验软件装置的具体应用分析这两个角度入手,针对以上问题做详细分析与说明。

1现阶段软件工程教学工作存在的问题分析

学生对于软件工程学科学习的最终意义与价值认识还不够明确与精准,无法找准软件工程学科学习对于自身发展与社会生存间的推动关系,直接导致大部分学生并不具备学习软件工程相关知识技能的兴趣度,最终致使学生参与软件工程课程学习的主动性与积极性无法得到充分发挥。更应当注意的一点在于:大部分学生所认识到的软件工程学科知识仅有着一定的理论价值,学习意义的发挥存在较大的局限性,软件工程学科潜在的实践性价值无法得到有效体现与发挥。

学生在参与软件工程学科学习过程当中所涉及到的相关理论知识与技术方法无法得到试验的检验与证实:现阶段软件工程学科学习最突出的问题在于:软件工程学科学习过程当中所涉及到大量理论知识与技术方法无法得到试验的检验与证实,理论知识的传授与实践操作之间的连接不够紧密,学生对于所接收到的软件工程相关知识与规律存在一定的质疑性。

学生软件项目管理相关操作能力与基本素养水平无法通过软件工程学科的学习而有所改善与提升:我们知道,对于软件工程学科教学而言,其教学内容当中所涉及到的管理与协调等非技术性教学内容站整体教学内容的比例是比较高的。要想熟练掌握并合理应用这部分管理与协调经验并非一蹴而就的,其更多的倾向于一种长期性且复杂性的系统化工程。很明显,现阶段软件工程学科所选取的理论知识与实践操作实验还无法引导学生直接且有效的达到以上应用技能水平的高效提升,最终也制约了软件工程学科教学目标的实现。

2软件工程实验软件装置建设应体现的基本特点分析

相关工作人员应当明确一个方面的问题:软件工程实验软件装置引入的最关键目的在于引导学生以实验软件装置为载体,感受到软件工程的抽象化存在,明确学习软件工程的意义,认知软件工程的学习方法,探究软件工程学科学习过程当中的趣味性,最终引导学生自主、自发的对软件工程学科相关理论知识与实践操作进行学习。从以上分析可以总结:软件工程试验软件装置的建设应当特别体现以下几个方面的应用特点。软件工程试验软件装置的建设应当引导学生构建创新意识与创新精神。软件工程实验软件装置的建设应当体现新课程改革标准规范针对软件工程学科教学实际所提出“软件工程学科建设应当将传统意义上单向传授知识的学科知识教授体系予以打破,进而构建一种将传授与探索研究相结合的目标化教学模式”的教学理念,引导学生在一种极具开放性与启发性的学习环境当中进行软件工程学科学习,引导学生通过问题的发现,激发解决问题的积极性,进而对问题进行有效思考,最终解决问题。

软件工程实验软件装置的建设应当满足软件工程学科多元化的试验需求:实验软件装置的应用应当具备对软件工程学科教学所选取教材教学内容进行归纳与细化的功能,引导学生对自身学习能力水平高低以及自身掌握软件工程学科知识技能的程度对知识学习与实践操作进行合理的选取,实现软件工程学科教学的针对性与侧重性转型,与此同时,软件工程实验装置的应用还应当促进学生将软件工程理论与自身专业技能相融合,从而对整个项目开发环境有一个全面的认识与了解。

3软件工程支持可扩展与可定制软件装置平台的应用分析

软件装置平台背景分析:由于软件工程所涉及到的理论知识与应用技术据比较系统与具体,软件工程所涉及到的工作面比较大,导致学生在刚刚接触软件工程教学的过程当中出现大量的疑问与学习难点。最普遍的问题可以简单概括为以下几个方面:①.学习软件工程的意义何在?②.软件工程应当怎样学习?③.在软件工程的整个学习过程当中会涉及到哪些类型工具的应用?教师要做的是在软件工程教学实践过程当中逐步引导学生解决疑问,在对软件开发流程进行过程当中对学生可能感到疑惑的问题与细节进行处理。在这一过程当中,教师应当引导学生明确以下几个方面的问题:软件装置平台的构建目标在于提供一个让初次接触软件工程的学生能够在学习初期最为直接与直观对软件分析、设计以及测试相关理论技术与工作流程有一个宏观的认识。与此同时,通过软件装置平台的构建,学生能够在一个个性化的学习基地当中进行系统化的软件工程知识技术学习。更为关键的一点在于:通过软件装置平台的构建,学生能够确保软件作业所输出软件工程制品的高效性与合理性。软件装置平台的构建使得学生所接触到的软件开发全过程更为简便,可操作性得到了有效提升。有关软件工程思想的认识与学习能够在学生主观性与自觉性的学习过程当中得到完善,从而确保实验装置动态更新速率的稳定提升。

软件装置平台基本功能分析:从某种角度上来说,软件装置平台能够辅助终端操作者通过对软件工程基本理论及应用技术的掌握明确认识到有关面向对象方法的应用情况,进而以此为依据提高软件系统分析、设计以及开发工作的完成效率。从这一角度上来说,软件装置平台所涉及到的基本功能可归纳为以下几个方面,需要引起相关人员的特别关注与重视。

1)软件装置平台的构建应当具备对软件工程基本理论、技术以及应用工具的介绍功能。健全化的软件装置平台构建应当具备有关软件工程应用工具以及支持面向对象软件流程分析与设计相关工作的介绍性能,在这一过程当中应当特别关注对UML图基本意义及应用方式的介绍作用。对软件工程应用工具以及软件工程相关理论技术的介绍应当具体到软件分析的目的、软件设计的步骤、软件内容的概括、软件实现的原则以及软件应用客观要求等多个方面。以软件装置平台构建中课程常识的介绍功能而言,应重点介绍的内容应当包括①.课程必要性介绍;②.课程涉及面介绍;③.开发模型介绍;④.开发流程介绍这几个方面,在此基础之上拓展在线搜索功能,外联“baidu”或是“google”网页搜索,并为学生提供专门的学习笔记以及师生交流支持,与之相对应的网页布局结构如下图所示(见图1)。

图1网页布局结构示意图

2)软件装置平台的构建应当具备健全的可扩展特性与可定制特性。从软件工程学科所涉及到的相关理论与技术方法的研究角度上来说,所构建的软件装置平台应当支持装置终端使用者依照自身的实际需求,在基于对软件工程项目设计全过程进行分析与规划,并且明确项目输出需求的基础之上,对软件工程项目实施流程作出一定程度上的调整与优化,并对实验需求进行合理的定制。更为关键的一点在于:所构建的软件装置平台还能够支持装置终端使用者将所开发出的最优案列导入系统结构内部并储存,作为后续软件工程项目开发的参考案列。实践研究结果表明:通过软件装置平台可扩展性与可定制性的实现,软件装置平台最大限度的避免了项目开发参考案例的单一性,从而提高项目开发质量与开发效率。

4结束语

伴随着现代科学技术的蓬勃发展与经济社会现代化建设进程日益完善,社会大众持续增长的物质文化与精神文化需求同时对新时期的软件工程建设事业提出了更为全面与系统的发展要求。现代经济社会对于软件工程专业复合型人才需求量的持续提升要求有关软件工程学科教学工作作出一定的改革与优化。软件装置平台的构建无疑是最为直接也是最为有效的实现方式之一。通过对现阶段存在于软件工程教学中问题的分析,笔者认为,对于软件工程课程教学作业的开展而言,在遵循软件工程实验软件装置一般建设特点予以满足的基础之上,重点通过对软件装置平台基本功能的描述,其相对于软件工程学科的教学优势能够得到充分的体现。总而言之,该文针对有关软件工程实验装置相关问题做出了简要分析与说明,希望能够为今后相关研究与实践工作的开展提供一定的参考与帮助。

参考文献:

[1]张为.庄育飞.冯华,等.《软件工程实验》课程采用产学合作模式以培养应用型软件人才的研究和实践[J].价值工程.2012,31(7): 146-147.

[2]熊凡,李伟波.项目驱动的软件工程实验教学探讨[J].中国电力教育,2012(2):77-79.

[3]司莹莹.软件工程实验课程教学模式探索[J].中国科教创新导刊,2008(36).

[4]黄妮,吴晓军.基于时间约束的软件工程资源配置Petri网检测模型[J].计算机技术与发展,2012,22(4):21-24,28.

[5]张云.将过程控制引入软件工程课程实验的研究[J].嘉兴学院学报.2006,18(3):98-100.

[6]吴志男.基于模拟软件企业的导学制在软件工程实验教学中的实施应用[J].科教导刊,2011(21):64-65.

软件技能论文篇(3)

关键词:软件成本估算 算法模型 功能点 类比法

中图分类号:TP393 文献标识码:A 文章编号:1672-3791(2013)06(c)-0201-03

早在20世纪60年代末,美国国防部门和软件界有关人士首先提出了“软件危机”的警告。软件危机首要体现在“难以正确的估计软件开发的成本和进度”[1]。因此,国内外学者对软件成本估算技术进行了大量的研究。从作者收集到的文献看,现有的研究软件成本估算技术可以分为五类,根据文献数量的从多到少,依次为:基于算法模型的估算技术、基于功能点的估算技术、基于类比法的估算技术、基于专家经验的估算技术和其它类技术。其中,基于算法模型的估算技术包括COCOMO模型、PRICE-S模型、SLIM模型、SEER-SEM模型等等;基于功能点的估算技术包括IFPUG功能点、MarkⅡ功能点、COSMIC-FFPⅠ、COSMIC-FFPⅡ等等;基于专家经验的估算技术包括Delphi法、WBS法等等;其它技术包括回归分析技术、神经网络技术、动态技术、贝叶斯分析技术、模糊理论技术、组合方法技术等等。图1为软件成本估算技术的分类图。

1 基于算法模型的软件成本估算技术

所谓算法模型是指从参数得到成本估算的一系列规则、公式。基于算法模型的软件成本估算技术的基本思想是:找到软件工作量的各种成本影响因子,并判定它对工作量所产生的影响程度是可加的、乘数的还是指数的。不同的算法模型不仅在因子的选取上各不相同,而且在成本因子的关系表达式上也有所区别[2]。

1.1 COCOMO模型

在软件成本估算的模型方面,最具有影响力的算法模型是由南加里福尼亚大学软件工程中心计算机科学系主任Barry Boehm博士为首的团队提出的COCOMO模型(结构型成本估算模型)。Barry Boehm博士在他编著的两本经典著作—— 《软件工程经济学》(1981年出版)和《软件成本估算:COCOMOⅡ模型》(2000年出版)中,介绍了世界上应用范围最为广泛的成本估算模型—— COCOMO模型。《软件工程经济学》以经济学的观点来研究和分析软件开发,以探讨软件成本估算技术与成本估算模型。该书是原版COCOMO模型(COCOMO

81)最完整的信息资源,提供了理解与应用COCOMOⅡ模型的大量素材。COCOMOⅡ模型是对COCOMO81的改进版本,在诸多方面进行了重要更新和扩展。Barry Boehm博士的这两本著作既是国内外的学者们研究COCOMO模型的理论起源,也是研究软件成本估算技术的重要参考文献。

COCOMO模型的通用的计算公式如下[3]:

其中,PM表示工作量(单位通常为人月),Size表示软件规模,E表示对工作量呈指数级影响的比例因子,EM表示工作量的乘数因子。

COCOMO模型共经历了三次发展,按照时间顺序分别是COCOMO81、COCOMOⅡ、COCOMO模型扩展。

1.2 PRICE-S模型

PRICE-S模型最初是由RCA公司为阿波罗登月计划的软件项目而开发的,仅供内部使用,然后于1977年作为专利模型获得版权,在美国国防部、美国宇航局等其它政府的软件项目中推广使用。尽管该模型的个别核心算法已经公开,但是尚未公布全部内容[4]。美国国防部采用PRICE-S模型进行软件成本估算的项目有:F-22战斗机(ATF)、F-35联合攻击机(ISF)、Tanker Program美国空军新型空中加油机等[5]。

1.3 SLIM模型

SLIM模型(the Software of Life-cycle Model)是由Quantitative Software Measurement的Larry Putnam于二十世纪七十年代末开发的、建立在Putnam采用一种被称为项目个人水平与时间的瑞利(Rayleigh)分布对软件生存期分析基础上的模型[6]。

1.4 SEER-SEM模型

SEER-SEM[7]是由Galorath Inc.公司提供的产品,该模型是建立在原始Jensen模型基础上,推向市场已经有15年左右。在此期间,该产品已经演化为一个支持自顶向下和自底向上评估方法的成熟工具,其建模公式具有专利,但是它们采用的是参数估算方法。该模型的应用范围很广,覆盖了项目生存期的所有阶段,从早期定义,到设计、开发、交付和维护。可以处理各种环境和应用,如客户机-服务器、单机、分布式、图像等等。开发模式覆盖面向对象、重用、COTS、螺旋、瀑布、原型、增量型。

2 基于功能点的软件成本估算技术

功能点方法是在需求分析阶段基于系统功能的一种规模度量方法,是基于应用软件的外部、内部特性以及软件性能的一种间接的规模测量[8]。功能点方法可以细分为功能点、功能扩展点(包含特征点、3D功能点、全功能点)、对象点和用例点。具有影响力的功能点方法有以下几点。

2.1 IFPUG功能点分析法

1984年,功能点度量已得到广泛应用,形成了“国际功能点用户组”(International Function Point Users Group,简称IFPUG),现在已成为世界上最大的软件测量联盟,很多国家的大批软件机构都加入了IFPUG。该组织提出的“IFPUG功能点分析方法”是使用最为广泛的功能点分析方法,已经成为这一领域的标准,2004年该组织了《IFPUG功能点计数实践手册4.2版》[9]。

2.2 MarkⅡ功能点分析法

1987年,Charles Symons正式提出了MarkⅡ功能点方法[10]。该方法由英国软件度量协会(United Kingdom Software Metrics Association,简称UKSMA)研究和推广,主要在英国使用。MarkⅡ功能点方法是一种定量的、针对应用软件的测量分析方法。该方法的输入是《需求规格说明书》、《概要设计》、《数据库设计》和《业务说明书》,输出是未调整功能点、技术复杂度调整和已调整功能点。MarkⅡ方法在IFPUG方法的基础上精简组件模型,使用连续性的度量使计算结果更精确[11]。

2.3 COSMIC-FFPⅠ

1997年,魁北克大学软件项目风险管理研究实验室提出COSMIC-FFPⅠ方法[12]。该方法后来由国际组织软件度量共同协会(Common Software Measurement International Consortium, COSMIC)继承并进行完善。FFP是指全功能点(full function point),COSMIC-FFPⅠ是IFPUG方法的扩展,针对实时系统软件增加了度量控制进程的分析规则,处理实时系统中大量存在的一次性数据。

2.4 COSMIC-FFPⅡ

COSMIC-FFPⅡ是COSMIC-FFPⅠ方法的升级,但其分析规则与COSMIC-FFPⅠ完全不同,其计算规则于2001年。该方法综合了其它功能规模度量方法的优点,提出了全新的组件模型和分析规则,适用于MIS系统、实时系统、中间件等多种类型系统的功能规模计算。

另外,Checkpoint也是采用功能点作为初始输入。它是由软件生产率研究所(SPR)根据Capers Jones的研究开发的一种基于知识库的、拥有一个包含大约8000个软件项目的数据库的软件项目评估工具[13]。

3 基于类比法的软件成本估算技术

使用类比的方法进行估算是基于案例推理技术(Case Based Reasoning,简称CBR),在软件成本估算中的一种应用形式,其主要思想就是通过待估算的目标与一个或多个已经完成的类似项目的对比来预测其相应属性[14]。基于案例推理的软件开发工作量估算方法的基本思路是:根据案例推理的基本原理,对以往发生的、历史的、具有真实数据的软件项目进行工作量驱动因子分析,寻求一般规律,从而估算当前待估算软件的开发工作量。估算软件工作量的关键步骤为:提取软件工作量驱动因子;计算待估软件与各个案例之间的相似度;估算软件工作量[15]。

4 基于专家经验的软件成本估算技术

基于专家经验的估算技术也称为专家判定法,是指与一位或多位专家进行商讨,专家根据自己的经验和对所涉及项目的理解,得出该项目的成本估算值。专家估算法适用于没有历史数据的情况下的成本估算,并且在决定其它模型的输入时特别有用[16]。

4.1 Delphi技术

Delphi技术是最流行的专家评估技术。

Delphi技术是兰德公司在四十年代末为预测未来事件而开发的,其名字源于古希腊神使占卜所在Parnassos山南侧的Delphi。标准Delphi技术不允许小组讨论,宽带Delphi技术要求在评估后进行小组讨论。

4.2 WBS法

工作分解结构WBS(Work Breakdown Structure),通过将项目元素放置到一定的等级划分中来简化预算估计与控制的相关工作。WBS包括两个层次的分解:一个表示软件产品本身的划分,把软件系统分解为各个功能组件以及其下的各个子模块;另一个表示开发软件所需活动的划分,工作活动分解为需求、设计、编码、测试、文档等大块以及其下的更具体的细分。

5 其它类软件成本估算技术

软件成本估算技术除了基于算法模型、功能点、类比法、专家经验的技术方法之外,还有回归分析、神经网络、动态技术、贝叶斯分析、模糊理论以及将不同的估算技术进行组合等技术方法。

5.1 回归分析

回归分析包括分类回归树、最优子集回归、逐步方差分析、普通最小均方回归、稳健回归等。其中普通最小均方回归是最传统的方法。

普通最小均方回归(Ordinary Least Squares,OLS)也称作标准回归,指的是采用最小均方普通线性回归的经典统计方法,该方法简单好用,很多商业软件包如Minitab、Splus和SPSS中都有该技术软件。“Robust”回归是对标准OLS方法的改进。很多现存的参数成本模型(COCOMO II,SLIM,Checkpoint,等)都使用了各种形式的回归技术。

5.2 神经网络

神经网络(Neural Network)(1996年根据Gray 和McDonell的研究),是最常见的代替最小均方回归的软件评估建模技术,这些模型可以用历史数据来“训练”,以便形成更好的能自动调整算法参数值的模型,减少实际结果和模型预算值之间的差异。

5.3 动态技术

动态技术(Dynamics-based Techniques)是指软件项目的成本因子在系统开发的期间不断变化,它是一个连续的仿真建模方法。该技术最早是在1961年Jay Forrester研究发明的,1994年Macdachy提出了系统仿真模型的公式,并用于软件工程估算。

5.4 贝叶斯分析

贝叶斯分析是允许调查人员根据样本和专家判断的预先信息采用逻辑相容的方法产生推论,COCOMO II就采用了该技术。

5.5 模糊理论

模糊理论一般不会单独用于软件成本估算中,通常需要与其它的方法结合使用。

5.6 组合方法

组合方法是指将不同的软件成本估算技术组合在一起使用,或者将其它理论与软件成本估算技术相组合的方法。典型的组合方法有COBRA(cost estimation, benchmarking, and risk assessment)及其后来针对Web应用的扩展Web-COBRA。除此之外,还有:将贝叶斯网络与COCOMO模型组合,将模糊理论与COCOMO模型组合,将神经网络与COCOMO模型组合等等。

6 各类软件成本估算技术的比较

下面通过表格的形式从估算技术的基本思想、主要优缺点两个方面对不同的软件成本估算技术进行比较。

参考文献

[1] 总装备部电子信息基础部标准化研究中心.军用软件工程系列标准实施指南[M].北京:航空工业出版社,2006:2.

[2] Barry boehm.Software Engineering Economics[M].Canifornia:New Jersey Prentice Hall.

[3] Barry Boehm.Constructive Cost Model[M].Beijing:China Press,2005:1.

[4] Park Riee.The Central Equations of the PRICE Software Cost Model[C].Price of the 4th COCOMO Users Group Meeting,1988:256.

[5] 许道利.基于模型的软件成本估算技术研究及工具原型实现[D].长沙:国防科学技术大学,2007.

[6] Lawrence Ware Myers.Measures for Excellence[M].New York:Yourdon Press,1992:1.

[7] 国家计委,财政部,总参谋部,国防科工委.军品价格管理办法[S].北京:四部委,1996.

[8] 张文华.功能点的计算方法[J].电脑知识与技术,2006(4):17-18.

[9] Roger S.Pressman,Software Engineering[M].北京:机械工业出版社,2008:37.

软件技能论文篇(4)

关键词:软件工程 实例化教学 项目实践

中图分类号:G462 文献标识码:A 文章编号:1674-2117(2014)16-00-02

1 前言

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、设计模式以及管理、标准、个人技能、团队协作和专业实践等多方面的知识和技能。它是一门理论性和实践性并重的重要学科。

软件工程课程是计算机专业重要的专业基础课。通过软件工程课程的学习,学生能够了解和掌握软件工程的理论、技术和方法,具备作为软件工程师所需的专业能力。由于软件工程的课程特点,传统的教师课堂授课为主、学生被动听讲为辅的教学模式在实践环节上存在很大不足,软件工程的理论和方法是从众多软件开发实践中总结出来的。但是对于缺乏软件开发实际经验的本科生来说,单纯地讲授理论知识往往使学生感到枯燥无味且难以理解,这严重影响了课程的教育质量和教学效果。近年来,部分学校采用了案例化教学的方式改革软件工程课程教学,在案例化教学中收集和总结了若干典型的软件开发案例,将这些案例贯穿于理论知识的讲解中;同时引入“做中学”教学模式,让学生在实际的项目开发中进一步理解理论知识,取得了很好的教学效果。[1-4]

我们在软件工程的授课过程中,也引入了案例化教学模式。总体来讲,学生的反应是积极的,不过也发现了一些问题。

(1)任课教师本身缺乏使用软件工程方法开发一个完整系统的经验,仅限于照本宣科地介绍基本原理和实际案例,不能将当前实际案例和软件工程方法有机地结合在一起,与实际的软件工程实践有明显的差距。

(2)大学阶段的课程实践基本以个人编程完成为主,软件工程方法起到的作用有限。即使面对需要团队协作的作业,也因为规模小、从头开发和无需维护的特点,使得学生感觉到使用软件工程方法作用不大,除了增加工作量外,没有明显的益处,无法激发他们进一步学习的兴趣。

(3)现有的软件实验环境偏重于提供编程工具的支持,缺少一个完整的软件工程支持环境,缺少适合教学使用的实验环境和资料,学生得不到真正的锻炼。

2 教学改革

针对现存的问题,结合ACM和IEEE联合的CCSE2005的相关内容[5],我们进一步改革课程体系框架和教学内容,本文将着重介绍我们在软件工程课程教学中的经验和成果。

IEEE的软件工程知识体系包括10个知识领域:软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程工具和方法、软件工程过程和软件质量。参考这10个领域知识,根据教学目标,结合理论知识、软件工具和工程实践等方面组织整个课程内容,在理论、应用、实践三个层次上建立了软件工程的课程体系。

理论部分以当前流行的统一开发过程RUP和UML语言为核心,覆盖IEEE的软件工程知识体系。包括软件需求、软件设计、软件实现、软件测试、软件演化、软件质量和软件配置管理等内容。

应用部分结合实际案例,覆盖IEEE的系列软件工程标准,学习RationalRose、ClearCase、ClearQuest、JUnit、MicrosoftProject等常见软件工程工具和环境。

实践部分要求学生以团队的方式协作开发具有一定规模的软件系统,并且在实践过程中能够熟练使用软件工程工具。实践部分着重培养学生应用软件工程的思想和现代技术解决软件开发问题的能力。

2.1 理论知识

理论部分的教学仍采用教师授课为主的模式,向学生讲述软件工程的基本理论,内容力求少而精,目的是在较短时间内让学生了解现阶段最广泛使用的软件工程技术的理论基础,为下一步应用部分的学习奠定基础。在具体的授课过程中,为避免单纯理论学习的枯燥性,授课内容围绕典型的软件开发案例展开。学生学习的注意力和兴趣是影响教学质量的重要因素。我们使用的案例是从国内著名的软件开发公司得到的真实案例,学生可以完整地看到项目的全景,这样既帮助学生认识到学习课程的必要性,又调动起学生的学习兴趣。

2.2 应用技术

软件工程与其他计算机课程不同,学生需要面对的不只是单一的软件工具,而是一组软件工具组成的软件支持环境。为了增强软件工程课的真实性,我们选用了一组业内流行的软件工程工具,营造一个适合软件工程课程项目实践的软件工程环境。使用RationalRose完成需求分析与系统分析和设计,使用ClearCase完成源代码管理,使用ClearQuest完成缺陷管理,使用MicrosoftProject完成项目资源调度等。考虑到相关软件工具的复杂性,为避免学生陷入单纯学习软件功能的误区,我们坚持“用中学”的方针,不要求学生面面俱到掌握软件功能,而是从实用角度出发,以完成项目为目的,掌握软件的常用功能。我们会首先演示如何使用相关软件完成典型案例,然后要求学生模仿示例,自行创作设计。

2.3 项目实践

大学阶段,大部分计算机课程实践通过学生的独立编程即可完成,软件工程课程实践则不同,软件工程方法和技术的作用必须在完成项目的过程中通过团队合作才能体现出来。

我们刚刚开始教这门课的时候,为了便于管理,选择的项目偏小,一般适合3~5人完成。不过通过几学期的实践,发现效果不佳。因为规模不大,通常只会有1~2人来承担主要开发工作,其他学生通常只起到辅助作用。在开发过程中,由于核心开发人员少,口头沟通远要比书面沟通简单有效,没有认真准备项目文档的动力;而且项目是从头做起,不需要利用以前文档来了解项目情况,无法体会到项目文档的重要性。在此种情形下,学生感觉到引入软件工程只是额外增加了工作负担,并没有明显的益处。

为了更好地帮助学生认识到这门课的重要性,我们在实践阶段做了若干改进。

(1)有意识地扩大了项目的规模,开发团队的人数也相应增加,通常开发团队人数在10人左右。人数的增多使得单纯的口头交流很难保证项目的顺利进行,从而促使学生撰写项目文档。

(2)分组时,根据学生的能力和水平,明确学习任务,进行合理有效的分工。在一个项目组内,应该有项目经理、系统分析师、软件工程师、配置管理员、测试工程师等角色。同一名学生在不同的开发阶段可能会承担不同的角色。

(3)项目开发也分为两个阶段,第一阶段完成后,我们会再提出一份更新的需求,要求在第一阶段的成果上继续开发。项目组的成员也不是一成不变的,第二阶段时每个项目组至少更换50%的成员。

在项目开发过程中,我们会监控项目的开发过程,参与项目阶段成果的评审工作。项目开发过程尽可能模拟真实软件企业的开发过程,最终使学生完成需求分析、设计、代码编写、测试、部署全过程,培养学生的合作意识、责任感和集体荣誉感。学生在开发过程中遇到问题,我们也不会直接给出答案,会建议他们自行讨论来解决,提高他们的沟通交际能力,培养其团队合作精神。

在教学过程中,理论部分、应用部分和实践部分并不是相互独立,而是有机地结合在一起。我们在该课程教学初期,首先给学生若干项目课题进行选择,题目选定后,以自主结合的方式完成分组。这样做可以有效地增强学生学习时的目的性。在重要章节的教学过程中,遵循先理论知识、再应用技术、最后实践部分的次序进行。完成某章节的学习后,就应该在规定时间内提交项目相应阶段的工作成果。例如,需求分析章节的理论知识学习安排在第2周、应用技术部分安排在第3周、需求分析说明书要求在第5周提交;系统分析的理论知识学习安排在第4周、应用技术部分安排在第5周、系统分析报告要求在第7周提交。我们会及时对每一部分的工作成果进行评讲,指出缺陷和不足,保障项目开发的顺利进行。在期末考试结束之前,结束第一阶段的开发工作。随后,我们会给出项目的新增需求,并调整项目成员,开始第二阶段的开发工作。由于第二阶段是在所有课程考试结束之后,学生有条件在固定地点集中上机,因此第二阶段的工作将尽可能模仿软件公司的开发模式。首先,项目经理必须和组员共同讨论出一份可行的项目开发计划。我们将根据该计划监控项目进展过程,并在重要节点抽查该项目的进展情况。项目计划的重大变化,必须及时更新项目开发计划。其次,在项目进展过程中,每个开发阶段的工作成果都必须经过评审。不评审或者评审不合格,不可以开始下一阶段的工作。最后,每个项目成员必须每天提交工作进展报告,内部会议也要有会议记录。所有这些项目管理相关文档和项目本身的文档都需要在项目结束时一并提交。评定成绩时结果和过程并重,项目管理相关文档是过程的重要体现。

3 考核方法和教学效果分析

为突出实践环节的重要性,我们将项目实践部分的考核比例增加至总成绩的50%,即成绩标准为项目实践成绩(50%)+笔试成绩(30%)+平时成绩(20%)。其中第一阶段的项目实践成绩占20%,第二阶段占30%。在对学生的实践环节考核中,我们更侧重于对学生的实践操作能力、文档编写能力、团队合作和沟通能力的考核。为避免浑水摸鱼,在评定成绩时,根据贡献不同,组中的不同成员会有不同的权重,每个学生的最终成绩是团队成绩和权重的乘积。采用新的考核方法后,极大地调动了学生参与项目实践的热情,取得了良好的学习效果。在随后的毕业设计和程序设计比赛中学生都体现出较强的团队开发能力。

4 结语

软件工程是一门理论和实践并重的课程,只有加强实践环节的训练,理论知识才能得到有效巩固。我们在教学过程中,始终把项目实践放在突出的地位,通过增大项目规模和引入两阶段项目开发,让学生主动认识到软件工程课程的重要作用。实践证明,现阶段软件工程的教学改革工作,有效地提高了学生的学习兴趣,增强了学生使用软件工程方法和技术解决实际问题的能力,培养了学生团队合作精神。下一步我们准备通过“校企合作”,增强项目实践的真实性,使软件工程的项目实践更加合理、完善。

(上海海洋大学信息学院,上海201306)

参考文献:

[1]张剑波,方芳,袁国斌.软件工程专业实践教学体系改革[J].计算机教育,2013(12):37-41.

[2]王卫红,杨良怀,江领.软件工程优势专业的建设与发展[J].计算机教育,2013(10):1-4,9.

[3]汤淼.软件工程专业“项目驱动”实验教学模式研究[J].实验技术与管理,2012(4):267-271.

软件技能论文篇(5)

[关键词] 类DNA; 教学结构; 软件人才培养

[中图分类号] G434 [文献标志码] A

[作者简介] 冀付军(1975―),男,河北馆陶人。讲师,博士,主要从事教育技术学计算机教育应用研究。E-mail:。

一、引 言

脱氧核糖核酸(DNA)是生物界最重要的大分子体系,在生物进化中起着非常重要的作用,其结构中蕴藏着决定遗传、细胞分裂、分化、生长和蛋白质生物合成等生命过程的信息。DNA分子具有双螺旋结构,其螺旋的骨架是由磷酸根和糖基通过共价键连接而成。同时,DNA分子具有两个独特的性质,即自识别和自组装功能。由于DNA自身结构的复杂性,科学家一直在寻找一个最为恰当的模型来对它进行研究,到目前为止,科学家已建立了一维紧束缚模型、鱼骨模型、梯子模型、三维紧束缚模型等几个模型,从不同的侧重点来研究DNA分子。[1]

DNA结构的特点和优势在于其双螺旋式循环上升,既简单重复,又有递进,结合作者十余年的软件教学经验,敏感地觉察到DNA双螺旋与软件教学中的知识与技能双主线循环递进的内在一致性;同时DNA分子的自识别和自组装特性与软件教学的技能自反馈和知识自建构也是出奇的一致,因此提出面向软件人才培养的类DNA教学结构。当前软件人才培养的主要问题是什么呢?国际上有哪些可以借鉴的先进理念?

当前我国软件行业发展迅速,但与世界其他国家相比仍存在较大差距,印度原来与我国处于同一起跑线上,如今却成为仅次于美国的世界软件大国,其高速增长的背后是强大的人才队伍支持,其NIIT的MCLA(榜样教学法)教学模式是印度软件教学的创举。[2]MCLA是印度NIIT教学模式的基础和核心,它是以实际应用为导向,在全任务驱动中教学,强调基本技能和动手操作能力的培养,[3]按照NIIT课程体系技术路线[4]设置课程,实现软件理论与实践对接。

我国软件产业所面临的主要问题,一是软件人才匮乏,供需矛盾突出,直接影响了产业发展和市场的占有份额;二是知识、能力结构不尽合理。[5]软件行业低迷的主要原因在于培养的软件人才不符合当前市场经济的需求,其中课堂教学结构的不合理又直接影响软件人才的培养。[6]人才培养包括课堂和课外两个阵地,其中课堂教学是专业技术人才培养的主渠道,抓住了课堂教学的变革,就抓住了教学改革实施的主要渠道之一。而课堂教学结构又是课堂教学中的关键因素,因此软件人才培养中的课堂教学结构就成为重中之重,课堂教学结构对人才培养起着至关重要的作用,这与何克抗教授关于教学深化改革的主要目标应当指向教学结构变革的观点是一致的。何克抗教授指出,教学结构是指在一定的教育思想、教学理论和学习理论指导下的,在某种环境中展开的教学活动进程的稳定结构形式, 是教学系统四个组成要素(教师、学生、教材和教学媒体)相互联系、相互作用的具体体现。在多年从事教学改革试验研究探索的基础上, 何教授经过深层次的理论思考指出: 当前各级各类学校教学深化改革的主要目标应当指向教学结构的变革。[7]

在以教师为中心的传统教学结构下的软件教学中,通常都是照本宣科讲述软件的功能以及工具栏里各种工具的作用,没有将软件的功能与设计中的应用相结合,[8]而如今市场经济体制下企事业单位尤其是IT 企事业单位只招聘有经验的专业人才。[9]因此,产生了软件人才培养与人才需求的矛盾。显然,人才需求不易改变,能够进行控制和改变的是对人才的培养,改革现有的软件教学结构,才能更好地培养出符合企事业单位需要的软件人才。

对于当前软件教学中的这些问题,我国教育学者已经提出一些有效解决思路。

从宏观策略上看,软件教育者主张形成软件人才培养梯队, 构建软件人才的金字塔结构,如图1所示;[10]倡导与企业的合作,提高学生的动手操作能力,如图2所示。[11]当前我国也充分意识到与企业合作培养工程人才的重要性,于2012年6月7日公布了国家级工程实践教育中心的第一批名单。[12]

从微观策略来看,案例教学通过对具体情境的分析,提升学生的分析能力与解决问题能力;[13]基于网络视频资源的小组合作教学模式开展计算机应用软件教学,培养学生自我反思、讨论和交流的能力,培养学生的知识共享和社会交往能力。[14]

以上软件人才培养梯队、企业合作、案例教学和合作教学等策略从宏观方面和微观方面为我国软件人才的培养作出了积极有益的贡献。本文则试图依据软件学科的特点,在软件教学结构上进行变革,提出适合软件学科特点的新型教学结构,从根本上解决软件学科的教学问题。

那么,软件学科究竟有哪些特点? 要想了解软件学科的特点,就必须首先洞悉软件科学的研究内容。软件学科研究内容主要包括:软件开发范型、软件设计方法、工程支持技术和工程管理技术。杨芙清院士指出,软件开发范型涉及软件工程的“方向”问题;软件设计方法涉及软件工程的“途径”问题;工程支持技术和过程管理技术涉及工程过程质量和产品质量问题;软件开发就是实施了一个从“高层概念模型”到“低层概念模型”的映射,从“高层处理逻辑”到“低层处理逻辑”的映射,而且在这一映射中还涉及人员、技术、成本、进度等要素。[15]由此可见,软件学科不同于常见的语文或数学学科,它是建立在计算机科学基础上,指导计算机软件开发和维护的工程性学科,其理论性、技术性、工程性、抽象性与应用性都很强。这决定了软件是一门实践性很强的课程,因此常用于语文或数学的教学结构并不能较好地适应软件学科特点,盲目套用指导其他学科取得很好效果的教学结构、教学模式、教学策略等到软件学科教学中,并不一定产生同样的好效果。软件学科教学迫切需要提出适合其特点的新型教学结构。

二、类DNA教学结构研究

(一)类DNA教学结构的理论基础

类DNA教学结构并不是直接创造出来的,是作者在十余年来从事软件相关教学经验的积累和总结的基础上,借鉴了生物学DNA结构的优势特点引进到软件教学领域中而来的。事实上,关于类DNA教学结构中的螺旋式教学,最早是孔子提出的,即孔子通过使没有疑问的学生产生疑问,有了疑问并帮助他解决疑问,还要产生新的疑问。如此反复,螺旋上升,使发问和解疑节节逼近,相辅相成。作者考虑到软件学科的知识性和技能性双主线循环上升的学习特点,结合自身的软件螺旋式教学经验,总结了教师与学生群体的一对多交互特征,吸引借鉴了网游沉溺动机中的螺旋式任务奖励机制、场景循环变换机制、装备人物生长发展机制、竞争协作促进机制等,历经十余年至今才提出类DNA教学结构。

类DNA教学结构的理论基础有建构主义学习理论、实用主义教学思想和要素教育论等。从建构主义学习理论方面讲,类DNA教学结构旨在通过教师的层层螺旋上升式引导,在知识和技能两个方面,不断激发学生求知的欲望,一步步使学生提出关键问题,在教师的引导下分析问题并解决问题,再提出新的关键问题,形成螺旋,使学生不断循环校正完善自主构建的知识体系。类DNA教学结构汲取杜威实用主义教育思想的精华,践行“做中学”这一杜威教学理论的基本原则,[16]以实现学生知识与技能的同步发展为目标,真正实现软件学生在“做中学”。类DNA教学结构同时以裴斯泰洛奇的要素教育[17]为指导,从最基本、最简单的知识技能出发,使“零基础”的学生轻松地获取知识技能,逐步积累知识技能,从而达到较高的知识技能水平。它抛弃了以往教学中盲目追求知识和技能的深度的做法,注重从学生现有水平出发,尽量使每个学生都跟得上教学进度,不断循环,逐渐进行知识和技能的深化。螺旋吸收发展相应知识和技能更利于学生知识的同化和异化。就像网游玩家之所以容易沉溺一样,不断在其最近发展区中获得进步,享受自己追求上的愉悦感和成就感。

(二)类DNA教学结构的理论提出

类DNA教学结构位于双主教学结构之下(教学结构分为以教为主的教学结构、以学为主的教学结构和教学并重的以教师为主导、以学生为主体的双主教学结构[18]――笔者注),是双主教学结构在软件人才培养领域的具体教学结构。类DNA教学结构中的双螺旋是指知识与技能双主线,螺旋的骨架是由教师和学生通过交互连接而成,通过知识与技能的双螺旋师生交互,知识和技能的学习深化呈现类似DNA结构的双螺旋递进上升的特征。

类DNA教学结构是专门针对软件学科课堂教学,以建构主义认知教学理论、实用主义教育思想、要素教育论为指导,以学生、教师为主体,以知识与技能为主要方面,以知识与技能在实践中的应用效果为评价机制,运用教材、教学媒体和实验器材,在教师的情境引导下学生主动提出新的问题,进行新的探究,实现知识与技能基本同步发展的教学结构。类DNA教学结构突破了原有传统教学结构仅注重知识而忽略技能的限制,以螺旋方式充分发挥了教师的引导职能,螺旋培养学生不断上升的思维和质疑能力,可以成功解决软件人才培养中所缺乏的经多层螺旋深化的熟练技能问题。

(三)类DNA教学结构的理论设计

类DNA教学结构以教师与学生为双主体,以知识与技能为双主线,教师与学生在教学过程中逐步进行教与学的螺旋交互,最终实现知识与技能的同步螺旋式上升发展。类DNA教学结构在交互过程中,教师以螺旋式形成性评价对学生学习效果进行查漏补缺,并确定更高层次螺旋的内容,同时利用螺旋反馈不断完善自己的教学。

类DNA教学结构倡导教师螺旋式指导学生的主动学习,教师是类DNA教学结构的知识传授者和技能培育者,教师在了解学生现有知识水平的基础上,以最简单、最直白的方式将新知识传授给“零基础”的学生,使学生轻而易举的获取知识,并在学生消化知识之后积极指导学生进行技能训练,对学生在训练中的表现进行螺旋式评估,促使学生及时改正错误,不断开始教学过程的更高层次螺旋。学生则在螺旋吸收知识技能基础之上,积极、大胆地提出新问题,逐步进行新知识的探究,通过螺旋式情境培养深化学生的思维能力及探索创新精神。类DNA教学结构设计俯视示意图如图3所示。

类DNA教学结构在以教师与学生为双主体、以知识与技能为主要内容的前提之下,四者交互进行,以促进学生的学、教师的教。为了详细说明这四者之间的交互关系,将这种关系分为三个层次:一个是以知识为轨道的层次,一个是以技能为轨道的层次,一个是以知识与技能两个轨道交互的层次。其中知识与技能双轨的交互教学结构有以下几方面的特点。

1. 在类DNA教学结构中,教师与学生各自位于锥体的两端,知识与技能是实现师生交互的媒介,教师首先在知识方面与学生进行交互,教师以简洁方式将最基本知识传授给学生并对学生进行引导,学生汲取知识,两者教与学相遇于知识轨道的起点处,学生求知欲逐渐得到激发,教师不断引导学生探求新知识。学生在学习知识时,教师不断提出疑问,使学生带着疑问进行深层次的学习,促使学生积极思考并进行创造性思维活动。

2. 在知识不断增长的同时开始技能培养训练,此时教师与学生技能的交互点将落在技能这条轨道上,技能与知识两者的交互点之间有一定的距离。在对知识的探索过程中,技能的学习有可能赶上或者超过知识的学习。总体上,知识与技能在各自的轨道上基本同步运行。最终,教师与学生在知识和技能方面所形成的交互点不断形成类DNA结构的螺旋式轨道循环上升,达到学生知识与技能的互相促进和提高。

3. 类DNA教学结构中蕴含形成性评价,重视教学过程中的反馈和矫正,通过网络系统体现个别化教学反馈优势,[19][20]及时诊断教与学的状况,从而采取必要补救措施,促进教学目标的实现,这是类DNA教学结构的自识别特性。在整个教学结构中,教师在每堂课后会以学生原有知识经验积累为基础对学生学习效果进行螺旋层次检验,并不断纠正学生存在的错误与其自身在教学过程中存在的问题,从而完成学生和教师的知识和技能的不断自主建构。这正是类DNA教学结构的自组装特性。类DNA教学结构的自识别特性和自组装特性正是生物界DNA分子结构的固有特性。

4. 类DNA教学结构实现了学生知识与技能的同步发展,螺旋交互教学过程的设计有利于学生深化知识与技能,提升学生学习效果,使得学生在理论与实践方面齐头并进,有效地解决当前软件教学难题,为软件行业培养出理论结合实践、知识配备技能的应用性创新人才。图4为类DNA教学交互点微观示意图。

5. 类DNA教学结构以知识与技能为主要内容,两者沿两条不同的螺旋骨架同步运行。知识在整个类DNA教学结构中处于基础地位,一定的基础知识是进行技能训练的必要条件。技能是此教学结构中的核心组成部分,交互作为骨架的“共价键”,对于在软件教学中最终实现知识与技能起着至关重要的作用。知识与技能的成功交互是实现类DNA教学结构的关键环节。网游沉溺动机机制的实现也都有赖于这种“共价”交互。

6. 以知识与技能为双主线的类DNA教学结构,从教学起点就开始激发学生的学习动机,使“零基础”的学生首先掌握基本知识,并获得成就感,再及时训练学生基本技能,获取新的成就感,充分感受到进步所带来的尊重,在网游沉溺机制动机的驱动下,自主学习欲望强烈,然后在此循环教学中不断进行形成性评价,不断在最近发展区内给学生以适度鼓励或刺激,进一步激发起学习动机,从而通过以知识与技能的螺旋式共同发展逐步实现软件人才的培养革新。它避免了传统教学结构只注重教师传授知识的弊端,知识与技能并重更符合当前软件人才的需求,对推进软件人才培养进程有重要意义,有利于软件人才的理论知识与实践能力的并重发展,从而彻底解决软件人才需求与软件人才培养的突出矛盾问题。

三、类DNA教学结构的案例及应用

(一)基于类DNA教学结构的教学案例

为简化起见,在这里以基于类DNA教学结构的Word教学为案例。在Word教学中,将熟练运用Word作为教学目标,将教学内容分为五部分,分为安装、文字、表格、图形及打印。第一部分为Word最基本的安装知识,教师首先讲解Word的一些基本常识,如基本简介、功能特点等,并演示安装过程,在学生进行一段时间的消化以后,开始进行技能练习,自己动手进行安装;第二部分为Word的文字编辑教程,文字的编辑是Word最核心的功能,同样也是教学的重中之重,为了便于学生理解,激发学生的求知欲,教师从最简单的文字录入讲起,在教师一步步“还有没有简单的办法,希望达到某某效果该怎么办呢”等提问之下,逐步进行知识深化教学,最终掌握Word文字编辑的全部功能,在进行系统知识的讲解的同时,在学生对知识的理解过程中,穿插相对应的技能训练,最终实现知识与技能的同步进行;表格、图形及打印的教学结构与文字编辑的结构大致相同,均采用螺旋递进的教学方式,深化教学内容,最终达到精通Word的教学目标。其具体示意如图5所示。

(二)类DNA教学结构的实践应用

为了验证类DNA教学结构的有效性,在类DNA教学结构指导下进行了相应的教学设计,在2012―2013第一学期计算机技能教学中进行了具体实践应用。首先对全校2012级新生进行了授课前测,之后,笔者在实验班(班级编号20120405)贯彻类DNA教学结构的指导,实施类DNA教学设计,在学期结束时,对全校新生进行计算机技能期末测试。学期前测和期末测试均采用机考自动化测评得分方式进行,以保证客观公平。两次机考测评难度系数相同。经统计,前后两次具体成绩情况见表1。

由此可见,实验班在学期授课开始前,其前测平均分与全校总平均分相比,相应的Z分数为0.32.58,这说明,实验班与全校新生在期末测评中的成绩呈现显著性差异。由于只有笔者所任教班级实施了类DNA教学结构指导下的教学设计,且前测成绩一致,尽管在期末测评中全校平均分大大提高,但是因为检验的是实验班平均分与全校平均分的显著性差异,因此已经排除了全校教学方面努力的共同普遍因素,这就只剩下任课教师特殊教学方面的因素,故此数据可在某种程度上表明类DNA教学结构的有效性。

四、结 束 语

本研究着眼于软件人才培养教学中的问题,分析软件学科的特点,在建构主义学习认知理论、实用主义教学思想、要素教育理论基础上,借鉴国外软件人才培养的先进教学理念,结合自身十余年软件相关教学的经验积累,从软件人才培养的课堂教学主渠道着手,抓住了软件课堂教学结构这个关键因素,对于软件教学结构变革进行有意义的探索和研究,借鉴引进了生物学中的DNA结构,创新提出了软件学科教学结构――类DNA新型教学结构,并对该结构进行理论和实践研究,并在实践应用后基于统计学原理进行显著性检验,数据验证表明了所提类DNA新型教学结构的有效性。

类DNA教学结构符合以“知识与技能、过程与方法、情感态度和价值观”的三维培养目标为核心的素质教育理念,对于改变当前软件类课程注重知识讲解、轻视技能传授的现状有着积极意义。该教学结构能充分尊重学生的主体地位,促进学生积极、主动地思维与学习,同时发挥教师的螺旋式层层主导作用。既有利于教师掌控整个教学过程和系统知识的传授,又有利于学生自主学习能力和探索能力的螺旋上升式发展。从宏观角度来看,类DNA教学结构适应当今市场对实践应用性创新软件人才的需求,而高质量的人才培养对改善我国当前软件行业的现状具有重要意义。同时,类DNA教学结构为具体领域新型教学结构的提出提供了研究范式,在类DNA新型教学结构的理论构建和应用方面具有一定的示范研究意义。

[参考文献]

[1] 高绪团. DNA分子的电子结构及其电荷输运性质研究[D]. 济南: 山东大学,2007.

[2] 李洛等. 印度NIIT软件人才培养模式的探索与实践[J]. 广东轻工职业技术学院学报, 2003(3): 49~53.

[3] 刘彦姝, 唐乘花,张克俭. 引入印度NIIT构建教学新模式[J]. 计算机光盘软件与应用, 2012(3): 232~233.

[4]. 田祥宏,陈爱萍. 构建NIIT嵌入式软件人才培养课程体系[J]. 金陵科技学院学报, 2009,(02).

[5] 向毅, 彭军,吴英. 普通高校应用型软件人才培养存在的问题及对策[J]. 计算机教育, 2009,(22): 9~11.

[6] [7] [9] 赵春雨,栗红霞,李鸿宝. 我国软件教育的发展趋势[J]. 黄河科技大学学报, 2005(2): 118~119.

[8] [18] 李蓟宁. 多途径教学方法在艺术设计专业计算机软件教学的应用[J]. 艺术与设计(理论), 2011,(9): 190~192.

[10] [11] 邓子云. 高校软件教育的问题与对策分析[J]. 高等函授学报(自然科学版), 2005,(1): 6~7.

软件技能论文篇(6)

关键词:软件复用;软件过程;Scrum;教学方法

文章编号:1672-5913(2013)07-0042-04

中图分类号:G642

0 引言

软件复用(Software Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。当前被认为可复用的知识非常广泛,包括领域知识、需求规格、设计决定、体系结构、程序代码、测试用例等软件生命周期各阶段的成果。软件复用能力已成为衡量一个高级软件人才的重要指标,因此中国石油大学(华东)在软件工程专业的第6学期开设软件复用技术课程,将其安排在软件工程概论、软件设计与UML、高级程序设计、软件架构与开发实训等课程之后,目的是使学生在掌握软件工程理论、软件设计方法、软件开发语言以及接受完整的软件开发训练之后,在更高层次上掌握软件复用的理论和技术,提升综合实践能力。软件复用技术课程在软件工程专业课程体系中占据重要位置。

软件复用技术课程从软件工程发展的角度出发,涵盖第3代软件工程——软件过程工程与第4代软件工程——软件构件工程理论与关键技术,以软件过程和基于构件的软件开发为核心。之前该课程以课堂教学为主并配以一定的章节实验,巩固学生所学的理论知识。这种传统的教学方式不利于学生工程实践能力的培养,没有达到课程定位和培养目标,存在以下问题:

①教学重理论而轻实践,脱离实际项目背景,造成复用理论的讲解空洞乏味;

②“灌输式”教学把学生置于被动位置,使其缺乏学习兴趣和参与热情;

③实践内容简单独立、不连贯,对学生面向复用的软件过程训练不完整、不系统;

④考核评价标准单一,导向性不强。

为解决这些问题,我们从2009年开始对教学方法进行改革与实践。目前,在国际工程教育领域流行的CDIO(Conceive-Design-Implement-Operate)的理念是“做中学”原则和“基于项目的教育和学习”教学法的集中体现,符合软件人才面向复用的工程能力培养要求,能够在软件复用技术课程和实践环节得到落实。因此,我们借鉴CDIO理念,围绕提高学生面向复用的工程能力培养这一根本目的,在课程中采取项目案例驱动教学,基于目前流行的敏捷软件过程理论和IBM RTC技术平台组建以学生为主体的敏捷开发团队,进行完整的开发实践训练,并取得了良好的效果。

1 基于可复用项目案例的教学

软件复用知识不同于经典学科理论,它是由软件大师在工程实践中总结和提炼而成。教师在没有工程实践环境的课堂上直接讲授复用理论,不易使学生达成共鸣,反而会变成空洞的说教。因此,我们探索并实施基于可复用项目案例的教学,遵循“软件工程理论来源于实践,在实践中还原”的指导原则,把知识点融入项目开发过程,围绕案例介绍复用理论,增强学生的学习效果。

1.1可复用项目案例设计

可复用项目案例的设计以及围绕案例的复用知识的组织方法是影响该课程教学效果的关键。该课程案例不同于一般的软件项目,它要求兼具“基于复用的开发”和“面向复用的开发”2种价值功能。前者指案例项目的开发可以基于已有的可复用组件,使学生掌握新项目构建时所采用的各种复用理论和方法;后者指本次开发还要面向未来潜在的复用,开发出来的产品和开发过程中的各类工件除了要满足目前需求外,还应该具有可复用特征,使学生掌握可复用组件自身的开发理论和技术。通过实践总结,我们确立了该课程案例设计应遵循的原则。

1)案例具有可复用性,支持“基于复用的开发”和“面向复用的开发”,在相关领域内具有广泛的复用价值。例如,我们设计的“库房供应链系统”案例既能单独开发并被部署为可运行的库房系统,又可在上下游企业的供应链系统中复用开发,同时在仓储管理领域也具有广泛的复用空间。

2)案例要尽可能覆盖复用课程的所有知识点并具有一定的开发工作量,使学生在一个案例中能够利用分析设计、编码测试、基于构件开发和软件过程管理等复用知识。

3)案例要有通用的业务背景,既具有实用价值和吸引力,又便于学生理解。

经过3年多的总结积累,我们已形成1个包含10多个可复用项目案例的资料代码库。该数据库包括完整的文档和程序组件,使得学生不必每次都从零开始,而能够站在一个较高起点上进行学习实践。

1.2学生敏捷项目团队组建

软件复用技术课程的理论内容较抽象,加之“灌输式”教学使学生成为知识的被动接受者,导致学生难以产生学习兴趣,学习效果较差。因此,我们以学生为主体组建项目团队,采用全员参与、角色扮演、协作学习的形式,让学生成为认知的主体和知识的主动建构者。

有别于软件设计类课程的做法,软件复用技术课程学生项目团队的组建要求更高。软件工程过程是该课程的核心内容之一,而不同的过程模型需要不同的团队形式,因此我们基于IBM RTC平台和敏捷软件开发过程Scrum的要求建立学生敏捷开发团队。在该团队中,我们倡导成员之间紧密协作和面对面沟通,以使团队能够更高效地交付新的软件版本并很好地适应新的需求变化。

参照企业模式,以学生自愿为原则,我们把学生按照5~6人的规模组成敏捷项目团队。团队设有产品负责人、Scrum主管、产品构建员、团队成员4类角色,要求每个人在完成自己职责的前提下进行协作,最终使每位成员都成为具有跨职能技能的人才。教师在其中承担总监职责,指导每个团队的实践过程,监督团队运作情况。我们组建的学生敏捷项目团队结构如表1所示。

2 基于IBM RTC的软件过程实践

软件复用技术课程之前的实践内容较为简单独立,一般为各知识点对应的小型实验,实验内容相互不连贯,而且没有采用完整的软件过程(如瀑布模型过程、RUP过程、敏捷Scrum过程等)管理控制,这也是面向复用的工程能力培养的一个薄弱环节。我们认为解决问题的关键是进行实践教学流程建设,要以某个软件过程为主线建立项目开发驱动的实践教学完整流程,使学生在近乎真实的场景下进行开发,实践能力得到系统连贯地培养。

IBM RTC是一个崭新的基于Jazz的软件交付协作平台,它为团队开发提供了基于上下文的实时团队协作能力、自动化的任务和工件流转机制,并具有全生命周期的可追踪性。透明的基于Scrum的团队开发流程、计划、记录文档和报告等功能,非常适用于高效的团队协作开发。IBM RTC内置的Scrum软件过程模板包含迭代式软件开发、两层项目规划、整体团队协作和持续集成等多项流行的最佳实践,是一个目前比较先进的基于敏捷思想的软件过程平台。我们定制的以项目开发过程为主线的基于IBM RTC Scrum过程的软件复用课程实践流程如图1所示。

该流程分为项目启动、项目实施和项目收尾3个阶段,其中项目实施阶段又细分为精化和构造等多个迭代过程。该流程对各阶段的任务、里程碑和文档进行详细规定,便于学生掌握。在项目构造阶段,我们采用基于构件的软件设计与开发技术,包括对COM/DCOM、EJB、CORBA和Web Services等组件模型的理论探讨,另外还选择EJB模型用于开发实践。

3 多层次、多角度的考核评价

考核评价是课程的重要组成部分,科学合理的考评机制不仅体现公平原则,还是有力的教学指挥棒。过去单一的考评方法无法体现工程能力的优先引导作用,因此我们在该课程中探索出“两个层次、三项内容”的多层次、多角度考评方法。

“两个层次”指团队内部评价和团队整体评价。团队内部评价指项目负责人对成员进行评价打分,确定每个成员的分数和排名;团队整体评价是教师对每个敏捷团队进行考核打分。最后,每个学生的课程成绩根据团队内部评价分数和团队整体分数得出。“三项内容”指从团队提交的产品代码、文档资料和过程表现等3个角度进行评价。其中,产品代码要求能够实现项目规定功能和性能,能够脱离开发环境而正常运行,要求代码规范、界面美观,该项占总成绩的50%;文档资料要求根据Scnma过程的规定产生各种必需的文档,该项占总成绩的30%;过程表现考评团队、个人的表现和迭代等过程的健康状况,该项占总成绩的20%。

4 结语

软件技能论文篇(7)

关键词:软件工程;人才培养;教学改革;职业化

自2002年我国高校设立软件工程专业之初,软件工程就是一门面向社会经济发展的实际需求,并以培养具有扎实的计算机领域理论知识和技能,同时能够从事软件开发、科研、教学和应用的应用型人才为目标的学科。随着我国素质教育改革的不断深入,软件工程专业的教学像其他以实用性教学为目的的学科一样,面临着如何向职业化转变的问题。相关数据显示,我国当前对软件人才的需求达到了20万人,并以每年20%左右的速度增长[1]。然而,传统教学模式制约因素的存在阻碍着软件工程专业的职业化转变,影响着我国软件人才的各种能力的培养[2]。因此,如何探索并革新我国软件工程专业的教学模式,以实现其职业化的转变是当前急需解决的问题。

1高校软件工程专业传统教学模式的不足

1.1课程体系侧重理论

受制于计算机行业的整体环境,如软件复杂性较简单,计算机硬件设备性能较低等,软件工程专业设立的初期并未对实践性人才提出过高的要求,更加侧重于培养“知识型”人才。因此,软件工程课程体系的设置,也更加侧重于培养软件行业人才对软件理论的理解与掌握[3]。对于实践性的要求,仅限于能够通过实践掌握理论知识即可。在传统课程体系中,理论课所占比重要远远大于实验课,实验课设置的目的是为了方便学生掌握理论知识[4]。课程内容也大多是教师事先安排好的内容。实践证明,经过这种模式培养出来的学生多数具有良好的理论基础,但是却无法在实际中很好地运用这些理论。

1.2教学目标脱离职业化

职业化培养模式下的软件行业人才应该具备软件、硬件、网络等各学科综合知识的复合型人才。软件行业人才不仅应该具备这些学科的理论知识,也应具备将这些学科的理论和实际结合起来的能力。然而,现有的教学模式则侧重于理论教学,而忽略了职业化的软件行业人才的培养应该是以理论和实践的有机统一为目的。这种模式过于侧重理论知识的学习,而忽略了理论和实际的融合,影响了职业化的发展。

1.3软件工程就业缺乏导向性

当前,软件工程教学的一个重要作用就是为学员提供良好的就业。来自前程无忧等几家公司的报告显示,企业对软件工程师的需求仍居于首位,且具有可观的薪酬。然而,跨入软件技术领域,成为一名软件工程师,相应的技能水平及经验又是必备的“入场券”。如何在由学校跨入就业岗位后能够快速掌握与就业岗位相适应的软件开发技能,将是软件工程专业教学需要考虑的问题[5]。然而,现有软件工程教学缺乏就业导向性的不足,注定了这些专业学员无法快速适应就业能力需求。

2高校软件工程专业教学模式改革的构想

2.1明确教学目标

当前的软件工程专业的教学目标应该是培养职业化的具备软件、硬件、网络等各学科综合知识的复合型人才。因此,软件专业的教学目标可以基于S-CDIO[6,7,8]培养模式,将培养高层次、实用型、复合型的人才培养作为教学目标,同时强调培养学生扎实的计算机基础知识、强力的实践能力和理论应用能力。此外,还要引导学生时刻关注软件工程及相关行业的各种新技术,如大数据、云计算、VR等。通过明确教学目标,从而能够有针对性地设置课程体系和培养学生能力。

2.2课程体系设置

软件工程课程体系的设置是为了培养理论和实践兼备的复合型人才。它的设置,必须兼顾培养理论知识和实践能力。围绕这一目标,课程体系结构包括三个方面:(1)基础课程。这类课程的设置用于培养学生的理论知识和基本的动手能力。首先,基于SE2004软件工程方案设置与软件工程学科相关的基础科目,这些科目涵盖的理论包括数据的机器级表示、由机器语言到汇编语言及各种结构化程序语言和面向对象编程语言的各种语言、能够用基础语言处理的各种新型技术理论等。通过这些课程的设置,使学生建立软件工程相关课程的完整概念。其次,设置能够应用软件工程方法的课程。这些课程的设置能够将实际的程序设计和软件工程理论知识融为一体,并将基础程序设计方法的学习和小、中规模的软件结构设计相互融合,培养学生的综合应用能力。在具体课程方面,可以设置一些如基于瀑布模型的设计方法,可以为学生讲授小组级、中规模软件系统建的综合技术;如基于螺旋开发模型的方法,可以通过构建中等规模系统,培养学生理论、管理、开发等综合技能。(2)专业核心课程。传统教学模式中,专业核心课程的设置思路主要是用于构造计算机系统的核心知识[9]。针对这一情况,改革后的专业核心课程的设置则倾向于培养学生利用各种计算机高级技术解决实际问题的能力,涵盖了与软件工程相关的各种计算机硬件、不同等级的程序设计、互联网环境下的软件设计、数据库环境下的软件设计、面向人机交互的软件设计等知识。除了这些课程,还设置了一些覆盖软件工程高级技术需求的课程,这些课程涵盖了软件工程的需求、设计、构造、质量、过程、管理等各方面知识,能够培养学生从整体上解决整个软件项目的能力。

2.3改进教学方法

软件工程专业职业化人才的培养需要做到“教、学、做”的合一。然而,现有教学方法的不足使得现有教学方法只是做到了“教”和“学”两点,却忽视了“做”是实现教学的根本目的核心。针对这点,可以从两点进行改进。第一点,采用案例教学法。案例教学法要求老师在讲解理论知识时,始终围绕已有的项目进行。将一个完整的项目和理论体系拆解分配到个个教学环节中。在每个环节,则明确教学目标、分解教学内容、分析关键技术和步骤、引导学生参与项目实践、展示项目效果。第二点则是考虑使用现代化教学手段。围绕发挥软件工程专业实践教学为中心的地位,通过增加实验内容和学生实际动手能力,为学生提供充分参与项目实践的机会。同时,还可以开展大型综合实验、综合实训、企业实习、毕业设计等实践教学内容教学,通过开设大型综合性的实验课程或综合实训课程、组织学生到Ⅱ企业顶岗实习、利用所学知识进行项目开发的能力和就业竞争能力。

2.4加强教学队伍建设

教学队伍是高校软件工程专业教学中的一个重要环节。教师的水平影响着课堂教学和学生动手能力的高低。在现有的一些教师队伍中,一些教师往往具有很高的理论素养,然而却缺少足够的项目经验[10]。这给学生的实践教学带来了不利影响。因此,应该加强教师队伍的建设。在具体的举措方面,要做到两点:(1)学校要引进具有丰富项目经验的教师或者制定教师提高教学水平的计划。通过实施这些计划,使教师能够加强学习、钻研业务,掌握教学技能,提高他们的教学水平和教学技巧。(2)学校加大对软件工程专业教育的投入,多组织高校软件工程专业教师参加省级培训、校级培训等再培训工作,着手培养基础好、教学技能优秀、有事业心、敬岗爱业的专业教师,增强软件工程专业教学师资力量。

2.5培养学生的职业素养和岗位实战能力

为学生创造职业化的教学环境是提高学生职业素养和岗位实践能力的最有效手段。在这方面,可以通过和一些企业合作,将学生放置到企业的真实项目中。可以从三个方面进行:(1)组织学生参加和学习企业的项目文化,如定期为学生模拟企业项目运行方式、参观企业产品展示厅、听取企业项目负责人、技术人员和管理人员有关企业产品开发的专题报告以及生产管理模式、技术发展趋势和企业文化、企业资源管理方面的专题报告等;(2)通过持续的教学,为学生建立就业需要的知识体系和技术体系,帮助学生规划自己的职业生涯,并通过让学生深入了解自己的能力,认清自己能够从事的职业;(3)这方面是为了培养学生适应就业所需要的企业文化中的团队精神、职业技能等。可以联合企业严格按照企业产品的开发以及企业需要的一些技能来对学生进行职业技能、职业素质、团队精神、职业规范等进行强化训练来提高学生这方面的职业素养。

3结束语

当前的软件工程专业的教学处于向职业化转变的时期。只有对传统教学模式中那些制约软件工程专业的职业化转变的因素进行改革,才能提高我国软件人才培养水平、实现教学模式职业化转变,并最终适应社会对软件工程专业人才的需求。

参考文献:

[1]蓝斌.浅析高校软件工程专业教改模式[J].计算机光盘软件与应用,2014(17):313-313.

[2]郝隽.CDIO理念下的软件工程专业人才培养模式研究[J].中外企业家,2016(3).

[3]张凯,孙华,冷洪勇,等.项目驱动模式在软件工程人才培养中的应用与反思[J].电脑知识与技术:学术交流,2016,12(1Z):150-151.

[4]檀明,许强,张家锐.软件专业人才培养模式改革研究与实践[J].电脑知识与技术:学术交流,2016,12(2):145-146.

[5]司海平,王晓茜.面向市场的软件工程人才培养与课程体系优化[J].信息系统工程,2017(5):166-168.

[6]钟瑛,朱顺痣.《软件开发综合实训》课程教学模式若干思考[J].科技创新导报,2012(31):187-188.

[7]王立娟,何丹丹,翟悦.基于CDIO理念的软件工程专业工程化实践教学改革的研究[J].当代教育实践与教学研究:电子刊,2015(12).

[8]胡安明.基于CDIO理念创新软件专业实践教学的研究[J].科学导报,2016(2).

[9]叶娜,祁飞,边根庆,等.面向国际化人才培养的软件工程专业本科教育课程体系研究[J].教育教学论坛,2015(15):142-143.

友情链接