软考-高级系统架构师复习知识点总结

软件架构概念

软件架构定义

系统的一个或多个结构。结构中包含软件的构件、构件的外部可见属性、构件之间的相互关系。

软件架构设计与生命周期

需求分析阶段:问题空间,根据需求模型构件SA模型、保证模型转换的可追踪性

设计阶段

SA模型的描述:

SA的基本概念:构件、连接子、切面

体系结构描述语言:

多视图表示:关注点分离,4+1模型(逻辑视图、进程视图、开发视图、物理视图、统一的场景)

实现阶段

构件组装阶段

部署阶段

后开发阶段

动态软件体系结构:软件的体系结构会在运行时发生改变,软件内部执行创建新构件或根据不同配置使用不同连接子,软件外部请求升级修改。研究包括,体系结构设计阶段的支持和运行时刻基础设施的支持

体系结构恢复和重建,从已实现系统获取体系结构,包括手工重建、工具支持的手工重建、查询语言自动建立聚集、数据挖掘

重要性

减低成本、改进质量、按时按需交付

满足系统的品质、使受益人达成一致目标、支持计划编制过程、对系统开发指导、有效管理复杂性、复用的基础、降低维护费用、支持冲突分析

基于架构的软件开发方法

ABSD基于体系结构的软件设计:功能分解、体系结构风格使用、软件模板使用

基于体系结构的开发模型

体系结构需求 -> ~设计 -> ~文档化 -> ~复审 -> ~实现 -> ~演化

体系结构需求:需求获取、标识构件(生成类图、类分组、类打包成构件)、架构需求评审

体系结构设计:提出软件体系结构模型 - 把已标识的构件映射到软件体系结构中 - 分析构件之间的相互作用 - 产生软件体系结构 - 设计评审

文档化:系统设计与开发人员的通信媒介。包括体系结构规格说明、测试体系结构需求的质量设计说明书。要从使用者角度编写,开发者手上最新。

复审:标识潜在的风险,及早发现缺陷错误

实现:文档化的体系结构 -( 分析与设计 - 构件实现 - 构建组装 - 系统测试) - 体系结构演化

演化:修改软甲体系结构使用新的需求变化。需求变化归类 - 体系结构演化计划 - 构件变动 - 更新构件的相互作用 - 构件组装与测试 - 技术评审

软件架构风格

软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。

主程序-子程序:所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。

管道过滤器:每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。

数据抽象和面向对象组织:数据和操作封装在抽象数据类型或对象中,构件是对象(抽象数据类型的实例)

事件驱动:构件不直接调用过程,通过过程注册、事件触发来调用

分层系统:每层为上层服务作为下层客户,内部层接口只对相邻的层可见

仓库系统及知识库:中央数据结构说明当前状态、独立构件在其上运行。构件控制共享数据为传统型数据库,中央数据结构的当前状态触发进程执行的选择,则为黑板系统

C2风格:连接件绑定在一起按照一组规则运作的并行构件网络。构件和连接件有顶部和底部,顶部底部互连,构件可与连接件相连但不可互连,连接件可与任意数量其他部件相连

客户服务器风格:数据库服务器、客户应用程序、网络。适应性灵活性、易于扩充缩小、客户端开发成本高、客户端程序设计复杂、信息内容形式单一、用户界面风格不一、移植困难、客户端维护升级困难

三层CS结构风格:增加了应用服务器。表示层(用户界面,显示控制,数据检查,没有业务逻辑)、功能层(应用本体,业务处理逻辑)、数据层(数据库)

BS风格:三层应用结构的一种实现,浏览器/WEB服务器/数据库服务器,应用程序以网页形式存放在web服务器上。系统安装修改维护全在服务器端解决,节约开发成本。缺点,缺乏动态页面支持,没有集成有效的数据库处理功能;扩展能力差,安全性难控制;数据查询响应速度慢;数据提交以页面为单位,数据动态交互性不强,不利于在线事务处理OLAP应用

