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

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

  • 软件系统质量属性

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

质量属性

  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. 描述评论结果。

相关文章:

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

软件系统质量属性 软件系统质量熟悉分为 开发期质量属性 和 运行期质量属性。 质量属性 性能:指 系统的响应能力,如 响应时间,吞吐率。 设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度。 可靠…...

手写模拟SpringBoot核心流程(二):实现Tomcat和Jetty的切换

实现Tomcat和Jetty的切换 前言 上一篇文章我们聊到,SpringBoot中内置了web服务器,包括Tomcat、Jetty,并且实现了SpringBoot启动Tomcat的流程。 那么SpringBoot怎样自动切换成Jetty服务器呢? 接下来我们继续学习如何实现Tomcat…...

Python土力学与基础工程计算.PDF-土的三项组成

5.3 Python求解 Python 求解代码如下: 1. # 定义已知参数 2. G_s 2.7 # 比重 3. w 0.2 # 含水量 4. e 0.6 # 孔隙比 5. gamma_w 9.81 # 水的重度 6. 7. # 根据公式计算饱和度 8. S_r G_s * w / e 9. print("饱和度为", S_r) 10. 11.…...

危化安全生产信息化平台在煤化领域的应用

一、背景介绍 煤化工行业是一个集煤炭、石油、化工等多种产业于一体的综合性行业,其特点是工艺流程复杂、设备繁多、安全隐患大。近年来,随着煤化工行业的快速发展,安全生产问题日益凸显。为了有效提高危化安全生产水平,某煤化工…...

Linux(CentOS)运维脚本工具集合

使用说明 备份指定目录 # 备份指定目录文件到指定目录,备份文件名称为:备份目录最后一层目录"_"日期.tar.gz # 第一个参数:backdir 第二参数:备份文件保存目录 第三个参数:备份目录/文件 sh script.sh backdir /root/…...

【Java alibabahutool】JSON、Map、实体对象间的相互转换

首先要知道三者的互转关系&#xff0c;可以先将JSON理解成是String类型。这篇博文主要是记录阿里巴巴的JSONObject的两个方法。toJSONString()以及parseObject()方法。顺便巩固Map与实体对象的转换技巧。 引入依赖 <!-- 阿里巴巴 JSON转换 以下二选一即可 没有去细研究两者…...

按软件开发阶段的角度划分:单元测试、集成测试、系统测试、验收测试

1.单元测试&#xff08;Unit Testing&#xff09; 单元测试&#xff0c;又称模块测试。对软件的组成单位进行测试&#xff0c;其目的是检验软件基本组成单位的正确性。测试的对象是软件里测试的最小单位&#xff1a;模块。 测试阶段&#xff1a;编码后或者编码前&#xff08;…...

【python】Leetcode(primer-dict-list)

文章目录 260. 只出现一次的数字 III&#xff08;字典 / 位运算&#xff09;136. 只出现一次的数字&#xff08;字典&#xff09;137. 只出现一次的数字 II&#xff08;字典&#xff09;169. 求众数&#xff08;字典&#xff09;229. 求众数 II&#xff08;字典&#xff09;200…...

网络安全(黑客)入门

想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客&#xff01; 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全…...

在CSS中,盒模型中的padding、border、margin是什么意思?

在CSS中&#xff0c;盒模型&#xff08;Box Model&#xff09;是用来描述和布局HTML元素的基本概念。它将每个HTML元素看作是一个矩形的盒子&#xff0c;这个盒子包括了内容&#xff08;content&#xff09;、内边距&#xff08;padding&#xff09;、边框&#xff08;border&a…...

有线耳机插入电脑没声音

有线耳机插入电脑没声音 首先确保耳机和电脑都没问题&#xff0c;那就有可能是声音输出设备设置错误 右击任务栏的声音图标-打开声音设置-选择输出设备。...

【面试 反思】Retrofit源码与设计 7 连问

前言 在实际项目中往往是使用Retrofit来做网络请求工作。Retrofit采用RESTful风格&#xff0c;本质上只是对OkHttp进行封装&#xff0c;今天我们根据几个问题来进一步学习一下Retrofit的源码与设计思想。 1. 使用方法 直接看一下官方介绍的使用方法。 public final class S…...

flutter 雷达图

