质量属性脚本引入的原因:4+1视图中“1”描述了系统的功能性需求,“4”描述了基于功能性需求和非功能性需求的设计,但是没有模型描述非功能性需求,因此引入了质量属性脚本。
分类:
一般质量属性脚本VS 具体质量属性脚本
(1) 一般质量属性脚本就是把对于给质量属性所有可能的具体质量属性脚本都合在一起表示,具体质量属性脚本是一般质量属性脚本的子集。
(2) 一般质量属性脚本更像是一个字典,构造具体质量属性脚本时,我们可以从中选择进行构造。
(3) 一般质量属性脚本与系统无关,适用于任何系统
(4) 具体质量属性脚本依赖于特定系统。
组成(6部分)
Source:产生激励的源头,例如有用户,系统内部操作,系统外部输入等
Stimulus:产生的激励,例如请求,超时,黑客攻击等
Artifact:受激励影响的系统部分,例如进程,存储器,处理器等。
Environment:受影响的系统部分的状态,例如正常运行等
Response:系统对于激励所进行的反应,例如忽略,通知用户,继续运行等。
Response Measure:对于响应的度量,以量化的方式描述系统的响应,例如响应时间,处理量等。
举例子:
雨课堂在上课高峰期,多人同时通过直播上课
质量属性:速度
具体方面:要求在15s内允许所有人进入各自课堂。
激励源:学生
激励:学生进入课堂的请求
工件:进程
环境:正常操作
响应:系统正常处理进入课堂的请求
响应度量:系统在15s内完成响应。
Tips:
1. 质量属性脚本要求很具体,要有具体的数值表示。
2. 针对不同的应用场景,会有不同的脚本,即一个质量属性可能会从多方面去进行评估,所以会有多个质量属性脚本。