RESTRepresentational State Transfer)表现层状态转换
从资源的角度来定义整个网络系统结构,分布在各处的资源由统一资源标识符(URI)确定,客户端应用程序通过URI获取资源的表现,并通过获得资源表现使得其状态发生改变。
REST中将资源、资源的表现和获取资源的动作三者进行分离。

特定领域软件体系结构

DSSA:严格定义的问题域和问题解域,应用在领域中特定应用开发的普遍性,领域构件组织模型的恰当抽象

领域:垂直域,定义一个特定的系统族,领域中系统的通用软件体系结构;水平域,定义多个系统(族)中功能区域的共有部分,特定部分功能

实施DSSA:领域分析(获取领域模型)、领域设计(获得DSSA)、领域实现(依据领域模型和DSSA开发和组织可重用信息)。是一个反复过程

参与DSSA人员:领域专家(提供知识)、领域分析人员(获取知识,组织维护领域模型)、领域设计人员(开发DSSA)、领域实现人员(开发提取可重用构件)

DSSA建立过程(并发、递归、反复的,螺旋模型):定义领域范围、定义领域特定元素、定义领域特定设计和实现需求约束、定义领域模型和体系结构、产生搜集可重用产品单元

系统架构评估

质量属性:

性能:响应能力,单位时间内处理事务数、完成某个事务处理所需时间

可靠性:在意外或错误使用的情况下维持软件系统功能特性的基本能力
平均失效等待时间MTTF和平均失效间隔时间MTBF。
容错,错误发生时确保系统正确的行为并内部修复;
健壮性,不受错误使用和输入的影响,意外错误时确保处于定义好的状态

可用性:能够正常运行的时间比例,两次故障间时间长度或恢复正常的速度

安全性:机密性、完整性、可控性。系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力

可修改性:能够快速地以较高的性能价格比对系统进行变更的能力
可维护性,错误后修复;
可扩展性,增加替换构件;
结构重组;
可移植性

功能性:完成期望工作的能力

可变性:

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

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

相关文章

MySQL之MHA集群

MHA概述 什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点故障的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换…

iPhone手机上使用的定时提醒APP是哪个

在日常喧闹的生活和工作中,琐碎的任务会像喷泉一样突涌而至,如不及时规划,我们将陷入手足无措的境地。而想要让各项工作任务按时完成,我们可以借助一些比较好用的时间提醒软件来督促各项任务。 就拿常用的iPhone手机来讲&#xf…

Flutter的Platform介绍-跨平台开发,如何根据不同平台创建不同UI和行为

文章目录 Flutter跨平台概念介绍跨平台开发平台相关性Platform ChannelPlatform-specific UIPlatform Widgets 如何判断当前是什么平台实例 Platform 类介绍获取当前平台的名称检查当前平台其他属性 利用flutter设计跨Android和IOS平台应用的技巧1. 遵循平台的设计准则2. 使用平…

回归算法全解析!一文读懂机器学习中的回归模型

目录 一、引言回归问题的重要性文章目的和结构概览 二、回归基础什么是回归问题例子: 回归与分类的区别例子: 回归问题的应用场景例子: 三、常见回归算法3.1 线性回归数学原理代码实现输出例子: 3.2 多项式回归数学原理代码实现输…

Ubuntu磁盘满了,导致黑屏

前言 (1)最近要玩Milk-V Duo,配置环境过程中,发现磁盘小了。于是退出虚拟机,扩大Ubuntu大小,重新开机,发现无法进入Ubuntu界面。 (2)查了很久,后面发现是磁盘…

javascript二维数组(19)不要键名只保留值的算法

在数组var a[ {pre1_day_off:1}, {pre2_day_off:2}, {pre3_day_off:3} ]中,如果去除键名只保留值,形成[1,2,3]这样的数组格式 在JavaScript中,你可以通过使用Array.prototype.map函数来实现这个目标。map函数遍历数组的每个元素,然…

这短短 6 行代码你能数出几个bug?

前言:本文仅仅只是分享笔者一年前见到的诡异代码,大家可以看看乐子,随便数一数一共有多少个bug,这数bug多少还是要点水平的 在初学编程的时候,写的第一个代码大多都是 hello world,可是就算是 hello world…

Windows安装Node.js

