软件的可维护性可以从哪些方面来衡量?
可维护性作为软件质量属性之一,在军用软件开发的组织中却一直得不到重视。大概是因为这个质量属性主要影响维护成本,而这些组织更重视软件产品是否按期交付吧。
但是,随着竞争越来越激烈,软件开发和维护成本迟早要提上日程。
所以,我们还是有必要多了解一些可维护性方面的知识,为提高软件可维护性做好准备。
先让我们看看如何衡量软件的可维护性。
模块化水平
模块化设计可以使得软件部件之间的关系呈现出高内聚、低耦合的状态。这样一来,当一个软件部件发生更改的时候,其他的软件部件不会受到影响或者只受到很小的影响。所以,如果软件的模块化水平较高,软件部件之间是高聚合的,那么软件维护的成本就会较低。
灵活性
灵活性是指软件可以很方便地增加一个新的功能或新的数据,而不需要进行大量的代码修改或设计修改。如果软件的架构设计合理,有很好的扩展性,那么当维护需要增加新的功能或新的数据时,不需要进行大量的修改,也就是维护成本会较低。
可测试
这里的可测试并不关注需求是否可测,而是指测试查找缺陷的难易程度。如果软件设计实现时遵循了简单原则,软件的单元测试、功能测试、性能测试都能比较容易进行,那么当发生软件维护时所进行的测试验证的成本也会比较低。
可追溯性
这里的可追溯性是指任何一个需求的功能点都可以很容易地找到其对应的代码,同时,任何一个单元的代码都可以很容易地找到其对应的需求。这样就会使得进行维护时可以很容易地根据软件的功能障碍定位出错的代码位置。
简单性
简单性是指软件的设计遵循简单原则,如功能实现时尽量少用公共数据块,分离输入源和输出结果,避免重复代码等。遵循简单设计的软件相对来说可维护性也会较好。
自我描述性
软件可以通过文档自我描述,自我描述性反映的是可读性的好坏。软件的自我描述性是通过代码中有效的注释、有意义的变量命名等实现的。如果软件的自我描述性好,即使维护人员不是软件的开发人员,他也能很容易理解代码、理解设计,从而降低维护成本。
兼容性
兼容性是指软件能够在其外部环境发生一定程度变化时仍然能够正常工作。软件的兼容性越好,需要维护的状况越少。
文档的质量
进行软件维护时,少不了相关技术文档的支持。需求、设计以及测试文档是否齐全,是否符合标准、遵守模板,是否逻辑清楚、描述准确、用词恰当、容易理解,这些都影响维护的进程和成本。
软件的可维护性可以通过以上8个方面进行衡量。这也表明,如果软件在这8个方面都能做好,那么软件的可维护性必定会非常高。
这正是:
衡量好不好维护,八个方面可参照
如果这些都做好,维护成本不会高
参考书目:软件质量保证和管理,作者:朱少民,出版社:清华大学出版社