架构阅读笔记7
质量属性与系统功能关系
摘要:本文叙述系统的质量属性的种类,及其相互关系,如何影响系统功能,如何使系统达到相对完善。
关键词:软件 质量属性 功能 商业质量
系统质量属性有可用性、可修改性、性能、安全性、可测试性、易用性。在复杂的系统中,任何属性均不是孤立存在的,任何一个质量属性的实现都会对其他质量属性的实现带来积极或消极的影响[1]。例如,密码设置越繁琐复杂,其安全性越高,而相对而言对于用户来说记忆难度加大,减弱其易用性。系统的完成,需要这些属性通力合作,博弈出一条最适合、功能性最强的一条路。任何软件没有绝对完美的,只有相对完美的。
就连腾讯帝国的社交软件QQ从开发至今盗号屡见不鲜,而支付宝的盗号却少之又少。不是腾讯比阿里弱,而是两者对安全性的要求级别不同,支付宝与支付有关,若被盗,将损失不小资产,引起用户恐慌,使支付平台难以被信任,其也难以吸引用户使用;而腾讯QQ由于创建时间早,早期QQ号码随便申请,无人知道其价值,安全性也非常差,但随着互联网移动支付的时代到来,社交与支付的结合,腾讯公司在安全性方面增加了安全中心、各种验证方式使其安全性增强。故安全性很重要,但是需要与软件产品的功能相适应。
除了上述与系统直接相关的质量属性外,还有很多商业质量目标往往也会对系统的功能、架构产生较大的影响。
例如上市时间。若将系统的每一个方面都做得无懈可击,其开发周期将会延长,而上市时间则决定在市场的占有率,因此通常使用预先构造好的元素或重用以前项目的元素来缩短上市时间[1]。大多数项目使其达到某种级别即可推向市场。
成本和收益也对系统开发有限制,例如,应采用开发阻止并不具有的技术实现架构的成本远高于已存在资产实现架构[1]。花两万元做的项目,使其易用性、性能等达到顶级也是不可能的。
所希望的系统生命期的长短。如果希望系统生命期很长,则其可修改性变得很重要,为其推迟上市时间也尤为不可,同时可修改性在市场上存在较长时间,也延长了其生命期。
目标市场,对于通用软件,系统所运行的平台及特性集决定其市场的大小,比如一些网页,其在电脑端同浏览器上具有美观与可用,同样在移动端不会因为缩小导致其变形。各种软件可以兼具在ios、android、windows系统使用。因此,可移植性和功能性成为占据多大市场的关键。
每个人对质量属性有不同的分类,系统的质量属性众说纷纭,定义模糊。其解决方法是使用质量属性场景,将其分为刺激源、刺激、环境、制品、响应、响应度量,来面对特定的质量属性,减弱差异性。
质量属性是一场综合的博弈,受方方面面条件的影响,如何使其综合能力最强,是我们需要努力的方向。
参考文献:
[1]林·巴斯[Len Bass],(美)保罗·克莱门茨[Paul Clements],瑞克·凯兹曼[Rick Kazman].软件构架实践[Software Architecture in Practice].第二版,北京,63-85