《软件构造》 第六章 面向可维护性的软件构造

》》可维护性的常见度量指标:

1.圈复杂度CC:度量代码的结构复杂度 CC=e-n+2  (e是流程图中边的数量,n是流程图中节点数量)

2.代码行数

3.Halstead Volume:基于源代码中(不同)运算符和操作数的数量的合成度量。

4.可维护性指数(MI):计算介于0和100之间的索引值,表示维护代码的相对容易性。 高价值意味着更好的可维护性。

5.继承的层次数:表示扩展到类层次结构的根的类定义的数量。 等级越深,就越难理解特定方法和字段在何处被定义或重新定义。

6.类之间的耦合度:通过参数,局部变量,返回类型,方法调用,泛型或模板实例化,基类,接口实现,在外部类型上定义的字段和属性修饰来测量耦合到唯一类。好的软件拥有高内聚低耦合的特点

7.单元测试覆盖率:指示代码库的哪些部分被自动化单元测试覆盖

》》模块化编程:

聚合度:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

耦合度:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合

》》面向对象设计原则SOLID

(SRP) The Single Responsibility Principle 单一责任原则

(OCP) The Open-Closed Principle 开放-封闭原则

(LSP) The Liskov Substitution Principle Liskov替换原则

(DIP) The Dependency Inversion Principle 依赖转置原则

(ISP) The Interface Segregation Principle 接口聚合原则

SRP:一个类应该只负责一个功能或者叫做责任。最简单的一个原则,也是最难的一个原则

下面是一个SRP反例

《软件构造》 第六章 面向可维护性的软件构造_第1张图片

OCP:对于扩展的开放性,模块的行为应该是可扩展的;对于修改的封闭性,模块自身代码不应该是被修改的

在实现其他类似功能时,我们只能扩展新的类型,而不是在原有基础上修改

《软件构造》 第六章 面向可维护性的软件构造_第2张图片

LSP:子类型必须能够替换其父类型

ISP:客户端不应该依赖他们不需要的方法,一个比较大的接口应该分解成为多个小的接口

《软件构造》 第六章 面向可维护性的软件构造_第3张图片

DIP:抽象的模块不应依赖具体的模块,具体的模块应该依赖于抽象的模块

高层模块不要依赖低层模块。

》》针对可维护性的设计模式

···


》》正则表达式

规则:

《软件构造》 第六章 面向可维护性的软件构造_第4张图片

《软件构造》 第六章 面向可维护性的软件构造_第5张图片

《软件构造》 第六章 面向可维护性的软件构造_第6张图片

使用方法举例:

java中两个反斜杠表示转义  \\"表示"

《软件构造》 第六章 面向可维护性的软件构造_第7张图片

你可能感兴趣的:(《软件构造》 第六章 面向可维护性的软件构造)