第十章 面向可维护性的构造技术
- 第十章 面向可维护性的构造技术
-
- 软件维护与演进
-
- 面向可维护性的构建
- 可维护性指标
-
- 可维护性的许多名称
- 一些常用的可维护性指标
- 模块化设计和模块化原则
-
- 评估模块化的五个标准
- 模块化设计的五个规则
- 耦合
- 内聚
- OO Design Principles: SOLID
-
- SOLID:5类设计原则
- 语法驱动的构造
-
- 语法的组成部分
- 正则语言和正则表达式
- Java中的正则表达式
第十章 面向可维护性的构造技术
软件维护与演进
-
软件维护:修复错误、改善性能
-
运维是软件开发中最困难的工作之一
-
处理来自用户 告的故障 / 问题
-
需要代码后
- 测试所做的修改
- 回归测试
- 记录变化
-
-
软件演化:对软件进行持续的更新
-
软件的大部分成本来自于维护阶段
面向可维护性的构建
- 模块化
- OO 设计原则
- OO 设计模式
- 基于状态的构造技术
- 表驱动的构造技术
- 基于语法的构造技术
可维护性指标
可维护性的许多名称
- Maintainability 可维护性
- Extensibility 可扩展性
- Flexibility 灵活性
- Adaptability 可适应性
- Manageability 可管理性
- Supportability 支持性
一些常用的可维护性指标
-
Depth of Inheritance 继承的层次数
- 层越多越难维护
-
Class Coupling 类之间的耦合度
- 好的软件设计要求类型和方法应该具有高内聚和低耦合
- 高耦合表示设计难以重用和维护,因为它与其他类型有许多相互依赖性
-
Unit test coverage 单元测试的覆盖度
-
Cyclomatic Complexity 圈复杂度
- 圈太复杂不容易被测试
-
Lines of Code 代码行数
- 行数长的应该被拆分
-
Maintainability Index (MI) 可维护性指数
- 计算一个介于 0 和 100 之间的索引值,该值表示维护代码的相对容易程度。
模块化设计和模块化原则
评估模块化的五个标准
-
Decomposability (可分解性)
-
Composability (可组合性)
-
Understandability (可理解性)
-
Continuity (可持续性)
- 发生变化时受影响范围最小
-
Protection (出现异常之后的保护)
- 出现异常后受影响范围最小
模块化设计的五个规则
- Direct Mapping (直接映射)
- Few Interfaces (尽可能少的接口)
- Small Interfaces (尽可能小的接口)
- Explicit Interfaces (显式接口)
- Information Hiding (信息隐藏)
耦合
-
耦合性是衡量模块之间的依赖性
-
耦合程度决定因素
- 模块之间接口的数量
- 每个接口的复杂性
内聚
-
内聚是衡量一个模块的功能或责任有多强的关联
- 如果一个模块的所有元素都在为同一个目标工作,那么这个模块就有很好的内聚
OO Design Principles: SOLID
SOLID:5类设计原则
-
(SRP) The Single Responsibility Principle 单一责任原则
- 不应有多于1个的原因使得一个类发生变化,否则就拆分开
- 一个类,一个责任
-
(LSP) The Liskov Substitution Principle Liskov替换原则
- 子类型必须能够替换其基类型
- 派生类必须能够通过其基类的接口使用,客户端无需了解二者之间的差异
-
(ISP) The Interface Segregation Principle 接口隔离原则
-
不能强迫客户端依赖于它们不需要的接口:只提供必需的接口
-
不要强迫类来实现他们不能实现的方法
-
避免“胖”接口
- 不够聚合
- 胖接口可分解为多个小的接口
- 不同的接口向不同的客户端提供服务
- 客户端只访问自己所需要的接口
-
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92701 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
-