软件产品质量模型
软件产品质量模型是“确定的一组特征以及各个特征之间的关系,是一个用于确定质量要求、评估质量的框架”。图2-1所示为ISO软件产品质量模型,其中列举了 8个属性和 40个子属性。
图2-1 ISO软件产品质量模型(选自ISO/IEC25000:2014)
ISO质量模型的一个重要特点是将功能性与其他 7个质量属性放在平行的位置上。由于每个 SAS软件产品的功能性各有不同,因此,尽管功能性是每个软件项目的核心,但本书的重点并不在此。除非特别强调,所有的SAS代码范例都默认是满足软件的功能性需求的。下面会在每章中对软件产品质量模型中的多个质量模型属性和子属性进行详细讲解。
图2-1中的软件产品质量模型与我们在本书中逻辑呈现的模型略有不同,但两者之间并不冲突。动态性能需求中所涉及的外部质量维度包括可靠性、可恢复性、稳 健性、运行效率、效率、可扩展性、可移植性、安全性及自动化。静态性能需求中所 涉及的内部质量维度包括可维护性、模块化、可读性、可测试性、稳定性及复用性。 图2-2是本书的结构,它适合ISO软件产品质量模型。
图2-2 软件质量模型
本书有两个质量维度——稳定性和自动化不在 ISO 模型内,因此单独解释一下。
软件稳定性指软件耐维修、无须修改或仅做轻微变动即可正常运行的能力。在传统的 软件开发环境中,由于软件是为第三方用户生产的,所以软件一旦经过测试、验证并 投入使用,开发人员便没有机会再接触到自己创建的软件。因此,测试是非常重要的,通过测试,软件的所有缺点和漏洞在发布之前即可消除。软件测试失效就需要向用户 发送补丁或更新包,这样做既费时又费力,而且会让用户对软件失去信心。
与许多软件应用程序不同,BaseSAS软件能够在互动模式下运行,在这个模式下,SAS 应用程序是手动打开的,代码是手动执行的,日志是手动浏览的。SAS代码的互动性鼓励开发人员不断地修改和调整代码,这仅仅是因为他们有权这样做,但这样做 降低了软件的稳定性。出于这个原因,我们要用一章来讲述软件稳定性的优点,包括 它作为代码测试、复用性、可扩展性和自动化先决条件的作用。
软件自动化指软件在无须人工干涉(或轻微干涉)的情况下自动运行,在传统软 件开发中,由于用户希望与一个可执行的程序互动,而不是去处理一些需要自己编译 的原生代码,因此,软件的自动化是必需的。SAS 互动模式足以运行一些生产软件,但 SAS软件必须能可靠、定期地运行,而自动化(以及程序组工作的后续安排)能很好地实现这一目标。SAS软件的自动化还包括通过软件大规模生产 SAS会话,借助平行处理提升性能。