通过CustomPainter自定义雷达图 效果如下 主要代码 import package:flutter/material.dart; import dart:math; import dash_painter.dart; import model/charts_model.dart;class RadarChart extends StatelessWidget {final List<ChartModel> list;final double maxV…...

机器学习之损失函数(Loss Function)

损失函数&#xff08;Loss Function&#xff09;是机器学习和深度学习中的关键概念&#xff0c;它用于衡量模型的预测与实际目标之间的差异或误差。损失函数的选择对于模型的训练和性能评估至关重要&#xff0c;不同的任务和问题通常需要不同的损失函数。 以下是一些常见的损失…...

创邻科技张晨:图数据库,激活数据要素的新基建

“数据经济时代&#xff0c;数据要素产业链的各细分领域均蕴含机遇&#xff0c;图技术作为网络协同和数据智能的底层发动机&#xff0c;将深度掘金数字中国价值潜能”。 8月22日&#xff0c;在2023中国&#xff08;南京&#xff09;国际软件产品和信息服务交易博览会的信息技术…...

使用端口映射实现Spring Boot服务端接口的公网远程调试:详细配置与步骤解析

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…...

stm32之点亮LED

今天&#xff0c;记录一下stm32如何点亮一个LED,程序本身十分简单&#xff0c;但主要是学习编程的格式。 led.h #ifndef _led_H #define _led_H#include "system.h"/* LED时钟端口、引脚定义 */ #define LED1_PORT GPIOB #define LED1_PIN GPIO_Pin_5 #d…...

SA8000认证的难点及注意事项

SA8000认证是什么&#xff1f; SA8000即“社会责任标准”&#xff0c;是Social Accountability 8000的英文简称&#xff0c;由社会责任国际组织(SAI)制定与执行&#xff0c;是全球首个道德规范国际标准。自1997年问世以来&#xff0c;它创建了一个衡量社会责任的共同语言&#…...

Java可视化物联网智慧工地SaaS平台源码:人脸识别考勤

基于微服务JavaSpring Cloud Vue UniApp MySql实现的智慧工地云平台源码 智慧工地是指利用云计算、大数据、物联网、移动互联网、人工智能等技术手段&#xff0c;为建筑施工现场提供智能硬件及物联网平台的解决方案&#xff0c;以实现建筑工地的实时化、可视化、多元化、智慧化…...

告别数字化系统“物理叠加”,华为云推动智慧门店价值跃迁

文|智能相对论 作者|叶远风 有大屏幕滚动播放广告&#xff1b; 有人脸识别系统让消费者自助结账&#xff1b; 有订单管理系统综合分析一段时间内总体经营情况&#xff1b; 有全门店监控直连总部机房&#xff1b; …… 以搭载数字化系统的硬件设备为表面特征的智慧门店&a…...

k8s 常用命令(四)

12、删除pod中的nginx服务及service [rootmaster ~]# kubectl delete deployment nginx -n kube-public [rootmaster ~]# kubectl delete svc -n kube-public nginx-service 13、查看endpoint的信息 [rootmaster ~]# kubectl get endpoints 14、修改/更新&#xff08;镜像、…...

大语言模型的分布式训练

什么是大语言模型 大语言模型(Large Language Model,缩写LLM),也称大型语言模型,是一种人工智能模型,旨在理解和生成人类语言。它们在大量的文本数据上进行训练,可以执行广泛的任务,包括文本总结、翻译、情感分析等等。LLM的特点是规模庞大,包含数十亿的参数,帮助它们学习语言…...

【JavaEE】Spring全家桶实现AOP-统一处理

【JavaEE】AOP&#xff08;2&#xff09; 文章目录 【JavaEE】AOP&#xff08;2&#xff09;1. 统一登录校验处理1.1 自定义拦截器1.2 将自定义拦截器加入到系统配置1.3 测试1.4 对于静态资源的处理1.5 小练习&#xff1a;统一登录拦截处理1.6 拦截器原理1.6.1 执行流程1.6.2 源…...

HQL解决连续三天登陆问题

1.背景 统计连续登录天数超过3天的用户&#xff0c;输出信息包括&#xff1a;用户id&#xff0c;登录天数&#xff0c;起始时间&#xff0c;结束时间&#xff1b; 2.准备数据 -- 建表 create table if not exists user_login_3days(user_id STRING,login_date date );--插入…...

(一)Docker简介(一篇足以)

一、简介 一个项目环境配置相当麻烦&#xff0c;如果换一台机器跑起来&#xff0c;所有配置就要重来一次&#xff0c;费力费时。很多人想到&#xff0c;能不能从根本上解决问题&#xff0c;软件可以带环境安装&#xff1f;也就是说&#xff0c;安装的时候&#xff0c;把原始环…...

RK3568 安卓源码编译

一.repo安卓编译工具 项目模块化/组件化之后各模块也作为独立的 Git 仓库从主项目里剥离了出去&#xff0c;各模块各自管理自己的版本。Android源码引用了很多开源项目&#xff0c;每一个子项目都是一个Git仓库&#xff0c;每个Git仓库都有很多分支版本&#xff0c;为了方便统…...

第4篇:vscode+platformio搭建esp32 arduino开发环境

第1篇:Arduino与ESP32开发板的安装方法 第2篇:ESP32 helloword第一个程序示范点亮板载LED 第3篇:vscode搭建esp32 arduino开发环境 1.配置默认安装路径&#xff0c;安装到D盘。 打开环境变量&#xff0c;点击新建 输入变量名PLATFORMIO_CORE_DIR与路径&#xff1a;D:\PLATF…...

2023前端面试笔记 —— CSS3

系列文章目录 内容链接2023前端面试笔记HTML52023前端面试笔记CSS3 文章目录 系列文章目录前言一、CSS选择器的优先级二、通过 CSS 的哪些方式可以实现隐藏页面上的元素三、px、em、rem之间有什么区别&#xff1f;四、让元素水平居中的方法有哪些五、在 CSS 中有哪些定位方式六…...

iOS 如何对整张图分别局部磨砂,并完全贴合

官方磨砂方式 - (UIVisualEffectView *)effectView{if(!_effectView){UIBlurEffect *blur [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];_effectView [[UIVisualEffectView alloc] initWithEffect:blur];}return _effectView; }使用这种方式对一张图的上半部分和…...

Packet_Tracer的使用

一、实验目的&#xff1a; 通过该实验了解Packet Tracer的使用方法&#xff0c;能够用Packet Tracer建立和模拟网络模型。 二、主要任务&#xff1a; 1.熟悉PT的界面&#xff0c;了解按键用途。 2.尝试自己建立一个小型网络&#xff0c;并测试连通性。 3.学习P…...

安卓aso关键词优化/seo推广优化培训

听说一个IP可以绑定多个域名&#xff0c;那么服务端是怎么实现的? 如果我以IP访问服务器&#xff0c;服务器怎么才能知道我想上的是哪个网站&#xff1f;全球所有网站共同使用一个IP&#xff0c;理论上都是可以的&#xff0c;只要每个网站有自己独一无二的域名。因为IP和网站没…...

有关房地产开发建设的网站/关键字广告

生成器提供了一种更容易的方法来实现简单的对象迭代&#xff0c;相比较定义类实现 Iterator 接口的方式&#xff0c;性能开销和复杂性大大降低。 生成器允许你在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组, 那会使你的内存达到上限&#xff0c;或者会…...

做非法集资资讯的网站/企业培训师资格证报考2022

所有材质都有一个最基本的主节点。一。Material Domain (材质域)Surface(表面)Deferrd DecalLight Function(灯光效果)VolumePost Process(后期效果)比如带外部轮廓的特殊材质。User Interface (界面UI)二。Blend Mode (混合模式)Opaque(不透明)它定义了光线无法通过或穿透的表…...

系部网站建设需求分析运行需求/西安百度竞价开户

正在升级windows xp sp3&#xff0c;结果复制文件到一半&#xff0c;跳出个beethov9.wm_无法复制到指定目录&#xff0c;而且忽略不了&#xff0c;会中止SP3的继续安装。查了下&#xff0c;这个beethov9.wma应该复制到C:\Documents and Settings\All Users\Documents\My Music\…...

网站打不开第二天不收录啦/口碑营销策划方案

一、顺序查找法&#xff1a; 1、哨兵型 2、非哨兵型 二、折半&#xff08;二分&#xff09;查找法 1、递归型 2、非递归型 》》》 一、顺序查找法&#xff1a; &#xff08;1&#xff09;哨兵型 int Search::sequentialSearch2(char key) {int i listLength_A;Alphabet[0]…...

做网站属于无形资产还是费用/行业门户网站推广

技能目标:理解CDH核心概念会进行CDH群集的部署会使用管理控制台对CDH群集进行管理会使用添加CDH群集服务8.1 案例分析8.1.1 案例概述Apache Hadoop是目前最主流的在通用硬件构建大型群集上运行应用程序的分布式架构。采用Apache 2.0许可协议发布开源协议&#xff0c;从而使用户…...