【架构师】系统架构相关知识

news2024/10/9 12:15:46

本文仅做技术交流,转载请注明来源,切勿商用。

参考:系统架构师考纲及教材

1、系统架构的概念

架构是一种表达,而非可运行的软件。
1)分析设计在满足所规定的需求方面的有效性
2)在设计变更相对容易的阶段,考虑架构可能选择的方案
3)降低与软件构造相关的风险

架构设计的两个层次:数据设计 和  体系结构设计


软件架构设计与生命周期


1、需求分析阶段


需求分析和SA 面临两个对象:问题空间和解空间

需求模型向SA模型转换主要关注两个问题:
 1、如何根据需求模型构建SA模型
 2、如何保证模型转换的可追踪性
 
 
 


2、设计阶段


SA模型描述的研究分为三个层次:
    1、SA基本概念(构建和连接子)
    2、 架构描述语言ADL
    3、SA模型的多视图表示
    
    


3、实现阶段
4、构建组装阶段


    以SA设计模型为指导蓝图
研究内容:
 (1)、如何支持复用构件的互联(即对SA设计模型中规约的连接子的实现提供支持)
 (2)、组装过程中如何检测并消除体系结构失配问题

5、部署阶段


1)提供高层的体系结构视图来描述部署阶段的软硬件模型
2)基于SA模型可以分析 部署方案的质量属性,从而选中何理的部署方案。

6、后开发阶段


维护、演化、复用 SA

1)动态软件体系结构
2)体系结构的恢复与重建


架构设计概述

处于需求分析 到 软件设计之间。
架构就是需求分配,将满足需求的职责分配到组件上。

SA为软件系统提供了一个【结构 行为 属性的高级抽象】
由构件的描述、构件间的相互作用,指导构件集成的模式以及这些模式的约束 组成

SA指定了系统的 【组织结构】和 【拓扑结构】,显示了系统需求和构件之间的对应关系

研究SA的根本目的:
    解决好软件的复用、质量和维护问题,是研究软件架构的根本目的
    
SA架构设计包括提出架构模型,产生架构设计、进行架构评审等活动,是一个迭代的过程。
架构设计关注的是 软件 组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。

架构设计的作用
软件架构能在设计变更相对容易的阶段,考虑系统结构的可选方案,便于技术人员与非技术人员就软件设计进行交互
能够展现软件的结构、属性、内部交互关系


构件


1)独立部署单元
2)作为第三方的自组装单元
3)没有外部可见的状态
一个构件包含多个类,一个类只能属于一个构件。

对象的特性:


1)一个实力单元,具有唯一标致
2)可能具有状态,因此外部状态可见
3)封装了自己的状态和行为


构件接口


接口中消息格式、模式、协议的标准化

面向构件编程COP


---多态性
---模块封装性
---后期绑定和装在
---安全性

2、基于架构的软件开发方法ABSD

基础概念

强调 视角 和 视图 来描述架构,采用 用例质量属性 常见来描述需求。

用例描述的是功能需求,质量属性场景描述的是质量需求(非功能需求)。

三个基础:

1、功能分解 (使用基于模块的内聚和耦合技术)

2、选择架构风格来实现质量和业务需求(数据流,调用/返回,虚拟机,独立构件,仓库 过程控制,C2)

3、软件模板利用

开发过程:

架构设计是在需求分析之后,概要设计之前。

架构需求过程:

标识构件三步

架构设计过程

将需求阶段的标识构件映射成构件,再分析构件间的相互作用,产生构件

架构文档化:

两种文档:1、架构规格说明,2、架构需求的质量设计说明

架构复审

外部人员参加(开发组之外的人)

架构实现:

用实体来显示架构,实现构件,构件组装成系统。

架构演化

对架构进行改变,按照需求增删构件,使架构可复用

3、软件架构风格

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

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

相关文章

【读书笔记·VLSI电路设计方法解密】问题4:今天的设计环境中使用的主要工艺技术是什么

主流的工艺技术是互补金属氧化物半导体(CMOS)技术。其他技术还包括双极性、双极CMOS(biCMOS)、绝缘体上硅(SOI)和砷化镓(GaAs)。 在CMOS技术中,"互补对称"指的…

Android开发:日志功能备忘

临时记一下吧,以后就直接复制粘贴这里面的好了。 实现一个日志记录程序的运行状态,并且带上时间信息,可以写一个类灵活调用。 MyLog.java package com.example.networkaccessrestrictions;import static android.content.ContentValues.TAG;i…

目标检测实战教程Day1(原创)

原创不易,转载请标明本文地址 目标检测一直是计算机视觉领域的核心问题之一,它就像是让计算机拥有了一双“鹰眼”,能在复杂的图像中迅速锁定和识别出各种有趣的目标,比如人、汽车、动物或者任何其他特定物体。在这一章&#xff0c…

【汇编语言】寄存器(CPU工作原理)(五)—— 段寄存器以及CS和IP

文章目录 前言1. 段寄存器2. CS 和 IP结语 前言 📌 汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码…

产品推介——AC晶体管光耦KL814

