浅析软件维护

摘要:软件工程最重要的研究内容之一就是软件维护,软件维护也是软件生存期中时间最长,消耗人力最多的一个阶段。当前,软件的可维护性越来越受到业界的重视,已经成为衡量一个软件产品是否成功的重要标准。

关键词:软件维护;软件可维护性;维护途径

编程大师曾说过:“哪怕程序只有三行长,总有一天你也不得不对它进行维护。”软件是一种商品,从它被生产出来的那一天开始,软件维护的问题也就应运而生。任何一种产品出售以后,用户在使用的过程中总会发现新的问题,这就像软件维护一样,一个新的应用软件交付到客户手中,除了发现一些在软件测试阶段没有发现的错误外,在使用过程中不同的用户、不同的运行环境都会促使客户对软件不断提出新的要求,这就是软件维护。软件维护的工作量占据了软件生命周期的70%以上,因此,如何减少软件维护的工作量,降低软件维护成本,提高软件的可维护性就成了提高软件维护效率和质量的关键。

一、软件维护概述

1.软件维护的定义

软件维护是软件生命周期中的最后一个阶段也是最重要的历时最长的一个阶段,处于系统投入生产运行以后的时期。而软件维护又与普通的商品维护不一样,因为软件产品在重复使用的过程中不会像车辆、电器那样有磨损,所谓软件维护,就是指软件系统交付使用以后,为了改正软件运行错误,或者为了满足新的需求而加入新功能的修改软件的过程。[1]

2.软件维护的分类

一般来说,需要对软件进行维护的原因大致有以下几种:改正原程序中的错误和缺陷;改进原设计以适应新的软、硬件环境需要;增加软件的应用范围等。根据软件维护的不同原因,一般将软件维护划分为以下四类:(1)纠错性维护(CorrectiveMaintenance)。软件开发时,由于技术的限制,没有一种可以检测出所有错误的测试技术,必然有一部分潜在的隐藏错误被带到运行阶段,用户在使用软件时会发现在前期的测试时没有检测出来的潜在错误,这种对软件中存在的错误进行修改和维护的活动称为纠错性维护。纠错性维护约占整个维护工作总量的21%左右。(2)适应性维护(AdaptiveMaintenance)。由于操作系统或编译系统的升级,为了使软件能适应新的软硬件环境而对软件进行修改的活动称为适应性维护。适应性维护约占整个维护工作总量的25%左右。(3)完善性维护(PerfectiveMaintenance)。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求,为了满足这些要求而对软件进行修改为产生的活动称为完善性维护。完善性维护的工作量较大,约占整个维护工作总量的50%左右。(4)预防性维护(PreventiveMaintenance)。预防性维护即软件再工程,为了提高软件的可维护性和可靠性,为未来的进一步改进打下基础而修改软件的活动[2][3]。通常来说,在软件交付使用初期的磨合阶段,纠错性维护所占比例较大,随着错误逐渐被修正、消除,并趋于稳定后软件就进入正常的使用期。然而由于环境的变化和客户的新需求,适应性维护和完善性维护的工作量逐渐增加,实践表明,大部分的维护工作都是完善性维护,因为软件维护不仅仅局限于故障和错误的校正,维护很大一部分是处理新的或者变化的用户需求。

3.软件维护的费用

软件维护是软件生命周期中耗费最多,延续时间最长的活动。通常软件维护的费用占整个软件开发费用的55%—70%,并且所占比例在逐年上升。根据软件行业统计,1970年软件维护费约占软件开发费用的40%,到1990年维护费用的比例就超过了70%。有的大型软件的维护费用甚至会达到开发费用原来的40—50倍,例如:1976年Gansler报告说,美国***对空***飞行控制软件的一项研究表明,每条指令的开发费用约为75美元,而维护费竟达到4000美元/指令。B.Boehm在1979年报导,某大型软件每行费用约为:开发25美元,维护1000美元[4]。

二、软件的可维护性

在软件开发过程中始终强调软件的可维护性。原因是因为一个应用系统由于需求和环境的变化以及自身暴露的问题,在交付用户使用后,对它进行维护是不可避免的,许多大型软件公司为维护已有软件耗费大量人力、财力。

