第六章:面向软件构造的可维护性的构建方法
第一节:可维护性的度量和构造原则
问题一:什么是软件的维护和演化
- 维护的含义:软件工程中的软件维护是交付后修改软件产品以纠正故障,提高性能或其他属性,简而言之,软件维护:修复错误、改善性能。
- 维护的类型:纠错性(25%)、适应性(25%)、完善性(50%)、预防性(4%)
- 演化的含义:对软件进行持续的更新
- 软件演化的规律(Lehman):软件质量下降,复杂度增加。
- 软件维护和演化的目标:提高软件的适应性,延续软件生命 。
- 意义:软件维护不仅仅是运维工程师的工作,而是从设计和开发阶段就开始了 。在设计与开发阶段就要考虑将来的可维护性 ,设计方案需要“easy to change”。
- 体现可维护性建设的例子:模块化、OO设计原则(– SOLID、GRASP)、OO设计模式(Factory method pattern, Builder pattern、Bridge pattern, Proxy pattern、Memento pattern, State pattern)、基于状态的构造技术、表驱动的构造技术、基于语法的构造技术
问题二:可维护性(Maintainability)的度量
可维护性的含义:可轻松修改软件系统或组件,以纠正故障,提高性能或其他属性,或适应变化的环境。
可维护性的别名:可扩展性(Extensibility)、灵活性(Flexibility)、可适应性(Adaptability)、可管理性(Manageability)、支持性(Supportability)。
可维护性的度量标准