KL814产品系列,由苏州晶台光电有限公司研发生产的一款采用交流输入的晶体管光耦。它结合了两个反向并联的红外发射二极管与一个光电晶体管,构成了一个高效且稳定的光电耦合器。 产品特点Product features ◆交流输入响应 ◆电流传输比 (CTR&#xff1…

vs2022调试cmake工程时,添加命令行参数

第一步: 第二步:在launch.vs.json文件里添加 至此可以在调试当前工程时,可以传入命令行参数。

十款超好用的图纸加密软件推荐!2024企业图纸加密最佳选择!

在企业日常工作中,尤其是制造业、建筑业和设计行业,图纸安全至关重要。图纸泄露可能导致专利技术被盗、商业机密外泄,给公司带来不可估量的损失。为了确保图纸的安全性,图纸加密软件是必不可少的工具。以下是2024年十款超好用的图…

Damerau-Levenshtein算法实现中的错误及更正

在实现 Damerau-Levenshtein 算法 时,常见的错误包括边界条件处理不当、转置操作的遗漏或误用、矩阵初始化错误等。Damerau-Levenshtein 算法是 Levenshtein 编辑距离的扩展,它不仅允许插入、删除和替换,还允许 相邻字符的转置。该算法计算两…

明达IO:赋能工业机器人新未来

摘要: 明达技术以其卓越的分布式IO(MR30)与一体式IO(MR20)产品,为工业机器人行业提供了完美的信号交互解决方案。在集群式机器人应用场景中,MR30分布式IO以其稳定性能和自由热插拔功能&#xf…

FPGA学习(4)-时序逻辑电路实现D触发器与计数器,LED灯闪烁

1.实现原理 开发板的频率为50MHz,即一个周期为20ns,实现500ms一次翻转,即计数25_000_000次。每次时钟沿来一次,就计一次。 2. 新建工程 2.1源文件代码 在下面左边的变量值要变的,就用reg。不涉及的缺省;…

自动气象观测系统的工作原理

TH-QC8自动气象观测系统是一种能够自动采集、存储、处理和传输气象数据的系统,它广泛应用于气象监测、农业生产、航空安全、交通运输以及科学研究等领域。以下是对自动气象观测系统的详细介绍: 工作原理 自动气象观测系统的工作原理相对简单但高效。它首…

真心建议大家都去冲一冲AI产品经理,AI真的能帮你实现职场跃迁

你有没有想过: AI不仅能帮你实现工作提效 还能帮你实现职场跃迁! 根据行业报告,近年来AIGC(AI Generated Content) 领域岗位数量井喷式增长,AI大模型产品经理作为连接技术与市场的桥梁,正扮演…

Git的安装配置

目录 一、git和svn的区别是什么 二、下载Git 三、安装 四、使用 一、git和svn的区别是什么 1、git是分布式的,svn是集中的式的 2、git存储数据时是按元数据的方式存储,而svn是按文件的方式存储 3、git分支和svn的分支不一样 4、git没有全局版本号…

认知战认知作战:萨尔浒之战-努尔哈赤认知作战下的明朝崩溃

认知战认知作战:萨尔浒之战-努尔哈赤认知作战下的明朝崩溃 关键词:萨尔浒战役,后金,努尔哈赤,明朝,认知作战,地形误判,舆论战,军事胜利,盟友支持,内部腐败,认知作战,新质生产力,人类命运共同体,认知战,认知域,认知战研究中心,认知战争,认知战战术,认知战…

雨天道路目标检测数据集(黑夜和白天) 3600张 雨天 带标注 voc yolo 7类

雨天道路目标检测数据集 3600张 雨天 带标注 voc yolo 白天 分类名: (图片张数, 标注个数) car :(1134,10528) truck:(394,722) per son:(387,1585) rider: (47, 56) bike:(64,86) bus:(187, 25…

iOS swift5 苹果app审核被拒 1.4.1

文章目录 1.被拒2. 官网1.4.1的规定3.如何解决参考博客 1.被拒 准则1.4.1-安全-人身伤害 该应用程序连接到外部医疗硬件,以提供医疗服务。然而,为了遵守准则1.4.1,您必须: -提供来自适当监管机构的文件,证明应用程序…

【DataSophon】DataSophon1.2.1 整合Zeppelin并配置Hive|Trino|Spark解释器

目录 ​一、Zeppelin简介 二、实现步骤 2.1 Zeppelin包下载 2.2 work配置文件 三、配置常用解释器 3.1配置Hive解释器 3.2 配置trino解释器 3.3 配置Spark解释器 一、Zeppelin简介 Zeppelin是Apache基金会下的一个开源框架,它提供了一个数据可视化的框架&am…

使用java分别输出二叉树的深度遍历和广度遍历

代码功能 这段Java代码定义了一个二叉树,并实现了两种遍历方法:深度优先搜索(DFS)和广度优先搜索(BFS)。通过DFS,代码从根节点开始,优先访问子节点,直至最深的节点&…

气膜体育馆在学校中的应用:创新教育设施的未来—轻空间

随着气膜体育馆的广泛推广,越来越多的学校开始探索其在日常教学和活动中的应用,开创了新的教育模式和学生体验。 提升体能训练与健康教育 气膜体育馆以其卓越的设施条件,为学生的体能训练提供了理想的场所。在这里,专业教练可以为…

理解 ECMAScript 与 JavaScript:标准与实现的区别

文章目录 1.引言 2.ECMAScript 是什么? 3.JavaScript 是什么? 4.ECMAScript 和 JavaScript 的关系 5.ECMAScript 的发展历史 6.JavaScript 的浏览器特性 7.ECMAScript 与 JavaScript 的区别 8.常见误区 9.结语 1.引言 在前端开发的世界中&#…