当前位置: 首页 > news >正文

软件系统质量属性_2.面向架构评估的质量属性

        为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。在架构评估过程中,评估人员所关注的是系统的质量属性。评估方法所普遍关注的质量属性有:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性

1.性能

         性能(Performance)指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件的个数。经常用单位时间内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量表示。性能测试经常要使用基准测试程序。

2.可靠性

         可靠性(Reliability)软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。可靠性是最重要的软件特性,通常用来衡量在规定的条件和时间内,软件完成规定功能的能力。可靠性通常用平均失效等待时间(Mean Time To Failure,MTTF)和平均失效间隔时间(Mean Time Between Failure,MTBF)来衡量。在失效率为常数和修复时间很短的情况下,MTTF和MTBF几乎相等。可靠性可以分为两个方面。

        (1)容错。容错的目的是在错误发生时确保系统正确的行为,并进行内部“修复”。例如在一个分布式软件系统中失去了一个与远程构件的连接,接下来恢复了连接。在修复这样的错误之后,软件系统可以重新或重复执行进程间的操作,直到错误再次发生。

        (2)健壮性。这里说的是保护应用程序不受错误使用和错误输入的影响,在发生意外错误事件时确保应用系统处于预先定义好的状态。值得注意的是,和容错相比,健壮性并不是说在错误发生时软件可以继续运行,它只能保证软件按照某种已经定义好的方式终止执行。软件架构对软件系统的可靠性有巨大的影响。例如,软件架构设计上通过在应用程序内部采用冗余机制,或集成监控构件和异常处理,以提升系统可靠性。

