软考高级架构 - 8.1 - 系统质量属性与架构评估 - 超详细讲解+精简总结

第8章 系统质量属性与架构评估

        软件系统属性包括功能属性和质量属性,而软件架构重点关注质量属性

8.1 软件系统质量属性

8.1.1 概述

        软件系统的质量反映了其与需求的一致性,即:软件系统的质量高低取决于它是否能满足用户提出的需求,并在功能和性能上达到预期效果。

根据《GB/T 16260.1》,软件质量的六个主要维度包括:

  1. 功能性:系统的适合性、准确性、互操作性、安全性等。
  2. 可靠性:容错性、易恢复性、成熟性。
  3. 易用性:易学性、易理解性、易操作性。
  4. 效率:资源特性和时间特性。
  5. 维护性:可测试性、可修改性、稳定性、易分析性。
  6. 可移植性:适应性、易安装性、一致性、可替换性。

开发期质量属性

软件在开发阶段的各方面特性,整个过程就是:

设计容易被理解 -> 灵活增加新功能 -> 代码可复用  -> 易测试 -> 代码易修订 ->  方便移植

  • 易理解性:设计被开发人员理解。
  • 可扩展性:软件能否轻松增加新功能
  • 可重用性:系统中某些部分被复用。
  • 可测试性:软件是否容易进行测试。
  • 可维护性:能否快速找到和修改代码。
  • 可移植性:软件是否能方便地从一种环境转移到另一种环境。

运行期质量属性

软件运行阶段所关注的质量属性

  • 性能:软件的运行速度、处理能力和反应时间。
  • 安全性:软件能保护合法用户的使用,阻止未授权的访问。
  • 可伸缩性用户和数据增加时,软件是否能保持良好的表现。
  • 互操作性:软件能否方便地与其他系统进行数据交换或调用。
  • 可靠性:软件长时间运行无故障的能力。
  • 可用性:系统在特定时间内能正常工作的比例。
  • 鲁棒性:软件在异常情况下能否继续运行(如操作错误或硬件故障)。

8.1.2 架构评估的质量属性

架构评估通过以下属性进行质量属性分析:

  1. 性能:系统响应时间和处理能力。
  2. 可靠性:系统在异常条件下持续运行的能力,指标包括MTTF和MTBF
    • 容错:系统在错误发生时继续正确运行。
    • 健壮性:系统在异常情况下(错误输入、使用)保证稳定。
  3. 可用性:系统在一定时间内正常工作的比例。
  4. 安全性:保护合法用户并阻止未授权访问,细分为机密性、完整性、不可否认性和可控性。
  5. 可修改性:系统快速有效修改的能力:包括可维护性可扩展性结构重组可移植性
  6. 功能性:系统完成所需任务的能力。
  7. 可变性:系统架构经扩展或变更后适应新需求的能力。
  8. 互操作性:系统与其他系统间的数据和功能交互的能力。

8.1.3 质量属性场景描述

    质量属性场景是帮助精确描述软件系统质量的方式。它包含以下6个部分:

  1. 刺激源 (Source):谁在行动,比如用户或系统。
  2. 刺激 (Stimulus):发生了什么,例如用户点击按钮、系统崩溃。
  3. 环境 (Environment):发生在什么情况下,比如系统运行正常或过载状态。
  4. 制品 (Artifact):作用在哪,可能是整个系统或某一模块、功能。
  5. 响应 (Response):系统怎么做,系统在接收到刺激后的具体反应。
  6. 响应度量 (Measurement):效果怎么样,系统的表现被如何度量,比如加载时间不超过2秒等。

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

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

相关文章

Windows系统使用OpenSSL生成自签名证书

Nginx服务器添加SSL证书。 要在Windows系统的Nginx Web服务器上使用OpenSSL生成证书,并确保该证书能在局域网内被计算机信任,你可以按照以下详细步骤进行操作: 一、生成证书 下载并安装OpenSSL: 从OpenSSL的官方网站下载适用于Wi…

Jmeter常见的几种报错及解决方案

在性能测试的过程中,使用JMeter进行负载测试是一项常见而重要的任务。然而,测试中常常会遇到各种报错,这些问题可能会影响测试结果的准确性。了解这些错误的原因及解决方案,是每位测试工程师必备的技能 进行Jmeter项目练习的时候…

《JavaEE进阶》----21.<基于Spring图书管理系统②(图书列表+删除图书+更改图书)>

PS: 开闭原则 定义和背景‌ ‌开闭原则(Open-Closed Principle, OCP)‌,也称为开放封闭原则,是面向对象设计中的一个基本原则。该原则强调软件中的模块、类或函数应该对扩展开放,对修改封闭。这意味着一个软…

仿真APP助力汽车零部件厂商打造核心竞争力

汽车零部件是汽车工业的基石,是构成车辆的基础元素。一辆汽车通常由上万件零部件组成,包括发动机系统、传动系统、制动系统、电子控制系统等,它们共同确保了汽车的安全、可靠性及高效运行。 在汽车产业快速发展的今天,汽车零部件…

现代Web开发:Vue 3 组件化开发实战

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 现代Web开发:Vue 3 组件化开发实战 现代Web开发:Vue 3 组件化开发实战 现代Web开发:Vue 3 组…

