系统质量属性与架构评估

本博客地址:https://security.blog.csdn.net/article/details/136565452

一. 软考系统质量属性

1、软件系统质量属性是一个系统的可测量可测试的属性,基于软件系统的生命周期,可将软件系统的质量属性分为开发期质量属性运行期质量属性

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

3、运行期质量属性
性能:软件系统及时提供相应服务的能力,如速度、吞吐量和容量等
安全性:软件系统同时兼顾向合法用户提供服务,以及组织非授权使用的能力
可伸缩性:当用户数和数据量增加时,软件系统维持高服务质量的能力
互操作性:软件系统与其他系统交换数据和相互调用服务的难易程度
可靠性:软件系统在一定的时间内持续无故障运行的能力
可用性:系统在一定时间内正常工作的时间所占比例
鲁棒性:软件系统在非正常情况(用户进行非法操作、相关软硬件系统发生故障)下仍正常运行的能力,也称健壮性或容错性

4、面向架构评估的质量属性
性能:处理任务所需时间或单位时间内的处理量
可靠性【容错】出现错误后仍能保证系统争取运行,且自行修正错误。【健壮性】错误不对系统产生影响,按既定程序忽略错误
可用性:正常运行的时间比例
安全性:系统向合法用户提供服务并阻止非法用户的能力
可修改性【可维护性】局部修复使故障对架构的负面影响最小化。【可扩展性】因松散耦合更易实现新特性/功能,不影响架构。【结构重组】不影响主体进行的灵活配置。【可移植性】适用于多样的环境(硬件平台、语言、操作系统等)
功能性:需求的满足程度
可变性:总体架构可变
互操作性:通过可视化或接口方式提供更好的交互操作体验

5、可用性。提升可用性的策略可以从以下几个方面考虑:
错误检测:心跳、Ping/Echo、异常。
错误恢复:表决、主动冗余、被动冗余、重新同步、内测、检查点/回滚。
错误避免:服务下线、事务、进程监控器。

6、性能。提升性能的策略可以从以下几个方面考虑:
资源的需求:减少处理事件时对资源的占用、减少处理事件的数量、控制资源的使用。
资源管理:并发机制、增加资源。
资源仲裁:先来先服务、固定优先级、动态优先级、静态调度。

7、可修改性。提升性能的策略可以从以下几个方面考虑:
局部化修改:高内聚低耦合、预测变更、使模块通用。
防止连锁反应:信息隐藏、维持现有接口、限制通信路径、使用中介。
推迟绑定时间:运行时注册、多态、配置文件。

8、安全性。提升安全性的策略可以从以下几个方面考虑:
抵抗攻击:用户身份验证、用户授权、维护数据机密性与完整性、限制暴露、限制访问。
检测攻击:入侵检测系统。
从攻击中恢复:恢复状态、识别攻击者。

9、质量属性场景是一种面向特定质量属性的需求,由刺激源刺激环境制品响应响应度量组成。

二. 系统架构评估

1、系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策,通常分为:
基于调查问卷或检查表的方法:缺点是很大程度上依赖于评估人员的主观判断。
基于场景的评估方法:应用在架构权衡分析法(ATAM)和软件架构分析方法(SAAM)中。
基于度量的评估方法:建立质量属性和度量之间的映射原则→在软件文档中获取度量信息→分析推导系统质量属性。

2、系统架构评估中的重要概念
敏感点:实现质量目标时应注意的点,是一个或多个构件的特性。
权衡点:影响多个质量属性的敏感点。
风险承担者或利益相关人:影响体系结构或被体系结构影响的群体。
场景:确定架构质量评估目标的交互机制,一般采用触发机制、环境和影响三方面来描述。

3、软件架构分析方法(SAAM)的主要输入是问题描述需求说明架构描述,其分析过程主要包括场景开发架构描述单个场景评估场景交互和总体评估

4、架构权衡分析法(ATAM)主要在系统开发之前,针对性能可用性安全性可修改性等质量属性进行评价和折中。传统的 ATAM 可以分为 4 个主要的活动阶段,包括需求收集架构视图描述属性模型构造和分析架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。现代的 ATAM 方法采用效用树对质量属性进行分类和优先级排序。用 ATAM 方法评估软件体系结构分为演示和介绍调查和分析测试报告

5、演示是使用 ATAM 评估软件体系结构的初始阶段,包括 3 个步骤:
介绍 ATAM:描述 ATAM 评估过程。
介绍业务驱动因素:着重业务视角,提供有关系统功能、主要利益相关方、业务目标和其他限制等信息。
介绍要评估的体系结构:侧重可用性以及体系结构的质量要求。

6、调查和分析是使用 ATAM 技术评估架构第 2 阶段,对一些关键问题彻底调查,包括 3 个步骤:
确定架构方法:涉及能够理解系统关键需求的关键架构方法。
生成质量属性效用树:确定最重要的质量属性,并确定优先次序。
分析体系结构方法:彻底调查和分析,找出处理相应质量属性架构的方法。包括 4 个主要阶段:调查架构方法创建分析问题分析问题的答案找出风险、非风险、敏感点和权衡点

