软考高级系统架构师背诵要点---质量属性与架构评估

news2024/10/10 10:32:55

质量属性与架构评估

质量属性:

        1.性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件个数

代表参数:响应时间、吞吐量  

设计策略:优先级调度、资源调度、增加计算资源

        2.可用性: 是指系统能够正常运行的时间比例。

代表参数: 故障隔离时间

设计策略:冗余、心跳线

        3.安全性: 指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力

设计策略:身份认证、限制访问、检测攻击、维护完整性、追踪审计

        4.可修改性:是指能够快速的以较高的性能价格比对系统进行变更的能力

主要策略:信息隐藏、软件模块化、限制模块之间通信、使用中介和延迟绑定

        5.可靠性:系统在错误面前维持系统的功能特性的基本能力,主要考虑容错性、健壮性

代表参数:MTTF、MTBF

设计策略:冗余、心跳线

        6.功能性:是指系统所能完成所期望的工作的能力

        7.可变性:指体系结构经扩充或变更而成为新体系结构的能力

        8.互操作性:指系统与外界或系统与系统之间的相互作用能力

        9.可测试性:指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。

        10.易用性:衡量用户使用一个软件产品完成指定任务的难易程度。

架构评估:

风险点:系统架构风险是指架构设计过程中潜在的、有问题的架构决策所带来的隐患

敏感点:为了实现某种质量属性,一个或多个构件所具有的特性

权衡点:影响多个质量属性的特性,是多个质量属性的敏感点

评估方式:

  1. 基于问卷调查的方式   2. 基于度量的方式   3. 基于场景的方式

对比:

 

基于场景的方式:

确定应用领域的功能和软件架构的结构之间的映射

设计用于体现待评估质量属性的场景

分析软件架构对场景的支持程度

软件架构分析法(SAAM)

最初用于分析架构的可修改性,后扩展到其他质量属性

架构权衡分析法(ATAM)

在SAAM基础上发展而来、主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。ATAM 可以分为 4 个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念

软件产品线:

概念:是指具有一组可管理的公共特性的软件密集性系统的合集,这些系统满足特定的市场需求或任务需求,并且按预定义的方式从一个公共的核心资产集开发得到

组织结构类型:

  1. 设立独立的核心资源小组
  2. 不设立独立的核心资源小组
  3. 动态的组织结构

成功的产品线取决于下因素:

1.对该领域具备长期和深厚的经验

2.一个用于构建产品的好的核心资源库

3.好的产品线架构

4.好的管理支持

软件产品线建立方式:

 

构件与中间件:

构件:

概念:软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖。软件构件可以被独立的部署并由第三方任意的组装。

特性:独立部署单元、作为第三方的组装单元、没有外部可见状态

构件复用:检索与提取构件 -> 理解与评价构件 -> 修改构件 -> 组装构件

中间件:

概念:中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源

采用中间件技术的优点:

  1. 面向需求
  2. 业务的分隔和包容性
  3. 设计与实现隔离
  4. 隔离复杂的系统资源
  5. 符合标准的交互模型
  6. 软件复用
  7. 提供对应用构件的管理

经典应用架构:

J2EE:

分为客户机、EJB服务器、数据存储服务器

Bean分为三类:

会话Bean:描述了一个与客户端的短暂对话

实体Bean:持久化数据,ORM映射

消息驱动Bean:会话Bean加JMS,客户把消息发送给JMS的目的地,然后JMS提供者和EJB容器协作,把消息发送给消息驱动Bean。支持异步消息

核心组成:Applet、JSP、Servlet、EJB容器等

Web架构设计:

无状态:对单次请求的处理不依赖于其他请求

有状态:会在自身保存一些数据,先后的请求是有关联的

应用层负载均衡:

1.http重定向

2.反向代理服务器

传输层负载均衡:

1.DNS域名解析负载均衡

2.基于NAT的负载均衡,通过硬件实现,将一个外部IP地址映射到多个内部IP,对每次连接请求动态的转为一个内部节点的地址

数据库读写分离:  一主多从,主从复制,写主库,读从库

缓存:

Memcached: 通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频等

Redis: 提供基于内存的可持久化的日志型、Key-Value型数据存储,并提供多种语言的API

Memcached与Redis的对比:

 

Redis常见问题:

  1. 缓存雪崩:大部分缓存失效导致数据库的崩溃,解决方式:缓存高可用、缓存降级、Redis备份、提前演练

2.缓存穿透:查询数据返回空值,空值未缓存到Redis,后续大批量相同请求直接访问数据库导致数据库崩溃,解决方式:缓存空值

