软件质量指标

软件内部/外部质量指标
外部质量因素影响用户,内部质量因素影响软件本身和它的开发者,外部质量取决于内部质量

外部质量:

  1. Correctness 正确性:按照spec执行,得到正确的结果,软件的行为要严格符合规约中定义的行为
    保证正确性:测试和调适、防御式编程,形式化方法(形式化语言)
    encapsulation, decentralization 封装、分散化
  2. Robustness 健壮性:针对异常情况的处理:出现规约定义之外的情形,软件做出恰当的反应(出现异常时不要崩溃),未被spec覆盖的情况即为"异常情况"
    encapsulation, error handling封装、异常处理
  3. Extendibility 可扩展性:是否容易使软件适应规约的变化
    提升可扩展性的两个原则:简约主义设计,分离主义设计
    encapsulation, information hiding封装,信息隐蔽(结构良好的对象有简单的接口,并且不向外界显漏任何内部机制。)
  4. Reusability 可复用性:一次开发,多次使用,发现共性
    modularity, component, models, patterns模块化、组件、模型、模式
  5. Compatibility 兼容性:不同软件系统之间相互可容易的集成
    保持设计的同构性:标准化文件格式,标准化数据结构,标准化用户接口
  6. Efficient 性能
  7. Portability 可移植性:软件可方便的在不同的技术环境之间移植:硬件、操作系统
  8. Ease of use 易用性:易学、安装、操作、监控
    给用户提供详细的指南,结构简单
  9. Functionality 功能
  10. Timeliness 及时性:及时发布等
  11. 其他质量:verifiability 可验证性、integrity完整性,repairability可修复性,economy经济型

内部质量:
代码相关:lines of code(LOC)、cyclomatic complexity 循环复杂性
结构相关:coupling耦合度(多个模块间联系),cohesion聚合度(一个模块;高内聚,一个程序只执行一种功能) (应当 高内聚低耦合,单一责任原则)

  1. Readability 可读性
  2. Understandability 可理解性
  3. Clearness
  4. Size

最重要的几个质量因素:
Correctness and robustness: reliability(可靠性)
Extendibility and reusability: modularity(模块化)

你可能感兴趣的:(软件质量指标)