7、系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。权衡点是影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。

8、测试是使用 ATAM 技术评估架构第 3 阶段,包括:
头脑风暴和优先场景:将头脑风暴的优先列表与生成质量属性效用树中所获取的优先方案进行比较。
● 分析架构方法。

9、报告是使用 ATAM 技术评估架构第 4 阶段,包括:
● 提供评估期间收集的所有信息,呈现给利益相关者。

10、成本效益分析法(CBAM)分为:整理场景对场景进行求精确定场景的优先级分配效用架构策略涉及哪些质量属性及响应级别使用内插法确定期望的质量属性响应级别的效用计算各架构策略的总收益根据受成本限制影响的 ROI 选择架构策略

11、其他评估方法。
SAEM 方法:将软件架构看作一个最终产品以及涉及过程中的一个中间产品,从外部质量属性和内部质量属性阐述的评估模型。
SAABNet 方法:辅助架构的定性评估,帮助诊断软件问题的可能原因,分析架构中的修改给质量属性带来的影响、预测架构的质量属性,帮助架构设计人员做决策。SAABNet 度量的对象包括架构属性质量准则质量因素
SACMM 方法:首先基于内核定义差异度量准则来计算两个软件架构之间的距离,然后分析对象之间的相似性。
SASAM 方法:通过对预期架构和实际架构进行映射和比较来静态地评估软件架构。
ALRRA 方法:是软件架构可靠性风险评估方法,使用动态复杂度准则和动态耦合度准则来定义组件和连接件的复杂性因素。
AHP 方法:把定性分析和定量计算相结合,对各种决策因素进行处理。
COSMIC+UML 方法:针对不同表达方式的软件架构,采用统一的软件度量 COSMIC 方法来进行度量和评估。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

仿牛客项目Day02:http、调试、日志、git

http状态码 后端调试 f8:逐行执行 f7:进入语句内部 f9:执行到下一个断点 前端调试 f10:逐行调试 f11:进入语句内部 f8:执行到下一个断点 日志 按照级别开启日志 日志的测试类 比如把application里…

Java --- springcloud初始项目创建

目录 一、cloud项目创建 1.1、项目编码规范 1.2、注解生效激活 1.3、导入父工程maven的pom依赖 二、创建子工程并导入相关pom依赖 2.1、相关配置文件 2.1.1、数据库配置文件内容 2.1.2、自动生成文件配置内容 三、创建微服务8001子工程 3.1、导入相关pom依赖 3.…

数据结构从入门到精通——栈

栈 前言一、栈1.1栈的概念及结构1.2栈的实现1.3栈的面试题 二、栈的具体实现代码栈的初始化栈的销毁入栈出栈返回栈顶元素返回栈中的元素个数检测是否为空Stack.hStack.ctest.c 前言 栈,作为一种后进先出(LIFO)的数据结构,在计算…

NTFS Disk by Omi NTFS for mac v1.1.4中文版

NTFS Disk by Omi NTFS for Mac:NTFS文件系统的无缝桥梁 软件下载:NTFS Disk by Omi NTFS for mac v1.1.4中文版 🌐 跨平台访问,文件无阻 NTFS Disk by Omi NTFS for Mac 为您的Mac提供了对NTFS文件系统的无缝访问。无论您是在Win…

Unity插件之天气系统UniStorm

首先呢,它是一款强大的动态昼夜天气系统,能够以较快的帧速率创建AAA级动态生成的天气、照明和天空,并且具有300多个可定制的组件,允许用户创建任何可以想象的环境。 第一步:他需要两个物体Camera摄像机、Player播放器…

鸿蒙开发-UI-动画-页面内动画

鸿蒙开发-UI-组件2 鸿蒙开发-UI-组件3 鸿蒙开发-UI-气泡/菜单 鸿蒙开发-UI-页面路由 鸿蒙开发-UI-组件导航-Navigation 鸿蒙开发-UI-组件导航-Tabs 鸿蒙开发-UI-图形-图片 鸿蒙开发-UI-图形-绘制几何图形 鸿蒙开发-UI-图形-绘制自定义图形 文章目录 前言 一、概述 二、页面内…

数学中不能随心所欲乱用辅助函数

在“On the divisor and circle problems"论文中(J.Number Theory, 29(1988), 60-93)&#xff0c;H.Iwaniec和C.J.Mozzochi用了好几个光滑辅助函数&#xff08;"光滑"指无穷次可导&#xff09;&#xff0c;其中一个光滑函数要求满足&#xff1a;(a)当x<1或x&…

分析:一周销量破千万的《幻兽帕鲁》到底用的什么技术?

在《幻兽帕鲁》这款游戏中&#xff0c;玩家沉浸于创建一个属于自己的英雄角色。从选择种族到定制外观&#xff0c;每一步都体现了建造者模式的精髓。 建造者模式在游戏中的体现 玩家在游戏中创建角色&#xff0c;就像是在逐步构建一个复杂对象。首先&#xff0c;有一个基本的…

