美文网首页
系统好不好主要看质量属性

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

作者: CoryLiu | 来源:发表于2018-08-28 19:58 被阅读181次

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

质量属性为何重要?

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

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

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

质量属性都有哪些?

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

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

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

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

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

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

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

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

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

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

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

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

相关文章

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

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

  • 瓷砖要怎么选,怎么看瓷砖的质量呢?

    装修质量好不好,不光是要看施工的水平,还有材料的好坏。那瓷砖要怎么选,怎么鉴定瓷砖质量好坏呢?其实一点也不难,就这...

  • 怎么鉴定瓷砖质量好坏,别装完才发现不对劲

    装修质量好不好,不光是要看施工的水平,还有材料的好坏。那瓷砖要怎么选,怎么鉴定瓷砖质量好坏呢?其实一点也不难,就这...

  • 系统质量 & 配置管理

    1. 系统质量 系统质量属性主要有:可用性、可修改性、性能、安全性、可测试性和、易用性。 可用性: 是指系统能够...

  • 质量属性-商业

    定义 除了与系统直接相关的质量属性外,还有很多商业质量目标往往也会对系统的构架产生较大的影响。这些商业目标与成本、...

  • 架构笔记1

    1.软件的质量属性 质量属性效用包括:性能、安全性、可用性、可修改性 2.系统架构风险、敏感点和权衡点的定义 2....

  • Unity粒子系统

    主模块属性功能 Duration系统运行的时间长度。 Looping如果启用此属性,系统将在其持续时间结束时再次启...

  • 任务2.4 系统主界面的制作

    系统主界面的制作效果 实现MDI主界面的主要步骤 1、只要将窗体的IsMdiContainer属性设置为True,...

  • 主属性

    对于某个属性,如果这个属性存在于候选码中,那么它就是主属性。 主键与主属性的区别: 主属性:指主键列,即主键由一列...

  • 2018-12-03

    2.3系统主界面的制作 涉及到的控件:ToolStrip,StatusStrip,MenuStrip;控件重要属性...

网友评论

      本文标题:系统好不好主要看质量属性

      本文链接:https://www.haomeiwen.com/subject/mylfwftx.html