外部软件质量
外部软件质量指软件所在的系统在指定条件下使用时,软件产品提供系统行为满足明确和隐含要求的能力。外部质量特征指软件运行过程中可观察的特征。例如,软件未出现运行故障,由此便可证明是可靠的 ;软件能有效处理大数据,而未遇到故障或出现效率低的情况,便可看作是可扩展的。
外部软件质量有时又叫作黑盒质量方法,因为质量的评估只通过检测软件执行而无须检查代码即可完成。因此,软件效率的黑盒视角能评估诸如运行时间或资源利用率之类的指标,但无法确定支撑高效运行的SAS最佳技术操作是否运行。黑盒测试会在第 16章“可测试性”部分进行讲解。
在传统的软件应用程序中,用户无法获得代码,只能通过黑盒测试方法评估外部的软件质量。因此,尽管外部软件质量特征对创建可靠、耐用、易于维护的代码非常重要,但我们只能向客户、用户及其他无法获取代码的利益相关者展示外部软件的质量特征。由于 SAS 软件用户通常都能获取基础的代码,因此,相对于其他语言来讲,黑盒和白盒测试(测试外部软件质量,后面部分会讲到这一点)之间的差别在 SAS软件开发中就显得不那么重要了。
功能性
功能的适用性指软件产品在特定条件下使用时,提供满足明确和隐含要求的功能的能力。但是,本书与ISO标准和大部分文献保持一致,使用的是功能性,而不是功能的适用性。而且,在需求文档中,功能性需求指的是技术性而非性能上的要求——例如,规定紫色为分析报告中的准确色调以满足大众要求。
外部软件质量的核心特点是功能性,缺少了功能性,软件便没有了目标。本书和其他许多软件开发类文献省略了功能性,因为它描述的是具体的软件意图,而性能质量特征含义更广。去掉功能性,剩余其他的外部软件特征包含动态性能属性,如可靠性或效率,但如果缺少了功能,可靠和效率则无从谈起。
动态性能需求
性能需求指确定某个功能质量属性或某个功能性需求必须要达到某种程度的可衡 量的标准。动态性能需求指在软件运行过程中可观测的性能属性,换句话说,它们表 示的是除功能性之外的所有外部软件质量特征,如图2-3所示。动态指的是软件必须在运行中(在运转中)进行评估,而静态性能属性则指必须在软件的静止状态下, 通过代码检验进行软件评估。
在本书中,性能需求有时称作性能属性,尤其是描述一个在特定软件中并未要求的质量特征时,我们会用性能属性来表示。例如,如果某个SAS从业人员打算在软件计划中应用可扩展性和安全性原则,但又决定忽略安全性,那么由于软件并未要求或应用质量特征,安全性就会称作性能属性,而不是性能需求,以避免混乱。但通常来讲,这两个词是可以互换的。
由于所有的利益相关者都能观察到动态性能需求,所以通常来讲,动态性能需求 要比静态性能需求更重要,因此,也更容易被优先添加到软件设计和要求中。例如, 客户更容易理解运行速度较快的软件的优点,因为速度是可测量的。但是,除非该客 户有软件开发方面的背景,否则他可能很难理解在软件中添加模块化或可测试性的优 点,因为这些属性是无法直接测量的,它们的效果在运行中也是无法观测的。
图2-3 软件质量架构和维度的互动