从质量属性到模式:软件架构的关键指引
在软件项目的开发过程中,明确架构需求是至关重要的。而质量属性和质量属性场景为描述架构需求提供了有效的方法。下面我们将深入探讨质量属性以及如何将其与合适的模式进行匹配。
1. 质量属性简介
软件项目的需求主要分为两类:功能性需求和非功能性需求。
- 功能性需求 :描述了软件解决方案必须完成的任务,通常以用例或故事的形式表达。例如,用户与系统交互时执行的操作,像填写订单、更新客户详情、批准贷款等。
- 非功能性需求 :指系统预期具备或展现的属性,常见的有性能、安全性、可用性等方面的要求,也被称为“质量属性”。
以下是质量属性及相关概念的正式定义:
- 质量属性 :软件的一种特性,是适用于质量因素、质量子因素或度量值的通用术语。
- 质量因素 :从管理角度衡量软件对其质量有贡献的属性,通常用“质量属性”来替代这一表述。
- 质量子因素 :将质量因素或质量子因素分解为技术组件,这里称为“具体属性”。
- 度量值 :度量的输出结果或属于度量范围的元素。
- 软件质量度量 :输入为软件数据,输出为单个数值的函数,该数值可表示软件具备影响其质量的给定属性的程度。
大多数驱动软件架构设计的需求来自系统的质量属性,因为质量属性的影响通常是系统级的。例如,我们期望系统整体性能良好,而不仅仅是用户界面部分。不过,也