【新版系统架构】第七章-系统架构设计基础知识(架构风格、复用)

news2024/11/18 9:49:49

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版)

  1. 第一章-绪论
  2. 第二章-计算机系统基础知识(一)
  3. 第二章-计算机系统基础知识(二)
  4. 第三章-信息系统基础知识
  5. 第四章-信息安全技术基础知识
  6. 第五章-软件工程基础知识(一)
  7. 第五章-软件工程基础知识(需求工程和系统分析与设计)
  8. 第五章-软件工程基础知识(软件测试、净室软件工程、基于构件的软件工程、 软件项目管理)
  9. 第六章-数据库设计基础知识(数据库基本概念、关系数据库)
  10. 第六章-数据库设计基础知识(数据库设计)
  11. 第七章-系统架构设计基础知识(基于架构的软件开发方法)

软件架构风格

  • 架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效的组织成一个完整的系统
  • 架构风格定义了用于描述系统的术语表和一组指导构建系统的规则
五大架构风格子风格
数据流风格批处理、管道-过滤器
调用/返回风格主程序/子程序、面向对象、层次结构
独立构件风格进程通信、事件驱动系统(隐式调用)
虚拟机风格解释器、规则系统
仓库风格数据库系统、黑板系统、超文本系统

数据流风格

在这里插入图片描述
前一步的处理结果是后一步的输入内容【数据驱动】
在这里插入图片描述

优点缺点实例
1、松耦合【高内聚-低耦合】
2、良好的重用性、可维护性
3、可扩展性【标准接口适配】
4、良好的隐蔽性
5、支持并行
1、交互性较差
2、复杂性较高
3、性能较差(每个过滤器都需要解析和合成数据)
传统编译器
网络报文处理

调用/返回风格

在这里插入图片描述
这应该很好理解,程序里用的是最多的了。

子风格:
在这里插入图片描述

特别讲解下子风格分层架构风格:在这里插入图片描述

独立构件风格

独立构件风格包括:进程通信和事件系统风格

在这里插入图片描述

优点缺点特点
1、松耦合
2、良好的重用性、可修改性和可扩展性
1、构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其他构件是否会响应。即使知道了事件注册哪些构件,也不能保证这些过程被调用的顺序
2、数据交换的问题
3、过程的语义必须依赖被触发事件的上下文约束
系统由若干子系统构成且成为一个整体;系统由统一的目标;子系统有主从之分;每一个子系统有自己的事件收集和处理机制

虚拟机风格

在这里插入图片描述
在这里插入图片描述

仓库风格

比如数据库、数据中台等
在这里插入图片描述

其他

闭环控制风格

在这里插入图片描述

  • 适用于嵌入式系统,用于解决简单闭环控制问题
  • 经典应用:空调温控、定速巡航

C2风格

在这里插入图片描述
C2架构基本规则:

  • 构件和连接件都有一个顶部和一个底部
  • 构件的顶部要连接到连接件的底部,构件的底部要连接到连接件的顶部,构件之间不允许直连
  • 一个连接件可以喝任意数目的其他构件和连接件连接
  • 当两个连接件直接连接时,必须由其中一个的底部到另一个的顶部

软件架构复用

软件架构复用包括机会复用和系统复用。

可复用的资产包括:需求、架构设计、元素、建模与分析、测试、项目规划、过程方法和工具、人员、样品系统、缺陷消除

一、软件架构复用的基本过程
包括3个阶段:构造/获取可复用的软件资产,其次管理这些资产,最后针对特定的需求,从这些资产中选择可复用的部分,以开发满足需求的应用系统

特定领域软件体系结构(DSSA)

DSSA的必备特征如下:

  1. 一个严格定义的问题域和问题解域
  2. 具有普遍性,使其可以用于领域中某个特定应用的开发
  3. 对整个领域的构件组织模型的恰当抽象
  4. 具备该领域固定的、电信的开发过程中可重用元素

从功能覆盖的范围角度:

  1. 垂直域:定义一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件体系结构
  2. 水平域:定义了在多个系统和多个系统族中功能区域的共有部分,在子系统级上涵盖多个系统族的特定部分功能

一、DSSA基本活动

  1. 领域分析:获得领域模型
  2. 领域设计:获得DSSA
  3. 领域实现:依据领域模型和DSSA开发和组织可重用信息

二、参与DSSA的人员
领域专家、领域分析人员、领域设计人员、领域实现人员

二、DSSA建立过程
建立过程分为5个阶段:

  1. 定义领域范围
  2. 定于领域特定的元素
  3. 定义领域特定的设计和实现需求约束
  4. 定义领域模型和体系结构
  5. 产生、搜集可重用的产品单元

