系统质量属性与架构评估

质量属性场景

是一个具体的质量属性需求,是利益相关者与系统的交互的简短陈述,作为描述质量属性的手段,由6部分组成:

  • 刺激源 (Source):生成刺激的实体(人、系统或其他),即刺激的来源。
  • 刺激 (Stimulus):该刺激是当刺激到达系统时需要考虑的条件。
  • 环境 (Environment):刺激发生的条件。
  • 制品 (Artifact):即被刺激的对象。
  • 响应 (Response):即被刺激后响应。
  • 响应度量 (Measurement):即对响应度量。

质量属性场景主要关注可用性、可修改性、性能、可测试性、易用性和安全性等6类质量属性。


敏感点

为了实现某种质量属性,一个或多个系统组件所具有的特性。

权衡点

指影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。

风险点

架构风险是指在架构设计中潜在的、存在问题的架构决策所带来的隐患。


面向架构评估的质量属性

++性能 (Performance)++

系统的响应能力,即要经过多长时间才能对某件事件做出响应,或者在某短间内系统所能处理时间的个数;

可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。

并发用户数量100000人时用户请求要在1秒内得到响应。

系统正常运行时,人员信息查询请求应该在2秒内返回结果。

网站正常运行时,用户交易请求应在3秒内完成。

++可用性 (Availability)++

系统能够正常运行的时间比例;

(通常使用心跳,Ping/Echo,主动冗余,被动冗余,选举等架构策略实现该属性)

系统遭遇断电,能够在15秒内自动切换至备用系统并恢复正常运行。

系统宕机后,需要在10秒内感知错误,并自动启动热备份系统

可靠性(Reliability)

系统在规定的时间内及规定的环境条件下,完成规定功能的能力,就是系统无故障运行的概率

可靠性四个子特性包括:成熟性,容许哦行,已恢复性,依从性

提高系统的可靠性一般采用以下技术:

冗余技术

软件容错技术

双机容错技术

集群技术

可靠性可以分为两个方面:

1)容错:错误发生时确保系统正确的行为,并进行内部"修复"。

2)健壮性:在处理或环境中,系统能够承受压力或变更的能力

设计策略:心跳、Ping/Echo、冗余、选举。

可靠性是最重要的软件特性,通常用来衡量在规定的条件和时间内,软件完成规定功能的能力。

可靠性通常用平均失效等待时间 (Mean Time To Failure,MTTF) 和平均失效间隔时间 (Mean Time Between Failure,MTBF) 来衡量。

在失效率为常数和修复时间很短的情况下, MTTF 和 MTBF几乎相等。

++安全性(Security)++

系统能够向合法用户提供服务,并拒绝向非授权用户提供服务。

主要划分为机密性、完整性、不可否认性以及可控性等;

可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计

系统能够抵挡恶意用户的入侵行为,并进行报警和记录。

系统需要为所有的用户操作行为进行详细记录,便于后期查阅与审计

++可修改性(Modification)++

能够快速地以较高的性价比对系统进行变更的能力。

主要包括4个方面:可维护性(系统修改旧的构建以对对其他构件的影响程度)、可扩展性(系统扩展新构件对其他构件的影响程度)、结构重组、可移植性(在不同硬件平台、操作系统、编程语言间移植的难易程度);

(通常可采用接口-实现分类,抽象,信息隐藏,软件模块泛化、限制模块之间通信、使用中介和延迟绑定,等架构策略实现该属性)

对系统进行二次开发的时间不超过3个月。

对系统消息中间件进行替换时,替换工作需要在5人/月内完成。

易用性 (Usability)

衡量用户使用一个软件产品完成指定任务的难易程度。


质量效应树

是对质量属性进行分类,权衡,分析的架构分析工具,主要关注系统的额性能,可用性,可修改性,安全性四个方面。


系统架构评估方法

ATAM方法

体系结构权衡分析方法(Architecture Trade offAnalysis Method,ATAM),++主要关注系统的需求说明,主要在系统开发之前,针对软件的质量属性进行分析,分类,和优先级排序。++

ATAM可以分为4个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以++属性++作为架构评估的核心概念。

在识别出上述描述后,通常采用效用树对质量属性的描述进行刻画与排序。并对风险点,非风险点,敏感点,和权衡点进行识别和分析。在评估过程中,++权衡点++是一个会影响多个质量属性的架构设计决策。

SAAM方法

