您的位置: turnitin查重官网> 计算机 >> 计算机管理 >计算机软件维护网

计算机软件维护网

收藏本文 2024-02-01 点赞:2602 浏览:7558 作者:网友投稿原创标记本站原创

摘要:随着社会的发展,计算机在各行各业都取得了巨大的应用,同时,计算机

源于:大学生论文网www.udooo.com

软件的维护也成了软件发展的一大问题,由于软件维护涉及的问题较多,所以在维护的过程中有较多需要我们注意的地方。而对于计算机软件的维护不仅关乎用户的使用,更与软件公司的开发成本息息相关,因此对于计算机软件维护的研究具有重要的意义。笔者从事计算机软件工作,对于其维护有着一定的经验及感触,本文结合笔者自身经验,对于计算机软件维护概念、它有怎样的特点、我们在维护过程中需要注意哪些问题等等进行了分析与探讨,旨在对于计算机软件的维护起到一定的指导作用。
关键词:计算机软件;维护
1007-9599 (2012) 11-0000-02
一、引言
计算机软件的应用已经融入到我们工作、生活的方方面面。在软件取得巨大成功的同时,我们的软件开发公司也受到了软件维护的困扰,如何做好软件的维护,提高自身竞争力关系重大。

二、软件维护的定义及类型

(1)计算机软件维护的定义是指在软件运行的时候或者维护阶段针对软件做出的修改,最终提升用户使用体验的工作。
(2)普遍来说,计算机软件维护的类型可分为:改正性维护、适应性维护、完善性维护以及预防性维护这四种。
其中,改正性维护是以对开发周期中没有能发现的或者遗留错误进行改正为目的,这种维护在总维护中占到大概20%。
适应性维护是指针对软件的运行环境的对软件进行改变的维护;适应性维护可以适应于由于硬件或者支持软件改变进而带来的变化、把软件移植到新机器上等。
完善性维护是以提高软件的性能及软件的可维护性为目的对进行的软件修改过程,这种维护在总维护中占主体地位,大概占到了50%。
预防性维护是指以提高软件的可维护性以及可靠性而对软件而进行的修改。这种维护较少,大概只占到4%左右。

三、软件维护的特点

(一)结构化维护与非结构化维护差别巨大

1.非结构化维护。

如果软件配置的惟一成分是程序代码,那么维护活动从艰苦地评价程序代码开始,而且常常由于程序内部文档不足而使评价更困难,这就导致了容易对软件的结构、系统的结构以及性能涉及约束等产生一定的误解。
此外,对程序代码所做的改动的后果也是难于估量的:由于测试方面文档的缺失,因而我们就不能够进行回归测试,即为了保证所做的修改没有在以前可以正常使用的软件功能中引入错误而重复过去做过的测试。非结构化维护需要付出很大代价(浪费精力并且遭受挫折的打击),这种维护方式是没有使用良好定义的方法开发出来的软件的必然结果。

2.结构化维护。

相对于非结构化维护,结构化维护是指使用软件工程思想指导软件每一个阶段文档的开发。这种维护使得理解和掌握软件的功能、系统的结构以及系统接等更加容易。能够帮助减少维护过程的精力、降低花销、提升维护效率。

(二)维护的代价

从已经过去的时间上来看,花费在软件维护上的经费在逐渐增加。花费在维护已有软件上的费用在1970年用只占到软件的总预算35%到40%,到1980年的时候就已经上升到了40%到60%,而到1990年的时候更加明显的上升到了70%至90%。
维护费用只不过是软件维护的最明显的代价,在未来,人们会更加关心那些其他的、显现不明显的一些代价。由于可用的资源必须供维护任务使用的特点,这就容易带来耽误、严重时丧失开发良机的问题,这种代价就是一种是软件维护的无形代价。
此外,还有其他无形的代价还有:对于看来合理的有关改错以及修改要求未能够及时完成时会导致用户满意度下降;因为维护时进行的改动而导致的在软件中出现潜伏错误,进而影响了软件质量;在需要将软件工程师调去进行维护工作的时候,这会导致在开发的过程中出现一定的混乱。
软件维护的最后一个代价是生产率的大幅度下降,这种情况在维护旧程序时常常遇到。例如,Gausler在1976年的时候曾报道,美国空军的飞行控制软件的每条指令的开发成本只有75美元,相对而言,而每条指令的维护成本甚至达到了4000多美元,这也就是说软件维护使得在生产效率中出现50倍的下降。
在维护工作中,劳动可以分为生产性活动和非生产性活动两个方面。
生产性劳动包括:对于软件的分析评价;软件修改的设计以及编写软件的程序代码等。
非生产型劳动包括:对于程序代码功能的理解、对于数据结构的解释、接口特点和性能限度等
以下这一模型对于我们理解维护的工作量有一定的帮助:M=P+Kexp(c—d),可以在一定程度上指导我们的工作。M是指总的工作量,p是维护时生产性的工作量,k定义为经验指数,c是指工作复杂的程度,d是指工作者对软件熟悉的程度。