新一代信息技术下,AI如何重塑售前工作

近期&#xff0c;“新质生产力”一词犹如一颗璀璨的新星&#xff0c;频繁地在各大媒体平台上抢占热点位置&#xff0c;引发了大家的关注。关于“新质生产力”官方的解释是科技创新驱动经济高质量发展的必然产物&#xff0c;它代表着新一轮科技革命和产业变革的重要方向。 在今…

finishConnect(..) failed: Connection refused,服务本地正常服务器网关报400,nacos服务实例不能下线

①application里固定ip # Spring spring:cloud:inetutils:preferred-networks: 127.0.0.1 ②找到nacos服务下的protocol&#xff0c;删除下面所有&#xff0c;/nacos-server/data/protocol&#xff0c;删了不会有问题&#xff0c;而且这东西越用越大&#xff0c;删了好爽 ③重…

const XX=void0

在阅读源码中&#xff0c;经常会看到 const XXvoid0这里的 void 0其实就是 undefined&#xff0c;void 运算符总会返回一个 undefined 的结果。 那么&#xff0c;为什么要用 void 0 代替 undefined 呢&#xff1f; 总结&#xff1a; undefined 是一个「全局对象&#xff08;…

iOS——【自动引用计数】ARC规则及实现

1.3.3所有权修饰符 所有权修饰符一共有四种&#xff1a; __strong 修饰符__weak 修饰符__undafe_unretained 修饰符__autoreleasing 修饰符 __strong修饰符 _strong修饰符表示对对象的强引用&#xff0c;持有强引用的变量在超出其作用域的时候会被废弃&#xff0c;随着强引…

对话有赞创始人兼CEO白鸦:AI将如何改变产品体验?

SaaS行业有个老大难问题&#xff0c;系统难用&#xff0c;用户学习的成本太高&#xff0c;并且系统越强大&#xff0c;这个问题就会越明显。AI的出现&#xff0c;似乎让这个问题有了解法&#xff0c;这个赛道中的引领者&#xff0c;已经在尝试用AI重构SaaS&#xff0c;让每个被…

数组连续和 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 给定一个含有N个正整数的数组&#xff0c;求出有多少连续区间&#xff08;包括单个正整数&#xff09;&#xff0c;它们的和大于等于 x。 输入描述 第一行为两个…

Xcode升级到Xcode15.1或15.2之后,无法新建Category和Extension文件,如何解决?

项目场景&#xff1a; Xcode升级到15.1或15.2之后&#xff0c;无法新建Category和Extension文件&#xff0c;并且Xcode不报任何错误 问题描述 Xcode升级到15.1或15.2之后&#xff0c;无法新建Category和Extension文件&#xff0c;并且Xcode不报任何错误。 具体的操作步骤如下…

【MySQL】 隔离级别和锁机制

事务的四种特性 事务具有四个特征&#xff1a;原子性&#xff08; Atomicity &#xff09;、一致性&#xff08; Consistency &#xff09;、隔离性&#xff08; Isolation &#xff09;和持续性&#xff08; Durability &#xff09;。这四个特性简称为 ACID 特性。 原子性。…

redis-集群 原生部署和工具自动部署

什么redis集群&#xff1f; redis集群是一个提供在多个redis节点之间共享数据的程序集。它并不像redis主从复制模式那样仅提供一个master节点来提供写服务&#xff0c;而是会提供多个master节点来提供写服务&#xff0c;每个master节点中存储的数据都不一样&#xff0c;这些数据…

【保姆级爬虫】微博关键词搜索并获取博文和评论内容(python+selenium+chorme)

微博爬虫记录 写这个主要是为了防止自己忘记以及之后的组内工作交接&#xff0c;至于代码美不美观&#xff0c;写的好不好&#xff0c;统统不考虑&#xff0c;我只能说&#xff0c;能跑就不错了&#xff0c;上学压根没学过python好吧&#xff0c;基本上是crtlc&ctrlv丝滑小…

开启AI绘画新纪元:让创意在指尖绽放

文章目录 一、了解AI绘画的基本原理二、选择合适的AI绘画工具三、掌握AI绘画的基本技巧四、借鉴与创新&#xff1a;从模仿到创作五、参与社区交流&#xff0c;共同成长《AI绘画教程&#xff1a;Midjourney使用方法与技巧从入门到精通》亮点推荐内容简介作者简介目录 在科技日新…

Linux centos 常用的网络负载和网速查看工具和命令

在 CentOS 上查看网络速度和网络负载&#xff0c;可以使用多种工具&#xff0c;以下是一些常用的命令行工具&#xff1a; iftop - 用于实时监视网络带宽使用情况。 安装命令&#xff1a; sudo yum install iftop 使用命令&#xff1a; sudo iftop nload - 一个简单的控制…