- 相关推荐
论计算机软件维护
软件维护时要建立正式的维护团队,明确责任和分工,避免出现纠纷,以下是小编搜集整理的一篇探究计算机软件工程维护的论文范文,欢迎阅读查看。
[摘 要]近几年,中国软件产业突飞猛进,从事软件行业的相关人员大幅增加。但是如何保证开发出来的软件能稳定的运行,如何维护用户使用的软件是我国从事软件行业人员较为忽略的问题。专门从事维护的相关人员较少,本文简单阐述软件维护和前景,提出关于软件维护的方法和见解。
[关键词]计算机;软件工程;维护
软件产品的维护阶段是完全开发出来的软件在已经交付给用户之后,保证能在用户所接受的时间周期下正常且稳定的运行。软件维护是软件生命周期的最后阶段。开发软件的目的就是要提高软件产品的维护性能,尽可能降低软件在维护阶段的工作量,节约软件开发成本。维护软件所需工作量较大,据统计,较大型的软件维护成本是开发成本的四倍以上。国内外较大型软件开发公司把60%左右的工作量用于维护已经开发的软件。公司为了使软件的寿命更长,这方面的工作量会越来越高,软件的维护费用也在逐年增加,70年代维护软件的费用占开发软件总预算的37%左右,80年代提高为50%左右,到了90年代已经高达75%左右。因此降低软件维护的成本是软件开发过程中最重要的环节。
一、软件维护的分类
(一)改正性维护:诊断并纠正由于开发时测试环节的疏漏和运行中潜伏的错误以及开发时未能测试的错误。
(二)适应性维护:随着时间变化,相匹配的软硬件出现了更新,数据库,数据的存储格式可能会发生变化,为了适应变化环境而对软件的修正,使之兼容。
(三)完善性维护:为了能提高系统性能和扩充优化,改进运行效率,完善可视化界面,实现用户提出的建议和改进的要求。
(四)预防性维护:为了软件将来的前景,采用软件工程的方法对软件进行相适应的修改。
(五)其他维护:其中,改正性维护所占比例约为19%,适应性维护约为22%,完善性维护约为56%,预防性维护约为1%,其他维护占2%左右。
二、软件维护的影响因素
(一)人员变动:往往软件交付以后就要解散团队,人员会被分配到下一个开发团队中。当初开发的人员离开了团队,甚至后来修改该软件的人员也离开了团队或公司,会导致几乎已经没人彻底了解这个遗留的软件,造成软件彻底报废。这样也会给负责软件维护的新团队带来困扰,要花费更多精力,浪费了资金。
(二)用户要求:当初没有签订详细的合同和拟出详细的计划书,也没有和用户进行详细的沟通,导致开发人员认为合理的修改和更新不能满足用户的要求,成本增加。
(三)潜在错误:维护人员的改动可能会在软件中加入潜在的风险和错误,导致间接降低了软件的质量。本来是正确的地方,改过以后变成了错误,兼容性变得更差了。
(四)维护成本:维护成本已经大于开发一个新软件的成本或者大于预计的成本,维护价值下降。
(五)团队素质:签订系统维护的合同一般和签订系统开发的合同无直接关系。假设这个开发团队为了节约开发成本,不按照系统可维护性来设计,那么势必会增加维护团队的维护成本。软件开发时采用急功近利还是放眼未来的态度,对软件维护的影响很大。
(六)人员水平:一般公司认为维护软件不需要太多技术,不如开发软件声望好,分配能力较低的员工去做,也会增加维护的风险。
(七)文档同步:软件开发人员编码中不断修改需求和设计,但是文档却没有进行实时更新,造成交付的文档于实际软件出现偏差,使今后对软件进行维护时出现误解。
同时,一些软件渗入了许多相关的公司业务知识,还需要有一定的相关工作经验,这类软件维护的成本会更高。目前软件维护系统的方法不完善,维护工作变得更加困难,意外的发生也会导致风险随之增加。软件维护也会产生一些副作用,软件修改是一项很危险的工作,虽然设计文档化和回归测试有助于排除错误,但是仍然会产生副作用。副作用指,由于维护和维护过程中其他的一些不期望的行为引入的错误,分为:代码副作用,数据副作用,文档副作用。
(1)代码副作用:修改或删除子程序,语句符号,标示符。修改文件的open,close才做;修改逻辑操作符;修改对边界条件的测试等。
(2)数据副作用:全局常量和局部常量的再定义;修改全局数据;重新初始化控制标志和指针,重新排列I/O表或子程序参数表等。
(3)文档副作用:维护应该统一考虑整个软件的配置,而不仅仅是源代码。
三、维护工作量的模型
M=P+K*exp(c-d)
其中:M是维护需要的总工作量,P是生产性工作量,K是经验指数,c是复杂程度,d是维护人员对该软件的熟悉程度,该模型表明,如果软件的开发途径不好,开发人员不能参加维护工作,维护需要的总工作量和费用将以指数的形势增加。
四、软件维护的步骤
总体步骤:修改软件需求说明-修改软件设计-设计评审-重新编码-单元测试-集成测试-回归测试-确认测试-复审。
软件维护时要建立正式的维护团队,明确责任和分工,避免出现纠纷。要建立一份用户要求表格,要让用户全面详细地阐述发生的问题和错误,包括问题的类型,需要达到的目标,系统运行的环境,发生问题的日期等等。维护过程中要注意顺从原有代码的编码习惯,确保和谐。维护申请比较多,可分配优先级。修改前要做备份,改后要做测试,完成后要进行会议总结,汲取教训,分享经验。必要时还可以专门为该软件建立维护指南,使用手册,简要说明如何使用和维护这个软件。还可以建立参考手册,可以预示会发生出错的可能情况和错误代码相对应的含义以及解决的办法,注意要用形式化语言描述。维护完成时,可进行回归测试,测试顺利完成后方可交付。软件随着多次的维护和修改,其可维护性会变得越来越差,当可维护性降低到一定程度时,为了满足用户的要求再继续修改已经不可靠了,软件就会被抛弃,生命周期终止,失去了利用价值。
五、软件维护的前景
目前据笔者了解到,软件维护相关人员较少,但是软件维护成本却占了软件开发中成本的大半,许多大型软件由于缺少维护导致失控而被抛弃。因此如果精通或掌握软件维护领域相关知识,能够熟练完成大型软件的维护如:ERP的日常维护,SQL数据库的维护,网页服务器的维护等等,不断改进完善软件,发展潜力很大。
当前计算机技术在整个国民经济中具有相当广泛的领域,在人们的日常生活中,计算机技术可以说是无处不在,是人们生活、工作不可缺少的工具之一,以软件技术作为其内在灵魂的计算机信息系统,正在对系统高度集成化、结构广泛分布化、信息多元化和功能智能化等一系列新型发展方向越来越重视,并逐步在实践中得以实现。软件维护是一项综合性很强的工作,随着软件规模和复杂度的日益提高,使软件维护成为软件生存周期中费用最高、难度最大的一个阶段。因此,良好的软件维护是软件生命周期的最后阶段,也是最重要的阶段。
参考文献
[1] 吴杰明,张正.实用软件维护策略[J]..北方工业大学学报,2002,14,3:61-62 .
[2] 张海藩.软件工程导论[M].第五版.北京:清华大学出版社,2008,5:191.
[3] 周全学.软件维护浅析[J].铁路计算机应用,2003,12:42-43.
【论计算机软件维护】相关文章:
谈计算机软件工程管理维护08-22
论悔恨05-07
论马克思哲学的生存论指向05-29
论批判的终结05-28
论概念设计05-28
论人生的选择05-29
论税权划分05-11
传统教学论与现代教学论的哲学分歧论文05-19
论翻译是文化翻译08-23
论僧肇的时间观08-07