(三)软件架构设计

2024年博主考软考高级系统架构师没通过,于是决定集中精力认真学习系统架构的每一个环节,并在2025年软考中取得了不错的成绩,虽然做信息安全的考架构师很难,但找对方法,问题就不大!

本文主要是博主在学习过程中,整理了软考系统架构师教材中的零碎知识点,考前要全部背会,即可应对绝大部分选择题和案例分析题。

-------------------分界线-----------------------

1、软件架构的4+1视图:
逻辑视图:面向最终用户。从系统静态结构和动态行为角度显示系统内部是如何实现功能的。
开发视图:面向程序员。又称实现视图。显示源代码以及执行代码的组织结构。
过程视图:面向系统集成人员。又称处理视图。显示程序执行时的并发状态。
物理视图:面向系统工程人员。展示软件到硬件的映射。
场景:又称用例视图,显示外部参与者观察到的系统功能。
2、数据流架构风格:批处理、管道-过滤器。示例有传统编译器、网络报文处理。
3、调用-返回架构风格:主程序-子程序、面向对象、分层架构。
4、独立构件风格:进程通信、隐式调用(事件驱动系统)。
5、虚拟机风格:解释器(用于用户自定义场景、灵活组合场景)、规则系统。
6、以数据为中心,仓库风格:数据库系统、黑板系统、超文本系统(人类思维)。
7、仓库风格中,中央数据库说明当前状态,独立构件在中央数据存储上执行。
8、过程控制架构:又称闭环控制架构。适用于空调温控、定速巡航等。
9、C2风格:构件和连接件都有一个顶部和一个底部。构件不能直接相连。
10、三层C/S将应用功能分成表示层、功能层、数据层。
11、物联网分层:感知层(解决数据获取问题)、网络层(解决数据传输问题)、应用层(解决人机交互问题)
12、微服务的个体约束:每个微服务都是独立的,修改一个微服务不能影响另一个微服务。
13、微服务之间的横向关系:通过第三方服务注册中心来满足服务的可发现性。
14、云原生架构的设计原则:服务化原则、弹性原则、可观测原则、韧性原则、所有过程自动化原则、零信任原则、架构持续演进原则。
15、边云协同的分类:
资源协同:边缘节点有基础设施资源的调度管理能力,可与云端协同。
数据协同:边缘节点采集数据并初步分析,之后发给云端处理。
智能协同:云端做集中式模型训练,再将模型下发给边缘节点。
应用管理协同:边缘节点提供应用部署与运行环境,云端提供应用开发与测试环境。
业务管理协同:边缘节点提供模块化的应用实例,云端按需求实现业务编排能力。
服务协同:边缘节点按云端策略实现部分ECSaaS服务,云端提供和边缘节点的SaaS服务分布策略。
16、架构描述语言(ADL)包括:组件、组件接口、连接件、架构配置。
17、特定领域软件架构(DSSA)分为:领域开发环境、领域特定应用开发环境、领域执行环境。
18、特定领域软件架构(DSSA)分为:领域专家、领域分析人员、领域设计人员、领域实现人员。
19、领域设计人员的任务是:根据领域模型和现有的系统开发出DSSA。
20、DSSA的基本活动包括:领域分析、领域设计、领域实现。
领域分析的目标:获得领域模型。
领域设计的目标:获得DSSA。
领域实现的目标:依据领域模型、DSSA开发和可重用信息,对基础软件架构进行实现。
21、基于架构的软件设计(ABSD)开发过程:架构需求、架构设计、架构文档化、架构复审、架构实现、架构演化。是一个自顶向下,递归细化的方法。
22、软件系统的体系结构通过ABSD得到细化,直到能产生软件构件和类。
23、架构文档化主要输出:架构规格说明书、测试架构需求的质量设计说明书。
24、架构复审的目标是:标识潜在的风险,及早发现设计中的缺陷和错误。
25、ABSD强调由商业、质量、功能需求的组合驱动,强调采用视角与类图描述软件架构、采用用例与质量场景描述需求。
26、ABSD方法的三个基础:功能分解、选择架构风格实现质量及商业需求、软件模使用。
27、软件架构需求:用户对目标系统在功能、行为、性能、设计约束等方面的期望。
需求过程主要是获取用户需求、标识系统中所要用到的构件、进行架构需求评审。
标识构件详细分为:生成类图、对类图进行分组、将类打包成构件三步。
28、场景是从风险承担者的角度对系统交互的描述,可以从六个方面进行描述:刺激源、刺激、制品、环境、响应、响应度量。一般采用刺激、环境、响应三方面来及描述。
29、基于场景的架构分析方法(SAAM)分析评估体系结构的过程包括五个步骤:场景开发、体系结构描述、单个场景评估、场景交互、总体评估。
30、基于场景的架构分析方法(SAAM)的主要输入是:问题描述、需求说明、体系结构描述。
31、架构权衡分析方法(ATAM)是在基于场景的架构分析方法(SAAM)基础之上发展起来的,主要阶段包括:场景和需求收集、架构视图和场景实现、属性模型构造和分析、属性模型折中。
32、架构权衡分析方法(ATAM)主要关注系统的需求说明。
33、软件元素包括:需求分析文档、设计过程、设计文档、程序代码、测试用例、领域知识。
34、构件检索中的刻面检索法:基于刻面分类法,分三步:构造查询、检索构件、对构件进行排序。
35、构件组装技术分为:基于功能的组装技术、基于数据的组装技术、面向对象的组装技术。
36、CORBA构件模型中,【可移植对象适配器POA】的作用是在底层传输平台与接收调用并返回结果的对象之间进行协调,【伺服对象Servant】是完成客户请求服务对象的实现。
37、对象管理组织(OMG)基于CORBA定义了4种构件标准。
实体(Entity)构件:需要长期持久化并主要用于事务性行为,由容器管理其持久化。
加工(Process)构件:需要容器管理其持久化,但没有客户端可访问的主键。
会话(Session)构件:不需要容器管理其持久化,其状态信息必须由构件自己管理。
服务(Service)构件:是无状态的。
38、伺服对象(Servant)是CORBA对象的真正实现,负责完成客户端请求。
39、对象适配器(ObjectAdapter)用于屏蔽ORB内核的实现细节。
40、对象请求代理(ObjectRequestBroker)用于解释调用并负责查找实现该请求的对象。
41、模型驱动结构(MDA)产生三种类型的系统模型:
计算无关模型:对系统中使用的重要的领域抽象进行建模,被称为领域模型。
平台无关模型:在不涉及实现的情况下对系统的运转进行建模。
平台相关模型:平台无关模型转换后得到,对每个应用平台都有一个单独的平台相关模型。
42、模型驱动结构(MDA)的主要目标:可移植性、互通性、可重用性。
43、逻辑设计阶段的任务是:将概念模型设计阶段得到的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。
44、在数据库设计的逻辑设计阶段进行关系规范化。
45、软件设计可分为:概要设计、详细设计。
46、概要设计也称为高层设计或总体设计,将软件需求转化为数据结构和软件的系统结构。
47、详细设计也称为低层设计,对结构图进行细化,得到详细的数据结构与算法。
48、架构设计主要关注软件组件的结构、属性、交互作用。
49、现有的设计模式可以分为创建型、结构型和行为型三种模式。
创建型模式:abstract factory(抽象工厂模式)、builder(建造者模式/生成器模式/构建者模式)、factory method(工厂方法模式/虚拟构造器模式/多态性工厂模式)、prototype(原型模式/克隆模式)、singleton(单例模式/单态模式)。
结构型模式:adaptor(适配器模式/包装模式)、bridge(桥接模式)、composite(组合模式/复合模式)、decorator(装饰者模式/装饰器模式)、facade(外观模式/门面模式)、flyweight(享元模式)、proxy(代理模式)。
行为型模式:chain of responsibility(责任链模式)、command(命令模式)、interpreter(解释器模式)、iterator(迭代器模式)、mediator(中介者模式)、memento(备忘录模式)、observer(观察者模式)、state(状态模式)、strategy(策略模式)、template method(模板方法模式)、visitor(访问者模式)。
50、面向构件的编程需要下列基本的支持:多态性(可替代性)、模块封装性(高层次信息的隐藏)、后期的绑定和装载(部署独立性)、安全性(类型和模块安全性)。
51、在服务端构件模型中,【EJB和COM+模型】适用于应用服务器。【servlet和asp】适用于web服务器。

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

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

