5.1 Metrics and Construction Principles for Maintainability
可维护性的度量与构造原则
1. 可维护性的指标
软件维护的类型:纠错性维护(25%)、适应性维护(21%)、完善性维护(50%)、预防性维护(4%)
可维护性(Maintainability)、可扩展性(Extensibility)、灵活性(Flexibility)、可适应性(Adaptability)、可管理性(Manageability)、支持性(Supportability)这些指的都是可维护性。
评判可维护性的一些方面:
设计结构足够简单;
模块之间松散耦合;
模块内部高度聚合;
不要使用了非常深的继承树,尽量使用delegation替代继承;
代码的圈复杂度不能太高;
不存在重复代码
2. 模块化设计原则
目的:高内聚低耦合;分离关注点 (通过delegation等机制分离功能);信息隐藏 (避免表示泄露、静态工厂方法等等)
评估模块化的五个标准:
可分解性 (Decomposability):让复杂的功能分解成一个个ADT完成
可组合性 (Composability):让一个个ADT组合完成复杂的功能
可理解性 (Understandability):OOP是面向世界上存在的事物编程,所以容易被理解
可持续性 (Continuity):发生变化时使得受影响范围最小
出现异常之后的保护 (Protection):出现异常后使得受影响范围最小
模块化设计的五个原则:
Direc