关键词:;发展应用
引言:
改革开放之后,计算机逐渐普及,现如今,中国计算机使用用户的数量巨大并且在持续攀升。。
一、计算机软件技术的发展
我们都知道,计算机是由硬件和软件两部分所组成的,但是在计算机诞生初期,计算机并没有对硬件和软件做严格划分,这也正是早期计算机只能完成简单的运算而不能实现复杂的技术运行。之后,由于工作性质越来越繁琐复杂,为了满足社会发展的需要,软件技术被提出以适应现代社会高效率工作的要求,同时,人类生活的发展也对软件的多领域多层次性产生需求。通过软件开发满足不同的用户需求,用户的需求得到了满足,也正向推动了软件技术的开发与更新,进一步推动了计算机软件技术的发展。。计算机软件技术除了使计算机成为了一种高科技工具,计算机软件技术还在经济、医疗、工程等各个领域发挥着重要作用。
二、计算机软件技术的应用
(一)教育教学。现如今,学校里老师的教学方式已经区别于二三十年前的教育方式。从前老师在黑板上手写下上课内容,既耗时耗力,又毫无趣味,而现在,各种科技软件革新了传统教育方式,老师可以通过PPT等office软件代替传统板书,既清晰省事又给课堂教学带来了趣味。计算机软件技术是教育事业的一大助力。(二)项目工程。计算机软件技术的发展大大便捷了项目工程的各个方面,包括工程制图、工程管理、工程造价等。就以工程制图来说,传统工程图的绘制可能更多需要手工画制,费时费力的同时也无法保证数据精确度。而利用了AutoCAD(AutodeskComputerAidedDesign)这类绘图软件,不仅可以完成二维绘图,还可以做到三维设计,使整个工程一目了然,大大优化了项目工程的设计阶段。(三)通信系统。大数据时代下,信息资源的共享与交换是至关重要的。随着现代网络的大面积覆盖,计算机设备可以通过软件技术使用户实现网络通讯。通过无线通讯设备,人们可以做到不同地区,甚至不同国家之间的交流沟通和资源共享,加速全球化的发展。计算机软件技术将给电子商务、移动媒体带来无限的发展前景。(四)移动数据。随着人们对移动通讯需求的更快更好要求,3G通信正在被4G技术逐渐取代。无线通信技术的发展给人们带来了更先进的服务。通信速度的加快带来了移动终端的广阔市场。科技始终会向着更好更快更强的方向发展,相信不久的将来,移动通信技术将继续改革,计算机软件在移动数据中的应用将不断发展。
三、计算机软件技术未来的发展趋势
(一)网络化。。通过计算机技术,按照网络协议把不同地区不同的通信终端连接在一起,形成一体化的全球网络系统,实现真正意义上的资源的全面共享。(二)智能化。现展日新月异,而发展的目的只有一个,就是为了实现人类更便捷的生活发展,人工智能的出现正是基于此目的。在智能化产品不断发展的今天,计算机软件技术也终将实现智能化。随着计算机的发展不断壮大,计算机技术的智能化必将给人类带来翻天覆地的变化。(三)融合化。传统产业的发展决定了产业设备向数字化和现代化方向转变,计算机软件技术的融合化是计算机软件技术的必然发展趋势。在传统产业受到现代科技的不断冲击,为了改变自身,扩大大力推进产业升级,适应现代社会的发展需要。(四)开放化。计算机软件技术的开放化意味着计算机软件的源代码的开放,预示着计算机软件标准化的逐步形成。计算机软件技术的开放化将扩大计算机软件质量的创造机遇,使计算机软件技术不再垄断于计算机产业,促进计算机软件技术的升级与更新。计算机软件技术的开放化必然给我国的软件产业注入全新的活力。
结语:
通过对计算机软件技术的分析探讨,我们可知,计算机软件技术具有巨大的发展前景。虽然我国的计算机软件发展还不成熟,但是只要不断更新软件技术,一定会迈上更高的现代化台阶。信息化时代的来临意味着计算机技术的应用将会越来越广,越来越多。随着人们需求量的增加以及需求多元化,计算机软件技术需要紧跟发展的脚步,不断创新改变,以此满足未来发展的需求。
参考文献:
[关键词]计算机软件工程;维护意义;维护措施;维护方法
[引言]随着这几年我国经济的不断发展计算机对于我们的生活来说不仅仅是一种电子技术,它还是国家现代经济发展迅速的象征。计算机技术的广泛使用给我们的生活带来便利,带来了一系列的积极性影响。但是很多事物都是有双面性的,现在越来越多的群众开始质疑计算机软件的安全性,以及能否保障自身私密信息的安全性。因此国家越来越重视计算机软件的维护。
1重视计算机软件工程维护的意义
1.1保证用户安全的基础
随着我国知识经济的不断发展,计算机技术已经被运用到各个地方,涉及到我们生活的方方面面。各行各业的发展也往更加信息化、科技化的趋势进行,比如自动化生产、机器人代替廉价劳动力、信息储存与运用等方面,这些方面都与计算机技术密切相关。所以,如果计算机的软件出现了一系列的问题,包括计算机软件被人恶意入侵或者系统崩溃等方面都会给人们的日常生活带来许多的麻烦,更严重的是会给群众带来更多的经济损失。因此,我们重视对计算机软件工程的维护,是群众日常生活与沟通的安全的保证[1-3]。
1.2促进计算机软件的开发
国家与群众注重计算机软件维护于检查措施的重要性,会进一步提高科研人员对计算机软件开发的动力。首先,因为大家重视计算机软件的维护与检查,所以在后期我们能在检查与维护的过程中不断地发现计算机软件工程存在的漏洞。这也有助于计算机软件的开发人员不断地改进与弥补计算机软件工程的不足。其次,在不断地发现问题与改进问题的过程中,也可以不断地提高科研人员的技术水平,促进科研人员更好地开发计算机软件。
1.3提高计算机软件的运行能力
通常来说,大家都会认为判断计算机软件的运行能力是以计算机软件能力为主。但实际上,判断计算机软件的运行能力,不仅是体现在计算机软件的能力上,更是体现在计算机软件的维护能力上。在我们不断地检查与维护计算机软件的过程中,我们个人对于计算机的了解也在不断地加深,不停地修补计算机软件的漏洞与不足,也有助于我们进一步提高计算机软件的运行能力[4]。
2计算机软件工程存在的问题
2.1网络犯罪高发率
随着我们生活水平地不断提高,计算机软件被应用在我们生活的个、方方面面,难免有些计算机缺乏定期的检查存在一定地安全隐患。这时候,就有许多的不法分子,利用计算机软件的漏洞进行违法犯罪。他们利用一些软件,将病毒嵌入在计算机软件工程的漏洞中,盗用计算机用户的私有账户,偷窃计算机软件的用户的相关私密信息,并将这些信息转卖给其他人。这种网络犯罪已经严重地威胁与侵占了计算机用户的人身与财产安全[5]。
2.2流氓软件猖獗,软件质量下降
。这些广告通常情况下很难被关闭或者强制运行。流氓软件也可以是指一些无法卸载的软件。这些流氓软件最大的问题就是,它们大多带有病毒,计算机的使用用户稍不注意就会被这些病毒侵入计算机,带来一定的经济损失。或者有些流氓软件会长期地占用计算机的使用内存,这些都会很容易潜移默化地影响计算机的使用寿命,导致计算机会过早地报废等问题[6-7]。
2.3计算机软件维护的次数较少
因为许多的软件公司需要耗费大量的人力、时间与资源去维护计算机软件工程,所以大多数的软件公司会忽视软件维护这个事情,增加了一些潜在的危险隐患。实际上,许多软件公司无法将维护软件与促进软件公司发展的两方面相平衡,所以会导致一系列的问题。因此,大部分的软件公司内部都会有一些大大小小的问题,我们需要引起对这些问题的重视。
2.4非正常状态的系统盘
计算机的运行情况与系统盘的状态是离不开的,c盘的系统盘的内存一般是需要15G左右。。。
3计算机软件工程维护的措施
3.1选择合适的程序语言
在维护计算机软件工程的过程中,选择合适的程序语言也是非常重要的一个方面。通常情况下,我们将计算机语言称作低级语言,计算机语言对于大多数的人来说是很难学习的,所以如何维护计算机语言是非常困难的。。提高高级语言的使用率,更有助于提高计算机的性能、识别能力,同时进一步使得计算机的维护工作变得更加简单、方便。
3.2保证计算机软件工程的质量
科研人员在软件工程的开发阶段时,为了提高软件工程的可控性与操作性,科研人员会注重提高软件的整体质量与降低成本的两方面。同时这也有助于解决软件开发过程中出现的部分问题。举例来说,当软件出现序列错误的问题,因为我们进行软件维护,可以得到及时的解决,进一步促进了工作的轻松、简单。同时在科研人员开发软件的过程中,一些科研人员会使用一些程序设计提高计算机的使用与维护性能,在一定程度上也能减少计算机软件工程在开发时的错误[9]。
3.3做好基础维护的准备
虽然在我们的生活中计算机的使用已经如此常见,但是很多的计算机用户还是缺乏维护计算机软件工程的意识。他们大多数都会认为,计算机只要在日常的使用中没有出现什么太大的问题,没有太卡机之类的,就不需要定时的对计算机进行维护与杀毒。这种想法非常普遍但是往往会引发一些软件的安全问题。计算机维护不仅仅是科研人员与软件公司的事情,也是每个计算机用户的事情。计算机用户需要培养自己对计算机软件维护的意识,定期地对计算机进行杀毒等,以此来促进计算机运行的流畅。
对于计算机的用户来说,可以在计算机中安装防火墙、杀毒软件等。优秀的杀毒软件有助于使用计算机的用户平时对计算机软件进行维护。用户平时也应该不定期地清理计算机的内存来维护计算机的正常运行。因为如果计算机的内存被过多的占用,会影响计算机的运行速度、效率,导致计算机软件工程的运行不畅通。因此,计算机的用户可以使用一些清理的软件,将垃圾数据与不常用的软件进行清理,以此来解决计算机的卡壳的问题。。。
3.4优化计算机系统盘
系统盘在计算机的日常运行中占据非常重要的地位,它会直接性地影响计算机软件的运行质量。因此在我们的日常使用计算机的过程中,不能安装过多的软件,将系统盘、C盘占满,不然会影响到计算机的运行效率。为了保持计算机运行的流畅,我们需要定期地优化计算机的系统盘,清理系统盘里不必要的文件。大多数用户都会使用杀毒软件去清理垃圾,但是杀毒软件的清理是并不彻底的,只能暂时的减少垃圾对于计算机运行速度的影响。因此,最根本的方法是隔一段时间就重新安装系统,最重要的是记得将重要的文件备份以免不必要的麻烦。根据之前的一份调查显示,用户最好将系统盘预留15G左右的内存,会更有利于计算机的运行快捷。
3.5完善病毒防护机制
威胁计算机安全性的最主要的问题就是网络病毒的侵入,因此我们需要重视对计算机的病毒防护。首先,计算机的用户应该安装一些较为可靠、比较大众的杀毒防护软件,比如金山毒霸、360等。这些杀毒软件不仅可以阻止病毒的侵入,还可以进一步检查,提高计算机系统的安全性,保障计算机的正常运行。病毒的入侵很容易就会导致计算机的崩溃与用户的信息泄露,因此用户需认真地看待病毒的危害性。计算机的病毒防护软件,一般情况下,可以识别并拦截出部分病毒、木马,但是也存在着识别不出部分病毒的情况。这时候需要用户使用防火墙的技术,进一步对计算机的信息进行过滤与检查,减少病毒入侵计算机的情况。除此以外,我们还要定期查找软件漏洞,因为病毒攻击的实质是攻击计算机的软件漏洞。用户定期的对软件漏洞进行检测,有助于降低病毒对计算机软件工程的攻击率,进一步减少计算机受到的伤害。
4计算机软件工程的维护方法
4.1预防性与修改性的维护
我们要做好对计算机维护的准备工作,对计算机软件的程序进行设计与编写,以及对即将进行测试的部分进行修改。这有利于计算机软件工程后续维护工作的便利。对计算机的修改性维护是指在计算机的使用过程中,对计算机软件出现的一些错误进行及时的整改,包括设计、逻辑性等方面的问题[11]。
4.2完善性与适应性的维护
完善性的软件维护是指在计算机软件使用一段时间之后,完善计算机软件的功能加强与扩大。适应性的计算机软件工程维护是指在计算机软件运行时,让计算机软件更好地适应外部环境。我们会不断地升级计算机操作系统和更新相关的数据环境。比如微软的系统就会不断进行更新升级,进而弥补不足与提高性能。在不断更新的操作系统中,计算机软件会更加满足用户的使用需求,并随着环境的变化不断地更新,跟上时展的步伐。
5结语
随着我们国家近几年的知识经济不断发展与人民的生活水平不断提高,计算机软件工程在我们生活中占据越来越重要的地位。。并且展望未来,计算机的应用会更加广泛,所以为了让计算机能够更好地为企业、个人、社会服务,我们需要更加重视并积极研究对计算机软件工程的相关维护措施。。
[软件工程硕士论文参考文献]
[1]黄子轩.计算机软件工程的维护措施和方法[J].电子技术与软件工程,2018(24):110.
[2]邵丹.计算机软件工程的维护措施与方法研究[J].电脑迷,2018(11):57.
[3]刘子甲.计算机软件工程的维护措施和方法研究[J].科技风,2018(26):63-.
[4]王硕.计算机软件工程的维护措施和方法[J].电脑迷,2018(08):79.
[5]高铭言.计算机软件工程的维护措施和方法[J].网络安全技术与应用,2018(07):35+66.
[6]周亮.计算机软件工程的维护措施和方法[J].电子技术与软件工程,2018(13):32.
[7]方辉,梁晨,梁振兴.基于互联网下的社区医疗资源整合[J].软件,2018,39(6):174-176
[8]卓广平.下一代互联网动态路由协议机制分析与改进策略[J].软件,2018,39(7):202-207
[9]郭璇,郑菲,赵若晗,等.基于阈值的医学图像分割技术的计算机模拟及应用[J].软件,2018,39(3):12-15
[10]姚建盛,张睿,吴忠军,等.智慧旅游专业中计算机技术课程群的教学改革与实践[J].软件,2018,39(6):61-63
【关键词】计算机软件;安全漏洞;检测技术;应用
1前言
随着科学技术的不断发展,计算机软件发挥着强大的作用,数量越来越多的计算机源代码也使得黑客们更容易侵袭计算机软件系统,出现安全漏洞影响系统的稳定性。如今黑客们入侵系统产生的安全漏洞的形式正趋向多样化,而计算机软件中的安全漏洞检测技术则显得尤为重要。
2计算机软件中存在的漏洞简述
2.1计算机软件中存在的漏洞概述和类型
就计算机软件而言,安全漏洞又称为计算机的脆弱性,是指能够对计算机系统的运行造成安全问题的一些弱点或缺点,也可以说是计算机系统中能够被黑客利用来攻击计算机系统从而影响计算机正常运行的问题。计算机设计人员在研制和开发计算机软件时,如果在操作过程中产生技术失误也可以称之为计算机安全漏洞。很多计算机在安装主体时往往会安装防火墙和反防毒软件等避免计算机安全漏洞造成的损失和危害。一般而言,在良好的运行环境下,通过对防火墙与反防毒软件的应用,可以使安全漏洞得到有效防止。但是在实际生活中,反防毒软件和防火墙并不能完全避免安全漏洞的发生,真正有能力的黑客在入侵计算机系统时会自动进行攻击,这样不仅会损失重要的系统信息,也会对计算机造成损害甚至无法开机。安全漏洞可以根据性质将其分为两类:安全性漏洞和功能性漏洞。安全性漏洞是指一般情况下不会对计算机软件的正常运行造成影响,但是漏洞一旦被黑客利用发起攻击就会造成计算机软件运行发生错误,从而对计算机软件的正常运行造成严重的影响。功能性漏洞是指会对计算机的正常运行造成影响的计算机软件的漏洞,例如运行流程发生错误,运行结果发生错误。
2.2计算机软件中存在的漏洞的主要特点
2.2.1由人为素质造成计算机软件的安全漏洞很多都是在研制和开发过程中因为设计人员的疏忽大意造成的。比如常见的编程的逻辑错误,计算机软件在编程过程中,逻辑错误是一个比较普遍的问题,开发人员的一个小失误很可能就会造成安全漏洞。2.2.2比数值计算逻辑错误在处理计算机软件数据时,最常发生的就是比数值计算的逻辑错误,一般会发生在过小或者过大等不合理的模块,中等程度的模块会发生错误的概率是比较小的。2.2.3长时间存在的安全漏洞计算机软件一旦出现安全漏洞,就会使得病毒和黑客侵入计算机系统,严重影响计算机的安全,而在计算机软件系统当中,一个旧的安全漏洞被修复的同时,可能还会产生新的安全漏洞,总而言之,安全漏洞是长时间存在于计算机软件系统当中的。因此,对安全漏洞进行有效地监测和预防,及时对安全漏洞进行修复,能够有效地保证计算机信息系统的安全性和稳定性。2.2.4与系统环境密切相关在计算机软件当中,安全漏洞的发生与系统环境密切相关,运行系统的不同也会对安全漏洞产生影响,此外软件设备和版本的差别也会使得出现的安全漏洞的类型有所区别。
3常用的安全漏洞检测技术
3.1静态检测技术
静态分析检测技术是最初的计算机软件安全漏洞静态监测技术,这种检测方法偏向于表面,近年来,随着计算机技术的创新与发展,静态监测逐渐演变为两种检测方法:即静态分析和程序检验。静态监测指的是在检测计算机软件系统程序过程中进行源代码的扫描,先直接分析被检测的计算机软件系统的程序本身的特点,再全面分析源代码的语法和语义,这样就可以检测出计算机存在的安全漏洞。程序监测是指计算机软件系统内抽象化的程序源代码,检测其是否符合计算机所需要完成的工作要求,尤其是安全要求,然后判断并检验计算机软件系统是否存在安全漏洞。。我们可以根据不同的方法划分漏洞的种类,根据最常用的方法,可以将漏洞划分为很多小的部分,而一般的检测方法也只能处理比较分散的漏洞。因此,从漏洞的种类下手寻找共同点是比较困难的。所以,在进行检测时,可以对比性地将漏洞分为内存性的漏洞和安全性的漏洞。。因此,对于这种漏洞而言,在进行静态检测时,最有效的方法就是将模型建立在漏洞的储存空间内。此外,在解读和处理漏洞时也要根据静态检测技术的不同特点对其进行区分,因此,个别技术只能检测特定的漏洞,而要处理两方面的漏洞还要借助其他的方法。3.1.1静态分析静态分析主要是直接、全面地计算机软件系统中的程序的源代码进行扫描,对程序代码中的语法和关键词、句进行提炼,根据解读的具体含义对程序的行为进行分析,之后再根据事先设置的漏洞的特点结合计算机软件系统自身的安全标准进行检测,对系统整体进行判断和处理。。但是,仅仅对语法和词句进行分析是通过检查语法和计算机软件系统中的程序分为语句片段来实现的,之后再将一个个语句片段比标准的“疑问数据库”,自动对存在的漏洞和问题进行判定和评估。这样的情况下检测出的有效漏洞的数量十分有限,而且只能检测出“疑问数据库”中已知的漏洞,而不能检测出未知的漏洞。第二,在进行检测时要严格遵循相关的标准条件。一般而言,安全标准是用来描述计算机软件系统中的程序运行的基本情况的,然而,程序本身也是一种标准化的编程,即我们研究的漏洞模式也是一般的安全标准。在进行检测时,要严格依照程序应用的规则进行,结合相应的语法模式描述这些所谓的标准,再利用规则处理器接收这些标准化的语法,处理器在进行转变后会自动接收到内部表述的程序,最后在系统运行的过程中进行最终的整体检测。相较于动态分析检测技术而言,静态分析检测技术在进行检测时,计算机处于停止运行的状态,操作更加方便和快捷,虽然能够对计算机软件系统的相关程序的状况最初最真实的反馈,但是不能确定这些程序本身以及运行过程中的重要属性。。词法检测在执行时要先分析和识别计算机软件接口的预言,定义相应的语法,再生成并检测形成的语法例子,这个过程主要的工作是分析C语言函数和程序中的源代码是否有危险性,也是我们所说的最基本也最原始的静态分析检测技术。推断检测是指自动对程序中存在的函数、变量等进行分析,再结合他们规范化的类型和方式进行分析来判断是否存在安全漏洞的方法。评注计算机软件程序是指利用“tainted”标记计算机软件的外部数据,技术人员再根据排查和分析的结果进行评注。3.1.2程序检验程序检测是根据抽象化的计算机软件系统来建立一个具体形式的程序或者模型,再结合形式化和正确性的检验方式来检测计算机软件的安全漏洞问题。在进行程序检验时,主要是通过建立模型来进行检测,具体是指计算机软件程序在有限状态下建立一个合适的模型,建立的模型往往是抽象化的片段或者执行点,再和计算机软件本身的特点进行对比和验证。在检测时建立合适的模型也会起到检测的作用,建立的模型也会和软件的用途相关,因此,一个模型也可以运用到许多相似的软件当中来检测安全漏洞。一般而言,模型检验有两种检验方式,分别是模型自动转化法和符号化检验法。模型自动转化法是指将检测软件程序进一步转化成等价的自动检测机,两个自动机相互结合可以实现替换和补充的作用,从而达到新的自动机的效果,同时通过软件系统转变成能够识别的语言模式。符号化检验是指通过公式描述的形式将抽象化模型以语法树的形式表达出来,根据公式来判断是否符合检验的要求。模型检验应该先列举出可能会发生的各种状况,结合软件系统本身的复杂性对所有的程序都创建不同形式的模型,这也是一项规模庞大的任务。因此,在实际操作中,可能会选择一部分程序和相关属性来建立抽象的模型。但是,近年来,随着模型检测技术的改革和创新,现在主要是运用内存来建立模型的方式检验往常的时序漏洞,在结合定理和证明的形式来检测安全漏洞。与模型检验相比,这种方式更加严密,具体的检验过程是对程序进行多重判定,尤其是判定抽象化的公式的真假性,当然,公式本身的形式也会决定判断的方式。例如,不等式的合取作为一个关键因素就是一个典型的例子,先根据合取式制作图表,在图中要真实地反映每个提到的条件,再利用公式合并各个条件。同时,对其中的不等式进行检测,等式如果不成立的话,也就无法满足合取式。在程序检验过程中,可以通过实践来证明模式检验是否可靠以及是否具有实用性。软件系统的种类业余时序性密切相关,证明定理也是一项比较复杂的任务,因此,这种方法并没有广泛地应用于实际操作当中。[1]对于计算机软件而言,静态检测技术只能检测出当前存在的安全漏洞的种类,而无法判断那些未知的漏洞。由于静态检测空间、精确度和时间等因素了其性能的改进,在一定程度上降低了静态检测的质量,因此,必须在后期加大资金投入。
3.2动态分析检测技术
3.2.1非执行栈近几年来,计算机软件系统常常会发生被栈攻击的事件,主要是因为软件操作系统中的栈本身的读写能力不足、执行力不够的问题。栈之中包含了数组变量等内部变量,因此,个别不怀好意的人员能够在栈中随意篡改一些重要的代码,再利用特殊的方式执行代码。而只有将栈转变为不能够随意进行代码执行的模式才能有效地防止栈被攻击和侵略。这样,软件系统无法执行攻击软件的人员随意篡改写在栈上的代码,从而降低了计算机软件被侵入的机率,减少了安全漏洞的发生率。实现非执行栈的具体过程是通过修改计算机操作系统的内核,将栈的页标标记为不可执行,借助栈溢出将程序跳转想攻击的代码,因为执行代码是位于堆生而非正在执行的栈上,因此非执行栈并不具有完整性,存在一定的局限性,当栈中出现攻击代码时检测就无法发挥效用。3.2.2安全性的共享库很多计算机软件会在无意中是用来一些不安全的共享库从而导致了安全漏洞,在一定程度上,安全的共享库可以避免攻击人员的侵入行为。。与此同时,安全共享库也会评估内存的上限来防止内存中出现恶意破坏的数据,保证计算机软件系统的安全性,windows的操作系统一般会运用这种方式。虽然安全共享库不会修改计算机的内核,兼容性较好,但是其局限性也是十分明显的,即安全共享库检测不到本地变量是否存在安全漏洞,当代码数据溢出受到攻击时也无法起到很好的防护作用,也无法保护标准化的函数库。[2]3.2.3沙箱沙箱是指限定一个程序的访问量来防止恶意的入侵。例如,对于计算机软件而言,如果C语言中含有一类调动函数,但是软件在运行过程中又出现了相似但不同的调动函数,就说明有漏洞在攻击计算机软件。而使用沙箱就会限定被攻击前的软件,保证其不会受到恶意软件的影响。3.2.4映射内存个别恶意攻击的人员可能常常利用以“NULL”结尾的字符串来覆盖内存,利用内存映射技术可以使得攻击人员难以实现把复杂的内存覆盖字符串转变为简单的内存操作。就这个角度而言,随机地将代码页映射到各类内存地址上也可以在一定程度上降低随意篡改页面的可能性。3.2.5非执行堆和数据在检测非执行堆和数据时,需要大量修改计算机内核的数据,同时将数据段的代码和堆的动态声场全部进行修改才可以实现,在此过程中可能会出现不兼容的情况发生。一般而言,在进行非执行堆检测时往往需要借助非执行栈的配合使用。
4计算机软件中安全漏洞检测技术的具体应用
4.1检测并避免出现竞争性的安全漏洞
很多安全漏洞往往是因为竞争条件的存在而产生的,解决的办法就是将竞争性的编码进行原子化实现操作。编码作为最小的执行单位不会受到正在运行的软件程序的恶意干扰,将编码进行原子化就是通过锁定编码的方式再改变特定状态下的程序间接性地调动各个软件系统,最后描述运行的文件或者句柄来检测TOCTOU等问题来预防安全漏洞的发生。[3]
4.2检测并避免缓冲区出现安全漏洞
检测并避免缓冲区出现安全漏洞就是通过判断和分析计算机软件程序中不安全的函数来避免缓冲区出现安全漏洞,例如不安全的strcat版本可以全部替换为安全的strncat版本。
4.3检测并避免格式化字符串的安全漏洞出现
格式化字符串的出现很容易造成安全漏洞的发生,唯一的解决措施就是从根本上进行预防,在数据代码中直接使用格式化的常量,防止恶意攻击人员可能会创建格式化字符串的机会。一般而言,格式化字符串往往会出现在参数不确定的个数函数当中。因此,在运用这种函数时,应该控制每个参数的个数、平衡参数的性能。此外,在进行输出数据时,运用Windows操作系统下的窗口或者运用串口输入系统数据可以预防格式化的安全漏洞的危害。
4.4检测并避免出现的随机安全漏洞
在检查和预防随机出现的安全漏洞时,使用的随机发生设备一定要保证良好的性能,因此在选择随机发生设备时一定要慎重考虑。为了确保随机数流的安全性,随机发生设备需要自身设置密码算法,这样在软件遭到攻击时,就可以根据掌握的算法的整体细节来获得完整的数据流,提高随机数据在遭遇入侵时运行的稳定性和安全性。
5结语
随着社会的进步和科学技术的发展,计算机软件在设计和开发时也无法避免地会出现安全漏洞的问题,因此,为了保证计算机软件的安全运行,安全漏洞检测技术是十分重要的。在不断的发展和创新中,计算机软件安全漏洞检测技术也需要与时俱进,通过改善静态检测和动态检测技术来预防安全漏洞的发生。
参考文献:
[1]罗宏伟.计算机软件中安全漏洞检测技术及其应用[J].硅谷,2012(20):15,41.
[2]郑思丽.计算机软件中安全漏洞检测技术及其应用[J].计算机光盘软件与应用,2014(16):170,172.
关键词:计算机软件;软件测试;软件开发;应用软件
中图分类号:TP311 文献标识码:A 文章编号:1007-9599 (2012) 20-0000-02
1 软件测试概述
1.1 软件测试的目的。G.J.Myers在1979年发表的《软件测试之艺术》中对软件测试进行了定义,这也是后来人们所认同并遵守的一个理念:程序测试是为了发现错误而执行程序的过程,换句话说软件测试的主要作用在于发现出存在于程序之中的错误,而不是对软件无错误进行证明。因此,发现至今没有被发现的错误将是软件测试成功的最重要标准之一。但是bug是随着时间和条件的不同而出现的,这就使得在真正意义上我们是无法证明程序绝对正确的。
1.2 软件测试用例。在对软件进行测试的过程中,软件测试用例是核心,也是我们软件测试成功的基础,因此,对于测试用例的设计属于整个测试工作中最有挑战性的工作之一。一般来说,它包含了测试输入数据、对步骤进行执行以及与之对应的预期输出这三部分。在软件测试中,软件测试用例的作用主要体现在:对测试的实施进行指导;对测试数据的规划进行准备;帮助完成测试脚本/设计规格说明书的编写;对测试结果度量基准进行评估;分析缺陷的标准。
1.3 软件测试的方法。软件测试中,我们使用的方法有很多种,而通过不同的较多对这些方法进行划分也将得到不同的结果,比如;动态测试和静态测试、人工测试及自动化测试、白盒测试及黑盒测试等。限于篇幅,我们仅以白盒测试及黑盒测试为例进行分析。
(1)黑盒测试。黑盒测试也被我们称之为功能测试,其主要是利用测试来对每一功能是否能够被正常使用进行检测。在测试的过程中,我们将测试当做一个不可以打开的黑盒,完全不考虑其内部的特性及内部结构,只是在程序的接口测试。
黑盒测试方法是根据用户角度,从输入和输出的关系来进行测试的,因此,如果外部特性本身就存在问题或者规格说明书的规定存在着不足,使用黑盒测试方法是不能够发现这些问题的。具体来说,黑盒测试法主要测试的错误有:功能遗漏或者不正确;界面存在的错误;性能存在的错误;数据库访问出错;初始化及终止错误等。
此外黑盒测试中只有利用穷举法把所有有可能的输入都当做测试情况才可能将程序中所有的错误查出。因此,我们不仅仅要对合法的输入进行测试,还要对不合法的输入进行测试,基于此,所谓的完全测试是不可能实现的,实际的工作中我们多使用针对性测试,这主要是通过测试案例的制订来指导测试的实施,进而确保有组织、按步骤、有计划的进行软件测试。
在黑盒测试中,我们要做到能够加以量化,只有这样才能对软件质量进行保障,上文中提到的测试用例就是软件测试行为量化的一个方法。一般在黑盒测试中,测试用例设计的方法主要有:边界值分析法、等价类划分法、因果图法、错误推测法、正交试验设计法、判定表驱动法、功能图法等。
(2)白盒测试。白盒测试也被称之为逻辑驱动测试或者结构测试,相对于黑盒测试,它属于根据程序内部结构对程序进行测试,经过白盒测试,我们一般检测的内容是程序内部的动作是否符合设计规格说明书的规定,也就是检测程序每一条通路工作的过程中是否按照预期的方式进行。这种方式是把被测的程序当作被打开的盒子,而我们则是依据其内部结构进行测试用例的选择,然后测试程序全部的逻辑路径,并通过不同的点对程序状态进行检查,判断其是否和预期状态一致。
2 计算机软件深度开发应用
在上个世纪50年代到60年代,我们主要是通过手工方式进行大型系统软件的开发,这种方式不仅容易出错,而且生产效率也比较低,很难满足我们的需求,导致了“软件危机”。针对这一情况,北大西洋公约组织于1968年提出了软件工程的概念。
软件工程大体上经历了程序设计、软件、软件工程这三个时代,其中软件工程学的主要作用在于通过当代的科学理论及技术对软件开进行指导,进而实现以较少投资实现较高软件质量的目的。它既属于边缘学科,又属于综合性学科,在软件工程学中包含了计算机科学、人体工程学、管理学、系统工程学、经济学以及心理学等。
2.1 软件开发中的三个阶段。通过软件工程这种方式对软件进行生产,其过程和建筑工程以及机械工程有很大的相似性,好比一个建筑工程自开始到最后往往会经历设计、施工以及验收这三个阶段,而软件产品的生产中也存在着三个阶段:定义、开发以及维护。
当然,在建筑工程及软件的开发阶段也存在着一些不同,比如,建筑工程的设计蓝图一旦形成之后,在其后续的流程中将不会有回溯问题,而在软件开发工程中,每一个步骤都有可能经历一次或多次的修改及适应回溯问题。再如,在软件的交付以后,依然面临着运行维护的问题,这一点和建筑工程也有所不同。
2.2 应用软件开发方法。针对一些较大的应用软件,比如大型仿真训练软件、计算机辅助设计软件等,是很难一人完成的,需要多人的共同配合。因此,为了确保应用软件的质量,我们应依据软件工程的原则及思路,采用合理的方法和依据,组织软件人员一致的、协调的完成这一工作。当前的软件开发方法主要可以分为:生命周期法、原型化法以及自动形式的系统开发法。
(1)生命周期法。软件生命周期法主要是从时间的角度对软件定义、开发以及维护过程中的问题进行分解,使其成为几个小的阶段,在每个阶段开始及结束的时候都有非常严格的标准,这些标准是指在阶段结束的时候要交出质量比较高的文档。
在软件定义过程中,我们主要是确定软件开发总目标、工程可行性以及开发过程中应使用的策略及必须实现功能等。软件的定义又可以分为稳定定义、可行性研究以及需求的分析。
软件开发则是由总体设计、详细设计、编码以及测试这几个部分。其中前二者所欲系统设计阶段,后两个阶段则属于系统实现阶段。
至于系统的维护,则主要是保证软件能够长久的满足用户需求。
(2)原型化方法。但在实际的工作中,用户所提出的软件目标往往是概括性的,无法对输入、处理以及输出需求进行详细的描述,而我们工作人员也往往在这个阶段都还没有确定系统适用性、处理算法效果等,这种情况下,我们只有一边干一边对其进行认识,而原型化方法正是由这一思路提出的方法。
原型有三种形态:纸上原型、工作原型以及现有原型。其中纸上原型主要是利用纸张及墨水的模型对软件一些特征进行解释;至于工作原型则是在计算机上执行软件的一部分功能,帮助开发中及用户理解即将被开发的程序;而现有模型则是通过现成的,可运行的程序完成所需的功能,不过其中一部分是在新开发的基础上进行改善。
在利用原型法进行开发的过程中,主要可以分为可行性研究阶段、对系统基本要求进行确定的阶段、建造原始系统的阶段、开发人员及用户的评审阶段、开发人员的修改阶段。
(3)自动形式的系统开发方法。这种方法具有一个很明显的特点就是使用了4GT,即技术,包含的比较多的软件开发工具,使用这种方法时,软件的开发者进需要对所要实现的内容进行详细说明即可,而不需要探索如何去实现,4GT软件工具将会依据系统的要求对规范进行确定,进而进行分析、自动设计及自动编码。限于篇幅这里不再对其详细分析。
3 结语
软件测试及软件开发是非常复杂的工作,涉及的内容和环节比较多,本文限于篇幅,仅对最重要的一些问题进行较为表面的探讨。因此,我们要想真正的做好这一工作,还需要加强自身的学习和探索。
参考文献
软件测试过程中,为了满足实际工作的需要,展开相关测试模式的协调是非常重要的,比如自动化测试模式、人工测试模式及其静态测试模式等,通过对上述几种模式的应用,确保计算机软件测试体系的健全,实现其内部各个应用环节的协调。该文就白盒测试及其黑盒测试的相关环节展开分析,以满足当下工作的需要。黑盒测试。黑盒测试也被我们称之为功能测试,其主要是利用测试来对每一功能是否能够被正常使用进行检测。在测试的过程中,我们将测试当做一个不可以打开的黑盒,完全不考虑其内部的特性及内部结构,只是在程序的接口测试。
在日常黑盒测试模式中,我们要根据用户需要,展开相关环节测试,确保其输入关系、输出关系、用户需求等满足,确保其整体测试体系健全。但是在现实生活中,受到其外部特性的影响,在黑盒测试模式中,其普遍存在一些漏洞,较常见的黑盒测试问题主要有界面错误、功能的遗漏及其数据库出错问题等,更容易出现黑盒测试过程中的性能错误、初始化错误等。在黑盒测试模式中,我们需要进行穷举法的利用,实现对各个输入法的有效测试,实现其程序测试过程中的各个错误问题的避免。因此,我们不仅要对合法输入进行测试,还要对不合法输入进行测试。完全测试是不可能实现的,实际的工作中我们多使用针对性测试,这主要是通过测试案例的制订来指导测试的实施,进而确保有组织、按步骤、有计划的进行软件测试。在黑盒测试中,我们要做到能够加以量化,只有这样才能对软件质量进行保障,上文中提到的测试用例就是软件测试行为量化的一个方法。
在白盒测试模式中,我们需要明确好其结构测试问题及其逻辑驱动测试问题,这是非常重要的一个应用问题。通过对程序内部结构的测试模式的应用,可以满足当下的程序检测的需要,实现其综合应用效益的提升。在程序检测过程中,通过对每一个通路工作细节的剖析,以满足当下的通路工作的需要。该模式需要进行被测程序的应用,利用其内部结构做好相关环节的准备工作。进行其整体逻辑路径的测试,针对其不同的点对其程序状态展开检查,进行预期效果的判定。
二、计算机软件的深入应用
1 在计算机软件工程应用过程中,其需具备几个应用阶段,分别是程序设计环节、软件应用环节及其软件应用环节,通过对上述几个应用环节的剖析,进行当下的计算机科学技术理论的深入剖析、引导,从而确保其整体成本的控制,实现软件整体质量的优化,这是一个比较复杂的过程,需要引起我们的重视,实现该学科的综合性的应用。在软件工程应用过程中,其涉及的范围是比较广泛的,比如管理学、系统应用工程学、经济学等。受外部影响条件,软件开发需要经过几个应用阶段。软件开发中的三个阶段。通过软件工程这种方式,对软件进行生产,其过程和建筑工程以及机械工程有很大的相似性,好比一个建筑工程自开始到最后往往会经历设计、施工以及验收这三个阶段,而软件产品的生产中也存在着三个阶段:定义、开发以及维护。当然,在建筑工程及软件的开发阶段也存在着一些不同,比如,建筑工程的设计蓝图一旦形成之后,在其后续的流程中将不会有回溯问题,而在软件开发工程中,每一个步骤都有可能经历一次或多次的修改及适应回溯问题。
通过对应用软件开发模式的应用,可以满足当下的计算机开发的需要,比如对大型仿真训练软件的应用,对计算机辅助设计软件的应用,这需要实现相关人员的积极配合,进行应用软件的整体质量的优化,根据软件工作的相关原则及其设计思路,实现该工作环节的协调,实现其综合运作效益的提升。在该种软件开发模式中,我们要进行几个系统研究方法的应用,比如生命周期法、自动形式的系统开发法等。在生命周期法的应用过程中,需要明确下列几个问题,从时间的角度对软件定义、开发以及维护过程中的问题进行分解,使其成为几个小的阶段,在每个阶段开始及结束的时候都有非常严格的标准,这些标准是指在阶段结束的时候要交出质量比较高的文档。在软件定义过程中,我们主要是确定软件开发总目标、工程可行性以及开发过程中应使用的策略及必须实现功能等。软件的定义又可以分为稳定定义、可行性研究以及需求的分析。软件开发则是由总体设计、详细设计、编码以及测试这几个部分。
2 通过对原型法的应用,来满足当下工作需要,软件目标的优化需要做好相关环节的工作,实现其处理环节、输出环节及其输入环节的协调。在此应用模块中,要按照相关方法进行系统适用性、处理算法效果的提升,实现对上述应用模式的深入认识。这需要研究原型的具体模式,工作原型、纸上原型等,利用这些模型可以就软件的一些问题展开解决。至于工作原型则是在计算机上执行软件的一部分功能,帮助开发中及用户理解即将被开发的程序;而现有模型则是通过现成的,可运行的程序完成所需的功能,不过其中一部分是在新开发基础上改善。在利用原型法进行开发的过程中,主要可以分为可行性研究阶段、对系统基本要求进行确定阶段、建造原始系统阶段等。
3 自动形式的系统开发应用中,通过对4GT的应用,实现其软件开发模式的正常运行,该模式实现了对所需内容的深入开发,利用该种模式,可以有目的性的进行剖析,从而满足当下工作的需要。4GT 软件工具将会依据系统的要求对规范进行确定,进而进行分析、自动设计及自动编码。限于篇幅这里不再对其详细分析。软件测试及软件开发是非常复杂的工作,涉及的内容和环节比较多。
1我国基础教育中计算机软件技术的运用现状
在我国科技技术的支持下,计算机技术实现了高速发展,在现代人们的生活、学习、工作等多个领域中都有着十分广泛的应用,这使得我国计算机软件技术的基础教育需面临更高的要求。在计算机领域的市场当中,市场竞争十分激烈,对计算机技术人才的需求量也在随之增大,这也表示着计算机软件技术的培养需从学生抓起,从学生阶段打下扎实的技术基础,提高学生未来在就业道路中的竞争力,由此可看出,计算机软件技术的基础教育已成为我国社会发展的必然教育[1]。目前,我国的计算机软件技术主要分为两大类,一是办公软件技术区,二是课程软甲技术区,这两大区域是计算机软件技术基础教育当中的重点教育区,也是计算机软件技术当中的必学区域。在两大区域的基础教学上,由于计算机技术学科的不同,计算机技术学科需学生主动参与至操作过程当中,通过实际操作锻炼学生的技术操作水平,使学生能够做到掌握和熟练的操作各项计算机软件技术,巩固学生的基础技术能力。
在计算机软件技术基础教育的相继开展,我国的计算机软件技术教育已取得了十分可观的成绩,学生在学习过程中能够做到熟练操作各项软件的基础,但是,学生在对计算机技术中的各项软件认知上,还缺乏明确的认识,并且对计算机软件技术学习的重要性没有做到相应的重视,认为该技术教学只是简单的让他们学会操作,因此在学习计算机软件技术上,学生常常缺乏主动性,学习过程较为被动[2]。学生在学习计算机软件技术的过程中,教师面对多种类型的技术软件时,往往无法明确如何提高学生的专业能力,因此在教学时所采用的教学方式只会让学生针对某个软件进行反复操作,直到学生熟练掌握这门软件为止,这样的教学方式不仅显得计算机的教学课程十分枯燥和单一,也会让学生产生厌烦情绪,从而降低了计算机软件技术基础教育的教学效率。学生在学习计算机软件技术的过程中,对学习目的没有明确的认识,对自身能力的提高也缺乏重视,从而导致计算机软件技术的基础教学成为了机械性教学,缺乏合理的教学方式,也没有明确的学习目标,这不仅违背了基础教育的实施目的,也违背了计算机软件技术的教学初衷[3]。
2基础教育中计算机软件技术的运用策略分析
2.1合理安排基础教育中计算机软件技术的运用课程
目前,我国在计算机软件技术学科的基础教育上还未有一套专业的系统式教学,只是将计算机软件技术学科作为一般学科实施教学,将其归为专业课程之一,因此并没有特例划分为其设计完整的基础教学内容。计算机软件技术作为一门应用型课程,其与普通学科具有较大差异,普通学科的基础教育是以理论知识为主要教学内容,整体教学结构也只存在课堂教学,而计算机软件技术教学则属于专业性教学,不仅需要具备一定的理论基础,还需要具备较强的实践操作,因此,在计算机软件技术的基础教育上,需合理安排计算机软件技术课程,明确该专业课程与其他课程的不同之处,设置相应的理论课程与实践课程,以理论与实践相结合的形式来开展教学,丰富计算机软件技术教学内容,从基础教育开始着重提高学生的专业操作水平,通过合理的课程安排,为学生提供锻炼平台,以提高学生实践能力为教学目的,使其符合我国社会对计算机软件技术的教学改革要求。
2.2扩大计算机软件技术运用的教学领域
计算机技术在经过多年的发展后,其技术发展至今已十分成熟,并且在我国的多个领域都得到了广泛的应用,是我国现代企业、人们生活、学习等不可或缺的技术,这也表明计算机软件技术的使用方向有着多重渠道,因此,基于计算机软件技术的多元化使用渠道,在计算机软件的基础教育上,可改变传统单一的教育模式,突破传统框架,改变传统教学理念,结合计算机软件技术的教育基础内容将其与其他学科教学进行有效融合,使计算机软件技术不再受教材课程的,开发新型教学模式,让学生接触到更广的计算机软件技术操作领域,以此实现学生综合方向发展。。通过将其他领域的学科知识与计算机软件技术相结合的教学模式,能够让学生认识到计算机软件技术的实用性,也能让学生接触到计算机软件技术的不同使用领域,认识到计算机软件技术并不仅仅只能够应用于课程教材当中的知识,能够在生活以及未来工作中有多个应用用途,从而提高学生对计算机软件技术这门课程的重视程度。另外,当教师在开展计算机软件技术的基础教育时,教师可在课前根据学生学习能力搜集更多的课外资料,将其作为计算机软件技术学习辅助工具,以资料作为课题主体,让学生应用软件技术来完成主题作品,结合教学内容以及学生专业水平合理设计教学活动,以不同的教学主题创新教学方式,并通过不同主体的实践锻炼,提高学生计算机软件技术的创新能力与应用能力,使学生在未来社会中成为综合型应用人才。
2.3根据学生实力规划计算机软件技术操作的教学方式
在基础教育中,计算机软件技术是一门应用型非常强的学科,并且在学生学习基础阶段时,学生会遇到各式各样的操作问题,这些问题不仅仅是因为学生对软件技术操作不熟所导致的,与教师的技术操作教学也有着直接的关联。当教师在开展计算机软件技术的基础教学时,需根据学生实力来采用合适的教学方式。例如,教师在教学计算机办公软件基础操作教学时,教师可将Excel表格这类操作较为简单的软件作为初级教学,并将该软件的教学内容分为多个步骤,由简单到复杂的程序依次实施操作教学,让学生在学习过程中能够有效消化不同阶段的教学内容,从而提高学生的学习能力。通过这样的教学方式能够有效避免学生在学习新软件的初期出现因教学难度过大而产生消极情绪的现象,循环渐进的难度教学能够提高计算机软件技术基础教育的有效性,同时也让学生能够快速掌握学习技巧,不断提高自身的计算机软件操作水平。另外,计算机软件技术作为现代社会发展的必备技术,在实施教学时教师可适当将计算机与社会实践结合教学,让学生能够尽早适应和掌握未来职场计算机的应用方式。
3结束语
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务