软件质量属性
张志流
(石家庄铁道大学,河北省石家庄市,050000)
摘要:软件架构(及软件架构设计师)重点关注的是质量属性。软件质量特性包括功能性、可靠性、易用性、效率、可维护性、可移植性等 6个方面,每个方面都包含若干个子特性。
关键词:质量属性;体系架构;软件
Software quality attribute
Zhangzhiliu
(Shijiazhuang Tiedao University,Shijiazhuang City, Hebei Province,050000)
Absrtact: Software architects (and software architects) focus on quality attributes. Software quality features include functionality, reliability, ease of use, efficiency, maintainability and portability, each of which contains several sub-features.
Keywords: quality attributes; architecture; software
为了了解软件的质量是否满足要求,我们必须定义软件的质量属性(Quality Attributes)。同时质量属性也是影响软件架构的重要因素。软件架构主要由需求决定,需求有功能性的和非功能性的,其中非功能性的需求主要就是指质量属性,即各种“性”(“-ilities“)。wikipedia上列出了大概80种不同的质量属性,下面我们讨论一下其中最常见的属性。
以网购平台为例
可用性分析
定义:可用性是指系统正常运行时间的比例,是通过两次故障之间的时间长度或在系统崩溃情况下能够恢复正常运行的速度来衡量的。
场景:双十一期间优惠活动,使得商品点击量、订单剧增
刺激源:京东用户
刺激:短时间内产生大量点击、订单,导致京东响应缓慢,甚至一度陷入瘫痪,网页无响应、无显示
制品:京东的处理器、通信通道、进程、存储器
环境:用户的正常使用(浏览、点击、下单)
响应:京东出现“302 Found”、“网页无响应,请检查网络重试”等提示信息,引导用户刷新等待系统恢复
响应度量:系统降级模式下继续运行,用户刷新页面或者重新登陆后可以继续正常使用
可修改性分析
定义:在一个可运行软件中,为了满足用户需求、环境改变或者软件错误发生时,进行相应修改所做的努力程度。可维修性反映了在用户需求改变或者软件环境发生变更时,对软件系统进行相应修改的容易程度。一个易于维护的软件系统也是一个易理解、易测试易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。
简单实用举例:
淘宝网站首页可以适应活动、节日等做出相应改变。
对一件商品的信息进行修改时,不会影响其他的商品和功能
商品信息可以随时更新
为了适应某些节日活动等,可以推出相应的优惠活动方式,比较方便,例如增加跨店满减、本店满减相对应得活动等。
性能分析
定义:性能是指系统的响应能力——即对外部刺激(事件)做出反应时所需要的时间或在某段时间内处理的事件个数。
场景:用户下单
刺激源:京东用户(买家)
刺激:购买商品、下单
制品:系统生成订单
环境:京东正常运行
响应:京东生成订单,提示用户进行支付,监测网络环境、支付环境
响应度量:在短时间内显示、更新商品及支付状态、显示交易的完成度
安全性分析
定义:安全性是衡量系统在向合法用户正常提供服务的情况下,组织非授权使用的能力。
就淘宝而言,其拥有良好的安全体系结构设计:
身份认证:淘宝的身份证认证体系,个人认证,商家认证,均需提供个人身份信息,从虚拟网络映射到显示,实现可监察。
数字证书:对淘宝的网页端,数字证书也为密钥。在进入一些网站时,部分浏览器都会对其进行核验,它包含着身份验证机构数字签名等信息,充分保证了用户的财产安全
动态密码:长时间未登录的账户,或频频换移动端的用户经常使用的服务,这个一次性的密码会随时更换,很难被他人仿冒
最后不得不提的便是淘宝的第三方支付,由各大银行签约,还有第三方机构-支付宝等,支付宝的强大让人深有体会,信誉更是有保障,曾经也有节目测试,当你入侵了支付宝,他也能检测出风险及时进行中断。如果真的出现安全问题,支付宝也会进行全额补偿。
可测试性分析
定义:可测试性的响应度量处理的是测试在发现缺陷方面的效率以及想要达到某个期望的覆盖范围,需要多长时间进行测试。
场景:单元测试人员测试商品下单模块
刺激源:单元测试人员
刺激:测试人员选择商品,进行下单
制品:商品下单购买模块的代码
环境:在开发时进行
响应:通过下单等操作,实现商品拟购买成功
响应度量:即时更新商品状态、检测网络、支付环境
易用性分析
定义:关注的是对用户来说完成某个期望任务的难易程度。
场景:用户第一次尝试网购
刺激源:京东新用户
袭击:用户希望快速了解如何有效使用系统,避免犯错,实现网上购物的快速、便捷。
制品:京东网站
环境:网页正常运行
响应:根据网页内的提示、相关按键,引导用户正常使用网站。
响应度量:跟随系统提示即可快速上手,实现正常的网购。
[1] naughty,软件中的质量属性(一)https://my.oschina.net/taogang/blog/224658
[2] naughty,软件中的质量属性(二)https://my.oschina.net/taogang/blog/225513
[3] wxdbk, 质量属性的概念和使用场景的分析
[4] 刚是程序员,软件中的质量属性(一)https://blog.csdn.net/github_39335046/article/details/73933632