架构评估-架构师之路(十二)

  • 软件系统质量属性

软件系统质量熟悉分为 开发期质量属性 和 运行期质量属性。

质量属性

  1. 性能:指 系统的响应能力,如 响应时间,吞吐率。

设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度

  1. 可靠性:在意外或错误使用情况下维持软件系统功能特征。如MTTF、MTBF、MTTR。

MTTF:平均无故障时间。

MTBF:平均故障间隔时间。

MTTR:平均故障修复时间。

设计策略:心跳、PING/Echo、冗余、选举

  1. 可用性:系统正常运行的时刻。如 故障间隔时间

设计策略:心跳、PING/Echo、冗余、选举

  1. 安全性:指 阻止非授权用户使用企业或拒绝服务的能力。 如 保密性、完整性、不可抵赖性、可控性。

设计策略:入侵检测、用户认证、用户授权、追踪审计

  1. 可修改性:以较高性能价格比对系统进行更改。

设计策略:接口-实现分离、抽象、信息隐藏。

  1. 功能性:系统所能完成所期望的工作和能力。
  2. 可变性:指 体系结构经扩充或变更而成为新系统结构的能力。(可扩展)
  3. 互操作性:作为系统 组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用

  • 质量属性场景

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

刺激源(source):指 某个生成该刺激的实体。(人、计算机系统或者任何其他刺激器)

刺激(stimulus):是指 当刺激达到系统时需要考虑的条件。(希望增加、删除、修改、改动功能、质量属性、容量等)

环境(environment):该刺激 在某些条件内发生。(系统设计时,编译时,构件时,运行时)

制品(artifact):某个制品 被激动,被刺激的对象,被人刺激的主体。(系统用户界面、平台或目标系统交互的系统)

响应(response):该响应是 在激励到达后所采取的行动。(查找架构所需要修改的位置,进行修改且不影响其他操作)

响应度量(measurement):应当能够以某种方式对其进行度量。(响应时候所做修改对系统其他模块产生的影响)

  • 软件架构评估

前面介绍了软件质量,从质量方面开始对架构进行评估。

敏感点:为了实现某种特定的质量属性,一个或多个构件具有的特性。(只影响一个,比如安全)

权衡点:是影响多个质量属性的特性,是多个质量属性敏感点。(当影响多个,比如效率和安全)

风险点与非风险点,风险点可能引起风险因素。某些事可接受可行,则是非风险的。

软件架构评估在 软件架构设计之后,系统设计之前,目的为了是否能解决系统需求,但不单单为了解决系统需求。

三种架构评估方式:

  1. 基于调查问卷(检查表)方式:问卷调查。
  2. 基于度量方式:制定一些 定量指标 来度量架构,如代码行数。
  3. 基于场景的方式:
  1. 确定引用领域的功能和软件架构的结构之间的映射。(刺激)
  2. 用于体现待评估质量属性的场景。(环境,事件发生的环境)
  3. 分析软件架构对场景的支持程度。(架构响应刺激过程)

A是输入,C是输出,B则是真实场景。

基于场景的架构分析方法主要三个:

  1. SAAM

一种 非功能质量属性 的架构分析方法,是最早使用的方法。

  1. 特定目标,saam的目标对 描述应用程序属性的文档,验证基本的架构假设和原则。
  2. 质量属性,这一方法基本特点是把任何形式的质量属性都具体化场景,但 可修改性 是SAAM的主要质量属性。
  3. 架构描述,SAAM用于架构的最后版本,但早于详细设计,架构的描述形式被所有参与者理解。
  4. 功能、结构和分配 被定义为描述架构的三个主要方面。
  5. 方法活动,SAAM主要输入是 问题描述、需求申明和架构描述。

主要五个步骤 场景开发、架构描述、单个场景评价、场景交互和总体评价

  1. ATAM(重点)

架构权衡分析法ATAM,让架构师明确如何权衡多个质量属性,参与者有评估小组、项目决策人和其他项目相关人

四个主要活动领域:场景需求收集、体系结构视图和场景实现、属性模型构造和分析、(架构评审做一个)折中

整个评估过程强调 以属性作为架构评估的核心概念

在系统开发之前,对这些质量属性评价和折中。

 

描述阶段

  1. 首先描述ATAM方法。(类似宣读规则)
  2. 描述业务动机。
  3. 描述架构。

架构分析阶段

  1. 确认架构方法。
  2. 生成质量属性效用树(非常重要)
  3. 分析架构方法。

测试阶段:

  1. 讨论场景对场景进行分级。
  2. 分析架构方法。
  3. 描述评论结果。

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

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

相关文章

【数据仓库】Linux、CentOS源码安装Superset

Linux、CentOS源码安装Superset步骤,遇到的各种问题。 报错问题: Linux下pip版本问题 You are using pip version 8.1.2, however version 22.2.2 is available. 解决办法: 安装python3的pip yum install python3-pip再升级 pip3 install…

Linux —— keepalived

简介 Keepalived 是一个用 C 语言编写的路由软件。这个项目的主要目标是为 Linux 系统和基于 Linux 的基础设施提供简单而强大的负载均衡和高可用性功能。 Keepalived 开源并且免费的软件。 Keepalived 的2大核心功能 1. loadbalance 负载均衡 LB:ipvs--》lvs软件…

node.js 简单使用 开始

1.概要 问:体验一下node.js 看一下如何运行。 答:使用命令 node 文件名.js 2.举例 2.1 代码准备(main.js) console.log(第一行node.js代码); 2.2 运行效果

网络安全入口设计模式

网络安全入口涵盖了几种设计模式,包括全局路由模式、全局卸载模式和健康终端监控模式。网络安全入口侧重于:全局路由、低延迟故障切换和在边缘处减轻攻击。 上图包含了3个需求。 •网络安全入口模式封装了全局路由模式。因此,实现可以将请求路…