相关文章

切记使用mt19937构造随机数

在做 Kazaee CodeForces - 1746F 这个问题的时候,最初的时候使用了ran(),然后一直WA,遂改成mt19937,顺利通过本道题。 mt19937 Rand(time(0)); 调用随机数时候,使用: Rand() & 1 注意看&#xff0…

基于N32G45x+RTT驱动框架的定时器外部计数

时钟选择 高级控制定时器的内部时钟:CK_INT: 两种外部时钟模式: 外部输入引脚 外部触发输入 ETR 内部触发输入(ITRx):一个定时器用作另一个定时器的预分频器 外部时钟原理 通过配置 TIMx_SMCTRL.SMSEL=111 选择该模式。 计数器可以配置为在所选输入的时钟上升沿或下降沿 …

[特殊字符] Ubuntu 下 MySQL 离线部署教学(含手动步骤与一键脚本)

适用于 Ubuntu 20.04 / 22.04 无网络环境部署 MySQL。 建议初学者先按手动方式部署一遍理解原理,再使用自动化脚本完成批量部署。📁 一、准备工作 ✅ 1. 虚拟机环境 系统:Ubuntu 22.04(或兼容版本)环境:无网…

系统一个小时多次Full GC,导致系统线程停止运行,影响系统的性能,可靠性