在这里插入图片描述


作者其他要推荐的文章,欢迎来学习:
基于Spring Boot 3.1.0 系列文章

  1. Spring Boot 源码阅读初始化环境搭建
  2. Spring Boot 框架整体启动流程详解
  3. Spring Boot 系统初始化器详解
  4. Spring Boot 监听器详解
  5. Spring Boot banner详解
  6. Spring Boot 属性配置解析
  7. Spring Boot 属性加载原理解析
  8. Spring Boot 异常报告器解析
  9. 使用GraalVM 构建 Spring Boot 3.0 原生可执行文件
  10. Spring Boot 3.x微服务升级经历

Prometheus 系列文章

  1. Prometheus 的介绍和安装
  2. 直观感受PromQL及其数据类型
  3. PromQL之选择器和运算符
  4. PromQL之函数
  5. Prometheus 告警机制介绍及命令解读
  6. Prometheus 告警模块配置深度解析
  7. Prometheus 配置身份认证
  8. Prometheus 动态拉取监控服务
  9. Prometheus 监控云Mysql和自建Mysql

Grafana 系列文章,版本:OOS v9.3.1

  1. Grafana 的介绍和安装
  2. Grafana监控大屏配置参数介绍(一)
  3. Grafana监控大屏配置参数介绍(二)
  4. Grafana监控大屏可视化图表
  5. Grafana 查询数据和转换数据
  6. Grafana 告警模块介绍
  7. Grafana 告警接入飞书通知

Spring Boot Admin 系列

  1. Spring Boot Admin 参考指南
  2. SpringBoot Admin服务离线、不显示健康信息的问题
  3. Spring Boot Admin2 @EnableAdminServer的加载
  4. Spring Boot Admin2 AdminServerAutoConfiguration详解
  5. Spring Boot Admin2 实例状态监控详解
  6. Spring Boot Admin2 自定义JVM监控通知
  7. Spring Boot Admin2 自定义异常监控
  8. Spring Boot Admin 监控指标接入Grafana可视化

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

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

相关文章

安装两个mysql

标题:安装两个mysql 参考blog:MySQL–修改mysql服务可执行文件的路径(Windows) 参考视频:mysql安装-安装多个mysql方法 安装第一个,网上有很多教程,这里就附上一个链接了:mysql5.5安装 安装第…

JS知识点汇总(七)--数据类型

1. JavaScript中的简单数据类型有哪些? 1、概述 JS 中有六种简单数据类型:undefined、null、boolean、string、number、symbol ES10中的新特性 BigInt (任意精度整数),目前还处于stage-4阶段,不出意外即将成为js的第七种基本数据…

036:mapboxGL点击某位置,转换坐标为地址,弹出地理信息

第036个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中点击某位置,转换坐标位地址,弹出地理信息. 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共106行)相关API参考:专栏目标示例效果 配置方式 1)…

完整的复数类

复数类应该具有的操作 运算:,-,*,/ 比较:,! 赋值: 求模:modulus 利用操作符重载 统一复数与实数的运算方式 统一复数与实数的比较方式 注意事项 C 规定赋值操作符 () 只能重载…

vue项目运行不起来,可能是版本等不兼容问题

给pakeage.json 运行脚本前加上:set NODE_OPTIONS--openssl-legacy-provider && 即可。

echarts 实现3D饼图

2023.6.30今天我学习了如何使用echarts渲染一个3d的饼图&#xff0c;效果如下&#xff1a; 相关代码如下&#xff1a; <template><div ref"pie3d"/> </template> <script>mounted() {this.myChart this.$echarts.init(this.$refs.pie3d);…

【AUTOSAR】BMS开发实际项目讲解(二十五)----电池管理系统安全状态过渡

安全状态过渡 关联的系统需求 TSR-BMS-S201、TSR-BMS-S202、TSR-BMS-S203、TSR-BMS-S204、TSR-BMS-S601、TSR-BMS-S602、TSR-BMS-S603、TSR-BMS-S604、TSR-BMS-S605、TSR-BMS-S606、TSR-BMS-S607、TSR-BMS-S608、TSR-BMS-S609、TSR-BMS-S610、TSR-BMS-S611、TSR-BMS-S612; TSC…

【Linux系统编程】—进程学习笔记(fork进程创建、退出、僵死进程与孤儿进程、如何避免僵死进程)

目录 一、进程关键概念 二、进程创建实战 1、fork函数 2、fork创建一个子进程的一般目的&#xff1a; 3、fork函数实例&#xff1a; 4、fork的写时拷贝技术&#xff08;COW&#xff09; 三、进程退出 1、正常退出 2、异常退出 3、总结 四、僵死进程与孤儿进程 1、什…

