知识卡片
运行期质量属性的八项定义
内容
运行期质量属性是软件系统运行期间最终用户能直接感受到的一类属性,直接影响用户对产品的满意度,书中把常见质量属性分类模型(如McCall等人1977年提出的产品操作/产品修改/产品改型三分类)与迭代式开发下”开发-修改-维护界限日益模糊”的现实结合,重新划分为运行期质量属性和开发期质量属性两大类,比传统分类更贴合实践。运行期质量属性共八项:性能(及时提供服务的能力,具体拆成吞吐量——单位时间处理的交易数、速度——平均响应时间、持续高速性——保持高速处理的能力,其中持续高速性和硬实时/软实时系统直接相关;性能是”表”,效率——对CPU/内存/硬盘/网络等资源的使用效率——是”里”,两者是同一问题的两面);安全性(同时兼顾向合法用户提供服务、以及阻止非授权使用的能力,”同时兼顾”很关键,因为有些攻击的目的恰恰是让系统拒绝向合法用户提供服务而非窃取数据);易用性(软件易于使用的程度,为避免和持续可用性混淆而不用”可用性”这个叫法);持续可用性(系统长时间无故障运行的能力,同理为避免和易用性混淆而不叫”可用性”);可伸缩性(用户数和数据量增加时维持高服务质量的能力,例如通过增加服务器或增加单机运行实例数提升性能、而无需对系统本身做编程级修改);互操作性(本系统与其他系统交换数据、相互调用服务的难易程度);可靠性(一定时间内无故障运行的能力);鲁棒性(也称健壮性/容错性,指用户进行非法操作、相连软硬件系统发生故障等异常情况下系统仍能正常运行的能力)。
参考来源
- 位置:《软件架构设计:程序员向架构师转型必备》第5章《需求分析》"5.3.3 质量"节(源文件:_epub-src/OEBPS/text00008.html)
- 结论依据:原文逐一定义性能、安全性、易用性、持续可用性、可伸缩性、互操作性、可靠性、鲁棒性八项运行期质量属性,并说明"运行期质量属性是软件系统在运行期间,最终用户可以直接感受到的一类属性,这些质量属性直接影响着用户对软件产品的满意度",直接支撑本卡片结论。
- 原始内容:性能(Performance)。性能是指软件系统及时提供相应服务的能力……安全性(Security)。安全性指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力……可伸缩性(Scalability)。可伸缩性指当用户数和数据量增加时,软件系统维持高服务质量的能力。