论文部分内容阅读
摘 要:计算机软件是用户与硬件之间的接口界面。用户主要是通过软件来操作计算机。软件生命周期的每个阶段工作都和软件可维护性有着紧密关系。在每个阶段都采用科学的管理技术和先进的技术方法,并且在每个阶段工作结束前都从管理和技术两个方面进行严格的审查,合格之后才开始进行下一阶段的工作,保证了软件的开发质量,也提高了软件的可维护性。
关键词:计算机软件;可维护性;方法研究
中图分类号:TP311.53 文献标识码:A 文章编号:1672-8882(2015)02-092-01
一、软件可维护性概述
软件可维护性即软件调试与维护人员对该软件进行维护的难易程度,具体包括理解、改正和改进该软件的难易程度。
决定可维护性的因素:软件的规模、软件的结构、软件的时间、软件开发技术、程序设计语言、数据库技术、其他因素。
可维护性可通过七个质量指标来评估:可读性、可测试性、可修改性、可移植性、可靠性、可使用性和效率。
软件维护一般包括三大类,一是纠正性维护,它主要是纠正软件中存在的错误;二是适应性维护,它主要是为能适应变化的新的运行环境而对软件所做的修改;三是完善性维护,是为了提高软件性能或扩大软件功能而对软件进行的修改。
二、计算机软件可维护性一般方法
(一)建立明确的软件质量目标和优先级
一个可维护的程序应是可读易理解的、可测试的、可修改的、可靠的、可使用、可移植的和效率高的。但要实现所有的目标,难度很大代价极高,而且也不一定办得到。因为某些质量指标是互相促进的,但也有一些质量指标却是互相矛盾的。因此,尽管可维护性要求所有质量指标都要得到满足,但它们的相对重要性在不同的情况及作用环境下又有所不同,必须根据不同情况给予它些质量指标不同的重视程度即不同的优先级。
(二)采用结构化的程序开发技术和模块化的开发方法和工具
模块化是软件开发过程中提高软件质量,提高可维护性的有效的技术方法。它的优点是如果需要改变某个模块的功能,只需要修改这个模块,而对其他模块的影响较小;如果要增加某些功能,仅需增加完成这些新功能的新模块;程序的测试比较容易,程序错误容易定位和改正。
采用结构化程序设计技术,提高现有系统的可维护性。可以采用备用件的方法,当要修改某一个模块时,只要用一个新的结构良好的模块替换掉整个模块,这既提高了维护效率,也能减少新的错误发生。
(三)选用可维护高的程序设计语言
所使用的程序设计语言,对程序的可维护性影响极大。低级程序设计语言,即汇编语言和机器语言,非常难学习理解掌握和作用,可读性非常差,因此其可维护性也就十分困难。高级程序设计语言比低级语言更容易理解和使用,具有更好的可维护性。但高级语言也不许多种,不同的高级语言,其可理解的难易程度也是不同的。面向对象的、非过程化的语言,其可理解性更高,可维护性也更高。
(四)进行严格的质量保证审查
质量保证审查对于提高软件质量,提升软件的可维护性,是一个很好的技术。它能够及时检测和发现在开发和维护阶段内所发生的各种问题,一旦检测到问题,就可以立即采取措施来纠正。为了提高软件的可维护性,可进行四类的软件审查。
在检查点进行复审。在软件开发过程中的每一阶段的终点,设置检查点进行检查。检查已开发的软件是否符合标准,是否满足规定的质量需求。
验收检查。是软件交付使用前的最后一次检查,是软件投入运行前保证可维护性的最后机会。
周期性地维护审查。软件在运行期间,为了纠正新发现的错误或缺陷,为了适应运行环境的变化,为了响应用户新的需求,必须进行修改。
对软件包进行检查。检查软件包程序所执行的功能是否与用户的要求和条件相一致。
(五)加强软件可维护性方法发展与研究
在软件开发过程,应充分考虑系统的通用性和自我维护能力,以避免系统开发重复是十分必要的。
如果要设计多功能易于维护的软件,就必须采用灵活、通用和易维护的设计方法和思路。体系共性和个性方法分析,实现系统的自我维护功能。在该系统自维护功能概念基础上,调整其参数,其实可以做一个小的开发工具,进而可以开发类似的系统管理。
软件设计上,自我维护功能定义的引入,使软件更具生命力。系统自维护功能给系统设计带来了一些难度,需要额外采取更多的系统资源占用,但随着计算机技术的发展,在目前,它的资源不被认为是一个重要制约因素,考虑到对系统维护性的改善,达到自我维护功能是十分值得的。对于其他软件系统的开发,如在开发中能够充分考虑系统的共性和个性,引入系统自我维护功能的的理念,应用新的技术应用,能得到更好的发展。
三、软件维护的副作用
所谓软件维护的副作用是指因修改软件而造成的错误或其它意外情况。软件维护的产生的副作用主要有三种:即修改代码的副作用、修改数据的副作用以及文档资料的副作用。
(一)修改代码的副作用
在使用程序设计语言修改源代码时,有可能会引入新的错误。例如,删除或修改一个函数、删除或修改一条语句、删除或修改一个变量、改变程序代码的顺序、修改条件的边界条等都很容易引入新的错误。
(二)修改数据的副作用
如修改了数据结构,有可能造成软件设计与数据结构不匹配,从而引起软件错误。例如,重新定义局部或全局常量、重新定义记录或文件格式、增大或减小一个数组或其它数据结构的大小,容易引起设计与数据不相容的错误。
(三)文档的副作用
对数据流、软件结构、模块逻辑或任何其它有关特性进行修改时,必须对有关技术文档进行相应修改。否则会导致文档与程序功能不匹配,使得软件文档不能反映软件的当前状态。每当对数据、软件结构、模块过程或任何其它软件属性做了修改时,必须立刻修改相应的技术文档。不能准确反应软件当前状态的文档可能比完全没有文档更可怕。因为在以后的维护工作中很可能因文档不完全符合实际情况而不能正确理解软件,从而给维护工作带来混乱。因此,在维护工作中注意始终保持文档的完整性、准确性与一致性,对以后理解和维护程序来说是十分重要的。
四、结束语
软件的可维护性是在软件开发的各个阶段中形成的,因此,必须在整个软件开发的各个阶段每个方面上,以提高软件的可维护性进行贯穿。学习和掌握软件生命周期的各个阶段,对软件的可维护性会产生极大的影响,对软件开发和一般软件维护人员的实际工作具有极大裨益。
关键词:计算机软件;可维护性;方法研究
中图分类号:TP311.53 文献标识码:A 文章编号:1672-8882(2015)02-092-01
一、软件可维护性概述
软件可维护性即软件调试与维护人员对该软件进行维护的难易程度,具体包括理解、改正和改进该软件的难易程度。
决定可维护性的因素:软件的规模、软件的结构、软件的时间、软件开发技术、程序设计语言、数据库技术、其他因素。
可维护性可通过七个质量指标来评估:可读性、可测试性、可修改性、可移植性、可靠性、可使用性和效率。
软件维护一般包括三大类,一是纠正性维护,它主要是纠正软件中存在的错误;二是适应性维护,它主要是为能适应变化的新的运行环境而对软件所做的修改;三是完善性维护,是为了提高软件性能或扩大软件功能而对软件进行的修改。
二、计算机软件可维护性一般方法
(一)建立明确的软件质量目标和优先级
一个可维护的程序应是可读易理解的、可测试的、可修改的、可靠的、可使用、可移植的和效率高的。但要实现所有的目标,难度很大代价极高,而且也不一定办得到。因为某些质量指标是互相促进的,但也有一些质量指标却是互相矛盾的。因此,尽管可维护性要求所有质量指标都要得到满足,但它们的相对重要性在不同的情况及作用环境下又有所不同,必须根据不同情况给予它些质量指标不同的重视程度即不同的优先级。
(二)采用结构化的程序开发技术和模块化的开发方法和工具
模块化是软件开发过程中提高软件质量,提高可维护性的有效的技术方法。它的优点是如果需要改变某个模块的功能,只需要修改这个模块,而对其他模块的影响较小;如果要增加某些功能,仅需增加完成这些新功能的新模块;程序的测试比较容易,程序错误容易定位和改正。
采用结构化程序设计技术,提高现有系统的可维护性。可以采用备用件的方法,当要修改某一个模块时,只要用一个新的结构良好的模块替换掉整个模块,这既提高了维护效率,也能减少新的错误发生。
(三)选用可维护高的程序设计语言
所使用的程序设计语言,对程序的可维护性影响极大。低级程序设计语言,即汇编语言和机器语言,非常难学习理解掌握和作用,可读性非常差,因此其可维护性也就十分困难。高级程序设计语言比低级语言更容易理解和使用,具有更好的可维护性。但高级语言也不许多种,不同的高级语言,其可理解的难易程度也是不同的。面向对象的、非过程化的语言,其可理解性更高,可维护性也更高。
(四)进行严格的质量保证审查
质量保证审查对于提高软件质量,提升软件的可维护性,是一个很好的技术。它能够及时检测和发现在开发和维护阶段内所发生的各种问题,一旦检测到问题,就可以立即采取措施来纠正。为了提高软件的可维护性,可进行四类的软件审查。
在检查点进行复审。在软件开发过程中的每一阶段的终点,设置检查点进行检查。检查已开发的软件是否符合标准,是否满足规定的质量需求。
验收检查。是软件交付使用前的最后一次检查,是软件投入运行前保证可维护性的最后机会。
周期性地维护审查。软件在运行期间,为了纠正新发现的错误或缺陷,为了适应运行环境的变化,为了响应用户新的需求,必须进行修改。
对软件包进行检查。检查软件包程序所执行的功能是否与用户的要求和条件相一致。
(五)加强软件可维护性方法发展与研究
在软件开发过程,应充分考虑系统的通用性和自我维护能力,以避免系统开发重复是十分必要的。
如果要设计多功能易于维护的软件,就必须采用灵活、通用和易维护的设计方法和思路。体系共性和个性方法分析,实现系统的自我维护功能。在该系统自维护功能概念基础上,调整其参数,其实可以做一个小的开发工具,进而可以开发类似的系统管理。
软件设计上,自我维护功能定义的引入,使软件更具生命力。系统自维护功能给系统设计带来了一些难度,需要额外采取更多的系统资源占用,但随着计算机技术的发展,在目前,它的资源不被认为是一个重要制约因素,考虑到对系统维护性的改善,达到自我维护功能是十分值得的。对于其他软件系统的开发,如在开发中能够充分考虑系统的共性和个性,引入系统自我维护功能的的理念,应用新的技术应用,能得到更好的发展。
三、软件维护的副作用
所谓软件维护的副作用是指因修改软件而造成的错误或其它意外情况。软件维护的产生的副作用主要有三种:即修改代码的副作用、修改数据的副作用以及文档资料的副作用。
(一)修改代码的副作用
在使用程序设计语言修改源代码时,有可能会引入新的错误。例如,删除或修改一个函数、删除或修改一条语句、删除或修改一个变量、改变程序代码的顺序、修改条件的边界条等都很容易引入新的错误。
(二)修改数据的副作用
如修改了数据结构,有可能造成软件设计与数据结构不匹配,从而引起软件错误。例如,重新定义局部或全局常量、重新定义记录或文件格式、增大或减小一个数组或其它数据结构的大小,容易引起设计与数据不相容的错误。
(三)文档的副作用
对数据流、软件结构、模块逻辑或任何其它有关特性进行修改时,必须对有关技术文档进行相应修改。否则会导致文档与程序功能不匹配,使得软件文档不能反映软件的当前状态。每当对数据、软件结构、模块过程或任何其它软件属性做了修改时,必须立刻修改相应的技术文档。不能准确反应软件当前状态的文档可能比完全没有文档更可怕。因为在以后的维护工作中很可能因文档不完全符合实际情况而不能正确理解软件,从而给维护工作带来混乱。因此,在维护工作中注意始终保持文档的完整性、准确性与一致性,对以后理解和维护程序来说是十分重要的。
四、结束语
软件的可维护性是在软件开发的各个阶段中形成的,因此,必须在整个软件开发的各个阶段每个方面上,以提高软件的可维护性进行贯穿。学习和掌握软件生命周期的各个阶段,对软件的可维护性会产生极大的影响,对软件开发和一般软件维护人员的实际工作具有极大裨益。