许多软件的维护十分困难,原因在于这些软件开发时没有严格按照软件工程的规范和标准,在维护时也没有按照规范认真填写维护申请单和修改报告单,例如:文档不全、质量差、开发过程不注意采用结构化方法,忽视程序设计风格等。因此造成软件维护工作量增加,成本上升,修改出错率升高,许多软件维护要求并不是因为程序出错而提出的,而是为适应环境的变化或需求提出的,为了使得软件能够易于维护,必需考虑软件的可维护性。软件的可维护性是指软件能够被理解,并能纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度[5]。一个软件的可维护性又取决于以下几个属性:可理解性、可修改性、可测试性、可靠性、可移植性、可适用性与效率。

三、软件维护的困难

1、软件维护人员变动。软件维护是一个长期的过程,当软件需要维护时,维护者首先要对软件各个阶段的文档和代码进行分析、理解,在大多数情况下,软件维护工作并不是由软件的设计和开发人员来完成,而是由一个专门的维护机构承担,因为软件交付使用以后,开发人员就会开始新产品的研发,无暇顾及软件的维护工作,维护工作就交到专门的维护团队,但是理解别人的源程序是非常困难的,如果文档不全,或仅有程序无文档,难度则更大。

2、未严格遵守软件开发标准。由于有的软件在设计时没有考虑到将来会修改,未使用统一的编程语言也没有按模块***设计原理进行设计,因此这种软件的维护既困难也易出错,软件生命周期越长越难维护。

3、文档缺失、不充分或过期。主要表现在各类文档之间的不一致、文档与程序之间的不一致性以及文档缺失,从而导致维护人员不知如何进行修改和维护,加大了维护的难度。造成这种情况的原因是开发过程和维护过程中文档管理不善引起的,开发测试中经常会出现修改了程序而忘记修改相关文档,或者是修改了某个文档而没有修改与之相关的文档。

4、软件维护工作本身不具备吸引力。开发组人员通常承担这软件系统的初期维护,因为他们对软件最熟悉,维护起来最方便,然而当软件转入正常使用后,开发人员就会被分配去承担其他新产品的研发,这样开发人员就可以集中精力做好开发工作,所以维护工作就由专门的维护机构承担而非开发人员。软件维护工作是一项难出成果、经常受挫,大家都不愿意干的工作。高水平的维护人员程序员不愿意去做维护工作,而专门维护人员又不甘心长期从事软件维护工作。这样就造成了维护人员不断更换,影响了软件的可维护性。

四、提高软件可维护性的途径软件的可维护性越高软件的生命周期就越长,提高软件的可维护性,最根本的就是让所有的程序员知道维护的重要性,以在各个阶段减少维护工作量为目标而展开工作。

1、专业训练有素的软件开发人员。一个专业的软件开发人员除了具备最基本的软件编程技能外,还需拥有足够多的系统知识和应用领域的知识,以及对源代码的基本原理认识。除此之外还需具备较强的逻辑思维能力,因为逻辑思维好的开发人员编写的代码会让后期程序维护人员在阅读文档时更容易理解。

2、可理解的系统结构设计。首先系统的设计必须采用模块化和结构化的设计,每个模块都应具有***的功能,需要满足高内聚、低耦合的原则。因为如果系统最初设计得不可理解,随着时间的推移,系统也会变得更难以维护,但是如果采用可理解的结构设计,就可以帮助维护人员进行维护。因为结构化设计不仅可以使得模块结构标准化,还可以将模块化间的相互作用也标准化,可以的得到良好的程序结构。

3、标准化的程序设计语言。程序设计语言的选择,直接影响到软件的维护,因为语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性越好。源代码都必须具有良好的结构,所有代码都必须文档化。一般来说,第4代开发工具和高级语言程序比汇编语程序更容易理解。

5、结构化的文档。软件维护人员在维护软件时只能通过阅读、理解和分析源代码来了解系统的功能、结构、设计模式等,如果没有这些结构化文档就会给维护带来困难,要弄清某个系统就必须花费大量的人力和物力,这样势必影响到软件的可维护性。因此需要及时创建各个阶段的文档,文档的设计风格也要简洁一致,及时更新完善相关文档,固定存放文档。为今后维护工作提供帮助。

6、软件维护管理。程序员更倾向于从事软件开发而是从事软件维护,为了保证软件维护人员的稳定性,可以定期安排软件人员开发任务和维护任务的轮换。这样可以使软件人员体会到开发和维护工作的具体要求、开发和维护的关系,有利于软件人员的技术水平和软件系统的质量。

五、结束语