CDN(内容分发网络):

基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输更快、更稳定

Web应用服务器: 职能比较单一,就是把浏览器发过来的Request请求,返回Html页面

应用服务器: 进行业务逻辑的处理,如Apache服务器、tomcat服务器

REST(表述性状态传递):

是一种使用HTTP和XML进行基于Web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性

5个原则:

1.网络上的所有事物都被抽象为资源

2.每个资源对应一个唯一的资源标识

3.通过通用的连接件接口对资源进行操作

4.对资源的各种操作不会改变资源标识

5.所有的操作都是无状态的

响应式Web设计:

定义:响应式Web设计是一种网络页面设计布局,其理念是:集中创建页面的图片排版大小,可以智能的根据用户行为以及使用的设备环境进行相对应的布局

方法与策略: 1.采用流式布局、弹性化设计和媒体查询等,2.响应式图片

中台:

定义:中台是结合互联网技术和行业特性,将企业核心能力以共享服务的形式进行沉淀,形成大中台、小前台的组织和业务机制,供企业快速低成本的进行业务创新的企业架构。

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

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

相关文章

【MyBatis】| MyBatis查询语句专题(核心知识)

目录 一&#xff1a;MyBatis查询语句专题 1. 返回Car对象 2. 返回List<Car> 3. 返回Map 4. 返回List<Map> 5. 返回Map<String,Map> 6. resultMap结果映射 7. 返回总记录条数 一&#xff1a;MyBatis查询语句专题 前期准备&#xff1a; 模块名&#xf…

为什么计算机需要操作系统?

当计算机只运行一个程序时&#xff0c;只需将所有的资源(CPU、内存、磁盘等)分配给这一个程序就行&#xff1b;当计算机同时运行2个或以上程序时&#xff0c;操作系统就需要充当一下角色&#xff1a; 资源分配器资源隔离与秩序维护者细节屏蔽者 一. 资源分配器 计算机的硬件…

Springboot整合第三方技术及整合案例

Springboot整合第三方技术一、Springboot整合Junit1、步骤2、classes属性二、整合Mybatis1、步骤2、常见问题三、整合Mybatis-plus1、步骤2、常见配置四、整合Druid1、步骤五、整合案例-数据层&#xff08;基础的CRUD&#xff09;1、创建springboot项目手工导入starter坐标2、配…

【正点原子FPGA连载】第二十六章gpio子系统简介 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十六章gpio子…

NVDLA Xilinx FPGA Mapping

Lei WangLeiWang1999要当世界第一&#xff01;78357联系我常用的链接1. 1. 硬件系统设计概述1.1. 1.1 RTL 生成1.2. 1.2 IP Package1.2.1. 1.2.1 csb2apb1.2.2. 1.2.2 关闭 Clock Gating1.2.3. 1.2.3 IP Package1.3. 1.3 Block Design1.4. 1.4 Generate Bit HDF1.5. 1.5 Sanity…

java基础一JVM之JRE、JDK、解释器、编译器详解

1.JVM、JRE和JDK区别 1.JVM&#xff08; Java Virtual Machine &#xff09;&#xff1a; Java虚拟机&#xff0c;它是整个 Java 实现跨平台的最核心的部分&#xff0c;所有的 Java 程序会首先被编译为 .class 的类文件&#xff0c;这种类文件可以在虚拟机上执行&#xff0c;…

3.10-动态规划-01背包问题

问题描述&#xff0c;给定n种物品和一个背包。物品 i 的重量是 wi &#xff0c;其价值为 vi &#xff0c;背包的容量为 c &#xff0c;问应该如何选择装入背包中的物品&#xff0c;使得装入背包的物品总价值最大&#xff1f; 写在前面 dp数组的含义--dp[i][j]表述容量为j 已经…

【计算机体系结构-03】ISA (Instruction Set Architecture) 指令集架构特性

1. 指令的类型 上一篇文章里主要介绍了几种机器模型&#xff0c;有机器模型后需要知道计算机有什么样的基本指令&#xff0c;接下来就来看看指令都有哪些类型。 [注]&#xff1a;以下指令主要为 MIPS 指令。 类型指令数据传输LD、ST、MFC1、MTC1、MFC0、MTC0计算ADD、SUB、AN…

Vue3和Vue2的slot-scope插槽用法

目录 &#x1f9e8;&#x1f9e8;&#x1f9e8;第一种插槽&#xff08;匿名插槽&#xff09; &#x1f9e8;&#x1f9e8;&#x1f9e8;第二种插槽&#xff08;具名插槽&#xff09;以及插槽简写 具名插槽的使用 &#x1f9e8;&#x1f9e8;&#x1f9e8;第三种插槽(作用域插…