四、影响维护工作量的因素

在软件的维护过程中,影响维护工作量的因素可以分为以下几个方面:
(1)首先软件维护的过程这就带来了理解别人写的程序时会出现很多困难,这种困难随着软件配置成分的减少会出现较大的增幅。
(2)维护,这就说明了软件往往会出现文档不全的现象,这也会增加维护难度。
(3)在软件开发设计的时候对于维护工作没有进行过多的考虑。
(4)软件公司的人员流动性非常强,很容易开发人员在出现开发完就不见人的情况。
(5)很难对软件的建立过程进行追踪。

五、软件维护的副作用

修改软件是危险的。在复杂的逻辑过程中,每一次修改都可能使潜在的错误增加。设计文档和细心的回归测试有助于消除错误,但仍然不可避免地出现维护的副作用。这种副作用主要体现在以下几个方面:
修改代码的副作用:代码不能随意的修改,最为简单的修改都有可能导致非常严重的后果。虽然不是所有的副作用都有严重的后果,但修改容易招致错误,而错误经常造成各种问题。在这里我们需要再一次强调Murphy的法则:如果一个源语句进行一个修改,它将可能导致新的错误。在软件的开发中,数据结构具有非常重要的作用。在我们进行维护工作的时候,有些时候要对数据结构的个别元素进行修改,在这些修改以后,原有的软件设计极有可能会对这些数据不再适用进而带来了错误。
修改数据的副作用经常发生在下述的一些数据修改中:完善的设计文档可以限制数据的副作用。这种文档描述了数据结构,并提供了一种将数据结构、记录、文件和其他结构与软件模块联系起来的交叉对照表。
 

源于:论文如何写www.udooo.com

 维护工作应该基于整体软件配置的总体考虑,而不是只针对源代码进行修改。检测如源代码的修改在设计文档以及用户手的册中没有反映,则会产生文档修改的副作用。

六、软件的可维护性

(1)软件的可维护性定义:软件的可维护性是指软件能够被理解、校正、适应以及增强功能难易的程度。
(2)衡量软件质量的几个主要特性:可维护性、可使用性、可靠性。也就是说我们对于软件质量的衡量一般从这几个方面考虑。
(3)软件可维护性又可以分为7种质量特性:可使用性、可理解性、可修改性、可靠性、可测试性、可移植性以及效率。
(4)提高可维护性的方法:
首先,我们在工作中需要建立明确的软件质量上的目标;
其次,我们在工作中可以使用比较先进的开发技术以及开发工具;

三、建立明确的质量保证工作选择可维护的程序设计语言;

此外,对于程序文档的改进也可以有效地增加软件的可维护性。

七、软件维护的流程

我们首先要做的是确认维护的要求。这就需要我们和用户进行反复的协商,对于错误概况以及对业务的影响大小、用户希望做什么样的修改等有一定的了解,然后对这些情况进行存档。在这个过程中由维护组织管理员对维护类型进行确认。
针对改正性维护申请,我们应该从评价错误的严重性开始。对于不同的严重程度,我们可以采取不同的措施,这在一定程度上可以保证我们工作的效率。
对于适应性维护和完善性维护申请,需要先确定每项申请的优先次序。若某项申请的优先级非常高,就可立即开始维护工作,否则,维护申请和其他的开发工作一样,进行排队,统一安排时间。并不是所有的完善性维护申请都必须承担,因为进行完善性维护等于是做几次开发,工作量很大,所以需要根据商业需要、可利用资源的情况、目前和将来软件的发展方向、以及其他的考虑,决定是否承担。
八、结论
计算机软件的应用已经融入到我们工作、生活的方方面面。虽然计算机软件的维护工作是软件生命周期中最后一个工作,但其无论在代价及工作的时间长度上都不可忽视,我们作为软件工程师,主要的任务就是除了做出好的软件以外就是对软件的可维护性进行提高,这样才可以使得维护的代价有效地降低,最终增强企业竞争力,促进企业的发展。所以,在我们的工作中我们要对思考,对于常出现的问题要善于总结,这样才能提升我们编写软件的能力。
本文系统的讲述了软件的维护,对于我们软件维护工作的开展具有一定的指导作用。
参考文献:
惠孛,纪琳.软件工程的研究与应用[J].福建电脑,2009,3
黄登有.VXI总线测试软件平台[D].电子科技大学,2009
[3]兰京川.VXI总线测试软件平台研究[D].电子科技大学,2011

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号