融合学习:跨文化交流的学习平台

在全球化的时代&#xff0c;跨文化交流已经成为了一个不可避免的现象。在这种情况下&#xff0c;融合学习平台成为了一个非常重要的工具&#xff0c;可以帮助人们更好地了解和学习不同文化之间的差异和相似之处。本文将探讨融合学习平台的重要性&#xff0c;以及如何选择最佳的…

构建交互式数据框架:使用Gradio的Dataframe模块

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

查找算法-线性搜索

线性搜索 简介 线性搜索是一种简单的搜索算法&#xff0c;也被称为顺序搜索。它从数据集的起始位置开始&#xff0c;逐个比较每个元素&#xff0c;直到找到目标元素或遍历完整个数据集为止。如果目标元素存在于数据集中&#xff0c;线性搜索会返回该元素的位置或索引&#xf…

照片如何转存到手机笔记中?具体方法教程在这里

传统的笔记形式一般是以文字的形式记录&#xff0c;通常是在一个笔记本中写下自己的所感所想、工作、生活等方面的内容。有时也有人会选择贴上照片&#xff0c;成为个人回忆的重要资料。 而随着手机笔记的出现&#xff0c;很多人选择使用它来记录&#xff0c;因为我们可以随时…

小米 红米 Redmi note11 4G 5G 手机解锁BL 秒BL解锁 教程 跳过168小时 selenes evergo线刷机包下载

红米&#xff08;Redmi&#xff09;Note 11 5G 手机BL解锁 红米note11 4G/5G 秒解锁BL锁 方法 教程 跳过168小时 新版本 selenes evergo 红米Note11系列版本非常多&#xff0c;从4G开始一直到后面出现的11R&#xff0c;我们常见的机型有红米 Note11/11Pro/11Pro/11SE/11R等等&…

管理类联考——数学——知识篇——公式——最难记

立方和与立方差公式 a 3 b 3 ( a b ) ( a 2 ∓ a b b 2 ) a^3b^3(ab)(a^2∓abb^2) a3b3(ab)(a2∓abb2) 一元二次方程求根公式 x − b b 2 − 4 a c 2 a &#xff0c; b 2 − 4 a c ≥ 0 x\frac{-b\sqrt{b^2-4ac}}{2a}&#xff0c;\sqrt{b^2-4ac}≥0 x2a−bb2−4ac ​​&…

蓝牙模块(HC-05/HC-06)详解

这里写目录标题 0. 蓝牙概述蓝牙技术的特点 1. 常见的蓝牙模块2. HC-05/HC-062.1 概念2.2 区别 3. STM32使用HC-05通信3.1 方法3.2 示例代码 0. 蓝牙概述 蓝牙&#xff08;Bluetooth&#xff09;是一种用于无线通信的技术标准&#xff0c;允许设备在短距离内进行数据交换和通信…

初学mybatis(七)缓存

学习回顾&#xff1a;初学mybatis&#xff08;六&#xff09; 一、简介 1、什么是缓存 [ Cache ]&#xff1f; 存在内存中的临时数据。将用户经常查询的数据放在缓存&#xff08;内存&#xff09;中&#xff0c;用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询&#x…

6应用层-6.2【实验】【计算机网络】

6应用层-6.2【实验】【计算机网络】 前言推荐6应用层知识一、DNS常用记录类型&#xff1a;二、nslookup命令的用法 6.1 Web服务与FTP服务配置6.2 DNS域名系统配置实验目的实验内容及实验环境实验原理实验过程1.搭建如图所示的网络拓扑2.测试网络连通性3.在服务器上启用DNS服务&…

腾讯云部署tomcat问题--使用localhost访问没问题但是使用公网访问就有问题

1、使用localhost访问没问题。 2、使用公网访问就有问题 3、解决方案 3.1设置了一个规则&#xff0c; 3.2查看页面&#xff0c;访问OK

如何在 Shadow 插件化框架中动态加载和调用插件中的方法

Shadow是一种Android插件化框架&#xff0c;它允许将应用功能模块以插件的方式集成到宿主应用中。插件化是指将应用的不同模块打包成独立的插件&#xff0c;可以在运行时动态地加载和卸载这些插件&#xff0c;从而实现动态扩展和灵活组合功能。 Shadow插件化框架采用了类加载器…

Jenkins全栈体系(一)

Jenkins Jenkins&#xff0c;原名 Hudson&#xff0c;2011年改为现在的名字。它是一个开源的实现持续集成的软件工具。 第一章 GitLab安装使用 官方网站&#xff1a;https://about.gitlab.com/ 安装所需最小配置 内存至少4G https://docs.gitlab.cn/jh/install/requireme…