springBoot防止重复提交

两种方法, 一种是后端实现,较复杂,要通过自定义注解和AOP以及Redis组合实现 另一种是前端实现,简单,只需通过js,设置过期时间,一定时间内,多次点击按钮只生效一次 后端实现 自定义注…

cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容。应以 ‘{layoutlib}‘ 等等开头

不与世俗为伍。哪怕这是自己许给自己的诅咒。 —— 宫崎骏 《红猪》 最近,在使用最新版的AndroidStudio打开一个两年前的项目时候,报了一个如下的错误:【cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容】。应以 ‘…

从2023年世界机器人大会发现机器人新趋势

机器人零部件为何成2023年世界机器人大会关注热门? 在原先,机器人的三大核心零部件是控制系统中的控制器、驱动系统中的伺服电机和机械系统中的精密减速器。如今,机器人的主体框架结构已经落实,更多机器人已经开始深入到各类场景中…

论文阅读 FOCUS-AND-DETECT: A SMALL OBJECT DETECTION FRAMEWORK FOR AERIAL IMAGES

文章目录 FOCUS-AND-DETECT: A SMALL OBJECT DETECTION FRAMEWORK FOR AERIAL IMAGESABSTRACT1 Introduction2 Related Work3 Focus-and-Detect3.1 Overview3.2 Focus Stage3.2.1 Generating Ground-Truth Boxes of Focal Regions Using Gaussian Mixture Model 3.3 Detection …

横扫“盲区”、“看透”缺陷,维视智造推出短波红外相机

在可见光领域,工业相机的视觉应用已经十分成熟,但在日常的客户咨询中,我们也经常接到一些“超纲需求”——客户想要检测“白底上的白色缺陷”、“不透明包装内的透明物体有无”等,均属于可见光无法实现的检测,而市面上…

Ubuntu20.04安装软件报错:The following packages have unmet dependencies

Ubuntu20.04更换阿里云源后安装软件都会报错:The following packages have unmet dependencies 查看资料,大概是ubuntu本身的源比较版本较老,而阿里云的源比较新,因此版本不匹配造成依赖的库不匹配,所以只要将阿里云的…

基于 SVG 的图形交互方案实践

不知道从什么时候起,人们开始喜欢上数字大屏这种“花里胡哨”的东西,仿佛只要用上“科技蓝”这样神奇的色调,就可以让一家公司焕然一新,瞬间变得科技感满满。不管数字大屏的实际意义,是用来帮助企业监控和决策&#xf…

汽车制造业外发文件时 如何阻断泄密风险?

汽车制造业是我国国民经济发展的支柱产业之一,具有产业链长、关联度高、就业面广、消费拉动大等特性。汽车制造行业景气度与宏观经济、居民收入水平和固定资产投资密切相关。 汽车制造业产业链长,关联度高,汽车制造上游行业主要为钢铁、化工…

Docker搭建elasticsearch+kibana测试

最近需要做大数据画像,所以先简单搭建一个eskibana学习使用,记录一下搭建过程和遇到的问题以及解决办法 1.拉取es和kibana镜像 在拉取镜像之前先搜索一下 elasticsearch发现是存在elasticsearch镜像的,我一般习惯性拉取最新镜像&#xff0c…

CSS中的vertical-align属性

vertical-align 1.CSS属性 - vertical-align 2.深入理解vertical-align – line boxes This property affects the vertical positioning inside a line box of the boxes generated by an inline-levelelement. 官方文档的翻译:vertical-align会影响 行内块级元素…

如何将下载的安装包导入PyCharm

1. 下载安装包 这里以pyke为例。下载好之后解压缩,然后放入/Lib/site-packages/pyke-1.1.1 2. 打开PyCharm的终端进行安装 python setup.py install 3. 安装好之后导入即可使用 import pyke

2023年7月京东空气净化器行业品牌销售排行榜(京东运营数据分析)

随着科技发展,智能家具在日常生活中出现的频率越来越高,许多曾经不被关注的家电也出现在其中,包括近年来逐渐兴起的空气净化器。伴随人们对自身健康的重视度越来越高,作为能够杀灭空气污染物、有效提高空气清洁度的产品&#xff0…

龙迅LT7911UX TYPE-C/DP转MIPI/LVDS,内有HDCP

1. 描述 LT7911UX是一种高性能的Type-C/DP1.4a到MIPI或LVDS芯片。HDCP RX作为HDCP中继器的上游端,可以与其他芯片的HDCP TX协同工作,实现中继器的功能。 对于DP1.4a输入,LT7911UX可以配置为1/2/4车道。自适应均衡使其适用于长电缆应用&#…

bash: conda: command not found

问题描述: 在Pycharm上用SSH远程连接到服务器,打开Terminal准备查看用 conda 创建的虚拟环境时,却发现调用 conda 指令时出现以下报错: -bash: conda: command not found如果使用Xshell 利用端口号直接连接该 docker 容器&#…

人工智能技术

人工智能技术是什么? 人工智能技术(Artificial Intelligence Technology,AI技术)是一种模仿人类智能和思维方式的计算机技术,旨在使计算机能够执行需要人类智能才能完成的任务。这些任务包括理解自然语言、解决问题、…

【IMX6ULL驱动开发学习】10.Linux I2C驱动实战:AT24C02驱动设计流程

前情回顾:【IMX6ULL驱动开发学习】09.Linux之I2C框架简介和驱动程序模板_阿龙还在写代码的博客-CSDN博客 目录 一、修改设备树(设备树用来指定引脚资源) 二、编写驱动 2.1 i2c_drv_read 2.2 i2c_drv_write 2.3 完整驱动程序 三、上机测…