从个人认知简单总结一下软件的质量属性。
从交付的角度讲:
正确性 ——功能正确,符合要求;
易用性 ——操作简单,不用思考,符合目标用户使用习惯;
稳定可靠性 ——能在一定时间范围内长期运行,并且经得起异常考验;
从开发维护的角度讲:
可读性 ——出于功能需求,算法和结构可以很复杂,但是代码和注释一定要干净、简洁,易于阅读;
可扩展性——让后续在应对多变的需求时代码改起来更容易些;(良好的架构应该是对扩展开放,对修改关闭的)
效率 ——从算法选择,局部优化,代码质量等入手;
健壮性 ——所谓高手考虑问题比较全,写的程序不容易死;
可复用性——同样的功能不做重复编码;
兼容性 ——通常软件都会考虑向后兼容;
可移植性——不得已不使用特定环境才支持的语法特性,比如尽量采用标准C/C++;
GB/T 16260.1-2006定义了6个质量特性和21个质量子特性,它们以最小的重叠描述的软件质量。见下表。
功能性(5) | 适合性、准确性、互操作性、依从性、安全保密性 |
可靠性(3) | 成熟性、容错性、可恢复性 |
可用性(3) | 可理解性、易学性、可操作性 |
效率(2) | 时间特性、资源特性 |
可维护性(4) | 可分析性、可修改性、稳定性、可测试性 |
可移植性(4) | 适应性、易安装性、一致性、可替换性 |