软件体系架构的质量属性

摘要:软件架构(及软件架构设计师)重点关注的是质量属性。本文从常见的六个质量属性,即可用性、可修改性、性能、安全性、可测试性、易用性写起,使读者对其有初步的认识和了解。解决了在具体的软件开发环境中的质量属性是什么,怎么用,如何用好的问题。只用遵循质量属性的原则,才能有好的设计思想,才能开发出好的软件产品。

关键字:质量属性、软件体系架构、架构设计

软件属性包括功能属性和质量属性,但是软件架构重点关注的是质量属性。架构的基本需求主要是在满足功能属性的前提下,关注软件质量属性。软件的质量属性可列举很多,也有各种不同的分类法和不同的表述。一般将质量属性分为3类:

     系统的质量属性。可用性,可修改性,性能,安全性,可测试性和易用性。

     受架构影响的商业属性(上市时间)。

     与架构本身相关的一些质量属性(如概念完整性),它们会间接影响其他质量属性,如可修改性。

  1. 可用性(Availability

可用性与系统故障及其相关后果有关。当系统不再提供其规范中所说明的服务时,就出现了系统故障。

所关注的方面有:

1)如何检测系统故障

2)系统故障发生的频度

3)出现故障时会发生什么情况

4)允许系统有多长时间非正常运行

5)什么时候可以安全地出现故障

6)如何防止故障的发生以及故障时要求进行哪种通知

在计算可用性时,通常不考虑预定的停机时间(即停止服务),因为根据定义是”不需要“系统的。这就导致会出现这种情况:系统停止运行,用户等待系统提供服务,但因为停机时间是预定的,因此不计入故障时间,也就不会影响可用性的数值。

可用性定义:可用性是指系统正常运行时间的比例,是通过两次故障之间的时间长度或在系统崩溃情况下能够恢复正常运行的速度来衡量的。

可用性一般场景:所关注的方面包括系统故障发生的频率、出现故障时会发生什么情况、允许系统有多长是将非正常运行、什么时候可以安全地出现故障、如何防止故障的发生以及发生故障时要求进行哪种通知。   

实例分析:

刺激源:淘宝用户

  刺激:用户访问量过大,支付迟缓(双十一)

  环境:用户正常使用淘宝

  制品:淘宝服务器

  响应:系统会等待一段时间,之后可以进行付款

响应度量:等待一两分钟可以正常使用

2.可修改性(Modifiability

可修改性定义:在一个可运行软件中,为了满足用户需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。可维修性反映了在用户需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。

两个关注点:可以修改什么?何时以及谁进行修改。

实例分析:

  刺激源:淘宝开发人员

  刺激:节日、活动

  环境:淘宝服务器,系统

  制品:淘宝网

  响应:淘宝网会改变网页内容布局,出现各种节日效果

响应度量:不会影响使用

3.性能(Performance

性能定义:性能是指系统的响应能力----即对外部刺激(事件)做出反应时所需要的时间或在某段时间内所处理的事件个数。

性能是指软件及时提供相应服务的能力。具体而言,性能包括速度、吞吐量和持续高速性三方面的要求:

1)速度往往通过平均响应时间来度量;

2)吞吐量通过单位时间处理的交易数来度量;

3)持续高速性是指保持高度处理速度的能力。

实例分析:

    刺激源:淘宝开发人员

  刺激:淘宝用户

  环境:随机事件到达,购买商品

  制品:系统

  响应:请求被处理

  响应度量:响应时间不超过五秒

4.安全性(Security

安全性定义:安全性是衡量系统在向合法用户正常提供服务的情况下,阻止非授权使用的能力。

性是衡量系统在向合法用户正常提供服务的情况下,阻止非授权使用的能力。

试图突破安全防线的行为被称为“攻击”。攻击有以下三种方式:

1)未经授权试图访问数据或服务。

2)未经授权试图修改数据。

3)试图使用系统拒绝向合法用户提供的服务

实例分析:

    刺激源:非授权用户

  刺激:试图修改数据,修改商品价格

  环境:正常操作下

  制品:系统中的数据

  响应:对用户验证,阻止访问数据

响应度量:操作被拒绝,恢复数据

5.可测试性(Testability

可测试性定义:可测试性的响应度量处理的是测试在发现缺陷方面的效率以及想要达到某个期望的覆盖范围,需要用多长时间进行测试。

可测试性的响应度量处理的是测试在发现缺陷方面的效率以及想要达到某个期望的覆盖范围,需要用多长时间进行测试。

实例分析:

  刺激源:单元开发人员

  刺激:已完成构架和子系统的集成

  环境:开发时

  制品:代码段

  响应:准备集成环境

  响应度量:执行测试的时间

6.易用性(Usability

易用性定义:关注的是对用户来说完成某个期望任务的难易程度。

易用性与用户完成期望任务的难易程度以及系统为用户提供的支持种类有关。有两种类型的设计支持易用性,每种设计所针对的是两种类别的“用户”。第一类是运行时,包括那些在系统运行期间支持用户的设计。第二类基于用户接口设计的迭代特性,它在设计时支持接口开发人员。

分为以下几个方面:

1)有效性

2)错误避免及错误处理

3)用户自信和满意度

4)可学习性

实例分析:

  刺激源:最终用户

  刺激:搜索商品时,根据品牌、价格进行筛选

  环境:在运行时

  制品:系统

  响应:显示筛选后的数据

  响应度量:98%的用户对结果满意

7.总结

  软件质量属性的每一个方面都有很多的内容,我们只能浅尝而止,而且仍然有许多重要的质量属性我们还没有涉及到。软件设计时应该将“设备相关程序”与“设备无关程序”分开,将“功能模块”与“用户界面”分开。现在你是否也知道了常人是怎么评价软件的?没错,作为软件的用户我们只关心“好不好用”,它包含在这些专业指标之中,是其综合作用的结果。

 

posted on 2021-04-09 16:19  Lhxxx  阅读(710)  评论(0编辑  收藏  举报

导航