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

软考高级:系统架构设计师——软件架构设计 Chapter 笔记

软考高级:系统架构设计师——软件架构设计

  • 1 软件架构设计—基本概念
    • 架构所处的位置
    • 架构发展历程
      • 架构的“4+1”视图
        • 例题
    • 架构描述语言(ADL)
      • 例题
  • 2软件架构设计—架构风格
    • 数据流风格
    • 调用/返回 风格
    • 独立构件风格
    • 虚拟机风格
    • 仓库风格(以数据为中心)
    • 闭环控制架构(过程控制)
    • C2架构
    • 例题
  • 3软件架构设计—基于架构的开发方法
    • 概念
    • 开发过程1
    • 开发过程2
    • 开发过程3
    • 例题
  • 4软件架构设计—特定领域架构
    • 概念
    • 参与人员
    • 建立过程
    • 三层次模型
    • 例题
  • 5 软件架构设计—软件架构评估
    • 软件质量属性
      • 例题
    • 敏感点 / 权衡点 / 风险点 / 非风险点
    • 架构评估方法
      • SAAM
      • ATAM
      • 质量效用树
    • 例题
  • 6软件架构设计—软件产品线
    • 双生命周期
    • 建立方式
    • 组织结构
  • 7 软件架构设计—构件与中间件技术
    • 构件的概念
    • 中间件的概念
    • 软件复用
      • 例题
    • 构件复用
      • 例题
    • 构件标准
      • 使用CORBA实现登录构件
      • 使用J2EE的EJB实现登录构件
      • 使用Spring实现登录构件
      • CORBA

1 软件架构设计—基本概念

架构的本质
软件架构为软件系统提供了一个 结构、行为、属性的高级抽象
解释

架构所处的位置

架构

架构发展历程

例程

架构的“4+1”视图

架构4+1
???
???

------ VS ------ UML的“4+1”视图
UML4+1
架构视图

例题

题
答案:A D C

架构描述语言(ADL)

ADL
解释

例题

题
答案:C

2软件架构设计—架构风格

架构风格

数据流风格

1、批处理
批处理
2、管道过滤器
管道过滤器

调用/返回 风格

调用返回
分层架构风格
分层架构风格

独立构件风格

独立架构
优点
示例:
示例

虚拟机风格

Java虚拟机
子类
基于规则的系统构成
基于规则的系统架构

仓库风格(以数据为中心)

仓库风格
黑板
子类

闭环控制架构(过程控制)

闭环控制

C2架构

C2架构

例题

1
答案:虚拟机、数据流风格、隐式调用(事件驱动)、解释器、过程控制
2
答案:黑板、解释器、事件驱动
3
答案:BCABD

3软件架构设计—基于架构的开发方法

概念

ABSD

开发过程1

ABSD1

开发过程2

ABSD2

开发过程3

ABSD3

例题

题1
答案:BCD
题2
答案:AAC

4软件架构设计—特定领域架构

概念

DSSA
领域参考模型:高层次的抽象模型、描述该领域的关键概念及其关系,帮助开发团队准确理解领域问题和需求。
比如:在医疗信息系统领域,参考模型可能会定义病人、医生、治疗、药物、诊断等实体及其相互作用

参考需求:基于参考模型定义的,描述软件系统需要满足的功能性和非功能性的条件。
比如:参考需求可能包括数据隐私包含、高可用性、用户界面易用性、数据准确性等。

参考架构:基于参考模型和参考需求定义的软件架构蓝图,通常包括软件结构组成、技术选型、设计模式。
比如: 采用微服务架构,使用加密技术,采用特定中间件和数据库技术等。

参与人员

人员

建立过程

建立过程
解释

三层次模型

三层次

例题

DSSA
答案:CC

5 软件架构设计—软件架构评估

why

软件质量属性

质量属性
性能
可用性
安全性
可修改性
易用性

例题

题1
答案:ADA
题2
答案:BCA C CA

敏感点 / 权衡点 / 风险点 / 非风险点

敏感点权衡点风险点

架构评估方法

常见评估方法
场景评估
基于场景

SAAM

SAAM

ATAM

ATAM

质量效用树

