系统好不好主要看质量属性

软件属性分为功能属性和质量属性,
功能属性指的是软件可以做什么,可以实现什么功能。
质量属性指的是软件怎么样,比如好不好用,稳不稳定。

质量属性为何重要?

早年同时用过诺基亚手机和苹果手机的人都知道,论功能,诺基亚手机其实比苹果多很多,当年苹果刚出来时,凡是苹果有的功能,诺基亚都有,可每一个功能,苹果都更好用,在易用性上,苹果完胜诺基亚,于是最终结果大家都知道了。

对于一套软件系统,质量属性甚至比功能属性更重要。

实现一个功能可能会有很多方式,不同的方式,功能一样,质量却大不相同。系统架构设计,就是在软件设计大的层面上做出选择,以实现软件系统的质量属性需求。

质量属性都有哪些?

软件系统都有哪些质量属性呢?主要有如下这些,

  1. 可靠性
    可靠性,也叫可用性,是指软件可长期稳定运行的能力,一般用一段时间内故障时间与正常运行时间比来评估。可靠性高的系统,能够长期不出错,或者出错后可以快速从错误中恢复。

  2. 可修改性
    当需求发生变更或者环境发生变化时,系统是否可以快速得到调整,就体现出系统的可修改性。好的系统要求可以方便快速修改。

  3. 性能
    指系统的在用户发出指令后响应的时间,及单位时间内处理事务的数量。性能好的系统,可以快速响应用户的指令,能在单位时间内完成更多的事务处理。简单来讲,就是要快。

  4. 安全性
    指系统不会被无关人员滥用,系统数据不管在存储还是传输过程中都有得到妥善的保护。

  5. 可测试性
    指系统方便被测试,以验证系统的业务逻辑确实与系统规格要求一致。

  6. 易用性
    指系统方便使用,可以很快上手,使用过程中不用操作复杂的步骤,没有需要记忆的隐蔽的功能点。一个字来形容,就是要让用户用起来爽。

实现质量属性有哪些常用方法

要实现这些质量属性,在软件架构设计时,是有一些方法,或者说套路可以使用的。

  1. 可靠性
    要提高系统的可靠性,可以从错误检测,错误恢复,错误预防三个方面下功夫。
  • 心跳设计,是一个错误检测机制,让系统定期向另外一套检测系统发生固定信息(类似心跳),当检测系统在固定时间内没有收到信息时,即可以判断对方系统发生了故障,即刻启动恢复或者报警程序。
  • 冗余设计,冗余是属于一种错误恢复机制,即提前准备好一套备用方案,当主方案发生错误时,系统自动按照预先设计好的备用方案执行。
  • 事务设计,属于错误预防机制,即绑定一系列密切相关的步骤,要么全部成功,要么全部不成功,避免数据不一致的情况发生。最典型的一个例子就是银行转账,一个账号出,一个账号进,不能把钱在路上转丢了。
  1. 可修改性
    提高系统可修改的方法,包括局部化修改,防止连锁反应,推迟绑定时间。
  • 局部化修改,即设计期间,按照责任分配模块,将预期的变更,限定在一定范围内。
  • 防止连锁反应,比如尽可能对接口编程,且维持接口规格不变。每个模块对外公开尽可能少的信息,隐藏一切不必要的信息。
  • 推迟绑定时间,就将有可能的修改,尽量用配置文件,或者其他后期让非开发人员可调整的方式实现。
  1. 性能
    提供性能,可以通过减少资源的消耗,或者改善资源的管理及调度实现。
  • 改善算法,以减少资源的使用,提高计算效率
  • 引入并发,几个任务同时进行,减少用户等待时间。
  • 分配不同任务不同优先级,比如在视频会议系统中,优先保证语音的传输,以改善系统整体性能体验。
  1. 安全性
    提高安全性,可以采用的方法有,抵抗攻击,检测攻击和从攻击中恢复。
  • 对用户身份进行校验,增加校验码输入 等都是抵抗攻击的方法
  • 通过对访问的来源,频率检测,检测可能发生的攻击行为是抵抗攻击的一种方式
  • 攻击中恢复即在检测到攻击行为发生后,按照预先设计好的方案执行动作
  1. 可测试性
    可以通过输入输出和内部监控的方式来提高可测试性。
  • 记录/回放,捕获跨接口的调用信息,作为测试软件的输入信息
  • 内部监控,激活监视器,将事件记录下来以供测试检查使用
  1. 易用性
    包括即时提供系统辅助信息,提供用户操控性
  • 比如在特定界面,预期用户接下来的行为,告知用户可以做什么操作及如何操作
  • 在系统执行过程中,提供用户主动取消等操控功能

好的系统一定是质量好的系统

好的系统与差的系统,可以天差地别,用户一用便知。就如乔布斯所说,客户也许不知道自己想要的是什么,但是如果你同时提供两套系统给客户,客户会知道如何选择,好的系统一定是质量好的系统,而不是功能多的系统。架构设计师,应该要在质量属性上下功夫。特别要注意的是,有些质量属性之间是互相冲突的,比如安全性与易用性,安全性提升了,易用性可能会降低,架构设计时还需要拿捏平衡。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,401评论 25 707
  • 第九章 软件架构设计 9.1 软件架构概述 9.1.1 软件架构的定义 定义1:软件或计算机系统的软件架构是该系统...
    步积阅读 4,763评论 0 17
  • 三个月前我开始了培养自己每天记录的习惯,如果回想一开始的目的,我希望自己每天都能学点什么,然后输出出来,通过这种输...
    Gzw丶南山阅读 152评论 0 0
  • 周末宅在家,重温了一遍林依晨和陈柏霖主演的《我可能不会爱你》。 每次看这部剧,我都会思考相同的一个问题:程又青和李...
    张易馨阅读 594评论 0 3
  • 来爱我吧,带上残余的火,和干粮别的什么都可以不带——房子太重,就种它在山上书信太疼,就扔它进火里千万不要纵火烧山(...
    讷言不敏阅读 1,833评论 21 18