浅析计算机软件维护

  摘要:随着社会的发展,计算机在各行各业都取得了巨大的应用,同时,计算机软件的维护也成了软件发展的一大问题,由于软件维护涉及的问题较多,所以在维护的过程中有较多需要我们注意的地方。而对于计算机软件的维护不仅关乎用户的使用,更与软件公司的开发成本息息相关,因此对于计算机软件维护的研究具有重要的意义。笔者从事计算机软件工作,对于其维护有着一定的经验及感触,本文结合笔者自身经验,对于计算机软件维护概念、它有怎样的特点、我们在维护过程中需要注意哪些问题等等进行了分析与探讨,旨在对于计算机软件的维护起到一定的指导作用。  关键词:计算机软件;维护  中图分类号:TP393 文献标识码:A 文章编号: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的法则:如果一个源语句进行一个修改,它将可能导致新的错误。

  摘要:随着社会的发展,计算机在各行各业都取得了巨大的应用,同时,计算机软件的维护也成了软件发展的一大问题,由于软件维护涉及的问题较多,所以在维护的过程中有较多需要我们注意的地方。而对于计算机软件的维护不仅关乎用户的使用,更与软件公司的开发成本息息相关,因此对于计算机软件维护的研究具有重要的意义。笔者从事计算机软件工作,对于其维护有着一定的经验及感触,本文结合笔者自身经验,对于计算机软件维护概念、它有怎样的特点、我们在维护过程中需要注意哪些问题等等进行了分析与探讨,旨在对于计算机软件的维护起到一定的指导作用。  关键词:计算机软件;维护  中图分类号:TP393 文献标识码:A 文章编号: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的法则:如果一个源语句进行一个修改,它将可能导致新的错误。


相关文章

  • 政府信息化发展中政务云的建设模式浅析
  • 一.引言 政府信息化发展中政务云的建设模式浅析 随着我国电子政务建设的发展,越来越多的政府部门开始意识到电子政务集中建设的必要性及优越性,并逐渐实现从网络到应用的集中共享建设模式,而随之带来了相应的资源利用.数据安全.业务需求多样性及管理的 ...查看


  • 浅析监狱信息化建设存在的问题和对策
  • 浅析监狱信息化建设存在的问题和对策 时间:2011-08-12 来源:本站 编辑:监管局 信息技术已成为当代最具潜力的生产力,是推动社会进步的重要力量,信息化水平也已一个地区和城市现代化程度的重要标志.监狱是国家的刑罚执行机关,是我国政府体 ...查看


  • 网络毕业论文选题
  • 毕业论文(设计) 题 目 学 院 学 院 专 业 学生姓名 学 号 年级 级 指导教师 毕业教务处制表 毕业 毕业二〇一五年 九月二十 日 一.写作说明 专业从事毕业论文写作与发表相关服务,本团队擅长案例数据分析.编程仿真.图表制作.毕业设 ...查看


  • 浅析如何正确实施ERP项目
  • [摘 要]ERP作为一种企业管理信息系统,它实现了信息技术与先进管理思想的完美结合.本文通过阐述ERP的实施现状和存在的问题,并分析出其制约因素,进而指出如何正确实施ERP项目的策略,旨在对企业实施ERP过程中遇到的问题有所启示. [关键词 ...查看


  • 试论网络安全维护及局域网硬件维护方法
  • 摘 要:在信息技术不断发达的今天,局域网的应用范围也变得极为广泛,在网络办公.信息传递.娱乐教育等方面发挥了积极的作用.局域网涉及的范围较小,但是在小范围内的信息资源交换效率提高,通过资源的交换与共享,最终能够达到有效合作的局面.我们在重视 ...查看


  • 浅析软件工程开发方法学RUP
  • 浅析软件工程开发方法学RUP 前言 因为之前一直处在游戏开发行业,由于种种原因一直对软件工程中的项目管理.项目开发方法缺乏体验.虽然项目中也曾倡导编写更多的文档,无论是模块说明文档还是设计文档,但效果一直不好.不甚理想的地方主要体现在文档的 ...查看


  • 浅析行政执法中的陷阱取证问题
  • 2011年1月第1期 河北省社会主义学院学报 Journal of Jan.2011 No.1 SocialistCollege [百家论坛] 浅析行政执法中的陷阱取证问题 甄世辉 (河北政法职业学院,河北石家庄050061) [摘要]行政 ...查看


  • 浅析汽车性能检测技术
  • 浅析汽车性能检测技术 应俊 摘要:当前我国人民的生活逐渐提高,汽车的数量越来越多,对于汽车的性能也提出了更高的要求,基于此,本文分析了汽车性能检测的技术以及其发展的趋势.关键词:汽车:性能:检测技术 中图分类号:V448文献标识码:A 引言 ...查看


  • 浅析我国会计电算化存在的问题及对策
  • 太原科技大学毕业论 2013年10月文 浅析我国会计电算化存在的问题及对策 摘要:在当今这个日新月异的信息化时代背景下,随着电子计算机的普及和其在社会中的重要地位,它已成为各行各业不可或缺的有利助手,扮演着重要的角色.在会计系统,会计电算化 ...查看


热门内容