其他分享
首页 > 其他分享> > 软件的可复用性和维护性

软件的可复用性和维护性

作者:互联网

可复用性和可维护性是评价一个系统设计好坏的重要标准。一个好的软件设计,必须能够允许新的设计要求以较为容易和平稳的方式加入到已有的系统中去,从而使这个系统能够不断的焕发青春。 一个可维护性较好的系统,应当允许维护工作能够以容易、准确、安全和经济的形式进行。

软件可维护性是指:维护人员理解、改正、改动和改进系统的难易程度。

主要评价指标有:可理解性、可测试性、可修改性等等。

软件可复用性大多数情况下所讨论的软件可重用性指软件本身的可重用性,即软件代码实现的可重用性。利用标准化的软件模块快速构建特定的应用系统。

系统设计目标:

        1.可扩展性(Extensibility):新的性能可以很容易地加入到系统中去。这是”过于僵硬“的相反面。

        2.灵活性(Flexibility):允许代码修改平稳的发生,而不会波及到其它模块。这是”过于脆弱“的相反面。

        3.可插入性(Pluggability):可以很容易将一个类抽出去,同时将另一个有同样接口的类加进来。这是”黏度过高“的相反面。

可维护性与可复用性关系

可维护性和可复用性是两个独立的目标。引用大师说的一句话“一个易于维护的系统,就是复用率较高的系统:而一个复用率较高的系统,就是一 个易于护的系统、但是实际可维护性和可复用性是两个的目标,就像两只奔跑的兔子一样,并不总是方向一致的,对于面向对象的软件系统来说,在支持可维护性(Mainta inability)的同时,提高系统的可复用性(ReuseabiIity)是一个核心的问。”《Java与模式》阎宏博士 

恰当的提高系统的可复用性,可以提高系统的可扩展性。允许一个具有同样接口的新的类替代旧的类,是对抽象接口的复用。客户端依赖于一个抽象的接口,而不是一个具体实现类,使得这个具体类可以被另一个具体类所取代,而不影响到客户端。

恰当的提高系统的可复用性,可以提高系统的灵活性。在一个设计得当的系统中,每一个模块都相对于其他模块独立存在,并只保持与其他模块的尽可能少的通信。这样一来,在其中某一个模块发生代码修改的时候,这个修改的压力不会传递到其他的模块。

恰当的提高系统的可复用性,可以提高系统的可插入性。在一个符合“开-闭”原则的系统中,抽象层封装了与商业逻辑有关的重要行为,这些行为的具体实现有实现层给出。当一个实现类不再满足需要,需要以另一个实现类取代的时候,系统的设计可以保证旧的类可以被“拔出”,新的类可以被“插入”。

实现原则

用于提高软件设计的可维护性、可复用性的设计原则:

1.开-闭原则(Open-Closed Principle OCP)
2.里氏替换原则(Liskov Substitution Principle LSP)
3.依赖倒转原则(Dependency Inversion Principle DIP)
4.接口隔离原则(Interface Segregation Principle ISP)
5.组合/聚合复用原则(Composition/Aggregation Principle CARP)
6.迪米特法则(Law of Demeter LoD)

 

参考

https://blog.csdn.net/zsh2050/article/details/42583621

https://blog.csdn.net/crazzy_lp/article/details/84615403

 

标签:维护性,系统,复用,可维护性,Principle,模块,软件
来源: https://www.cnblogs.com/hhd-shuai/p/12497220.html