软件的可复用性和维护性
Posted llfnpbd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件的可复用性和维护性相关的知识,希望对你有一定的参考价值。
通常认为,一个易于维护的系统,就是复用率较高的系统;而一个复用性较好的系统,就是一个易于维护的系统。但是实际上,可维护性和可复用性是两个独立的目标,就像两只奔跑的兔子一样,并不总是方向一致的。对于面向对象的软件系统设计来说,在支持可维护性的同时,提高系统的可复用性是一个核心的问题。
我们常说一个好的系统设计在于其有较高的可维护性和较高的可复用性。其实可维护性与可复用性是两个独立的目标,并不总是方向一致。
软件的维护就是软件的再生。一个好的软件设计,必须能够允许新的设计要求以较为容易和平稳的方式加入到已有的系统中。但实际上,现有大多数软件系统不具备这样的特性。导致一个软件的可维护性较低的原因有四个:
1.过于僵硬(Rigidity):很难在系统中加入新功能。因为会波及其它模块,最后会变成跨越几个模块的大改动。
2.过于脆弱(Fragility):与过于僵硬同时存在。对一个地方的修改,往往导致看上去没有什么关系的另一个地方发生故障。修改完成前,系统的原始设计师甚至无法预测可能会波及到地方。
3.复用率低(Immobility):当发现有一段代码、函数、模块可用于新功能时,这些已有的代码总是依赖一大堆其它的东西,很难将它们分开。
4.黏度过高(Viscosity):对系统的改动可以采取保存原始设计意图和设计框架的方式,也可以以破坏原始意图和框架的方式进行。前者对系统未来有利,而后者是权宜之计,可以解决短期问题,但会牺牲中长期利益。如果一个系统设计,总是使得第二种办法比第一种容易,就叫黏度过高。
一、软件系统的可维护性
软件开发是一个比较快速的过程,一般只需要半年时间。但是系统的维护却是一个长期的过程,需要很多年。并且在一个软件项目的周期内,花费在维护上面的钱,是花费在原始开发上面的钱的两倍。
作为一个开发人员必须要认识到,软件的维护就是软件的再生。一个好的软件设计,必须能够允许新的设计要求以较为容易和平稳的方式加入到已有的系统中去,从而使这个系统能够不断的焕发青春。 一个可维护性较好的系统,应当允许维护工作能够以容易、准确、安全和经济的形式进行。
软件系统的可维护性
软件系统的可维护性具体体现在三个目标上:
- 可扩展性 新的功能可很容易地加入到系统中
- 灵活性 允许代码的修改平稳发生
- 可插入性 可很容易地将一个模块抽出去,然后用另一个实现了同样接口的模块代替。
二、系统的可复用性
软件的复用的好处有:①较高的生产效率;②较高的软件质量;③恰当使用复用可以改善系统的可维护性。更重要的是,复用与系统的可维护性有直接的关系。
以上是关于软件的可复用性和维护性的主要内容,如果未能解决你的问题,请参考以下文章