背景: 某一天系统出现了请求超时,然后通过日志查看,程序执行到某一个位置,直接停下来来了,或者说所有的线程的执行都停下来了。而且是该时间段,请求处理变慢。排查相关的服务,并没有出现死锁&am…

使用OMV+NextCloud搭建私有云

原文地址:使用OMVNextCloud搭建私有云 – 无敌牛 欢迎参观我的网站:无敌牛 – 技术/著作/典籍/分享等 OpenMediaVault(简称OMV)是一款基于Debian的开源网络存储(NAS)操作系统,提供Web管理界面&…

Codeforces Round 1008 (Div. 2)

A. Final Verdict 题目大意 给你一个数组a,每次把他拆分为等长的k个子序列,然后用子序列的平均数替换掉这个子序列,问最后能不能让数组只剩下一个数字x 解题思路 无论怎么划分,最后的总值是不变的,所以只需要看总和…

python转移安装目录到D盘

迁移python安装路径第一步:移动目录第二步:修改环境变量之前没有设置之前设置过第一步:移动目录 源路径: C:\Users\Emma.ZRF\AppData\Local\Programs\Python\Python38 原环境变量 C:\Users\Emma.ZRF\AppData\Local\Programs\Pyth…

C#垃圾回收机制:原理与实践

C#垃圾回收机制:原理与实践 一、垃圾回收:C#内存管理的“幕后功臣”​ 二、GC的核心引擎:基于代的优化策略 三、Demo展示 1. 简单对象的垃圾回收示例 2. 基于代的回收示例 四、常用方法 五、推荐使用的场景 六、注意事项 管住手:避免滥用 GC.Collect() 析构函数:保持轻量 …

基于SpringBoot+MyBatis+MySQL+VUE实现的名城小区物业管理系统(附源码+数据库+毕业论文+开题报告+部署教程+配套软件)

摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前相关行业对于物业信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本人…

3DXML 转换为 UG 的技术指南及迪威模型网在线转换推荐

一、3DXML 转换为 UG 的必要性 (一)软件功能利用需求 3DXML 格式由达索系统开发,主要用于在其相关产品(如 CATIA、SOLIDWORKS 和 3DEXPERIENCE 等)中进行 3D 数据交换与轻量化可视化。它虽然能够很好地在达索生态内实…

无人机光伏巡检缺陷检出率↑32%:陌讯多模态融合算法实战解析

原创声明本文为原创技术解析,引用来源标注 “陌讯技术白皮书”,禁止未经授权的转载与改编。摘要在无人机光伏巡检场景中,边缘计算优化与复杂场景鲁棒性是提升检测效率的核心挑战。本文解析陌讯多模态融合算法在光伏板热斑、隐裂等缺陷检测中的…

仓库管理系统-15-前端之管理员管理和用户管理

文章目录 1 后台查询用户列表 1.1 null和空字符串的检查 1.2 UserController.java 2 管理员管理 2.1 传递参数roleId=1 2.2 admin/AdminManage.vue 3 用户管理 3.1 传递参数roleId=2 3.2 user/UserManage.vue 管理员管理和用户管理,与之前的Main.vue的内容基本一致,无非是管理…

个人笔记UDP

UDP消息发送发送端​ import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; ​ //不需要连接服务器 public class UdpClientDemo01 {public static void main(String[] args) throws Exception {/…

26届算法秋招_baidu笔试_算法编程题。

给定2个字符串str1、str2,计算把str1转变为str2的最小操作数。可执行的操作有:插入一个字符修改一个字符删除一个字符解题:这是一个经典的编辑距离问题,通常使用动态规划解决。定义dp[i][j]表示将str1的前i个字符转换为str2的前j个…

uniapp-vue3来实现一个金额千分位展示效果

前言:uniapp-vue3来实现一个金额千分位展示效果实现效果:实现目标:1、封装组件,组件内部要实现,input输入金额后,聚焦离开后,金额以千分位效果展示,聚焦后展示大写金额的弹框随时写的…

途游Android面试题及参考答案

对 Java 面向对象的理解是什么?多态的实现方法有哪些? Java 面向对象是一种编程思想,核心在于将现实世界中的事物抽象为 “对象”,每个对象由 “属性”(数据)和 “方法”(行为)组成,通过对象之间的交互完成功能。其核心特性包括封装、继承和多态: 封装是指将对象的属…

通过filezilla在局域网下实现高速传输数据

一. filezilla安装 1.1 linux安装 sudo apt update sudo apt install openssh-server1.2 windows安装 windows安装可以参考这篇文章 二. 使用方法 2.1 wifi下使用方法 直接查看想要连接的电脑的ip,其他的按照有线网络设置好了ip之后进行连接就行。 2.2 有线网…

python的易物小店交换系统

前端开发框架:vue.js 数据库 mysql 版本不限 后端语言框架支持: 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 数据库工具:Navicat/SQLyog等都可以 在需求分…

[硬件电路-119]:模拟电路 - 信号处理电路 - 比较器,模拟电路中的“决策者”,模拟信号到数字电平逻辑信号的转化者...

前言:比较器的价值1、为何称比较器为“决策者”?逻辑判断的物理实现比较器通过硬件电路直接完成“大于/小于”的二元判断,无需软件干预。例如:在过压保护电路中,比较器实时监测输入电压 Vin​ 与参考电压 Vref​&#…

【从零开始学习Redis】初识Redis

初识Redis 一句话理解Redis: Redis是一个基于内存的、支持多种数据结构的高性能键值数据库,常被用于缓存、分布式锁和消息队列。和 MySQL 的区别:特点RedisMySQL类型非关系型(NoSQL)关系型(SQL)…