前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的计算机软件开发教程主题范文,仅供参考,欢迎阅读并收藏。
关键词:计算机 可维护性 软件设计
中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2016)04-0000-00
经济飞速发展的今天,计算机在人们的生活中扮演着重要角色。计算机使用的普遍性,也决定着在未来的发展中需要进行软件设计开发的创新,才能促进计算机软件的完善与发展,能够解决现实生活中的实际问题,从而促进我国的信息化进程的发展。
1计算机软件设计中影响可维护性的因素分析
(1)可测试性。计算机软件在后期的修改过程中,测试的难易程度受到计算机被理解程度的影响。因此,应该在设计软件的开始阶段,加强软件设计结构与文档的科学性与合理性发展。针对软件自身的要求,选用恰当的方法与测试工具,规范化地对软件进行整体上的诊断与测试,能够使后期的建设过程中具有良好的基础性保障。
(2)可理解性。所谓软件的可理解性,主要针对第一软件以外的人员说的,通过清晰代码的设计,使编写语言的代码能够更加清晰、简洁,使其他人员能够更快地对软件的整体功能、接口、模块以及结构设置等得以理解[1]。与此同时,计算机软件的可理解性还受到软件模块的设计影响,以及文档的合理性、精确性设计等因素的影响,而且理解性的正确性还关乎整体软件的合理性、科学性与准确性等。
(3)可修改性。计算机软件的可修改性在软件系统的设计中发挥着重要作用,良好的系统软件应该具备一定的科学性与合理性,能够在软件的后续发展中,可以及时纠正错误,通过修改达到最终的满意结果。另外,软件的修改性关系到设计原理、整体逻辑结构的难易等,而且软件的耦合、内聚、作用域以及控制欲关系等都影响着计算机软件的修改。
(4)可重用性。对于计算机软件的可重用性来说,就是不需要对编写功能模块进行较大的改动,就能实现在另外软件系统的调用,可以进行稍加改动就可以在别的软件组建中运用。因此,它的环境适应能力比较强,软件的可重复使用也有一定的适用性,也便于维护。
2加强计算机软件设计过程中可维护性因素的积极对策
(1)设置明确的软件级别。作为一款高质量的可维护软件,应该具备高效率、可理解性、修改性、测试性与重复利用性等,然而在现实情况下,软件的这些性质很难全部得到满足,尽管这些因素具有相互促进的作用,然而也存在着相互抵触与不兼容的问题,因此应该针对软件的实际情况,对软件性能的有限级别做出决定,需要借助明确的软件级别与质量目标的制定才能得以实现[2]。
(2)制定完善的软件审查机制。首先,可以进行不同软件检测点的设置,多次检测软件的检测点。针对软件的功能与结构,在开发的不同阶段,建立一系列的检测点,使软件质量能够在开发过程中就得到有效控制。对于检测的内容来说,主要有软件的质量、功能、运行效率以及运行故障率等;其次,积极验收与检查软件。在软件的交付使用之前,需要进行系统、全面地验收与检查软件,检测软件的每项功能,逐项测试软件的性能指标,使得每项指标都能符合软件用户的标准与要求,还可以通过一部分体验用户的建立,基于使用者的角度,检测每项软件等。最后,对软件包进行检查。由于交付给用户的属于良好人机界面的软件,而不是源代码;而要使用户对软件的使用得到快速的掌握,应该借助软件使用说明书、培训教程、软件性能表等的作用,使用户对软件有更好的认识与掌握。因此,应该在交付之前,逐项检查软件的使用说明书、培训教程以及性能表等。
(3)对软件可维护性含义的重新界定,加强对软件可维护性的理解。社会经济的不断发展,计算机网络技术已经走入千家万户,而且人们对计算机网络的依赖也越来越强,而对于软件可维护性含义的定义应该进行扩展,不应该只限于帮助程序员的二次开发,以及软件的维护等,应该走向智能化与集成化发展道路。对于软件的开发来说,主要是实现用户需求的满足,针对自身的需求,对软件的各项功能进行自由选取,还可以自行调整与修改软件功能。尽管缺乏相对专业的计算机知识,但是用户也能拥有自己的计算机软件[3]。还要扩展软件的可维护性定义,使用户能够主动参与软件的维护以及开发过程中,这也积极地影响软件未来的开发与维护。
(4)选择维护性高的软件设计语言。计算机网络技术与软件设计的发展,计算机语言也走向多样化发展趋势,而计算机软件程序的设计语言同样影响着软件的可维护性,语言的选择不当会造成软件维护的困境。相比较而言,高级语言与低级语言相比,具有一定的贯通性与理解性,能够对正在运行与完善中的软件出现的问题进行及时的检测,促进计算机软件的可维护性的发展。对于早期的汇编语言与低级语言来说,尽管能促进软件运行效率的提升,然而软件的开发难度比较高,而且在后期的维护方面还存在一定的难度。高级语言与开发工具,体内嵌入较多的模块化功能,能够对软件设计者的开发速度进行提高。因此,对于不同的高级语言而言,优缺点互相并存。作为第四代语言,如报表生成器、图形语言以及查询语言等,开发难度不大,而且后期维护性良好,能够通过较短时间开发出来,能够作为软件开发的优先选择的语言。
3结语
综上,计算机在人们生活的各个方面的积极运用,已经体现出计算机信息技术的重要作用。而随着人们需求的不断增加,计算机软件也要做出新的发展,加强自身的创新,积极完善软件的发展,不断提升设计过程中的可维护性,才能使人们的需求得到尽可能地满足,在开发过程中注重后期的维护工作,增强软件在开发过程中的作用,保持自身的价值,才能更好地为人们服务。
参考文献
[1]兰祯伟.计算机软件的可维护性分析[J].电子技术与软件工程,2014,(08):85-86.
[2]陈涛.计算机软件设计过程中的可维护性分析[J].科技创业家,2013,(13):12-13.
[3]张创.计算机软件的可维护性的实践探索[J].电子技术与软件工程,2013,(11):49-51.
关键词:一体化专业改革;岗位定专业;岗位定课程;核心课程
中图分类号:TP393-4
在一体化改革的路途中,以岗位定专业,岗位定课程,以生为本,以学生能力和技术培养为导向,重新审视当前技工院校的计算机网络专业的课程。首先找出计算机网络专业哪些是基础课程,哪些是必修课程,哪些是能力拓展课程,学了哪些课程后能从事哪些工作,能为社会做什么贡献,工作的细分,岗位的清晰定位,我们培养的不是万能人才,而是精通某一项技术的人才,那网络专业不能再是传统的软硬件通通涉及,而是细分网络专业,针对岗位培养专门的人才。
1 计算机网络专业改革的原因
原因1:当学生踏入学校,在选择专业的时候大部分是朦胧、模糊的,也未给自己定位,大部分是走一步算一步,基于此现象,第一个学期培养兴趣,选拔人才,“试用服务”帮学生尝试,然后定位自己的发展方向。
原因2:现在的企业并不需要全能型人才,所以学生需要精通一门技术,然后本专业的相关知识了解即可,有需要再深入学习。网络专业的课程设置范围较广,包含了软件和硬件知识,学习内容虽然非常丰富但是并不利于学生精通一样技术;同时大部分学生的学习兴趣是有限的,例如有的学生比较喜欢网络,那学生的心思就是想专研网络技术,对网站、软件相关的知识提不起兴趣,也无心思钻研,那上相关课的时候便无精打采,犯困;还有部分学生对网站建设、软件这方面非常感兴趣,非常投入,但是对网络、计算机硬件方面,不大感兴趣,虽然上着网络课,心里想的是网站代码。其实这是对老师的心血的浪费,也是对学生的时间的浪费。基于此现象,为了更好的教育,希望能给学生一个机会判断自己的兴趣,然后专攻某项技术的时间。
2 计算机专业改革的流程
图1
专业改革流程图说明,参考图1
第一步:专业介绍:介绍计算机网络专业的基础课程、能力拓展课程、核心课程。发展方向介绍:学了这些课程后能为社会产生的价值和做的贡献是什么,你将来能从事的工作有哪些。通过专业介绍和发展方向的介绍,对计算机网络专业比较感兴趣,或者愿意尝试从事此专业相关的工作,就报读计算机网络专业
第二步:进入“试读”期间,第一学期,分别学习网络专业的基础课程-
(1) 计算机网络技术(基本网络技术),服务器(windows,linux,unix),计算机软件的基础课程: ①静态网页-html,②网页布局div+css,结合自身兴趣与学习结果,定位自己的将来发展方向,教师针对两个方向分班设计试题进行测试,根据测试结果和学生自身兴趣将进行网络和软件分班
(2) 选择计算机软件仍然需要细分四个岗位方向,计算机软件服务,计算机软件测试,计算机软件开发分为两个方向-应用软件和web网站,所以学生可以根据自己的性格特征和兴趣选择最终的发展方向,由于计算机软件开发的行业知识和专业技能要求较高,在学习的过程当中也可以随时转换为计算机软件服务,计算机软件测试这两类门槛稍低的方向,从而使每一位学生有能在自己的领域发挥所长。
(3)针对特殊情况,例如一小部分能力很强的学生,软硬件学得非常好,则课专门设置一个时间段为选修时间,根据自己兴趣在选修班选择软件或硬件
第三步:专业分班后,将进行网络和软件核心知识培训和核心能力拓展,
计算机网络,核心课程培训:路由交换-各种服务配置,网络安全,综合布线
计算机软件服务,核心课程:社交礼仪(商务礼仪),系统操作分析,流程分析,心里分析,流行语言,框架的熟悉,project管理工具的使用
计算机软件测试,核心课程:数据库使用,软件测试工具的使用,白盒测试,黑盒测试
计算机应用软件,核心课程:数据库,报表,java,框架,android系统
计算机动态网站开发,核心课程:div+css,javascript(jquery),php,mysql,ps工具使用,flash
3 计算机网络专业改革的优势
计算机网络专业的改革,通过针对该专业的介绍,试读,再分班,充分发挥学生的特色,清晰的定位,充分而集中的知识和技能培训,真正的为社会培养精英,而不是博而不精,让学生的就业方向清晰且有竞争力
4 结论
计算机网络专业改革是针对传统的专业课程设置提出的修改。专业与课程无高低贵贱之分,正如古人云:三十六行,行行出状元,我们把每一个课程或专业做到精细,做到极致,让学生学得扎实,和深入,为企业培养技术型人才,真正的毕业而能从事对应的工作,于学生,于社会均是一大幸事。
人性化,合理化的课程改革,是我们今后的趋势,能最大程度发挥学生的特长,特色,培养实实在在的有用的人才
参考文献:
[1]赵志群.职业教育工学结合一体化课程开发指南[M].清华大学出版社,2009-5.
[2]李木杰.技工院校一体化课程体系构建与实施[M].中国劳动社会保障出版社,2012-2.
关键词:应用程序接口;可版权性
2014年5月,美国上诉法院判决Oracle在控告Google侵犯 Java的API 版权官司中胜诉。Google提出美国没有法律规定API受版权保护的论点。在判决中,法官了地方法院的判决,认为API也适用于版权保护。Google对此感到失望,认为本项判决将不利于科学发展及软件开发。法院对API是否受到著作权法保护并未达成一致,而API是云时代的关键角色,因此其可版权性就值得深入分析。
一、API简介
操作系统除了协调应用程式的执行、管理系统资源之外,同时也是个很大的服务中心,调用其中的各种服务(每一种服务就是一个函数),可以使应用程式达到开启视窗、描绘图形、等目的.由于函数服务的对象是应用程式,便称为应用程序编程接口(API,即Application Programming Interface)。应用程序接口为:"电脑操作系统或程式函式库提供给应用程式呼叫使用的程式码"。
API并非客观存在的物理接口,而是连接应用程序和操作系统间的虚拟接口。它使得开发人员能够基于某软件或硬件的应用程序而访问一组例程,同时又无需访问操作系统源码或理解其内部工作机制的细节。因此软件开发者在设计编译其软件时,为达到某一功能,最为便捷的方式便是使用具备特定功能的API。
二、API著作权法保护的特点
通过著作权法保护API的特点在于(1)API一经设计编码完成,只要创造性达到基本的智力创造高度,就可获得著作权法保护。这一点与API生产数量极其巨大、更新速度非常快的特点是相适应的。(2)现有各国立法均将计算机程序纳入著作权保护的立法习惯显示存在,我国的计算机软件保护也是在著作权法框架之下的。通过著作权法保护API能更好地适应和利用现有计算机软件知识产权保护基础。
三、API受著作权法保护的条件
美国DMCA第102条a款规定,法院必须保护计算机软件程序中具有独创性的表达。TRIPs第10条也规定,无论是以源代码还是以目标代码形式存在的计算机程序,都应根据《伯尔尼公约》1971年文本作为文字作品受到保护。
API作为计算机程序的一部分,有着和计算机程序相同的特性:本质是指令序列或者语句序列,是为使计算机执行一项任务所需要的一系列逻辑步骤;是软件开发人员思想与知识的结合,包含能够反映一定思想的代码的表达。
因此,将API作为文字作品进行保护是目前比较合理的做法,即具有独创性表达的API可以成为为著作权法保护的客体。
(一)API必须具有独创性表达
Whelan Assocs. v. Jaslow Dental Lab案中,被告雇佣原告为其开发适用于其计算机的应用程序,该程序可以在被告计算机上良好运行,但却无法在其他型号的设备上运行。因此,被告的雇员编写了另一个程序。上诉法院判决认定被告侵犯了原告的著作权。上诉法院认为,对计算机程序的保护,不仅及于文字代码本身,也应包括计算机程序的结构,顺序和组织。被告为达到同样的功能可以采用多种不同的方法,这些方法所使用的文件机构存在明显差异。原告程序的文件结构需要特定的信息和顺序,而其他程序为实现相同功能可能使用不同的信息,也可能会使用相同的信息但排序有所不同。因此,这些文件的结构毫无疑问包含足够多的值得著作权法保护的独创性表达。[1]
Engineering Dynamics v Structural Software案中,原告开发了一种特殊的输入格式为用户提供需要的数据,包括结构细节、预期环境和其他外部决定因素。而被告为了开发自己的软件,复制了大量原告的输入格式中的代码。法院认为,本案争议的输入格式包含了告知用户哪些数据要去收集以及哪些属于收集数据的指令等知识信息,因此,该API具有独创性的表达应受到著作权法的保护。判定被告的复制属于侵权行为。[2]
上述两个案例表明,具备独创性的表达的API可以被纳入著作权法的保护范畴。
(二)思想/表达二分法的适用
并非所有受著作权法保护的作品都得到同样程度的保护:著作权法并不保护作品所包含的思想或者功能性要素。Sega案中,法院认为如果作品具备功能性或者事实性,它可能会被允许复制,因为作品的受保护的表达必须是反映思想,实现功能或者描述事实的众多方式中的非唯一的。[3]因此API在适用思想/表达二分法时,存在很多独特的问题:为达到特定目的和满足设计需求,可能存在许多编程方式,故软件开发者的对API的结构的选择和设计会因其极具创造性并因此受到著作权法保护,但是,API是非常有针对性的指令序列,常包含许多逻辑性、结构性、以及视觉性元素,而这些往往取决于特定功能、软件效率以及兼容性或产业需要这样的外部因素。
1、混合原则
当一种思想只有一种或及其有限的几种表达时,该表达也不受版权的保护,以免导致思想本身被垄断。[4]因此,为保证运行效率,编码方式极为有限以致思想和表达难以区分的API不受到著作权法保护。
软件开发者要实现特定编程思想有多种表达方式,但最优途径往往只有有限的几种。基于对操作系统的了解,设计者针对特定功能所定义的API代码往往采用了最有效的方式。软件开发者开发的软件,由于可供选择的表达方式有限而与已存在的软件相似的,不构成对已经存在的软件的著作权的侵权。[5]Apple Computer v. Franklin Computer案中,法院认为:"如果只有一种方式或很有限的表达方式表达一个思想,允许复制该形式的表达"。[6]
符合混合原则API不属于著作权法所保护的表达盖因其所包含的代码属于能使软件效率最大化的最优途径。根据混合原则,尽管此类API属于计算机操作系统的一部分,但如果将其纳入著作权保护范围,将使得计算机操作系统的设计者得以垄断某一特定编程方式,排除他人利用。
2、场景原则
已经成为用户习惯或者事实上的行业标准的API不受到著作权法保护。
Mitel v. Iqtel案中,科罗拉多联邦法院认为电话铃声控制程序的指令代码是不受到著作权法保护的。原告的指令代码包含三到四个数字或字符以使控制器实现特定功能。尽管电话公司或者用户无法直接接触到这令指令码,但在安装设备时,技术人员会使用这些指令码。一旦设备被编码和安装,用户就可以使用这些功能。Iqtel承认在其电话设备中复制了原告的指令码,然而被告辩称,其产品必须与原告的设备相兼容从而有足够的竞争力在相关市场立足,因为原告拥有75~90%的市场,而技术人员也不愿意学习新的指令代码。[7]
API与Mitel案中的指令代码具有相似的特性:一旦完成编程,代码就会不断的自动被系统使用。从功能上来看,指令码是唯一能被电话设备识别的指令,故指令码和API都是一系列技术人员所不可变面会在在设备中编码或者调用内在功能时使用的微量代码。
同样,如果第三方软件商C想要设计出一款应用程序使之能与A的应用程序竞争,那么公司可能就需要复制A的用户界面,因为消费者可能已经习惯使用A的用户界面,此时A的用户界面就成为了一个事实上的行业标准。如果第三个公司的产品不符合这个标准,C的软件可能会让用户觉得界面不够友好而缺乏竞争力,购买C软件的消费者需要重新学习如何使用一个新的用户界面。此时,该API(UI)就符合场景原则,因为其他开发者不得不采用相同的UI,以获得竞争力,
同样的结论在Bay state v Bentley中出现,法院认为,根据场景原则,著作权法不保护那些由外部因素所决定的表达。就API而言,这些外部因素包括兼容(用户习惯),被广泛采用的产业惯例(事实上的标准)等。[8]
(三)非功能性要素
具有功能性,尤其是那些对于兼容性有决定性作用的API不受到著作权法的保护。
如果A公司开发了一个新软件在自己的操作系统上运行,这个新软件就必须与操作系统兼容。如果B公司想设计一款能运行该软件的新电脑,那么其接口就必须与软件的接口兼容,如果不兼容,那么为A操作系统设计的软件就不能在B的操作系统上运行。
在Bateman v. Mnemonics中,被告开发了与原告系统相兼容的应用程序。为达到兼容目的,被告采用与原告相一致的接口规范,特别是直接复制了原告软件中的API从而使程序能有效地与原告的系统交换数据。[9]法院没有就操作系统与该系统下的应用程序之间的接口规范是否受到著作权法保护直接给出答案,但其判决表明,为兼容目的的复制行为无需承担侵权责任。对于兼容性而言所必需的API无法成为著作权侵权诉讼的基础。
对于API的修改与对其他类型作品的修改不同,操作系统作者对于作品的修改可能会导致他人的演绎作品的效用丧失,而重新设计一个保持兼容的API是很困难的。操作系统设计者对于API的修改将直接影响调用了API的软件与该操作系统的兼容。无法兼容就意味着软件无法在特定操作系统上运行,发挥其效用。
软件的设计功能能否有效实现直接受到对兼容性所起的决定性作用的API影响,因此,这类API属于功能性要素。而著作权法只保护具有独创性的表达,任何实用性的因素,包括操作方法、技术方案和实用功能等都不在著作权法的保护范围之内。
四、结语
在著作权法保护模式下,包含独创性的表达是API受到保护的基本前提。同时,为了兼顾公共利益,会符合混合原则和场景原则的API并不受到著作权法保护的。对于这样的API不予保护使得社会公众可以更多地享受到技术进步所带来的好处。针对开放API用的平台,为了避免平台提供者其滥用其控制地位,阻碍其他开发者,平台中能够决定兼容性的API不受到著作权法的保护。
参考文献:
[1]See Whelan Assocs.Inc. v. Jaslow Dental Lab. Inc. 797F 2d 1222(3d. Cir. 1986)
[2]See Engineering Dynamics, Inc. v. Structural Software, Inc., 26 F.3d 1335 (5th Cir. 1994).
[3]See Sega Enterprises Ltd. v. Accolade, Inc., 977 F.2d 1510 (9th Cir. 1992)
[4]王迁.知识产权法教程(第三版)[M].北京:中国人民大学出版社.2011.53.
[5]《计算机软件保护条例》第29条.
[6] See Apple Computer, Inc. v. Franklin Computer Corp., 714 F.2d 1240 (3d Cir. 1983)
[7] See Mitel, Inc. v. Iqtel, Inc., 124 F.3d 1366, 1374 (10th Cir.1997)
[8]Bay state Technologies, Inc. v. Bentley Systems, Inc., 946 F.Supp. 1079, 1090-1091 (D.Mass. 1996);
【关键词】软件工程;程序设计;数据库;开发
1 软件工程的再理解
B.W.Boehm认为软件工程就是运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料。这里对“设计”一词应有广义的理解,它包括软件的需求分析和对软件进行修改时所进行的再设计活动。
IEEE说:“软件工程是开发、运行、维护和修复软件的系统方法”,其中,“软件”是计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。
Fairley给出的软件工程的定义为:软件工程学为在成本限额以内按时完成开发和修改软件产品所需的系统生产和维护的技术与管理的科学。
由此可见,软件工程包括3个基本要素:方法、工具和过程。
首先,软件工程方法为软件开发提供了“如何做”的技术。它包括多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法的设计、编码、测试以及维护等。软件工程常采用某种特殊的语言或图形的表达方法以及一套质量保证的标准。
其次,软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。有人把诸多工具集成起来,使得一种工具产生的信息可以为其他的工具所使用,这样建立起一种称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
另外,软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序,要求交付的文档资料,为保证质量和协调变更所需要的管理及软件开发各个阶段完成的里程碑。
2 软件工程项目的目标
组织实施软件工程项目,从技术上和管理上采取了多项措施以后,最终希望得到项目的成功。所谓成功指的是达到以下几个主要目标:较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易于移植,需要较低的维护费用,能按时完成开发工作,及时交付使用等。
在实际开发中,要使上述目标都达到理想的程度往往非常困难,而且上述目标很可能相互冲突。如追求降低开发成本,很可能同时也降低了软件的可靠性;若过于追求软件的性能,则可能造成软件对硬件有较大的依赖性,从而直接影响软件的可移植性等。
3 软件工程项目的实施
3.1 制定软件计划
在软件项目开发之前,针对不同的工作目标制定不同类型的工作计划,对项目实施计划进行可行性研究。主要包括下述任务:
第一,经济可行性。分析能否做到以最小投入成本得到最佳经济收益,做出立即投入、推迟开发或不值得开发的选择。如果可行,做出开发进度安排。
第二,技术可行性。分析使用现有的技术能否实现系统,能否解决系统技术难点,系统对技术人员有什么要求,硬件能否配套等其它技术冒险的各种因素。
第三,社会(法律)可行性。分析开发系统是否符合当前社会生产经营体制及法律法规的要求。
3.2 需求分析和定义
对开发软件提出的需求进行分析并给出详细的定义。软件开发人员和用户共同讨论决定哪些需求是可以满足的,并对其加以确切的描述,然后编写出软件需求说明书或系统功能说明书及初步的系统用户手册,提交管理机构评审。
3.3 软件设计
设计是软件工程的核心,就是把需求变换成为软件的具体方案,软件设计一般分为总体设计和详细设计两个阶段,总体设计是根据需求所得到的数据流、数据结构,使用结构设计技术,导出软件模块结构;详细设计是使用表格、图形或自然语言等详细设计工具,按照模块设计准则进行软件各个模块的具体过程的描述,如模块的分解与合并、低耦合性、高内聚性的特点,以及模块的作用、控制范围、复杂性和接口,按步骤进行设计。
3.4 程序编写(软件编码)把用户的要求变为计算机能够接受的形式,为每个模块编写程序,即写成以某一种特定程序设计语言表示的源程序清单。自然,写出的程序应当是结构良好、清晰易读又与设计一致。
3.5 软件测试
测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检验软件的各个组成部分,一般采用黑盒法和白盒法。所谓黑盒法是根据程序的物理特性,测试每一个功能是否达到预期的要求,白盒法则是根据程序的逻辑结构,进行目标测试。无论黑盒法还是白盒法都要设计测试用例,按照单元测试、组装测试、确认测试、系统测试、人工测试的步骤,对模块功能、接口、数据结构组成进行测试。最后按规定的各项需求,逐渐进行有效性测试,决定已开发的软件是否合格,能否交付用户使用。
3.6 软件运行/维护
已交付的软件投入正式使用便进入运行阶段。这一阶段可能持续若干甚至几十年。软件在运行过程中需要不断诊断、进行修改,包括改正性维护、适应性维护、完善性维护和预防性维护。维护的重要性在逐年提高。这一阶段是软件工程的最后一个阶段,也是最重要阶段,应给予足够的重视。
4 数据库系统软件的开发与设计探讨
数据库系统是应用较为广泛的多用户共享资源,具有通用、独立、冗余少、安全、完整的特性,因此,在进行数据库系统设计时应采用软件工程的方法。主要是对数据管理、库结构设计与建立、系统设计、语言的选择与设计、实用程序的编写、功能模块的设计等方面应用软件工程的理论和方法。在进行这些设计的需求阶段,应确定对软件的设计方法、所使用的描述工具、目标实现、推广使用等方面进行论证,然后根据用户和系统要求,进行包括上述功能的软件设计、输入输出设计、用户设计和模块功能、接口设计,然后编写用于数据库实现的编译、连接、测试等语言程序,使所设计的数据库系统具有易开发、易推广、易理解的高质量、高效率的软件。
因此,应用软件工程的理论和方法,可以设计较复杂的系统软件,使设计工程化、系统化,提高软件研制质量和水准。
【参考文献】
[1]郑人杰.软件工程[M].北京:清华大学出版社,1999.
关键词:;教学改革;实践教学
作者简介:张建平(1979-),男,山西岢岚人,中州大学信息工程学院,讲师;马芳(1979-),女,回族,河南郑州人,中州大学信息工程学院,讲师。(河南 郑州 450044)
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)06-0092-02
“动态网站—技术”课程是学生在学习了计算机网络技术、数据结构、c#程序设计、静态网页设计、数据库技术、软件工程等课程之后开设的,旨在培养学生基于技术的动态网站开发、设计和编程能力,使学生打好扎实的网络编程基础,熟悉网站开发的流程,毕业后能迅速适应网络应用程序和网站开发技术岗位的需求,具备良好的网络应用程序开发职业素养和再学习能力,以适应不断更新发展的职业和技术需要。可以看出“动态网站—技术”课程在计算机软件技术专业的专业课程体系中起着重要的技术支撑和促进作用。
一、“动态网站—技术”课程主要教学内容及改革
1.“动态网站—技术”课程的主要教学内容
(1)建设动态网站的基本知识。这部分内容主要讲解动态网站的基本原理,对于使用技术开发动态网站而言,主要是讲解利用IIS构建WEB服务器的原理和基本操作,让学生对WEB服务器的原理有个非常清楚的认识,为今后动态网站的开发打好基础。
(2)c#语法的讲解。这部分内容主要讲解c#语法,重点是对面向对象的讲授,在企业开发中基本已经全部利用面向对象的思想进行开发,因此重点应该将面向对象开发的思想,核心技术讲授清楚。
(3)visual studio 2008 集成开发环境的讲解。这部分内容利用当下企业中应用非常广的visual studio 2008 集成开发环境来进行讲解,重点讲授web控件、验证控件、数据显示控件(GridView控件等)、AJAX等常用的控件,使学生掌握visual studio 2008 集成开发环境中的基本控件和该IDE集成开发工具的使用。
(4)web开发中常用的内置对象的讲解。这部分内容主要讲授web开发中常用的一些内置对象,Response、Request、Cookie、Session、Application等,重点讲授这些内置对象的特点和常用的一些属性和方法。
(5)技术的讲解。这部分内容主要讲授连接SQL SERVER数据库中的核心技术。重点讲授常用的连接数据库的对象Connection、Command、DataReader、DataAdapter、Dataset等常用的一些对象。
(6)项目实战的讲授。这部分内容主要通过两个项目实战,新闻管理系统和在线考试系统,从软件工程的角度带领学生,严格遵守企业开发中所使用的流程,从需求分析开始、系统的概要设计、详细设计、代码编写、软件测试、软件等过程,带领学生完成这两个综合项目,并将之前所学应用于这些项目中,真正提高学生的实践动手能力。
2.“动态网站—技术”教学内容的改革
(1)紧跟企业最新技术,快速更新讲课内容。计算机学科是一门技术快速发展的学科,尤其对于动态网站开发这门课程来说,更是如此。而目前这门课程很多高校讲授时技术过于陈旧,企业当下主流应用的开发环境是visual studio 2008,有些高校的课程还沿用visual studio 2005,甚至更老的visual studio 2003,再讲授这些内容已势必无法满足企业的需求。这门课程讲授过程应该时刻关注企业当下的最新技术,快速更新讲课内容,使学生真正学有所得,将来在就业时不至于被企业淘汰。
(2)加强学生“内功”的修养,让学生更好地适应职业的需求。在计算机技术日新月异的今天,一方面要给学生讲授企业中最新的技术,但在讲课过程中还应该注意学生“内功”培养。这里所谓的“内功”针对计算机专业的学生来说,就是数据结构中的算法、程序语法中的面向对象的思想、软件总体的设计思想和方法等。这些“内功”无论计算机技术如何发展,变化是不大的,而实际上,这些知识往往也是衡量一个软件开发工程师水平高低的一个标准。只有将这些“内功”学好,将来才能在计算机技术快速更新的时代立于不败之地。而往往很多高校无论是老师还是学生都容易忽视这一点,认为这些知识不重要,老师在讲课时也不引起重视,导致学生基本功没有打扎实,不能很好地适应将来企业的发展,因此这门课程在讲授时对这些“内功”知识会重点讲授。
(3)使用真实项目,加强学生实践能力的培养。学生实践能力的培养,现在高校都已十分重视,但普遍存在两个问题,一是老师上课所讲解的项目过于简单,无法真正提高学生的实践能力;或者所讲授的项目不是真实的案例,没有经过测试。这些案例将来一旦运行,会存在这样或那样的bug,这种项目的讲解并不能提高学生的编程水平和实践经验。实际在软件开发中,更多的时间是花在软件测试和调试上,所以本门课程在讲授时采用两个真实的案例,一个是新闻管理系统,还有一个是在线考试系统。将来学生编写的代码,可以挂在学校的服务器上来,并让同学相互之间进行测试,出现问题,及时修复出现的bug,这样极大提高学生项目的实战经验,为其将来更好地就业奠定很好的基础。
二、“动态网站—技术”教学方法与手段的改革
针对本门课程所讲授的内容,在教学中主要采用以下教学方法和手段:
1.充分利用信息化教学平台,真正实现“教、学、做”一体化的教学方法
“教、学、做”一体化的教学方法已经提出很多年,对于实践性非常强的课程,它能对教学起到很好的效果。但它一方面需要各种硬件平台的支持,另一方面也要求老师也应具有丰富实践经验,实施起来比较困难。学校这两年来为了提高教学质量,真正实现“教、学、做”一体化的方法,购买了大量的投影仪、高配置的计算机和多媒体设备,很多教室都基本都能达到“教、学、做”一体化的硬件要求。得益于学校的大力支持,加上自身参与很多实际项目的研发,因此这两年来该课程的教学基本都采用“教、学、做”一体化的手段,老师在讲台上一边讲授,一边操作。讲授过程中进行适当的停留,给学生一定的练习时间,这样不仅可以巩固学生所学,还可以极大提高学生的实践动手能力。
2.提出“小组团队”学习法
针对现在企业中所倡导的团队开发理念,在课程的项目实战期,给班级的学生分成若干个小组。一般每个小组的成员大概由4~5人构成,人员的构成完全模拟企业中团队的构成。有的负责项目总体设计,有的专门负责数据库的dba,有的负责界面的美工,有的负责代码编写,有的负责最终代码测试。这种小组的划分,不仅可以提高学生的团队意识和合作精神,也可以极大提高学生的责任心,为其将来树立很好的职业规范和职业道德打下基础。通过这种模式的训练,也可以巩固学生所学,遇到问题大家一起讨论,极大地提高了学生的学习热情。
3.定期开展谈论课,鼓励学生多讨论,多交流
在实际的企业开发中,可能会碰到各种技术问题。交流和沟通在企业开发中也是非常重要的,现在企业更希望自己的技术骨干具有很强的沟通和交流能力,能够独自带领一支团队。对程序员来说这点也尤为关键,程序员向上转型就是项目经理,而项目经理就需要具备很强的交流和沟通能力。因此在课堂教学中会定期举办一些讨论,针对一些技术问题,采用启发式的教学手段,鼓励学生多讨论和交流,提出自己解决问题的思路和方法,最终不仅解决了一些技术难题,也拓展了学生的思路,锻炼了学生沟通的能力。
三、“动态网站—技术”教学考核方式的改革
由于“动态网站—技术”课程是门实践性非常强的课程,因此本课程摒弃了传统以笔试为主的考核形式,进行了以下内容的改革:
1.根据学生每次实验报告、考勤来给定最终的30%成绩
学生每次的实验报告和考勤也纳入最终的成绩,占总成绩的30%。有些学生学习有惰性,所以在平时应该对学生的课堂严格管理。每次通过批改实验报告也能发现学生学习中出现的问题,及时帮助学生来解决问题,为学生完成项目做好铺垫。平时成绩也占到考试成绩的一部分,这样不仅维护好了课堂秩序,同时及时解决了学生平时出现的问题。
2.采用对“小组团队”所做项目进行答辩的形式,来给定最终的70%的成绩
对于“动态网站—技术”课程,很多高校的老师也多采用项目考核为主的方式来进行。比方说以学生独立完成一个项目来给定其最终的成绩,但因为学生可能从互联网下载或者其他途径,导致最终项目并不真正由自己完成,导致这种考核方式形同虚设。因此在笔者的教学过程中,对最终的考核形式进行了改革,还是以“小组团队”完成项目来作为最终的70%的成绩,但最终每个小组都要进行答辩,以此来判定学生的项目是否由自己独立完成。每个小组中可能每个同学的工作量和难易程度不同,也分别给予不同的分数,这样极大提高了学生的学习积极性和主动性,取得了良好的教学效果。
四、结论
“动态网站—技术”是学生最后一学期开设的专业课,在软件专业学生择业过程中占据很重要地位,很多用人单位就是直接考察学生这门课程的学习情况,因此对任课教师提出了严峻的考验。“动态网站—技术”课程历经几年的建设和改革,本着课程服务企业的理念,在教学过程中进行了一系列的改革,最终从毕业生和用人单位的反馈情况来看,课程的改革还是卓有成效的,今后会继续将好的经验和方法发扬光大,对存在的问题予以改正,真正为学生以后的就业打好坚实的基础。
参考文献:
[1]华驰软件实用教程[M].北京:机械工业出版社,2012.
[2]翁健红程序设计[M].北京:机械工业出版社,2013.
[3]宁云智2.0 程序设计案例教程[M].大连:大连理工大学出版社,2007.
[4]肖玉朝项目化教程[M].北京:中国海洋大学出版社,
关键词:计算机软件;可维护性;软件;硬件;结合
中图分类号:TP31
文献标识码:A
文章编号:1672―31 98(2009)11―0262―02
1 建立明确的软件质量目标和优先级
一个可维护的程序应是可理解的、可靠的、可测试的、可修改的、可移植的、效率高的和可使用的。但要实现这所有的目标,需要付出很大的代价,而且也不一定行得通。因为某些质量特性是相互促进的,例如可理解性和可测试性、可理解性和可修改性。但另一些质量特性却是相互抵触的,例如效率和可移植性、效率和可修改性等。因此,尽管可维护性要求每一种质量特性都要得到满足,但它们的相对重要性应随程序的用途及计算环境的不同而不同。
2 使用提高软件质量的技术和工具
模块化是软件开发过程中提高软件质量,降低成本的有效方法之一,也是提高可维护性的有效的技术。它的优点是如果需要改变某个模块的功能,则只要改变这个模块,对其他模块影响很小;如果需要增加程序的某些功能,则仅需增加完成这些功能的新的模块或模块层;程序的测试与重复测试比较容易;程序错误易于定位和纠正;容易提高程序效率。使用结构化程序设计技术,提高现有系统的可维护性。采用备用件的方法,当要修改某一个模块时,用一个新的结构良好的模块替换掉整个模块。这种方法要求了解所替换模块的外部(接口)特性,可以不了解其内部工作情况。它有利于减少新的错误,并提供了一个用结构化模块逐步替换掉非结构化模块的机会。采用自动重建结构和重新格式化的工具(结构更新技术)。采用如代码评价程序、重定格式程序、结构化工具等自动软件工具――把非结构化代码转换成良好结构代码。改进现有程序的不完善的文档。改进和补充文档的目的是为了提高程序的可理解性,以提高可维护性。采用结构化小组程序设计的思想和结构文档工具。软件开发过程中。建立主程序员小组,实现严格的组织化结构,强调规范,明确领导以及职能分工,能够改善通信、提高程序生产率;在检查程序质量时,采取有组织分工的结构普查,分工合作,各司其职,能够有效地实施质量检查。同样,在软件维护过程中,维护小组也可以采取与主程序员小组和结构普查类似的方式,以保证程序的质量。
3 进行明确的质量保证审查
质量保证审查对于获得和维持软件的质量,是一个很有用的技术,还可以用来检测在开发和维护阶段内发生的质量变化。一旦检测出问题来,就可以采取措施来纠正,以控制不断增长的软件维护成本,延长软件系统的有效生命期。为了保证软件的可维护性,有4种类型的软件审查。
在检查点进行复审。保证软件质量的最佳方法是在软件开发的最初阶段就把质量要求考虑进去,并在开发过程每一阶段的终点,设置检查点进行检查。检查的目的是要证实已开发的软件是否符合标准,是否满足规定的质量需求。在不同的检查点,检查的重点不完全相同。如图1所示。
验收检查。验收检查是一个特殊的检查点的检查,是交付使用前的最后一次检查,是软件投入运行之前保证可维护性的最后机会。它实际上是验收测试的一部分,只不过它是从维护的角度提出验收的条件和标准。
周期性地维护审查。软件在运行期间,为了纠正新发现的错误或缺陷,为了适应计算环境的变化,为了响应用户新的需求,必须进行修改。因此会导致软件质量有变坏的危险,可能产生新的错误,破坏程序概念的完整性。因此,必须像硬件的定期检查一样,每月一次或二月一次,对软件做周期性的维护审查,以跟踪软件质量的变化。周期性维护审查实际上是开发阶段检查点复查的继续,并且采用的检查方法、检查内容都是相同的。为了便于用户进行运行管理,适时提供维护工具以及有关信息是很重要的。
维护审查的结果可以同以前的维护审查的结果、以前的验收检查的结果和检查点检查的结果相比较,任何一种改变都表明在软件质量上或其他类型的问题上可能起了变化。对于改变的原因应当进行分析,例如,如果使用的是复杂性度量标准,则应当随机地选择少量模块,再次测量其复杂性。
对软件包进行检查。软件包是一种标准化了的,可为不同单位、不同用户使用的软件。软件包卖主考虑到他的专利权,一般不会提供给用户他的源代码和程序文档。因此,对软件包的维护采取以下方法。使用单位的维护人员首先要仔细分析、研究卖主提供的用户手册、操作手册、培训教程、新版本说明、计算机环境要求书、未来特性表,以及卖方提供的验收测试报告等,在此基础上,深入了解本单位的希望和要求,编制软件包的检验程序。该检验程序检查软件包程序所执行的功能是否与用户的要求和条件相一致。为了建立这个程序,维护人员可以利用卖方提供的验收测试实例,还可以自己重新设计新的测试实例。根据测试结果,检查和验证软件包的参数或控制结构,以完成软件包的维护。
4 选择可维护的程序设计语言
程序设计语言的选择,对程序的可维护性影响很大。低级语言,即机器语言和汇编语言,很难理解,很难掌握,因此很难维护。高级语言比低级语言容易理解,具有更好的可维护性。但同是高级语言,可理解的难易程度也不一样。第四代语言,例如查询语言、图形语言、报表生成器等,有的是过程化的语言,有的是非过程化的语言。不论是哪种语言,编制出的程序都容易理解和修改,而且,其产生的指令条数可能要比用COBOL语言或用PL/1语言编制出的少一个数量级,开发速度快许多倍。有些非过程化的第四代语言,用户不需要指出实现的算法,仅需向编译程序或解释程序提出自己的要求,由编译程序或解释程序自己做出实现用户要求的智能假设,例如自动选择报表格式,选择字符类型和图形显示方式等。总之,从维护角度来看,第四代语言比其他语言更容易维护。
参考文献
[1]李文龙,把您的秘密藏在Word文档内[J],电脑知识与技术,2005,(1)
[2]小乌云,给Word文档精确“减肥”五小招[J],网络与信息,2005,(4)
[3]丁剑洁,基于度量的软件维护过程管理的研究[D],西北大学,2006
【关键词】计算机技术 多媒体 开发 应用
一、计算机多媒体辅助教学软件
利用多媒体计算机来辅助教学,就是利用计算机的各个软件,将图像、动画、声音、文字等多种媒体综合起来,让学生对知识有更加直观、深刻的理解。他不同于传统教学,传授给学生的信息知识更加生动立体,传授方法更加灵活多变,实践证明,使用多媒体计算机软件,能使学生更加迅速的接受更多的知识,并且让学生保持学习兴趣,培养学生的想象力与表现力。作为一种新型的综合教学软件, 多媒体计算机辅助教学软件不仅仅是计算机应用领域的一个新的领地,也为教育领域提供了一个新的发展方向。其特有的优势和特殊的教学效果,必将极大的影响到新时期的教学思想与课程体系,提供给教师们新的教学方法与教学手段,这一新的教育领域的改革也会产生积极而深远的影响。
二、用计算机辅助教学要有其必要性
中职院校在利用计算机辅助教学之前,要对其必要性做充分的论证。对有些专业或课程内容是会带来良好的教学效果,学生不但能尽快掌握所学内容,而且通过学习方式的转换,也会对学习发生兴趣,这些都是计算机辅助教学所带来的有利方面。但是如果没有必要用辅助教学的课,非要将计算机搬进课堂,那是哗众取宠,是没有必要的。因此,多媒体计算机辅助教学软件必须要突出教学重点,突破教学难点,因为教学的目的就是借助特有优势,将抽象的、难以被学生所掌握和理解的知识形象地、直观地、简洁地让学生接受,这也是学校的根本教学宗旨。
三、计算机多媒体技术在辅助教学中的具体应用
在实际教育工作中,为了实现多媒体的教学效果,诸多的教师会盲目性的选择运用技术,一味的以为只是单纯的适用技术便可以达到想象的效果,甚至有的教师还彻底脱离以往传统的教学,以技术为主导,却忽略了应该要将技术真正的融入到教学内容的实质上。尤其是对于中职学生来说,由于他们并非具有多么优秀的成绩或者良好的学习基础,因此这种中注重技术的授课方式对于他们来说显得过于沉重。因此,中职教师应该有效的将技术与传统的教学方式向结合,使它们做到相辅相成,用技术奖教学的内容用领一种方式呈现于学生面前,促使教学效果的最大化。
3.1以建设带动开发
对于中职学校来说,要想更好的额运用计算机多媒体技术,可以加强学校多媒体计算机辅助教学软件网络资源库的建设,即根据中职院校的实际情况,建立一个多元化的多媒体计算机辅助教学软件网络资源库。
一般情况下,多媒体计算机辅助教学软件网络资源库主要是由教学资源的管理系统、软、硬件资源以及网络课程等等。中职院校可以通过以下具体途径构建资源库:1.中职院校可以组织构建一个较为稳定的多媒体计算机辅助教学软件研发团队,根据不同的学科内容以及特点制作成多样的多媒体计算机辅助教学软件课件,将这些课件不断的融入学校的网络资源库内,并最终运用网络教学平台进行组织管理,便于每一门科的教师依据班级学生的特点,从平台中获取相应的网络资源,实现资源的共享。当然,对于一些条件不甚理想的中职学校,也可以自行购买或者制作一些图片、文字、声音等于学校课程有关的素材型资源或者教学资源管理系统。2.中职院校还可以建立一个多媒体计算机辅助教学软件网络实验室,为教师们提供一个专门的渠道,配以专业的教育人员研究网络课程以及多媒体计算机辅助教学软件课件,让多媒体课件透过网络这个平台传递给学生以及教师们。3.对于通用教学系统支持平台建设方面,中职院校可以开设相应的软件(Windows、Linux)支持系统、以多媒体创作软件为主(authorware、几何画板)的多媒体开发软件,以及类似于Photoshop的图片处理软件或者幻灯片软件等等。4.硬件资源方面,中职院校应该建设适应多媒体计算机辅助教学软件开发和教学需要的硬件平台,如多媒体计算机、数码照相机、摄像机等。
3.2开发质量,注重教学软件设计
计算机辅助教学最关键的一点就是教学软件的设计,其设计出的功效和性能对教学系统和后期教学活动的进行都起着关键性的作用。这就要求软件工程师完全按照教育软件工程的思想进行研制与开发,从最初的设想到素材收集、再到后期的编写制作与一遍一遍的实验,将教学大纲的目标要求贯穿在整个软件的设计与制作的过程中,连贯新旧知识,整理不同问题,知识点具体分析,抽象问题给予感官认知,激活学生的思维方式,高质量的计算机教学软件促使我们的课堂更加灵活生动,快速高效,不断拓宽学生的知识面,也使我们的学生兴趣盎然、活学活用,不断提高课堂教学效率。
中职院校在制作多媒体计算机辅助教学软件教学软件时,还应注意一下几点:1.将相关课程的教学目标定位,并科学的以目标为准选题,并关注过程控制。带分析后,对于一些不易于在计算机中呈现的教学内容删除,而对于那些学生们不易于理解或者相对抽象以及传统教学模式下不易于呈现的内容,透过多媒体计算机辅助教学软件设计成立体的课件形式展现在学生们面前,便于学生们的更好理解与操作;2.基于计算机具有交互的特性,因袭,我们可以利用这一点,更好的将教与学柔到软件之中,来拓宽软件的可控性;3.将课堂中学生们难以理解的问题湖综合课程目标中的重难点进行技术性的分析处理,利用计算机进行信息的传递,帮助学生们以通过动态的视觉刺激掌握这些知识点。
总之,随着科技信息的不断发展与进步,其为我们的生活带来了翻天覆地变化,也为我们的教育事业带来了机遇与挑战,通过计算机多媒体技术辅助教学软件的开发,可以更好的帮助学生们提高学习效率,这也为我国的教育事业发展提供了关键性的技术保障,当然,这还要相关教育者不断的完善多媒体计算机辅助教学软件,才能使媒体计算机辅助教学软件更好的适应现代教育的发展需求。
【参考文献】
[1]潘远东.浅谈多媒体计算机辅助教学[J].辽宁教育行政学院学报. 2009(06)
[2]周忠武,庞敬文,钟绍春教学软件与资源建设的思路与方向研究[J].中国电化教育,2012(4).
[3]韩晓风计算机多媒体辅助教学软件开发探讨[J].现代营销,2012(10).
关键词 软件测试;软件质量;模拟器
中图分类号TN911 文献标识码A 文章编号 1674-6708(2013)95-0224-02
随着信息技术与信息产业的发展,计算机软件广泛地渗入到了我们的工作和生活中,各种产品和设备与计算机软件的联系也越来越紧密。计算机软件的质量优劣也日益受到人们的重视。软件测试是保证软件质量的重要手段。在软件工程中,软件测试是软件生命周期中一项非常重要的工作,也是一项非常复杂的工作。
1 模拟器软件的开发与测试
软件是模拟器的重要组成部分,软件的质量直接影响着模拟器的质量。软件如果存在缺陷或故障,将会导致模拟器在使用过程中发生错误,对用户产生各种影响。模拟器软件的开发过程一般包括制定计划、需求分析、软件设计、软件编码、软件测试、运行维护等6个阶段。软件测试是模拟器软件开发过程中的一个阶段,是保证模拟器软件质量的重要方法和手段。软件测试技术可分为静态测试与动态测试。静态测试是一种不通过执行程序而进行测试的技术,关键是检查软件的表示和描述是否一致,有无冲突或歧义。动态测试通过人工或使用工具运行程序进行检查,分析程序的执行状态和程序运行的表象。动态测试一般分为白盒法测试和黑盒法测试。白盒法测试对象是源程序,依据程序内部的逻辑结构来发现编程错误、结构错误和数据错误。黑盒法是把测试对象看成一个黑盒子,依据软件的功能或软件行为描述,发现软件的接口、功能和结构错误。
模拟器的软件测试是软件开发过程中的一个阶段,但不是一个完全独立的阶段,而是贯穿于软件开发整个过程中的一个重要环节。模拟器软件测试过程由单元测试、集成测试、系统测试和验收测试等阶段组成,整个测试过程与如图1所示。其中,系统测试是整个软件测试过程中非常重要的测试阶段,是软件的全部功能在实际运行环境中进行验证和确认的测试,也是用户进行验收前的测试。
2模拟器软件系统测试的目的和内容
模拟器软件测试是一项非常复杂的工作,首先要按照详细设计的要求对所有模块的功能、性能、接口等进行单元测试,发现每个程序模块内部可能存在的差错,确保每个模块单元工作正常。在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装成系统进行集成测试,发现与接口有关的各种错误,确保各单元模块集成系统后能够按设计要求协作运行,并确保增量行为的正确性。
模拟器软件的系统测试,就是将已经过集成测试的模拟器软件和其它支持软件安装在模拟器的专用计算机上,并与模拟器的硬件设备、人员等所有系统元素结合在一起,在实际的运行环境下,对模拟器软件进行全面测试。通过对模拟器软件的需求定义进行比较,找出软件与需求定义不相符之处,通过对模拟器进行一系列严格测试来发现软件中潜在的错误和缺陷,以确保模拟器交付给用户后能够正常使用。
模拟器软件系统测试包含功能性测试和非功能性测试两类测试内容。功能性测试的目的是测试软件的主要功能与用户的需求是否一致,主要进行训练环境设置功能测试、训练功能测试、训练评估功能测试。非功能性测试主要测试软件的性能、可靠性、健壮性是否满足设计要求,主要进行性能测试、可靠性测试、易用性测试。模拟器软件的系统测试主要采用黑盒测试技术中的因果图、决策表、错误推测等测试方法。
3 模拟器软件的功能性测试
功能测试不考虑模拟器软件的内部结构和处理过程,通常在程序的界面处进行测试,测试软件是否能够按照需求的规定正常运行,是否能够实现与需求一致的所有功能,发现软件与需求定义不相符之处和潜在的错误与缺陷。模拟器软件的功能性测试主要进行训练环境设置功能测试、训练功能测试和训练评估程序功能测试。
3.1 训练环境设置功能测试
在训练开始前模拟器要进行训练环境设置,训练环境包括地理地形、气象条件、各种设置、各类模型数据等。训练环境设置的功能测试用例应当按照软件需求进行设计,要考虑到不同训练环境的各种组合情况,测试目的就是核实在不同的环境设置时数据载入是否正确、是否完整,是否完全符合设计要求。
3.2 训练功能测试
模拟器的训练功能就是在各种操作方式(正确或错误)条件下仿真装备的真实反应(状态和过程)。不同的操作方式就是按照不同的操作顺序将模拟器不同设备面板的各种操作器件置于不同的位置状态,所有操作器件不同顺序的不同位置状态可以产生数量很大的各种条件的输入组合。仿真装备的真实反应就是模拟器软件的输出,就是启动不同的仿真过程、或改变仿真进程、或使模拟器显示器件显示不同内容与状态、或导致三维场景的不同改变。对于模拟器软件这种多条件组合输入、产生多动作输出的复杂功能测试使用因果图(逻辑模型)方法设计测试用例比较合适。
采用因果图方法设计模拟器软件功能测试用例的步骤:首先确定模拟器软件功能中的原因和结果,确定原因和结果之间的逻辑关系,根据这些关系画出因果图。确定因果图中的各个约束。然后把因果图转换为决策表。根据决策表设计测试用例。
由于模拟器软件的功能测试比较复杂,应当采用错误推测法作为辅助测试方法,依靠测试人员的经验和直觉推测软件功能可能存在的各种错误从而有针对性地设计测试用例。
根据测试用例进行训练功能测试,检查在各种操作方式条件下软件的训练仿真过程以及模拟器表象及状态是否与设计要求完全一致、是否存在错误和潜在的缺陷。
3.3 训练评估程序的功能测试
对训练过程进行评估是模拟器的一个重要功能。训练环境的设置数据和训练过程中对模拟器的所有操作过程都按照时间先后以规定的数据格式完整地记录在操作过程的文件中。训练评估程序的功能就是将记录的操作过程文件作为输入数据,经过逻辑分析和数据计算,输出此次训练的成绩和训练过程的评语。由于训练评估程序的输入是整个训练过程的全部操作,所有操作器件产生的操作顺序组合将达到非常大的数目,实际中可能无法完成,在设计测试用例时采用等价类技术对操作过程的各种顺序组合进行划分,从划分的每个区域内选取有代表性的操作过程作为测试用例。测试的目的就是检查对不同的操作过程输出的成绩和评语是否正确,是否与专家评定结果一致。
4 模拟器软件的非功能性测试
模拟器软件的非功能性测试主要内容包括性能测试、可靠性测试、易用性测试。
4.1 性能测试
性能测试主要检验模拟器软件是否达到需求规定的各类性能指标,并满足一些性能相关的约束和限制条件。软件运行的实时性是非常重要的性能指标。模拟器软件的实时性测试主要包括操作响应时间的测试以及三维场景显示的流畅与连续性测试。操作的响应时间应当与装备的响应时间一致。场景的流畅要符合人们的视觉感受,如果三维场景绘制复杂、数据量大时会导致显示帧频下降,人眼就会感到画面间断、停顿,显示帧频是衡量流畅性的指标。三维场景的流畅性与场景中三维实体的数量、复杂程度、分辨率,以及三维场景特效(如烟雾)等有直接关系,应当以场景实体和特效达到或接近最苛刻的过程进行场景显示的实时性测试。
4.2 可靠性测试
软件的可靠性也叫做稳定性,是指在负载多变的情况下或长时间运行的情况下模拟器软件运行的稳定程度。模拟器软件的可靠性测试可以使用重复测试、并发测试、随机变化以及长时间不间断运行等方法。重复测试就是对某一器件进行重复操作,测试模拟器能否持续不断地仿真设备的真实运行效果;并发测试就是同时对多个器件进行操作,测试模拟器能否产生与设备同样的状态;随机变化就是不按照正常的操作顺序,而是设计非常规的随机操作顺序或对重复和并发测试手段进行随机组合,以获得最佳的测试效果。按照设计要求让模拟器软件长时间不间断地运行,测试软件是否运行正常、功能是否出错。
4.3 易用性测试
模拟器软件的易用性主要是指训练环境设置、成绩评估等环节的界面易懂、选择准确、操作方便。界面的设计要尽量符合人们的习惯和思维方式,按钮名称用词准确、没有歧义,同一界面的按钮要易于区分,用户能够进行正确理解界面的功能并能够进行正确操作。用户能够终止进程,重新返回、重新选择。通过对界面的操作来测试模拟器软件的易用性。
5 结论
系统测试是软件交给用户进行验收测试的最后一道关口,对保证软件的质量起着非常重要的作用。系统测试也是测试人员需要花大量的时间和精力才能完成的工作,虽然有些测试工作可以使用软件测试工具来完成,但由于每一种测试工具都有其特定领域的应用,都有其自身的很多局限性,软件测试工具本身不具备创造力,不能设计测试用例,不能处理意外事件,使用测试工具发现的缺陷也没有手工测试发现的多。系统测试中的很多工作主要还是靠人完成的,测试人员的能力和素质最终决定了测试结果的好坏。根据系统测试结果和系统测试分析报告,在验收测试前完善软件功能、纠正软件错误、消除软件潜在的缺陷,提高软件质量。
参考文献
[1]赵斌.软件测试技术经典教程 [M].2版.北京:科学出版社,2011.
[2]李海生,郭锐.软件测试技术案例教程[M].北京:清华大学出版社,2012.
摘要:本文以科学发展观为指导,对大学计算机基础教学的改革问题进行了深入的探讨,并对课程改革提出了具体措施。
关键词:科学发展观;基础教学;课程建设;教学改革
中图分类号:G642
文献标识码:B
1课程体系建设
我们将计算机基础的知识结构划分为以下四个领域:
计算机系统与平台:涉及计算机硬件结构、操作系统、网络工作平台等方面的基础知识的应用技能;
计算机程序设计基础:涉及程序设计语言,程序设计基本方法、数据结构与算法基础等;
数据分析与信息处理:涉及应用计算机系统进行数据分析与信息处理的技术与方法,包括数据库技术、多媒体与人机交互技术、计算机接口与控制技术、辅助设计技术、数值计算与处理技术等方面的内容;
信息系统开发:涉及较大型信息应用系统的设计方法(特别是网络应用软件的架构技术),以及软件开发过程等方面的内容。
围绕知识结构的四个领域,将其所涉及的一些理论与技术系统的划分成三个阶段:
第一阶段要求基本概念的“博学”“审问”,即需要牢固掌握大学生必备的计算机通识性基础知识。主要有计算机硬件技术基础、计算机软件技术基础、操作系统概述、网络与分布式计算机介绍、信息系统安全基础。
第二阶段要求技术与方法的“慎思”“明辨”,即需要深刻理解具有共性的知识领域中的一些技术与方法,主要有程序的控制结构、基本数据类型与数据结构、面向对象程序设计方法等。
第三阶段要求应用技能的“笃行”,即要求熟练使用一些可视化编程环境以及掌握程序的测试与调试等技能。
2以学生为中心进行课程设置
由于不同专业所涉及和要求的计算机信息处理技术的不同,在课程设置上采用“1+X”方案,即计算机应用基础+若干必修、选修课程。每门课程的总学时数可划分三部分:理论课学时、课内实验学时、课外实验学时。理工类非计算机专业学生四年课内外上机学时(不含毕业设计(论文)上机)不低于400学时,人文、管理、外语类专业学生不低于200学时。在规划必修、选修课程时,可根据学生所在专业的不同需求,采用以下不同方案:
(1) 电子/控制类专业
需要有较强的程序设计能力;在“计算机系统与平台”方面,偏向于计算机硬件结构以及网络与通讯等,同时需要掌握软件平台方面的基本知识;在“数据分析与信息处理”方面重点掌握计算机接口与控制技术等。具体方案如表1所示。
(2) 科学计算类专业
需要有较强的程序设计能力;在“计算机系统与平台”方面,掌握计算机软、硬件以及网络方面的基本知识,重点掌握软件平台方面的应用技能;在“数据分析与信息处理”方面重点掌握数值计算与处理技术和多媒体与人机交互技术等。具体方案如表2所示。
(3) 信息管理类专业
对一般程序设计知识和技能有较好的理解,在数据库应用系统设计方面有较强的能力;在“计算机系统与平台”方面,掌握计算机软、硬件以及网络方面的基本知识,重点掌握软件平台方面的应用技能;在“数据分析与信息处理”方面重点掌握数据库应用以及多媒体技术等方面的知识与技能。具体方案如表3所示。
(4) 辅助设计类专业
具有较好的程序设计知识和技能;在“计算机系统与平台”方面,掌握计算机软、硬件以及网络方面的基本知识,重点掌握软件平台方面的应用技能;在“数据分析与信息处理”方面重点掌握辅助设计技术以及多媒体与人机交互技术等方面的知识与技能。具体方案如表4所示。
(5) 基本应用类专业
在“计算机系统与平台”方面,掌握计算机软、硬件以及网络方面的基本知识,重点掌握常用软件的使用方法;在“数据分析与信息处理”方面重点掌握信息检索与分析方法。具体方案如表5所示。
3题库建设
题库建设是一项长期、复杂的工作,技术要求高,工作难度大。教师在设计题库时根据不同专业学生的培养目标,应用现代教育测量理论和技术,合理制定课程考试标准,科学把握考试的合格标准,引导学生按照专业、课程要求,全面、准确地理解、掌握和应用所学知识。
众所周知,考试是检验学生学习效果的常规手段,所以每到考试前出试卷时,教师总是为出一套好题费尽心思,既要几乎覆盖全部知识点,又要每个层次的题目都有,还要难易程度比例适中。为了使考题真正能检验教师的授课水准与学生的掌握程度,更为了严密考试程序及提高组卷的效率,学院及时开发了“大学计算机基础”电子题库管理系统。此题库设计实现了实用性与科学性相统一,并具有开放性、安全性和动态发展等特性。在课程考核标准的把握、命题质量的控制、参数估计和试卷生成模型上形成自己的特色。入库的题目在内容考核点、重要性、认知层次、难度层次和题型等方面的分布要有合理的结构,以保证生成多套平行试卷。该系统采用了高性能的快速算法具有高效的组卷能力,并具备对所组成的试卷自动进行分析的功能,同时为教员提供了试卷批改后的试卷分析功能。
参考文献
[1] 黄国兴. 中国计算机科学与技术学科教程[M]. 北京:清华大学出版社,2002.