系统质量属性与架构评估
软件系统属性包括功能属性和质量属性,软件架构重点关注质量属性.架构的基本需求实在满足功能属性的前提下,关注软件系统质量属性,为了精确描述,通常会使用质量属性场景的方式描述.
质量属性的概念
《GB/T16260-1996(idtISO/IEC9126:1991)信息技术软件产品评价 质量特性及其使用指南》中描述的软件质量特性包括功能性、可靠性、易用性、效率、可维护性、可移植性6个方面,每个方面都包含若干个子特性。
- 功能性:指软件所实现的功能满足用户需求的程度。
- 适合性:软件是否适合执行指定的任务。
- 准确性:软件能否提供正确的结果。
- 互操作性:软件与其他系统交互的能力。
- 安全保密性:软件保护信息和数据的能力。
- 功能性的依从性:软件遵循相关标准、约定或法规的程度。
- 可靠性:在规定的条件下和规定的时间内,软件维持在其性能水平的能力。
- 成熟性:软件避免因故障而导致失效的能力。
- 容错性:软件在出现错误时,能继续执行和恢复的能力。
- 易恢复性:软件失效后,能恢复到正常状态的能力。
- 可靠性的依从性:软件遵循可靠性相关标准的程度。
- 易用性:指软件易于使用的程度。
- 易理解性:用户理解软件功能和使用方法的难易程度。
- 易学习性:用户学习使用软件的难易程度。
- 易操作性:用户操作软件的难易程度。
- 吸引性:软件吸引用户使用的能力。
- 易用性的依从性:软件遵循易用性相关标准的程度。
- 效率:在规定条件下,软件性能与所使用资源量之间的关系。
- 时间特性:软件执行任务所花费的时间。
- 资源利用性:软件使用资源的效率。
- 效率的依从性:软件遵循效率相关标准的程度。
- 维护性:指软件进行修改和维护的难易程度。
- 易分析性:诊断软件故障原因和修改软件的难易程度。
- 易改变性:修改软件的难易程度。
- 稳定性:软件修改后,不产生新故障的能力。
- 易测试性:测试软件修改的难易程度。
- 维护性的依从性:软件遵循维护性相关标准的程度。
- 可移植性:指软件从一个环境转移到另一个环境的能力。
- 适应性:软件适应不同环境的能力。
- 易安装性:软件安装到新环境的难易程度。
- 共存性:软件与其他软件在同一环境中共存的能力。
- 易替换性:软件替换其他软件的难易程度。
- 可移植性的依从性:软件遵循可移植性相关标准的程度。
软件质量特性精简口诀
功能准适互保密,可靠成容易恢复,
易用理学操作吸,效率省时省资源,
维护析便稳测试,移植适装存替换。
运行期质量属性(性安易用靠互棒)
- 性能(Performance):性能是指软件系统及时提供相应服务的能力。包括速度、吞吐量和持续高速性三方面的要求。
- 安全性(Security):指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。
- 易用性(Usability):指软件系统易于被使用的程度。可伸缩性(Scalability):指当用户数和数据量增加时,软件系统维持高服务质量的能力。例如,通过增加服务器来提高能力。
- 互操作性(Interoperability):指本软件系统与其他系统交换数据和相互调用服务的难易程度。
- 可靠性(Reliability):软件系统在一定的时间内无故障运行的能力。持续可用性(Availability):指系统长时间无故障运行的能力。与可靠性相关联,常将其纳入到可靠性中。
- 鲁棒性(Robustness):是指软件系统在一些非正常情况(如,用户进行了非法操作相关的软硬件系统发生了故障等)下仍能够正常运行的能力。也称健壮性或容错性。
开发期质量属性(易理可重测,维护且可移植)
- 易理解性(Understandability):指设计被开发人员理解的难易程度可扩展性(Extensibility):软件因适应新需求或需求变化而增加新功能的能力。也称为灵活性。
- 可重用性(Reusability):指重用软件系统或其一部分的难易程度。
- 可测试性(Testability):对软件测试以证明其满足需求规范的难易程度。
- 可维护性(Maintainability):当需要修改缺陷、增加功能、提高质量属性时,定位修改点并实施修改的难易程度。
- 可移植性(Portabiliyt):将软件系统从一个运行环境转移到另一个不同的运行环境的难以程度
质量属性场景是一个具体的质量属性需求,是利益相关者与系统的交互的简短陈述,作为描述质量属性的手段,由6部分组成:
- 刺激源 (Source):生成刺激的实体(人、系统或其他),即刺激的来源。
- 刺激 (Stimulus):该刺激是当刺激到达系统时需要考虑的条件。
- 环境 (Environment):刺激发生的条件。
- 制品 (Artifact):即被刺激的对象。
- 响应 (Response):即被刺激后响应。
- 响应度量 (Measurement):即对响应度量。
质量属性场景主要关注可用性、可修改性、性能、可测试性、易用性和安全性等6类质量属性。
场景是从风险承担者的角度 对与系统的交互的简短描述 ,在体系架构评估中,一般采用刺激,环境 和响应三方面来对场景进行描述,
场景一:电商平台大促期间的服务可用性
- 刺激源:大量用户在大促活动开始时,同时访问电商平台,产生海量访问请求 。
- 刺激:用户发起商品浏览、下单、支付等操作请求。
- 环境:大促活动特定时间节点,网络流量激增,服务器负载达到高峰,且用户分布在不同地区,使用不同终端设备和网络环境。
- 制品:电商平台的 Web 应用、服务器端服务、数据库等相关系统组件。
- 响应:系统通过负载均衡技术将请求合理分配到不同服务器,启用缓存机制加快数据读取,自动扩容服务器资源,确保用户能快速访问页面、完成下单和支付操作,不出现长时间等待或服务崩溃。
- 响应度量:系统在大促期间,服务成功率保持在 99.9% 以上,页面平均响应时间不超过 2 秒。
场景二:银行系统的 7×24 小时不间断服务
- 刺激源:任何时间点,客户通过手机银行、网上银行、ATM 等渠道发起业务操作请求。
- 刺激:转账汇款、账户查询、理财购买等业务操作请求。
- 环境:全天候运行,可能面临网络故障、硬件故障、软件漏洞攻击等情况,涵盖线上线下多种操作渠道。
- 制品:银行核心业务系统、各类客户端应用程序、ATM 设备系统等。
- 响应:系统具备故障自动检测和切换机制,当某个服务器或节点出现故障时,能迅速将业务切换到备用服务器,同时自动修复故障节点;采用异地多活架构,保证不同地区出现问题时业务不受影响。
- 响应度量:系统全年可用时间达到 99.99%,故障切换时间不超过 30 秒。
1.敏感点(必须描述出定义,并分析是权衡点还是风险点)
为了实现某种质量属性,一个或多个系统组件所具有的特性。
例如:对查询请求处理时间的要求 将影响系统的数据传输协议和处理过程的设计。
2.权衡点
指影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。
例如:改变加密级别可能对安全性和性能产生重要影响。
3.风险点
架构风险是指在架构设计中潜在的、存在问题的架构决策所带来的隐患。
4.非风险点
是指架构设计中不会造成潜在问题的架构决策的关注点。
面向架构评估的质量属性(每个质量属性的含义必须描述出来,以及策略)
从架构关注点来研究质量属性实现,将质量属性分为6种:性能、可用性、可修改性、安全性、可测试性、易用性。其他的质量属性一般可纳入这几个属性中
