软件构造的质量指标

1.    软件系统的质量指标包括:外部质量因素和内部质量因素。

    外部质量因素:使用是否简易,速度性能是否优秀等,其影响到

    的是用户。而内部质量因素影响到的是软件本身和开发者。虽然

    在结果上看,只有外部质量因素重要,但外部质量因素是取决于

    内部质量的。

2.    外部质量因素的种类:

(1) 正确性(correctness)。关注有关软件是否按照预先定义

    的“规约”执行。是至高无上的质量指标。

    确保正确性的方法:

    a. 在软件系统中进行分层,每一层都保证自己的正确性,同时假

    设其下层是正确的。其与可复用性密切关联。

    b. 测试和调试,发现不正确,消除不正确。这与健壮性密切关联

    c. 防御性编程,在写程序时就确保正确性。其与健壮性相关。

    d. 形式化方法:通过形式化验证发现问题。可通过形式语言(研

    究生课程)来保证这一点。

(2) 健壮性(Robustness)。针对异常情况进行处理。

   -健壮性是对正确性的补充:正确性要求软件的行为要严格地符合

    规约中定义的行为。而健壮性要求在出现规约定义之外情形的时

    候,软件要做出恰当的反应。

    在程序出现异常时,健壮性要保证程序不“崩溃”。

    这就关系到后续学习的异常处理机制

    健壮性所言的“正常”与“不正常”是主观的而非客观的。

    - 未被规约覆盖的情况即为“异常情况”

    - 所谓的"异常",取决于spec的范畴

(3) 可扩展性(Extendibility)。关注的是:对软件的规约进行

    修改,是否足够容易。

    软件系统的规模越大,扩展起来越不容易。当传统的方法不足以

    解决新的,变化的问题时,就要考虑对其进行扩展。

    增强可扩展性的两个原则:

    a.    简约主义设计(Design simplicity)。

    b.    分离主义设计(Decentralization)。

(4) 可复用性(Reusability)。关注的是:软件内容一次开发,

    多次使用,而适用于不同应用的能力。要从不同软件系统中发

    现共性,提取共性。

    -Don't Repeat yourself:

                   

    -Don't Re-invent the wheel:

                  


(5) 兼容性(Compatibility)。关注的是:不同软件系统之间的

    相互可容易的集成。一个软件系统的开发不可能实在真空中进行

    的,其与其他系统一定存在交互和关联。

    要保证兼容性,就要保持设计的同构性,即要进行标准化:

    a.    标准化文件格式。

    b.    标准化数据结构。

    c.    标准化用户交互。

(6) 性能(Efficiency)。例如:软件系统占用的时间,空间(例

    如内部与外部存储,以及设备之间交流的带宽)。这些都可以度

    量软件系统的性能指标。

    几个需要注意的点:

    (a)正确性是前提,如果不能保证正确性,性能将毫无意义。

    (b)对性能的关注要与其他质量属性进行折中。

    (c)过度的优化将导致软件不再适应变化和复用。

    (d)要避免过早的优化。

(7) 可移植性(Compatibility)。关注的是:软件是否可以方便

    地在不同的技术环境之间移植。不仅指硬件,还指操作系统等。

(8) 易用性(Ease of use)。关注的是:软件对于不同背景和水

    平的来说,是否容易学习,安装,操作,监控。

    要给用户提供详细的指南,要简化结构,了解使用者。

(9) 功能性(Functionality)。程序设计中一种不适宜的趋势:

    即软件开发者增加越来越多的功能,企图跟上竞争,其结果是程

    序极为复杂,不灵活,占用过多的硬盘空间。

(10+)还有及时性(Timeliness),可验证性(Verifiability),

    完整性(Integrity),可修复性(Repairability),经济

    性(Economy)等等。

3.    不同质量因素间的折中(Tradeoff)

(1) 由于开发者不可能将所有质量因素全部满足,因此要进行折

    中。在正确的软件开发过程中,开发者应该将不同的质量因素之

    间如何做出折中的设计决策和标准明确的写下来。

(2) 虽然需要折中,但“正确性”绝不能与其他质量因素折中。

(3) 在所有质量因素中,最重要的质量因素:

    a. 正确性与健壮性 : 即可靠性。

    b. 可扩展性与可复用性:即模块化。

4.    OOP改进质量指标的方法:


5.    从八个视图,看软件构造的五个关键质量目标:

(1)Understandability


(2)Reusability


(3)Maintainability 和 Adaptability


(4)Robustness


(5)Performance



猜你喜欢

转载自blog.csdn.net/qq_38969070/article/details/80695290