系统架构30 - 质量属性

这篇具有很好参考价值的文章主要介绍了系统架构30 - 质量属性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


软件系统属性包括功能属性和质量属性,软件架构重点关注的是质量属性。架构的基本需求是在满足功能属性的前提下,关注软件系统质量属性。为了精确、定量地表达系统的质量属性,通常会采用质量属性场景的方式进行描述。

概念

软件系统的质量就是“软件系统与明确地和隐含地定义的需求相一致的程度”。

更具体地说,软件系统质量是软件与明确地叙述的功能和性能需求文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。

根据 GB/T 16260.1 定义,从管理角度对软件系统质量进行度量,可将影响软件质量的主要因素划分为 6 种维度特性:功能性、可靠性、易用性、效率、维护性与可移植性

  • 功能性包括适合性、准确性、互操作性、依从性、安全性
  • 可靠性包括容错性、易恢复性、成熟性
  • 易用性包括易学性、易理解性、易操作性
  • 效率包括资源特性和时间特性
  • 维护性包括可测试性、可修改性、稳定性和易分析性
  • 可移植性包括适应性、易安装性、一致性和可替换性

软件系统质量属性 (Quality Attribute) 是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者 (Stakeholders) 需求的程度。基于软件系统的生命周期,可以将软件系统的质量属性分为开发期质量属性运行期质量属性 2个部分。

开发期质量属性

开发期质量属性主要指在软件开发阶段所关注的质量属性,主要包含 6 个方面。
(1)易理解性:指设计被开发人员理解的难易程度。
(2)可扩展性:软件因适应新需求或需求变化而增加新功能的能力,也称为灵活性。
(3)可重用性:指重用软件系统或某一部分的难易程度。
(4)可测试性:对软件测试以证明其满足需求规范的难易程度。
(5)可维护性:当需要修改缺陷、增加功能、提高质量属性时,识别修改点并实施修改的难易程度。
(6)可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。

运行期质量属性

运行期质量属性主要指在软件运行阶段所关注的质量属性,主要包含 7 个方面。
(1)性能:性能是指软件系统及时提供相应服务的能力,如速度、吞吐量和容量等的要求。
(2)安全性:指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。
(3)可伸缩性:指当用户数和数据量增加时,软件系统维持高服务质量的能力。例如通过增加服务器来提高能力。
(4)互操作性:指本软件系统与其他系统交换数据和相互调用服务的难易程度。
(5)可靠性:软件系统在一定的时间内持续无故障运行的能力。
(6)可用性:指系统在一定时间内正常工作的时间所占的比例。可用性会受到系统错误,恶意攻击,高负载等问题的影响。
(7)鲁棒性:是指软件系统在非正常情况(如用户进行了非法操作、相关的软硬件系统发生了故障等)下仍能够正常运行的能力,也称健壮性或容错性。

面向架构评估的质量属性

  1. 性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。如响应时间、吞吐量
    设计策略:优先级队列、增加计算资源、减少计算开销、引人并发机制、采用资源调度等
  2. 可靠性:是指系统在一段时间内保持正常运行而不发生故障的能力。它强调了系统的稳定性和可靠性,通常是通过衡量系统在一段时间内发生故障的概率来评估的。一个可靠性高的系统意味着它很少出现故障,用户可以信任它的稳定性。可靠性有一些指标需要了解。如MTTF(平均故障时间)、MTBF(平均故障间隔时间)、MTTR(平均故障修复时间)。
    可靠性通常用平均失效等待时间 (Mean Time To Failure, MTTF) 和平均失效间隔时间 (Mean Time Between Failure, MTBF) 来衡量。在失效率为常数和修复时间很短的情况下, MTTF 和 MTBF几乎相等。可靠性可以分为两个方面:容错、健壮性
    设计策略:心跳、Ping/Echo、冗余、选举
  3. 可用性是指系统在需要的时候可供使用的能力,即系统处于可操作状态的时间比例。可用性通常通过计算系统在一定时间内可操作的百分比来评估。一个高可用性的系统意味着它在大部分时间内都是可用的,用户可以随时访间和使用它
    设计策略:心跳、Ping/Echo、冗余、选举
  4. 安全性:是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如保密性、完整性、不可抵赖性、可控性。
    设计策略:人侵检测、用户认证、用户授权、追踪审计
  5. 可修改性:指能够快速的以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量。
    设计策略:接口-实现分类、抽象、信息隐藏(是不是感觉有点像结构化开发和面向对象开发的设计原则)
  6. 功能性:是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。
  7. 可变性(可扩展性):指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品的基础时,可变性是很重要的。
  8. 互操作性作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,也影响应用的软件体系结构,
  9. 易用性:它关注的是软件系统的用户界面和交互设计,以确保用户能够轻松、高效地使用系统,并感到满意易用性不仅关乎用户界面的外观,还包括用户体验、交互流程和用户学习曲线等方面

