系统架构设计师:软件质量属性

        软件属性包括功能属性和质量属性,但是,软件架构重点关注的是质量属性,在大量可能的结构中,可以使用不同的结构来实现同样的功能性。

        即,功能性在很大程度上是独立于结构的,架构设计师面临着决策(对结构的选择)。

       架构设计师追求质量属性常常陷入“鱼和熊掌”的两难境地。

一、运行期质量属性

1.性能:指软件系统及时提供相应服务的能力,包括速度、吞吐量和持续高速性等几个方面。

2.安全性:指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。

3.易用性:指软件系统易于被使用的程度。

4.可伸缩性:指当用户数和数据量增加时,软件系统维持高服务质量的能力。

5.互操作性:指软件系统与其他系统交换数据和相互调用服务的难易程度。

6.可靠性:指软件系统在一定的时间内无故障运行的能力。

7.持续可用性:指软件系统长时间无故障运行的能力。

8.鲁棒性:指软件系统在一些非正常情况下,仍然能够正常运行的能力。

二、开发期质量属性

1.易理解性:指软件系统被开发人员理解的难易程度。

2.可扩展性:指软件系统适应新需求或者需求变化而增加新功能的能力。

3.可重用性:指软件系统可以重用的难易程度。

4.可测试性:指对软件系统测试以证明其满足需求规范的难易程度。

5.可维护性:当需要修改缺陷、增加功能、提高质量时,定位修改点并实施修改的难易程度。

6.可移植性:将软件系统从一个运行环境转移到另外一个不同的运行环境的难易程度。

三、质量属性的关系矩阵

如下表所示:

实际工作中,设计师往往面临着矛盾的质量需求:

1.项目经费低,那就不可能速度快和质量好;

2.直接使用遗留系统,速度快,马上看到原型,同时也面临着可扩展性、可移植性,需求变化怎么办

3.客户需求、业务需求、用户需求,往往也存在矛盾,如何取舍

4.安全性与互操作性也是矛盾

5.获取到一批数据,直接入库?不行,来源于第三方,需要做数据质量检查。

PS:   在研究系统的可行性过程,最后需要下决定(承诺)之际,不能仅仅考虑技术可行性(功能可行性),最主要要考虑工程可行性(由谁来做,愿不愿意做?),更要考虑风险、约束条件、偶然因素安、假定条件——至少要预留两天来考虑。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值