软件体系架构的质量属性

软件体系架构的质量属性

马川

(石家庄铁道大学,河北省石家庄市,050000)

摘要:软件架构重点关注的是质量属性。文章从常见的六个质量属性,即可用性、可修改性、性能、安全性、可测试性、易用性写起,使读者对其有初步的认识和了解。解决了在具体的软件开发环境中的质量属性是什么,怎么用,如何用好的问题。在软件开发过程中软件的质量属性扮演者至关重要的角色,只有合理地遵循质量属性原则,才能快速、高效、低成本的开发出适合广大群众的好产品。

Absrtact: software architecture focuses on quality attributes. This article starts from six common quality attributes, namely, usability, modifiability, performance, safety, testability and ease of use, so that readers can have a preliminary understanding of them. It solves the problem of what is the quality attribute in the specific software development environment, how to use it, and how to use it well. In the process of software development, the quality attribute of software plays an important role. Only by following the principle of quality attribute reasonably, can we develop a good product suitable for the masses quickly, efficiently and cheaply.

Keywords: quality attributes; architecture; software

引言

这学期软件体系架构开课了,学习了软件质量的六大属性,从而为以后步入工作后的开发过程更加便捷。如今用户对软件质量的要求越来越高,所以保证好六个质量属性的最优是必须的。本文将着重针对影响性能最直观的因素和性能和其他质量属性的关系进行阐述。当前硬件普遍性能过剩,那么如何提高软件的性能就成为了一个热点,也变成了优化对比的一个重要方面。

可用性

    可用性与系统故障及其相关后果有关。当系统不再提供其规范中所说明的服务时,就出现了系统故障。
所关注的方面有:

  • 如何检测系统故障
  • 系统故障发生的频度
  • 出现故障时会发生什么情况
  • 允许系统有多长时间非正常运行
  • 什么时候可以安全地出现故障
  • 如何防止故障的发生以及故障时要求进行哪种通知

一般将系统可用性定义为:

a = 平均正常工作时间 / (平均正常工作时间+平均修复时间)

从这个公式中我们得到了像99.9%的可用性、0.1%的故障率这样的概念。

在计算可用性时,通常不考虑预定的停机时间(即停止服务),因为根据定义是”不需要“系统的。这就导致会出现这种情况:系统停止运行,用户等待系统提供服务,但因为停机时间是预定的,因此不计入故障时间,也就不会影响可用性的数值。

  例如在,双十一淘宝购物的场景中,当系统爆发了大量的用户访问以及订单操作,如何保证系统不瘫痪并且拥有恢复机制,是可用性的表现。

可修改性

可修改性是有关变更的成本问题。它提出了两个关注点:

(1)可以修改什么(制品)?
可以修改系统的任何方面 ,最常见的就是系统计算的功能、系统存在平台(硬件、操作系统和中间件等 )、系统运行的环境(它必须与之互操作的系统,它用于与其他部分进行通信的协议,等等)、系统所展示的质量属性(其性能、可靠性、甚至包括将来的可修改性)以及其容量(所支持的用户数量、同时发生的操作的数量,等等)。

(2)何时进行变更以及由谁进行变量(环境)?
最常见的就是修改源代码。也就是说,开发人员必须修改代码,对修改后的代码进行测试,然后将其部署在新版中。然而,现在不仅仅是何时变更的问题,而且还有由谁进行变量的问题。

性能

性能是指软件及时提供相应服务的能力。具体而言,性能包括速度、吞吐量和持续高速性三方面的要求:

(1)速度往往通过平均响应时间来度量;

(2)吞吐量通过单位时间处理的交易数来度量;

(3)持续高速性是指保持高度处理速度的能力。

安全性

安全性指软件同时兼顾向合法用户提供服务,以及阻止非授权使用软件及资源的能力。试图突破安全防线的行为被称为攻击,它可以是未经授权试图访问数据或服务,或试图修改数据,也可能是试图使系统拒绝向合法用户提供服务。一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等多种因素)高于得到的好处,那么这样的系统就可以认为是安全的。

当今社会网络安全问题尤为突出,客户隐私泄露问题,账户资金被盗刷,软件存储的客户数据被黑客恶意攻击,各种安全问题层出不穷。安全问题是所有互联网企业都绕不开的问题,只有保证自己的产品足够“安全”,才能赢得客户的信赖。

可测试性

软件可测试性是指通过测试(通常是基于运行测试)揭示软件缺陷的容易程度。在开发设计系统阶段,40%花费在测试上面。

   可测试性战术的目标是允许在完成软件开发的一个增量后,较轻松的对软件进行测试。一般我们进行提供输入并捕获输出、内部监视。

易用性

易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的的用户支持种类。下面以淘宝分析说明:

场景:用户取消自己即将生成的交易

刺激源:淘宝用户

刺激:用户不满意商品,选择取消交易

制品:淘宝系统

环境:系统正常运行,用户正常购买商品

响应:取消交易成功,淘宝系统删除交易,恢复正常页面

响应度量:取消在一秒内发生,不影响后面操作

总结

本学期我们开设的软件体系架构这门课程对于质量属性有着很高的要求,我只是在这里浅尝遏止,还需要进一步更加深入的去总计和练习软件开发、架构过程中对于质量属性的运用和要求,更加熟练的运用到软件开发过程中来。

参考文献:

[1] naughty,软件中的质量属性(一),https://my.oschina.net/taogang/blog/224658

[2] naughty,软件中的质量属性(二),https://my.oschina.net/taogang/blog/225513

[3] iteye_2272,软件的质量属性及其说明,https://blog.csdn.net/iteye_2272/article/details/82099106

[4] 程序猿胖子,质量属性-可修改性,https://www.jianshu.com/p/5f02292a90e5

[5] 顾北清歌寒,软件质量属性——易用性课堂讨论问题总结,

 

原文地址:https://www.cnblogs.com/mac-13/p/14639904.html