3.可用性

         可用性(Availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。

4.安全性

         安全性(Security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性可根据系统可能受到的安全威胁类型来分类。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。其中,机密性保证信息不泄露给未授权的用户、实体或过程;完整性保证信息的完整和准确,防止信息被非法修改;不可否认性是指信息交换的双方不能否认其在交互过程中发送信息或接收信息的行为;可控性保证对信息的传播及内容具有控制的能力,防止为非法者所用。

5.可修改性

         可修改性(Modifiability)是指能够快速地以较高的性价比对系统进行变更的能力。通常以某些具体的变更为基准,通过考查这些变更的代价来衡量可修改性。可修改性包含以下4个方面。

        (1)可维护性(Maintainability)。这主要体现在问题的修复上,在错误发生后“修复”软件系统。可维护性好的软件架构往往能做局部性的修改并能使对其他构件的负面影响最小化。

        (2)可扩展性(Extendibility)。这一点关注的是使用新特性来扩展软件系统,以及使用改进版本方式替换构件并删除不需要或不必要的特性或构件。为了实现可扩展性,软件系统需要松散耦合的构件。其目标是实现一种架构,能使开发人员在不影响构件客户的情况下替换构件。支持把新构件集成到现有的架构中也是必要的。

        (3)结构重组(Reassemble)。这一点处理的是重新组织软件系统的构件及构件间的关系,例如通过将构件移动到一个不同的子系统而改变它的位置。

        (4)可移植性(Portability)。可移植性使软件系统适用于多种硬件平台、用户界面、操作系统、编程语言或编译器。

6.功能性

         功能性(Functionality)是系统能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。

7.可变性

        可变性(Changeability)是指架构经扩充或变更而成为新架构的能力。这种新架构应该符合预先定义的规则,在某些具体方面不同于原有的架构。当要将某个架构作为一系列相关产品(例如,软件产品线)的基础时,可变性是很重要的。 

8.互操作性

        作为系统组成部分的软件不是独立存在的,通常与其他系统或自身环境相互作用。为了支持互操作性,软件架构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。

相关文章:

软件系统质量属性_2.面向架构评估的质量属性

为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。在架构评估过程中,评估人员所关注的是系统的质量属性。评估方法所普遍关注的质量属性有:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性。 1.…...

设计模式:抽象工厂

定义 抽象工厂模式是一种创建型设计模式,它提供了一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。这种模式特别适用于处理产品族,但在不可能修改的情况下扩展产品族是困难的。 应用场景 抽象工厂模式通…...

【环境搭建】ubuntu工作站搭建全流程(显卡4090)

安装ubuntu22.04系统 首先,先压缩windows分区,按住Win X快捷键,选择磁盘管理,压缩分区,压缩出新的分区用于安装ubuntu22.04 windows插入系统盘,点击重启,一直按F12,选择系统盘启动方式语言选择chinese–…...

蓝桥杯每日一题:有序分数(递归)

给定一个整数 N,请你求出所有分母小于或等于 N,大小在 [0,1] 范围内的最简分数,并按从小到大顺序依次输出。 例如,当 N5 时,所有满足条件的分数按顺序依次为: 0/1,1/5,1/4,1/3,2/5,12/,35,2/3,3/4,4/5,1/…...

SpringBoot学习之Kibana下载安装和启动(Mac版)(三十二)

一、简介 Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。 …...

Mac下Docker Desktop starting的解决方法

记录下自己在新增了一个新的容器后,Disk Size过大导致启动Docker Desktop会一直卡在Docker Desktop starting,并且重启无效的解决方法。该方法无需重新卸载,并且能保留原有的镜像和容器。 一、确认问题 首先确认Docker.raw大小以确认是否和笔…...

Leetcode面试经典150_Q80删除有序数组中的重复项 II

题目: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件…...

android 使用ollvm混淆so

使用到的工具 ndk 21.1.6352462(android studio上下载的)cmake 3.10.2.4988404(android studio上下载的)llvm-9.0.1llvm-mingw-20230130-msvcrt-x86_64.zipPython 3.11.5 环境配置 添加cmake mingw环境变量如下图: 编译 下载…...

Swift:在 Win10 上编程入门

访问 https://swift.org/download/ 找到 Windows 10:x86_64 下载 swift-5.10-RELEASE-windows10.exe 大约490MB 建议安装在 D:\Swift\ ,安装后大约占2.56GB 官网文档:https://www.swift.org/documentation/ 中文教程:The swift…...

Linux多进程通信(4)——消息队列从入门到实战!

Linux多进程通信总结——进程间通信看这一篇足够啦! 1.基本介绍 1)消息队列的本质其实是一个内核提供的链表,内核基于这个链表,实现了一个数据结构,向消息队列中写数据,实际上是向这个数据结构中插入一个…...

[Flutter]导入singular_flutter_sdk后运行到Android报错

问题: 接入归因之前,flutter项目一起正常。接入归因之后,iOS正常Android有问题。 dependencies: # Singular归因singular_flutter_sdk: ^1.3.3 针对 Flutter 的 Singular SDK 集成指南 https://support.singular.net/hc/zh-cn/articles/…...

ChatGPT新手指南:如何用AI写出专业学术论文

ChatGPT无限次数:点击直达 ChatGPT新手指南:如何用AI写出专业学术论文 在当今信息爆炸的时代,人工智能技术的快速发展为我们提供了许多新的可能性。ChatGPT作为一种先进的自然语言处理技术,不仅能够进行对话和文本生成,还可以辅助…...

【ZZULIOJ】1047: 对数表(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 输入两个正整数m和n&#xff0c;输出m到n之间每个整数的自然对数。 输入 输入包括两个整数m和n(m<n)&#xff0c;之间用一个空格隔开。 输出 每行输出一个整数及其对数&#xff0c;整数占4…...

thinkphp6使用阿里云SDK发送短信

使用composer安装sdk "alibabacloud/dysmsapi-20170525": "2.0.24"封装发送短信类 发送到的短信参数写在env文件里面的 #发送短信配置 [AliyunSms] AccessKeyId "" AccessKeySecret "" signName"" templateCode"&…...

file_get_contents(‘php://input‘); 这个postman要如何传参

在 Postman 中传递参数给 file_get_contents(php://input); 是通过请求的 Body 部分来实现的。使用 Postman 进行 API 接口测试时&#xff0c;可以按照以下步骤来传递参数&#xff1a; 打开 Postman 并创建一个新的请求。在请求的 URL 地址栏输入你的 API 地址。选择请求方法为…...

HDFS [MSST‘10] 论文阅读笔记

原论文:The Hadoop Distributed File System (MSST’10) HDFS关键技术要点概览 设计目标:HDFS旨在可靠地存储大型数据集,并以高带宽流式传输这些数据集到用户应用程序。它通过在大量服务器上分布存储和计算资源,使得资源可以随着需求的增长而扩展,同时保持经济高效。架构组…...

Feature Pyramid Networks for object detection

FPN 总述1.引言2.相关工作3. Feature Pyramid NetworksBottom-up pathwayTop-down pathway and lateral connections 4. 应用用于 RPN用于 Fast R-CNN 核心代码复现FPN网络结构ResNet Bottleneck完整代码 总述 下图中&#xff0c;蓝色边框表示的是特征图&#xff0c;边框越粗表…...

Linux下docker运行python

前言 本机开发环境众多&#xff0c;python版本都好多个&#xff0c;虽然可以通过conda管理多个虚拟环境&#xff0c;但还是不能像容器那样进行进程间的隔离。于是打算试下docker下运行python&#xff0c;而且生产环境很多时候也是用容器来跑应用&#xff0c;环境统一、方便扩容…...

MacOS下载和安装HomeBrew的详细教程

在MacOS上安装Homebrew的详细教程如下&#xff1a;&#xff08;参考官网&#xff1a;macOS&#xff08;或 Linux&#xff09;缺失的软件包的管理器 — Homebrew&#xff09; 步骤1&#xff1a;检查系统要求 确保你的MacOS版本至少为macOS Monterey (12) (or higher) 或更高版本…...

AI技术在金融领域/银行业的应用和风险

前言 随着科技的不断发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经在各行各业得到了广泛的应用&#xff0c;其中包括银行业。银行业作为经济的重要组成部分&#xff0c;一直在不断地探索和应用新技术&#xff0c;以提升服务效率、风险管理和客户体验。然而&…...

查看本地镜像使用 nrm 工具管理(方便切换)

1安装 nrm&#xff1a;npm install -g nrm2查看可用镜像源&#xff1a;nrm ls3切换到淘宝源nrm use taobao...

YimMenu完全指南:GTA5免费辅助工具从入门到精通

YimMenu完全指南&#xff1a;GTA5免费辅助工具从入门到精通 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...

实战应用:基于编译原理,利用快马AI构建你的首个代码压缩工具

实战应用&#xff1a;基于编译原理&#xff0c;利用快马AI构建你的首个代码压缩工具 最近在学习编译原理&#xff0c;发现这门看似高深的学科其实离我们日常开发很近。比如代码压缩工具&#xff0c;就是编译原理技术的典型应用场景。今天就用InsCode(快马)平台来快速实现一个简…...

Claude Code 命令和用法

斜杠命令&#xff08;会话内输入 / 触发&#xff09;会话与导航命令说明/clear清除对话历史&#xff0c;释放上下文。别名&#xff1a;/reset、/new/compact [指令]压缩对话&#xff0c;可附加聚焦指令/resume [会话]恢复历史会话。别名&#xff1a;/continue/rename [名称]重命…...

如何用FanControl彻底告别电脑噪音?Windows风扇控制终极解决方案

如何用FanControl彻底告别电脑噪音&#xff1f;Windows风扇控制终极解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_T…...

Ubuntu 20.04 下 Zotero 文献管理神器:从安装到插件配置的完整避坑指南

Ubuntu 20.04 下 Zotero 文献管理神器&#xff1a;从安装到插件配置的完整避坑指南 第一次在Linux环境下配置文献管理工具时&#xff0c;我盯着终端里密密麻麻的命令行输出&#xff0c;突然意识到学术研究的数字化工具链竟如此脆弱。直到遇见Zotero&#xff0c;这款跨平台的开源…...

抖音批量下载终极指南:一键获取无水印视频与创作者全部作品

抖音批量下载终极指南&#xff1a;一键获取无水印视频与创作者全部作品 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback …...

智能猫砂盆:除臭静音,养猫更省心!

行业痛点分析当前智能猫砂盆领域面临两大核心挑战&#xff1a;清洁残留与安全防护。传统自动铲屎机型在完成集便动作后&#xff0c;猫砂盆底部仍会残留约15%-20%的沾尿结团猫砂&#xff08;数据表明&#xff1a;第三方实验室对6款主流机型测试结果&#xff09;&#xff0c;用户…...

清北博雅考研集训营:沉浸式封闭备考,为考研人铺就上岸之路

考研的赛道上&#xff0c;从来都不缺努力的人&#xff0c;缺的是科学的规划、优质的师资和沉浸式的备考环境。清北博雅教育集团深耕考研辅导领域十余载&#xff0c;凭借专业的教学体系、大咖级师资团队、完善的教学服务和亮眼的上岸成果&#xff0c;打造了专属考研人的集训营备…...

从MATLAB验证到FPGA上板:双频信号叠加的完整开发闭环实战

从MATLAB验证到FPGA上板&#xff1a;双频信号叠加的完整开发闭环实战 在数字信号处理领域&#xff0c;实现双频信号的精确叠加是一个常见但极具挑战性的任务。无论是通信系统中的载波调制&#xff0c;还是音频处理中的音效合成&#xff0c;都需要工程师能够准确地在硬件层面实现…...