质量效用树

例题

题1
答案:DB
题2
答案:D
题3
答案:CC

6软件架构设计—软件产品线

概念

双生命周期

双生命周期

建立方式

建立方式
解释

组织结构

组织结构

7 软件架构设计—构件与中间件技术

构件的概念

概念
特征
体系结构

中间件的概念

中间件
优点
分类

软件复用

软件复用

例题

题1
答案:B

构件复用

1
1
2
2
3
3
4
4

例题

题
答案:C

构件标准

构件标准

使用CORBA实现登录构件

1
2
3
4

使用J2EE的EJB实现登录构件

1
2

使用Spring实现登录构件

1
2
3

CORBA

CORBA
CORBA
答案:A

相关文章:

软考高级:系统架构设计师——软件架构设计 Chapter 笔记

软考高级:系统架构设计师——软件架构设计 1 软件架构设计—基本概念架构所处的位置架构发展历程架构的“41”视图例题 架构描述语言(ADL)例题 2软件架构设计—架构风格数据流风格调用/返回 风格独立构件风格虚拟机风格仓库风格(以…...

PageHelper组件 实现前端分页查询功能

Hi~!这里是一颗小谷粒,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~💥💥个人主页:一颗小谷粒💥💥所属专栏:Web前端开发 💥💥博主…...

线性回归与逻辑回归在模型参数优化上的比较

概述 线性回归和逻辑回归是两种基础且广泛应用的预测模型。尽管它们在很多方面有相似之处,如都使用梯度下降算法来优化模型参数,但在优化目标和方法上存在一些关键差异。本文将探讨这两种模型在参数优化上的差异,并提供相应的代码示例。 线…...

JavaWeb JavaScript 10.日程管理 第一期

自我消耗,敏感是我, 明媚是我, 我横跳在不同的情绪中 —— 24.8.31 一、登录页及校验 1.校验账号格式 // 校验账号格式function checkUsername(){// 定义正则表达式表示字符串规则var usernameReg /^[a-zA-Z0-9]{5,10}$/;// 获取用户名输入…...

redis为什么快

春内存访问,相比数据库访问磁盘要快单线程,避免上下文切换带来的cpu开销渐进式Rehash。减少阻塞网络模型多路复用,reactor模型 常用基本数据类型 5个基本数据类型2个高级数据结构(bitmaps、hyperlog) redis高级功能…...

十分钟学会Kubernetes(K8S) 部署SpringBoot3.0

1、十分钟学会Kubernetes(K8S) 部署SpringBoot3.0 本课程以 Java 后端开发的视角,带着大家从零基础入门 k8s 实战,掌握企业级容器化管理平台的各种实战应用,以及 Prometheus 监控告警、ELK 日志收集、DevOps 等众多实战课程内容,大…...

顺序表的插入与删除

一.插入&#xff1a;插入前先移动后面的元素 1.图解&#xff1a; 在b和d之间插入c&#xff0c;此时就需要把d&#xff0c;e&#xff0c;f都向后移一位&#xff0c;腾出一个位置后插入c。 2.代码实现&#xff1a; #include<stdio.h> #define MaxSize 10 //定义最大长度…...

FFMPEG -- 音频开发

1&#xff1a;前言 在进行音频开发之前需要先知道一些基础知识&#xff0c;一些有必要的指导的概念。 1.1 声音的产生、获取和转换 声音的产生的本质是靠震动&#xff0c;声音的传播需要借助媒介&#xff0c;比如空气、液体、固体等媒介。在自然界中声音的可视化为音波的形式&…...

lxml官方入门教程(The lxml.etree Tutorial)翻译

lxml官方入门教程&#xff08;The lxml.etree Tutorial&#xff09;翻译 说明&#xff1a; 首次发表日期&#xff1a;2024-09-05官方教程链接&#xff1a; https://lxml.de/tutorial.html使用KIMI和豆包机翻水平有限&#xff0c;如有错误请不吝指出 这是一个关于使用lxml.et…...

string详解

Golang详解string 文章目录 Golang详解stringGolang中为什么string是只读的&#xff1f;stirng和[]byte的转化原理[]byte转string一定需要内存拷贝吗&#xff1f;字符串拼接性能测试 Golang中为什么string是只读的&#xff1f; 在Go语言中&#xff0c;string其实就是一个结构体…...

基于约束大于规范的想法,封装缓存组件

架构&#xff1f;何谓架构&#xff1f;好像并没有一个准确的概念。以前我觉得架构就是搭出一套完美的框架&#xff0c;可以让其他开发人员减少不必要的代码开发量&#xff1b;可以完美地实现高内聚低耦合的准则;可以尽可能地实现用最少的硬件资源&#xff0c;实现最高的程序效率…...

自动化测试面试真题(附答案)

一、编程语法题 1 、 python 有哪些数据类型 python 数据类型有很多&#xff0c;基本数据类型有整型&#xff08;数字&#xff09;、字符串、元组、列表、字典和布尔类型等 2 、怎么将两个字典合并 调用字典的 update 方法&#xff0c;合并 2 个字典。 3 、 json.l python …...

云原生架构概念

云原生架构概念 云原生架构&#xff08;Cloud Native Architechtrue&#xff09;作为一种现代软件开发的革新力量&#xff0c;正在逐渐改变企业构建、部署和管理应用程序的方式。它的核心优势在于支持微服务架构&#xff0c;使得应用程序能够分解为独立、松耦合的服务&#xf…...

85、 探针

一、pod的进阶 pod的进阶&#xff1a; 1.1、pod的生命周期当中的状态&#xff1a; 1、Running运行中&#xff0c;pod已经分配到节点上且pod内的容器正常运行。正常状态&#xff08;ready 1/1&#xff09;。 2、complete&#xff1a;完成之后退出&#xff0c;容器内的返回码…...

2024全国大学省数学建模竞赛A题-原创参考论文(部分+第一问代码)

一问题重述 1.1 问题背景 "板凳龙"&#xff0c;又称"盘龙"&#xff0c;是浙闽地区的传统地方民俗文化活动。这种独特的表演艺术形式融合了中国传统龙舞的精髓和地方特色&#xff0c;展现了人们对美好生活的向往和对传统文化的传承。 在板凳龙表演中&am…...

在VScode上写网页(html)

一、首先点进VScode&#xff0c;下载3个插件。 VScode安装&#xff1a;VScode 教程 | 菜鸟教程 二、新建 HTML 文件 作者运行的代码来自&#xff1a;http://t.csdnimg.cn/vIAQi 把代码复制粘贴进去&#xff0c;然后点击文件→另存为→选择html格式。 三、运行代码...

C#中LINQ的Cast<T>与OfType<T>

在C#中&#xff0c;Cast() 方法是LINQ&#xff08;Language Integrated Query&#xff09;的一部分&#xff0c;它位于 System.Linq 命名空间中。这个方法用于将 IEnumerable 集合&#xff08;或任何实现了 IEnumerable 接口的集合&#xff09;的元素转换为指定类型 T 的集合。…...

小阿轩yx-Kubernertes日志收集

小阿轩yx-Kubernertes日志收集 前言 在 Kubernetes 集群中如何通过不同的技术栈收集容器的日志&#xff0c;包括程序直接输出到控制台日志、自定义文件日志等 有哪些日志需要收集 日志收集与分析很重要&#xff0c;为了更加方便的处理异常 简单总结一些比较重要的需要收集…...

0to1使用Redis实现“登录验证”次数限制

1 引言 系统为了避免密码遭到暴力破解&#xff0c;通常情况下需要在登录时&#xff0c;限制用户验证账号密码的次数&#xff0c;当达到一定的验证次数后&#xff0c;在一段时间内锁定该账号&#xff0c;不再验证。本章将用几行代码实现该功能&#xff0c;完整代码链接在文章最…...

ARM----时钟

时钟频率可以是由晶振提供的&#xff0c;我们需要高频率&#xff0c;但是外部接高的晶振会不稳定&#xff0c;所有使用PLL&#xff08;锁相环&#xff09;来放大频率。接下来就让我们学习用外部晶振提供的频率来配置时钟频率。 一.时钟源的选择 在这里我们选择外部晶振作为时钟…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...