软件维护是软件生命周期的最后阶段,也是历时最长最重要的阶段,软件维护除了在前期开发、需求分析、软件设计、语言选择、软件测试、软件复用各个阶段严格把关外,在软件维护阶段更为重要,最后要指出的是不仅在开发时期要尽量提高软件的可维护性,在维护时期也要继续采取正确的方法,编好有关的文档,每个维护人员都要知道,正如你要维护别人开发的软件一样,很可能还有别人要维护你维护过的软件。(作者单位:云南师范大学信息学院)

参考文献:

[1]许家珆,白忠建,吴磊.软件工程—理论与实践(第2版)[M],2009.

[2]刘新航.软件工程与项目管理案例教程[M],北京大学出版社,2009.

[3]李东生,崔冬华,李爱萍等.软件工程——原理、方法和工具[M],机械工业出版社,2009.

[4]史济民,顾春华,李昌武,苑荣.软件工程—原理、方法与应用(第二版)[M].高等教育出版社,2004.

[5]郑炜,朱怡安.软件工程[M].西北工业大学出版社,2010.

浅析软件维护

转载请注明出处学文网 » 浅析软件维护

学习

你给我闭嘴

阅读(21)

本文为您介绍你给我闭嘴,内容包括你给我闭嘴全文免费阅读,你给我闭嘴东北话原版。带我来这个地狱般的地方的,是我的爸爸。他满脸笑容地对发型师说,给她剪一个精神清爽的发式。发型师仔细地把我打量一遍,我很不自然地低下头,觉得自己简直纤毫

学习

组合夹具设计应用分析

阅读(17)

本文为您介绍组合夹具设计应用分析,内容包括夹具组合定位的分析,组合夹具设计应用。摘要:组合夹具是机械制造业的核心,也是为国民经济各部门提供装备的部门。在现实使用中由于组合夹具应变能力强、设计和制造周期短、成本低、适应产品更新

学习

大暑假范文精选

阅读(28)

本文为您介绍大暑假范文精选,内容包括暑假趣事范文300字,暑假范文。大暑假篇1江西省南昌市南师附小四(四)班罗中玉一年四季,春夏秋冬。夏季的到来是什么样的呢?让我来回答吧!夏季是炎热的!可不是吗!今天我们这就停电了,真是汗流浃背呀!7月7日是小暑

学习

兰波的诗范文精选

阅读(16)

本文为您介绍兰波的诗范文精选,内容包括兰波著名诗句,兰波诗集经典语句。关键词:奥菲斯谷克多兰波超现实主义

学习

螺旋槽纹管在强化传热技术中的应用与发展状况

阅读(49)

摘要:本文首先对强化传热简单叙述,介绍了国内外研究现状与发展动态,并对螺旋槽纹管强化换热机理进行分析。螺旋槽纹管强化换热分为无相变强化换热和有相变强化换热,重点介绍了两种强化换热机理,针对本文研究的无相变强化换热,分析了对流换热的

学习

深挖烟民市场 “乐无烟”营造健康财富新空间

阅读(23)

烟民4.6亿!这是多庞大的人群啊,如果有一种产品,依托的正是这个庞大的消费群体,那么它的市场前景之广阔也就不言而喻了。徐锦德敏锐地捕捉到了这个潜在的“烟民”市场,果断地从国外引进了“乐无烟”,不仅迅速发家,还带富了一大批商。

学习

高压聚乙烯生产工艺研究

阅读(37)

本文为您介绍高压聚乙烯生产工艺研究,内容包括高压聚乙烯7042最新价格,低发泡高压聚乙烯泡沫塑料板。摘要:高压聚乙烯的生产,是化工生产的重要的生产工艺。通过对高压聚乙烯生产工艺的优化,获得最佳的聚乙烯收率,使其满足石油化工生产的技术

学习

怎样学好初中数学?

阅读(38)

本文为您介绍怎样学好初中数学?,内容包括怎么学好初中数学第一章,如何学好初中数学。如何学好初中数学呢?这是一个老生常谈的话题。无论做任何事情,当我们确立了目标,剩下就是摆正态度,围绕目标设计实现方法,然后是坚定不移地执行。当然,在执

学习

文明若要卑躬屈膝 不如保持野蛮的骄傲

阅读(32)

台湾影片《赛德克・巴莱》的故事发生在险恶的日据时代,电影故事从1895年横跨至1930年。影片于2012年5月上映,虽然当时因为宣传不力遭遇票房惨淡,但口碑不凡。