使用HTTP代理后,网速反而变慢是什么原因?

如今越来越多的人利用HTTP代理开展业务&#xff0c;但在实际使用时&#xff0c;经常会有用户发现使用了HTTP代理后&#xff0c;网速非但没有变快&#xff0c;反而还更慢了。我们今天就来说说&#xff0c;这是什么原因造成的&#xff0c;从根本入手对于我们能更有利的解决问题。…

2.Spring IOC

目录 一.如何进行注册 二、如何进行注入 三、扫描注解的原理 反射文件操作 四、什么是IOC/DI&#xff1f; 五、演示使用Spring开发的案例&#xff1a;用户管理|登陆、注册 五、常见错误总结 1、注解使用Repository 2、UserController的构造方法注入&#xff1a; 3、…

【FreeRTOS】第一章:介绍

FreeRTOS是什么&#xff1f; Free和RTOS,Free就是免费的、自由的意思&#xff0c;RTOS 全称是 Real Time Operating System。中文名就是实时操作系统。可以看出FreeROTS 就是一个免费的 RTOS 类系统。这里要注意&#xff0c;RTOS 不是指某一个确定的系统&#xff0c;而是指一类…

联想电脑安装ubuntu18.04双系统超详细教程(23年最新教程,99%成功率)

文章目录前言电脑配置制作系统盘安装ubuntu系统更新显卡驱动安装wifi驱动完成前言 ubtuntu的长期支持版本现在应该已经出道21.04版本了&#xff0c;如果你对于版本没有要求的话&#xff0c;建议直接安装最新版ubuntu&#xff0c;因为新版的系统驱动都会进行更新&#xff0c;也…

自学 Java 怎么入门?

玩Java多年的老司机带你上车全面系统学习Java&#xff0c;并且还能教你如何学习才能在今年拿到一份不错的offer。 说到系统全面&#xff0c;就是以目前绝大部分公司招聘要求的知识内容为基准&#xff0c;毕竟我们学习Java都是为了高薪工作&#xff0c;《史记》中说”天下熙熙皆…

2.【SpringBoot源码】SpringBoot核心启动流程

目录 一、简介 二、创建SpringApplication对象 1)、推导出当前启动的项目的类型 2)、设置Initializer初始化器 3)、初始化Listener监听器 4)、反推出main方法所在的Class对象 三、运行SpringApplication#run(java.lang.String...)方法 1)、获取运行监听器 2)、发布…

unity使用对象池实现冲锋留下的残影效果

目录 效果展示 实现思路 残影代码 对象池代码 控制冲刺产生残影 CD冷却图标 效果展示 实现思路 对象池&#xff0c;有想要用的物体时可以从池子里取&#xff0c;用完再放回去。 因为在生成残影再销毁&#xff0c;这个过程中创建和销毁都需要耗费大量资源&#xff0c;因此…

shell 条件测试详解

目录 shell条件测试 一&#xff0c;条件测试的基本语法 1&#xff0c;test 2&#xff0c;[ ] 3&#xff0c;[[ ]] 二&#xff0c;文件测试表达式 1&#xff0c;判断目录是否存在&#xff1a; 2&#xff0c;判断文件file1是否有写的权限&#xff0c;结果为有 3&#xf…

重学MySQL基础(一)

文章目录重学MySQL基础&#xff08;一&#xff09;MySQL 连接管理MySQL字符编码InnoDB 记录存储结构InnoDB 表的主键生成策略&#xff1a;InnoDB 数据页结构页目录页的效验和索引事务报错记录在MySQL中创建函数时出现这种错误恶补SQL语句SQL中的条件语句SQL中的字符串函数SQL中…

python调用go语言踩坑记录

目录 基本操作 1 在go文件中加注释&#xff0c;设置为导出方法,导出C依赖 2 导出so文件&#xff08;mac或者linux下只需要so&#xff09; 3 进行调用 报错记录 踩坑1 关于结构体 2 cannot use (_Cfunc_CString)("12345") (value of type *_Ctype_char) as ty…

spring中事务失效场景

文章目录spring中事务失效场景一、权限访问问题二、方法用final修饰三、无事务嵌套有事务的方法四、没有被spring管理五、设计的表不支持事务六、没有开启事务七、错误的事务传播八、自己捕获了异常九、手动抛出别的异常十、自定义回滚异常spring中事务失效场景 一、权限访问问…