Unity引擎智能座舱解决方案

作为全球领先的 3D 引擎之一,Unity引擎为车载3D HMI提供全栈支持。即为从概念设计到量产部署的整个 HMI 工作流程提供创意咨询、性能调优、项目开发等解决方案,从而为车载信息娱乐系统和智能驾驶座舱打造令人惊叹的交互式体验。 专为中国车企打造的HMI引…

MySQL必会知识精华6(组合WHERE子句)

我们的目标是:按照这一套资料学习下来,大家可以完成数据库增删改查的实际操作。同时轻松应对面试或者笔试题中MySQL相关题目。 上篇文章我们先做一下数据库的where条件过滤的方法,都是单个条件的过滤。本篇文章主要介绍查询的组合WHERE子句的…

[C++11] 可变参数模板

文章目录 基本语法及原理可变参数模板的基本语法参数包的两种类型可变参数模板的定义 sizeof... 运算符可变参数模板的实例化原理可变参数模板的意义 包扩展包扩展的基本概念包扩展的实现原理编译器如何展开参数包包扩展的高级应用 emplace 系列接口emplace_back 和 emplace 的…

欺诈文本分类检测(十八):基于llama.cpp+CPU推理

1. 前言 前文我们用Lora训练出自己的个性化模型后,首先面临的问题是:如何让模型在普通机器上跑起来?毕竟模型微调时都是在几十G的专用GPU上训练的,如果换到只有CPU的普通电脑上,可能会面临几秒蹦一个词的尴尬问题。 …

11.9函数小练习(二)

简单员工管理系统 mian.py import test while True:test.show_menu()ch int(input("请输入>>"))match ch:case 1:# 1、添加员工信息test.dict_insert()case 2:# 2、显示所有成员信息test.dict_show()case 3:# 3、删除成员信息test.dict_del()case 0:# 4、退…

硬件基础06 滤波器——无源、有源(含Filter Solutions、Filter Pro、MATLAB Fdatool)

目录 一、Filter Solutions 1、软件资源及安装教程如下 2、使用相关内容 二、Filter Pro使用 1、软件资源及安装教程如下 2、使用相关内容 三、MATLAB Fdatool 1、在matlab命令中输入fdatool 2、输入相关参数,例如低通、FIR、20阶、hamming窗 3、调用 &am…

【HGT】文献精讲:Heterogeneous Graph Transformer

【HGT】文献精讲:Heterogeneous Graph Transformer 标题: Heterogeneous Graph Transformer (异构图Transformer) 作者团队: 加利福尼亚大学Yizhou Sun 摘要: 近年来,图神经网络(GN…

大厂基本功 | MySQL 三大日志 ( binlog、redo log 和 undo log ) 的作用?

前言 MySQL日志 主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。其中,比较重要的还要属二进制日志binlog(归档日志)和事务日志redo log(重做日志)和undo log(回滚日志)…

2024年下半年系统分析师论文

2024年下半年11月份系统分析师考试论文 1、静态测试工具和方法 可以从代码桌前检查,代码审查,代码走查组织文章 2、DevOps开发 可以从开发,运维,测试的自动化协作入手,跨部门沟通需求也算 3、业务流程分析 从BPR…

【系统架构设计师(第2版)】五、软件工程基础知识

5.1 软件工程 20世纪60年代,为了解决软件危机,提出了软件工程的概念。 软件危机的具体表现: 软件开发进度难以预测;软件开发成本难以控制;软件功能难以满足用户期望;软件质量无法保证;软件难以…

手机内卷下一站,AI Agent

作者 | 辰纹 来源 | 洞见新研社 2024年除夕夜,OPPO在央视春晚即将开始前举办了一场“史上最短发布会”,OPPO首席产品官刘作虎宣布,“OPPO正式进入AI手机时代”。 春节假期刚过,魅族又公开表示,将停止“传统智能手机…

科研绘图系列:R语言组合堆积图(stacked plot)

文章目录 介绍加载R包数据数据预处理画图1画图2组合图形系统信息介绍 堆积图(Stacked Chart),也称为堆叠图,是一种常用的数据可视化图表,主要用于展示不同类别的数据量在总体中的分布情况。堆积图可以是柱状图、条形图或面积图的形式,其中各个类别的数据量被叠加在一起,…

yolo安装报错DLL load failed while importing _multiarray_umath

解决“ImportError: DLL load failed while importing _multiarray_umath: 找不到指定的模块”问题 这个问题一般是numpy版本过高的问题先卸载numpy pip命令 pip uninstall numpy conda命令 conda uninstall numpy安装指定低版本 pip命令 pip install numpy 1.26.4 conda命…

Node.js 完全教程:从入门到精通

Node.js 完全教程:从入门到精通 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,允许开发者在服务器端使用 JavaScript。它的非阻塞 I/O 和事件驱动架构使得 Node.js 非常适合于构建高性能的网络应用。本文将详细介绍 Node.js 的安装、基本语…

微服务day03

导入黑马商城项目 创建Mysql服务 由于已有相关项目则要关闭DockerComponent中的已开启的项目 [rootserver02 ~]# docker compose down WARN[0000] /root/docker-compose.yml: version is obsolete [] Running 4/4✔ Container nginx Removed …