学习

传媒新词“御宅族”分析

阅读(31)

【摘要】“御宅族”一词源于日语的“OTAKU”,近年来频繁出现在国内的各类媒体上。“御宅族”在汉语中出现后,产生出新的词义和用法,使用范围也进一步扩大。本文主要探讨“御宅族”在词义、用法上的变化并对其变化的原因进行分析。

学习

为赋新词强说愁

阅读(19)

本文为您介绍为赋新词强说愁,内容包括为赋新词强说愁全文注音,为赋新词强说愁全文。任何先进的语文理念,教学方法都只有在具备较高阅历素质的语文教师手里才能得到很好的实施。

学习

联想乐打印 让移动打印更轻松

阅读(21)

本文为您介绍联想乐打印 让移动打印更轻松,内容包括联想乐打印,联想打印机打印时显示打印错误。“今天的中国,已经有将近4亿台包括智能手机和平板电脑在内的移动设备在使用。移动互联网正在深刻地影响着行业中每一个链条,开放与分享已经成

学习

《马达加斯加2》

阅读(18)

本文为您介绍《马达加斯加2》,内容包括马达加斯加2中文版全集,马达加斯加2文字介绍。动物们又一次冒险之旅

学习

我真的很爱你

阅读(49)

本文为您介绍我真的很爱你,内容包括我真的很爱你全文免费阅读,曾经我真的很爱你。起初爸爸对于她走进演艺圈是持反对意见的,但执拗的她义无反顾地踏入其中,而爸爸的态度立刻由反对变成支持,时时刻刻关心着她的一举一动,每一张专辑都会逐曲仔

学习

浅析电缆耐压试验

阅读(17)

本文为您介绍浅析电缆耐压试验,内容包括电缆串联谐振耐压试验,电缆耐压试验教学。摘要:为了检验和保证电缆的安装质量,在送电投运前,对电缆进行现场交流或直流耐压试验十分必要。本文结合现场做试验的实际情况,对电缆经过试验后能否投入使用

学习

浅析普世价值

阅读(36)

本文为您介绍浅析普世价值,内容包括张维为谈普世价值,谈谈对普世价值的理解。【关键词】普世;普遍;价值

学习

浅析商务谈判的技巧

阅读(25)

本文为您介绍浅析商务谈判的技巧,内容包括商务谈判技巧8条法则,商务价格谈判技巧8条法则。摘要商务谈判是人们在各类经济业务中,为使双方(或多方)的意见趋于一致而进行的洽谈磋商。谈判的业务内容不仅包括产品,还包括资金、技术、信息、服务

学习

浅析建筑物沉降观测

阅读(24)

本文为您介绍浅析建筑物沉降观测,内容包括建筑物沉降观测由谁来做,建筑物的沉降观测ppt。摘要:根据设计要求,通过系统地对建筑物沉降量施测,能及时了解地基与基础的稳定情况,指导合理的施工工序,预防在施工过程中出现不均匀沉降,及时反馈信息

学习

浅析微博营销

阅读(20)

本文为您介绍浅析微博营销,内容包括蒙牛微博营销案例,微博营销成功案例。摘要:微博的横空出世给发展中得互联网带来了新的营销模式和思考。该文通过对微博营销的特点分析,典型案例的研究,阐述微博营销存在的价值,分析微博营销在电子商务、企

学习

中药鲜药的现代应用浅析

阅读(59)

摘要为推进中药鲜药的生产、加工、利用与保护的现展,对中药鲜药现代研究的主要内容及方向进行了探讨,认为有必要对干药、鲜药在成分、药理活性等方面进行对比研究,并加强鲜药的保鲜技术研究,对新剂型、新工艺的研究加大力度,在保护与利用鲜药

学习

水轮机结构设计浅析

阅读(24)

本文为您介绍水轮机结构设计浅析,内容包括水轮机结构设计,水轮机结构与设计课程ppt。【摘要】水轮机的发展在我国有着悠久的历史,早在100多年前,农民用于灌溉以及机械驱动的水轮就是水轮机的雏形。今天,用于灌溉和机械驱动的水轮虽然已经不

学习

浅析条件概率

阅读(21)

本文为您介绍浅析条件概率,内容包括条件概率全概率总结,条件概率知识详解。关键词:条件概率;概率;随机试验;事件;抽签