质量属性场景描述

为了精确描述软件系统的质量属性,通常采用质量属性场景 (Quality Attribute Scenario) 作为描述质量属性的手段。质量属性场景是一个具体的质量属性需求,是利益相关者与系统的交互的简短陈述。

质量属性场景是一种面向特定质量属性的需求。它由六部分组成:

  • 刺激源 (Source): 这是某个生成该刺激的实体(人、计算机系统或者任何其他刺激器)。
  • 刺激 (Stimulus): 该刺激是当刺激到达系统时需要考虑的条件。
  • 环境 (Environment): 该刺激在某些条件内发生。当激励发生时,系统可能处于过载、运行或者其他情况。
  • 制品 (Artifact): 某个制品被激励。这可能是整个系统,也可能是系统的一部分。
  • 响应 (Response): 该响应是在激励到达后所采取的行动。
  • 响应度量 (Measurement): 当响应发生时,应当能够以某种方式对其进行度量,以对需求进行测试。

质量属性场景主要关注可用性、可修改性、性能、可测试性、易用性和安全性六类质量属性。文章来源地址https://www.toymoban.com/news/detail-837472.html

到了这里,关于系统架构30 - 质量属性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 系统架构设计师 8:系统质量属性与架构评估

    软件系统属性包括功能属性和质量属性,软件架构重点关注的是质量属性。为了精确、定量地表达系统的质量属性,通常会采用质量属性场景的方式进行描述。 在确定软件系统架构,精确描述质量属性场景后,就需要对系统架构进行评估。软件系统架构评估是在对架构分析、

    2024年02月16日
    浏览(36)
  • 【郭东白架构课 模块二:创造价值】30|节点六:如何保障高质量的阶段性交付?

    你好,我是郭东白。从这节课开始,我们就进入到架构活动的第六个环节——阶段性价值交付。 对于企业来说,这是成本花费最多的节点了,因为大量的研发人力资源开始投入到架构活动中去。 有的架构师认为,到了这个节点,自己似乎已经完成了主要任务。接下来,就主

    2024年02月09日
    浏览(38)
  • 【软考——系统架构师】软件架构设计

    🔎这里是【软考——系统架构师】,关注我考试轻松过线 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 软件体系结构是指系统的一个或者多个结构,这些结构包括软件的构件(可能是程序模块、类或者是中间件)、构件的外部可见属

    2023年04月25日
    浏览(36)
  • 【软考——系统架构师】信息系统基础

    🔎这里是【软考——系统架构师】,关注我考试轻松过线 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 根据考试大纲,本部分知识点会涉及单选题型,约占 2~6 分。 1.信息的基本概念 控制论的创始人维纳认为:信息就是信息,它

    2024年02月06日
    浏览(40)
  • 软考高级架构师笔记-9系统架构

    前文回顾 : 软考高级架构师笔记-1计算机硬件

    2024年02月15日
    浏览(70)
  • 【软考】软考系统架构师案例分析知识点整理

    系统规划:包括系统项目的提出预可行性分析;系统方案的制定、评价和改进;新旧系统的分析和比较;现有软件、硬件和数据资源的有效利用; 软件架构设计:XML技术;基于架构的软件开发过程;软件的质量属性;架构(模型)风格;特定领域软件架构;基于架构的软件开

    2024年02月06日
    浏览(42)
  • 【软考——系统架构师】系统开发基础知识

    🔎这里是【软考——系统架构师】,关注我考试轻松过线 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 软件开发生命周期 1、需求规格说明书包括系统名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则等

    2024年02月08日
    浏览(62)
  • 软考-系统架构设计师论文范文《论软件系统架构风格》

    摘要:         本人于2016年1月参与浙江省某市公交集团“公交车联网一体化“项目,该系统为新能源营运车辆补贴监管、安全监控等方面提供全方位的软件支撑,在该项目组中我担任系统架构师岗位,主要负责整体架构设计与中间件选型.本文以该车联网项目为例,主要讨

    2024年02月16日
    浏览(57)
  • 软考 系统架构设计师系列知识点之系统架构评估(3)

    接前一篇文章: 所属章节: 第8章. 系统质量属性与架构评估         第2节. 系统架构评估             8.2.2 系统架构评估方法 2. ATAM方法 架构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM) 是在SAAM(Scenarios-based Architecture Analysis Method,基于场景的架构分析方法)的基

    2024年02月05日
    浏览(46)
  • 2023软考-系统架构师一日游

    上周六(11月4号)参见了软考,报的系统架构师,今年下半年是第一次推行机考,简单来分享下大致流程,至于考试难度、考点什么的,这个网上有很多专门研究这些的机构,本人无权发言。考试的经过还是可以说一下的,大家可以有个大致的了解。 我是9月25最后一天报的名

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包