14 其他质量属性

第14章 其他质量属性

质量不是当你所做的符合你的意图时所发生的情况。质量是当你所做的符合客户期望时所发生的情况。

——瓜斯帕里(Guaspari)

第 4 章——第 13 章 分别讨论了对软件系统很重要的一个特定质量属性(QA)。那些章节中的每一章都讨论了其特定质量属性是如何定义的,给出了关于该质量属性的通用场景,并展示了如何编写具体场景以表达关于该质量属性的精确含义层次。此外,每一章都提供了一组在架构中实现该质量属性的技术。简而言之,每一章都呈现了一种用于指定和设计以实现特定质量属性的组合(方法)。

然而,你无疑可以推断出,那十章内容仅仅是触及了你在开发的软件系统中可能需要的各种质量属性的皮毛。

本章将展示如何针对我们“A 清单”中未涵盖的质量属性构建同样的规范和设计方法。

14.1 其他种类的质量属性

本书 第二部分 到目前为止所涵盖的质量属性都有一些共同点:它们要么涉及正在运行的系统,要么涉及创建和部署系统的开发项目。换句话说,要测量这些质量属性之一,要么在系统运行时测量它(可用性、能效性、性能、安全性、可靠性、易用性),要么在系统不运行时测量对系统进行某些操作的人员(可修改性、可部署性、可集成性、可测试性)。虽然这些质量属性无疑为你提供了一份重要质量属性的“A 清单”,但还有其他可能同样有用的质量属性。

架构的质量属性

另一类质量属性侧重于衡量架构本身。以下是三个例子:

  • 可构建性:这个质量属性衡量架构本身对于快速高效开发的适宜程度。它通过将架构转化为满足其所有需求的工作产品所需的成本(通常以金钱或时间衡量)来度量。从这个意义上说,它类似于衡量开发项目的其他质量属性,但不同之处在于测量所针对的知识与架构本身有关。

  • 概念完整性:概念完整性是指架构设计的一致性,它有助于架构的可理解性,并在其实现和维护中减少混乱并增加可预测性。概念完整性要求在整个架构中以相同的方式做相同的事情。在具有概念完整性的架构中,少即是多。例如,组件之间有无数种相互发送信息的方式:消息、数据结构、事件信号等等。具有概念完整性的架构将采用少量的方式,并且只有在有充分理由的情况下才提供替代方案。类似地,组件都应该以相同的方式报告和处理错误,以相同的方式记录事件或事务,以相同的方式与用户交互,以相同的方式清理数据等等。

  • 市场适销性:架构的“市场适销性”是另一个值得关注的质量属性。有些系统因其架构而闻名,这些架构有时具有其自身的意义,独立于它们为系统带来的其他质量属性。当前对构建基于云的和基于微服务的系统的强调告诉我们,对架构的认知至少与架构所带来的实际质量属性一样重要。例如,许多组织感到有必要构建基于云的系统(或其他一些“当下流行的技术”),无论这是否是正确的技术选择。

开发可分发性

开发可分发性是设计软件以支持分布式软件开发的质量属性。与可修改性一样,这种质量是根据开发项目的活动来衡量的。如今许多系统都是由全球分布式团队开发的。采用这种方法时必须克服的一个问题是协调团队的活动。系统的设计应使团队之间的协调最小化,也就是说,主要子系统应表现出低耦合性。无论是对于代码还是对于数据模型,都需要实现这种最小化的协调。开发相互通信的模块的团队可能需要协商这些模块的接口。当一个模块被许多其他模块使用,且每个模块由不同的团队开发时,沟通和协商就会变得更加复杂和繁重。因此,项目的架构结构和社会(及商业)结构需要合理地协调一致。对于数据模型也有类似的考虑。开发可分发性的场景将涉及正在开发的系统的通信结构和数据模型的兼容性,以及进行开发的组织所采用的协调机制。

系统质量属性

诸如飞机、汽车和厨房电器等依赖于嵌入式软件的物理系统,其设计要满足一系列质量属性要求:重量、尺寸、耗电量、功率输出、污染排放、耐候性、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值