基于场景的架构分析方法(Scenarios-based Architecture Analysis Method)是一种用于软件架构评估的方法,旨在通过场景分析来识别和评估架构的质量属性。

SAAM的主要输入是++问题描述、需求说明和架构描述文档。++

其分析过程主要包括++场景开发、架构描述、单个场景评估、场景交互和总体评估。++


心跳检测机制(Heartbeat Mechanism)

心跳是一种定期发送信号的机制,用于监测系统或组件的健康状态。定期发送信号**:系统中的一个或多个组件(如服务器、服务实例等)定期发送"心跳"信号(通常是简单的消息或请求)到监控系统或其他组件。接收方在收到心跳信号后,通常会返回一个确认信号。如果在预定时间内未收到心跳信号,系统会认为该组件可能出现故障。优点: 提高系统的可靠性和可用性。及时发现故障,减少系统停机时间。缺点:可能增加网络流量,尤其是在大规模系统中。 - 需要合理配置时间间隔和超时,以避免误判。

超时探测技术(Timeout Detection Technology)Ping/Echo

Ping/Echo是一种简单的网络诊断工具,用于测试网络连接的可达性。

  • **网络连通性检测**:通过发送Ping请求,可以检测到目标主机是否在线及其响应时间。

  • **延迟监测**:通过记录Ping的往返时间,可以评估网络延迟,帮助优化网络性能。

优点:可以获得更详细的探测结果,缺点是判断的周期较长。


【案例2017下半年下午软考高级】

1.某单位为了建设健全的公路桥梁养护管理档案,拟开发一套公路桥梁在线管理系统。在系统的需求分析与架构设计阶段,用户提出的需求、质量属性描述和架构特性如下:

(a)系统用户分为高级管理员、数据管理员和数据维护员等三类(系统功能需求):

(b)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御(描述了安全性质量属性):

(c)正常负载情况下,系统必须在0.5秒内对用户的查询请求进行响应(描述性能质量属性):

(d)对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计(++一个质量属性会对多个设计决策造成影响,是敏感点)++;

(e)系统的用户名不能为中文,要求必须以字母开头,长度不少于5个字符(系统功能需求):

(f)更改系统加率的级别将对安全性和性能产生影响(++一个质量属性会影响多个质量属性,是权衡点++ ):(g)网络失效后,系统需要在10秒内发现错误井启用备用系统(描述可用性质量属性):

(h)查询过程中涉及的桥梁与公路的实时状态视频传输必须保证画面具有1024X768的分辨率,40帧/秒的速率(描述性能质量属性):

(i)在系统升级时,必须保证在10个人月内可添加一个新的消息处理中间件(描述可修改性质量成(描述可修改性质量属性】:

(n)如果"养护报告生成"业务逻辑的描述尚未达成共识,可能导致部分业务功能模块规则的矛盾,影响系统的可修改性(++这是一个潜在的架构风险++):

(o)系统必须提供远程调试接口,并支持系统的远程调试(描述可测试性质量属性)。

相关推荐
我的运维人生6 小时前
Android架构组件MVVM模式的实战应用与数据绑定技巧
android·架构·运维开发·技术共享
多多*9 小时前
OJ在线评测系统 微服务高级 Gateway网关接口路由和聚合文档 引入knife4j库集中查看管理并且调试网关项目
java·运维·微服务·云原生·容器·架构·gateway
_.Switch10 小时前
自动机器学习(AutoML):实战项目中的应用与实现
人工智能·python·机器学习·自然语言处理·架构·scikit-learn
Java指南修炼12 小时前
一个为分布式环境设计的任务调度与重试平台,高灵活高效率,系统安全便捷,分布式重试杀器!(附源码)
分布式·架构·开源·源码·项目
数据智能老司机13 小时前
使用 Apache Arrow 进行内存分析——如何在 Arrow 项目中留下你的印记
大数据·架构·数据分析
学步_技术15 小时前
自动驾驶系列—解析自动驾驶汽车的“大脑”:电子电气架构详解与选型指南
架构·自动驾驶·汽车·eea
弥琉撒到我15 小时前
微服务seata解析部署使用全流程
微服务·云原生·架构
水w15 小时前
微服务之间的相互调用的几种常见实现方式对比
微服务·rpc·架构
liuxin3344556617 小时前
宠物咖啡馆平台架构:SpringBoot技术的核心作用
spring boot·架构·宠物