几类系统需要关注的质量属性

前一篇文章,总结了三高系统所关注的一些重要质量属性。就想到,其实不同类型的系统对质量属性也往往要求大不一样。

下图是软件系统架构设计时,需要关注的一些软件质量属性。

开发期质量属性,是开发人员或后期的维护人员比较关心的,这些质量的好坏,往往会影响到开发和维护成本。而运行期质量属性,则是最终用户比较关心的,因为其在使用时是能切身体会到这些效果的,故而会影响用户对整个系统的满意度。

所以,对于基于互联网的系统而言,其更关注的是:性能、可用性、伸缩性、扩展性、安全性。这些大多都是运行期的质量属性。而这几年互联网、移动互联网公司越来越热,所以这些公司在讨论设计时,往往是针对三高系统的设计,如:大流量、高并发、大数据量、集群、缓存等,详见上篇博客:《三高系统常用架构模式》。

而对于企业级应用系统而言,其更关注的则是开发期的质量属性。因为 2B 的软件开发公司,关注的更多的是快速开发、快速实施的开发成本,以及后期的维护成本。所以在这些公司的架构师在讨论设计时,往往谈论的是快速开发平台、快速实施平台、业务组件级的大粒度重用等。

再如,游戏的架构设计,则更为复杂。特别是现在的网络游戏,几乎大部分质量属性的要求都会很高。一个好的架构设计,即会影响用户体验、公司的收入,也影响到开发一款新游戏的开发成本。所以厉害的游戏公司,可以很快地通过累积的游戏框架或引擎开发出一款新的游戏,也能在三高的情况下保证用户的体验,甚至还能在运行期不间断的快速持续更新。

当然,上面说的只是简单粗略的划分。其实不同的系统,往往要求都不同,我们不可一概而论。应该说,所有的系统,都应该对开发期、运行期的质量属性进行分析。所以,架构师在做软件架构设计时,需要针对不同类型的系统,对质量属性进行具体的分析。这需要通过与 Stake Holder 的沟通,分析出目标系统对这些质量属性的要求,然后排列出质量属性(非功能需求)的重要度、优先级,以作为架构设计的主要目标。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

成为 C加加 高级工程师必备的几个条件,全部具备绝对是大牛级的存在

C++这门语言从诞生到今天已经经历了将近30个年头。不可否认,它的学习难度都比其它语言较高。而它的学习难度,主要来自于它的复杂性。现在C++的使用范围比以前已经...

32390
来自专栏IT大咖说

Serverless架构开发与SCF部署实践

近两年,Serverless技术的崛起让不少人看到了程序员减压甚至解放的希望,但开发难度和入门门槛却阻碍了这一技术的进一步扩张。开发难度、执行环境、代码运行等都...

15510
来自专栏DevOps时代的专栏

DevOps实施:项目群管理(PPM)中的需求和计划管理

本文面向的是企业IT用户(尤其是每年要投入数以百计的人力,开发维护十几个甚至几十个上百个上不同系统的企业),在组织范围内的计划和需求消耗太多的问题。而对于只有十...

20290
来自专栏前沿技墅

从ITOM到AIOps:IT运维管理向智能运维的进化

66050
来自专栏祝威廉

高昂的PR,开源的困惑

我是个急性子,所以没怎么成功给社区提过PR,除非那个项目是我自己的,或者社区让我有直接Merge的权限。好比之前吐槽完SDL开发太慢后,自己直接fork了一份,...

9120
来自专栏西枫里博客

八大因素影响关键词排名

1、这种文章的...

9320
来自专栏飞雪无情的博客

什么是专业

当我们看到一个人做事的时候,我们可以很快的判断这个人是否专业?哪怕这个人从事的行业和我们相去甚远,甚至千差万别,我们也可以很快的判断出来,不过「专业」这个词的表...

12240
来自专栏ThoughtWorks

ThoughtWorks 2015年11月期技术雷达正式发布!

点击【阅读原文】或复制打开以下链接,即可下载同步发行的技术雷达中文版: https://assets.thoughtworks.com/assets/techn...

37390
来自专栏ThoughtWorks

服务蓝图再思考 | 洞见

服务蓝图(Service Blueprint)是服务设计中重要的实践之一,本文将回到这一实践的本源,重新思考其核心逻辑在新的消费环境中是否需要演进。 溯源 服务...

48550
来自专栏芋道源码1024

年薪50w+的阿里p7专家,顶尖的技术人才,只因做到了这几点

最近部门招聘,很多工程师,包括我在内都参与了内推和面试的过程,经过这次招聘,我发现能够最终拿到offer的人,基本上在看到简历的那一瞬间就已经定下来了,后续的面...

23350

扫码关注云+社区

领取腾讯云代金券