1、Node.js介绍 ①、Node.js简介 Node.js是一个开源的、跨平台的JavaScript运行环境,它允许开发者使用JavaScript语言来构建高性能的网络应用程序和服务器端应用。Node.js的核心特点包括: 1. 事件驱动: Node.js采用了事件驱动的编程模型,通…

04训练——基于YOLO V8的自定义数据集训练——在windows环境下使用pycharm做训练-1总体步骤

在上文中,笔者介绍了使用google公司提供的免费GPU资源colab来对大量的自定义数据集进行模型训练。该方法虽然简单好用,但是存在以下几方面的短板问题: 一是需要通过虚拟服务器做为跳板机来访问,总体操作起来非常繁杂。 二是需要将大量的数据上传缓慢,管理和使用非常不友…

FutureTask和CompletableFuture的模拟使用

模拟了查询耗时操作,并使用FutureTask和CompletableFuture分别获取计算结果,统计执行时长 package org.alllearn.futurtask;import com.google.common.base.Stopwatch; import com.google.common.collect.Lists; import lombok.AllArgsConstructor; imp…

基于Java的源代码共享平台设计与实现(源码+lw+ppt+部署文档+视频讲解等)

文章目录 前言系统功能具体实现截图论文参考详细视频演示代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、…

2023年新——Office正版永久免费安装方法

1.官网下载Office Deployment Tool 去微软官网:https://www.microsoft.com/en-us/download/details.aspx?id49117 下载对应的安装包,放在任意位置都可以,建议放在D盘,E盘等。 下载完成后,点击安装,可以安…

WebDAV之π-Disk派盘 + 书藏家

书藏家是一款书籍收藏的软件,对于喜欢阅读书籍的用户来说非常友好,记录你所阅读的书籍内容,对你所阅读的书籍内容进行全方位的管理,并且支持多种录入的方式,不管是实体书籍还是网络书籍都能够进行更为有效的管理;内置WebDAV 模块,更加便利的整理自己的文件资源;书藏家的…

bert入门

bert是什么 BERT(Bidirectional Encoder Representations from Transformers)是一种自然语言处理(NLP)中的预训练模型,它是基于Transformer架构的一种深度学习模型。BERT的主要目标是在大规模文本语料库上进行预训练&a…

springboot中自定义拦截器用Component注解不用Configuration注解的坏处是什么

在Spring Boot中,如果你使用Component注解来标记自定义拦截器类而不使用Configuration注解,会有以下一些潜在的问题和限制: 注册顺序的问题:使用Component注解标记的类是被自动扫描并创建为Bean的,它们的注册顺序是不…

图像上传功能实现

一、后端 文件存放在images.path路径下 package com.like.common;import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annot…

若依微服务部署,裸服务部署、docker部署、k8s部署

目录 前言windows 部署若依-微服务版本浏览器验证docker部署若依-微服务版本浏览器验证k8s部署若依-微服务版本浏览器验证总结 前言 环境:centos7、Win10 若依是一个合适新手部署练习的开源的微服务项目,本篇讲解Windows部署若依微服务、docker部署若依…

2023 NewStarCTF --- wp

文章目录 前言Week1MiscCyberChefs Secret机密图片流量!鲨鱼!压缩包们空白格隐秘的眼睛 Web泄露的秘密Begin of UploadErrorFlaskBegin of HTTPBegin of PHPR!C!E!EasyLogin CryptobrainfuckCaesars SecertfenceVigenrebabyrsaSmall dbabyxorbabyencodin…

【广州华锐互动】车辆零部件检修AR远程指导系统有效提高维修效率和准确性

在快速发展的科技时代,我们的生活和工作方式正在被重新定义。这种变化在许多领域都有所体现,尤其是在汽车维修行业。近年来,AR(增强现实)技术的进步为这个行业带来了前所未有的可能性。通过将AR技术与远程协助系统相结…

Kafka核心原理

1、Topic的分片和副本机制 分片作用: 解决单台节点容量有限的问题,节点多,效率提升,吞吐量提升。通过分片,将一个大的容器分解为多个小的容器,分布在不同的节点上,从而实现分布式存储。 分片…