软件系统的质量属性

  软件系统的质量因素可分为外部因素和内部因素。外部质量因素影响用户的使用,而内部因素影响的时软件本身和软件的开发者。外部质量取决于内部质量。

  一些重要的外部因素:

1)Correctness(正确性):软件的行为要严格的符合规约中定义的行为,可通过测试和调试、防御式编程、通过形式化验证来保证正确性;

2)Robustness(健壮性):健壮性是对正确性的补充,要求在出现异常时系统不会崩溃,需要我们针对异常情况进行处理;

3)Extendibility(可扩展性):表述在规约发生变化时,软件是否容易应对这种变化进行修改。简约主义设计和分离主义设计(模块化)是提升可扩展性的两个重要原则;

4)Reusability(可复用性):一次开发多次使用,可以降低开发成本。要求我们能够发现不同需求中的共性,避免问题的重复处理。

5)Compatibility(兼容性):不同软件系统之间相互可容易地集成。增强兼容性的难点在于不同软件往往有着不同的设定或规定,比如许多操作系统支持的文件格式不兼容。兼容性关键在于要保持设计的同构性、标准化。

6)Efficiency(性能):要求尽可能降低软件系统对硬件资源的需求,但注意也要和其他质量因素比较折中,不要一味追求性能而忽视如可复用性等的其他质量因素;

7)Portability(可移植性):软件可方便地在不同技术环境之间移植。可移植性不仅涉及物理硬件的变化,而且更广泛地涉及硬件-软件机器的变化,也就是我们真正编程的机器,它包括操作系统、窗口系统和其他基本工具。

8)Ease of use(易用性):易于用户操作使用,如可提供给用户详细的操作指南等;

9)Functionality(功能性):使其更富功能性,能完成更多功能操作。但也要注意与其他性能的折中,尽可能减小对其他性能的损害;

10)Other qualities:Timeliness及时性、Verifiability可验证性、Integrity完整性、Repairability可修复性、Economy经济性。

  一些重要的内部因素:

代码相关:Lines of Code (LOC代码行数), Cyclomatic Complexity(圈复杂度),等;

结构相关:coupling(耦合度), cohesion(内聚度),等;

可读性、可理解性、清晰、代码规模大小。

 

软件构造的五个关键质量目标:

Easy to understand:易理解,如进行代码注释、规范的ADT/函数规约等;

Ready for change:增强可维护性和适应性,如代码的模块化设计、关注聚合度、耦合度等;

Cheap for develop:增强可复用性,如接口的设计与分离;继承、重载、重写;多态的运用等;

Safe from bugs:增强健壮性,如进行错误处理、异常处理、防御式编程等;

Efficient to run:好的软件系统性能,如代码调优、并行、多线程的应用等。

posted @ 2022-06-08 21:38  地瓜丸  阅读(626)  评论(0编辑  收藏  举报