系统架构设计师(第二版)学习笔记----系统架构概述

news2024/12/26 22:59:45

【原文链接】系统架构设计师(第二版)学习笔记----系统架构概述

文章目录

  • 一、系统架构的定义与发展历程
    • 1.1 架构的定义
    • 1.2 架构设计的作用
    • 1.3 架构设计产生的背景
    • 1.4 软件架构的发展历程
    • 1.5 模块化开发方法
    • 1.6 模块法方法分解模块遵循的原则
    • 1.7 软件工程领域研究重点
    • 1.8 架构分析常用的方法
    • 1.9 架构设计常用的方法
    • 1.10 架构测试策略
    • 1.11 架构测试方法
    • 1.12 架构风格
    • 1.13 软件架构影响开发的各个阶段
  • 二、软件架构的常用分类及建模方法
    • 2.1 软件架构的常用分类
    • 2.2 分层架构最常见的四层架构
    • 2.3 事件驱动架构的四个主要部分
    • 2.4 微核架构
    • 2.5 微服务架构三种实现模式
    • 2.6 云架构
    • 2.7 系统架构常用建模方法
    • 2.8 常见软件架构风格的使用场景

一、系统架构的定义与发展历程

1.1 架构的定义

系统架构是系统的一种整体的高层次的结构表示,是系统的骨架、根基,支撑和链接各个部分

1.2 架构设计的作用

  • 解决相对复杂的需求问题
  • 解决非功能属性在系统占据重要位置的设计问题
  • 解决生命周期长、扩展性需求高的系统整体结构问题
  • 解决系统基于组件需要的集成问题
  • 解决业务流程再造难的问题

1.3 架构设计产生的背景

  • 软件复杂、易变,其行为特征难以预见,软件开发过程中需求和设计之间缺乏有效的转换,导致软件开发过程困难和不可控
  • 随着软件系统的规模越来越大、越来越复杂,整个系统的结构和规格说明就显得越来越重要
  • 对于大规模的复杂软件系统,相较于对计算算法和数据结构的选择,系统的整体结构设计和规格说明已经变得明显重要的多
  • 对软件系统结构的深入研究将会成为提高软件生产率和解决软件维护问题的最有希望的新途径

1.4 软件架构的发展历程

  • 基础研究阶段(1968-1994)
  • 概念体系和核心技术形成阶段(1999-2000)
  • 理论体系完善和发展阶段(1996-至今)
  • 普及应用阶段(2000-至今)

1.5 模块化开发方法

模块化开发方法是指把一个待开发的软件分解为若干个小的而且简单的部分,采用对复杂事物分而治之的经典原则。

1.6 模块法方法分解模块遵循的原则

  • 最高模块内聚
  • 最低耦合
  • 模块大小适合
  • 模块调用链的深度不可过多
  • 接口简单、精炼(扇入扇出不宜太大),具有信息隐蔽能力
  • 尽可能地复用已有模块

1.7 软件工程领域研究重点

  • 软件架构描述和表示
  • 软件架构分析、设计与测试
  • 软件架构发现、演化与重用
  • 基于软件架构的开发方法
  • 软件架构风格
  • 动态软件架构

1.8 架构分析常用的方法

  • 软件架构分析方法SAAM
  • 架构权衡分析法ATAM
  • 成本效益分析法CBAM
  • 基于场景的架构再工程SBAR
  • 架构层析的软件可维护性预测ALSPM
  • 软件架构评估模型SAEM

1.9 架构设计常用的方法

  • 从工件描述中提取架构描述的工件驱动方法
  • 从用例导出架构抽象的用例驱动
  • 从模式导出架构的模式驱动方法
  • 从领域模型导出架构抽象的域驱动方法
  • 从设计过程中获得架构质量属性需求的属性驱动设计方法

1.10 架构测试策略

  • 单元
  • 子系统
  • 集成
  • 验收

1.11 架构测试方法

  • 架构测试覆盖方法
  • 组件设计正确性验证方法
  • 基于CHAM的架构动态语义验证方法

1.12 架构风格

  • 数据流风格
  • 调用/返回风格
  • 独立组件风格
  • 虚拟机风格
  • 仓库风格

1.13 软件架构影响开发的各个阶段

  • 需求阶段
  • 设计阶段
  • 实现阶段
  • 维护阶段

二、软件架构的常用分类及建模方法

2.1 软件架构的常用分类

  • 分层架构
  • 事件驱动架构
  • 微核架构
  • 微服务架构
  • 云架构

2.2 分层架构最常见的四层架构

  • 表现层
  • 业务层
  • 持久层
  • 数据库

2.3 事件驱动架构的四个主要部分

  • 事件队列
  • 分发器
  • 事件通道
  • 事件处理器

2.4 微核架构

微核架构又称为插件架构,是指软件的内核相对较小,主要功能和业务逻辑都通过插件实现

2.5 微服务架构三种实现模式

  • Restful API模式
  • Restful 应用模式
  • 集中消息模式

2.6 云架构


云架构主要分成两部分

  • 处理单元
  • 虚拟中间件

虚拟中间件包含4个组件

  • 消息中间件(Messageing Grid)
  • 数据中间件(Data Grid)
  • 处理中间件(Processing Grid)
  • 部署中间件(Deployment Manager)

2.7 系统架构常用建模方法

  • 结构模型
  • 框架模型
  • 动态模型
  • 过程模型

2.8 常见软件架构风格的使用场景

  • 管道-过滤器风格适用于将系统分成若干独立的步骤
  • 主程序/子系统和面向对象的架构风格适用于对组件内部进行设计
  • 虚拟机风格适用于构造解释器或专家系统
  • C/S和B/S风格适合于数据和处理分布在一定范围,通过网络连接构成系统
  • 平台/插件风格适用于具有插件扩展功能的应用程序
  • MVC风格被广泛应用于用户交互程序的设计
  • SOA风格适用于在企业集成等方面
  • C2风格适用于GUI软件开发,用以构建灵活和可扩展的应用系统

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

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

相关文章

SQLite简单介绍

一.简单介绍 SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低&…

CC-TAIX01 HONEYWELL 霍尼韦尔连接工厂热智商远程监测系统

CC-TAIX01 HONEYWELL 霍尼韦尔连接工厂热智商远程监测系统 -霍尼韦尔宣布霍尼韦尔连接工厂热智商,一种基于云的远程监测系统,旨在监测和管理关键的热过程数据。这是霍尼韦尔资产绩效管理(APM)投资组合的一部分。 热智商是工业和商业热应用的远程监测解决方案。它将燃烧设备连…

51单片机热水器温度控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机热水器温度控制系统仿真设计 1.主要功能:2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单 &&下载链接 51单片机热水器温度控制系统仿真设计( proteus仿真程序原理图报告讲解视频) 仿真图proteus7.8及以上 程序编译器&#x…

OSCS 安全周报第 58 期:VMware Aria Operations SSH 身份验证绕过漏洞 (CVE-2023-34039)

​ 本周安全态势综述 OSCS 社区共收录安全漏洞 3 个,公开漏洞值得关注的是 VMware Aria Operations SSH 身份验证绕过漏洞( CVE-2023-34039 )、Apache Airflow Spark Provider 反序列化漏洞( CVE-2023-40195 )。 针对 NPM 仓库,共监测到 324 个不同版本…

Activiti7进阶

Activiti进阶 一、流程实例 什么是流程实例 流程实例(ProcessInstance)代表流程定义的执行实例。 一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。 例如:用户或程序按照流程定义内容发起一个流程&a…

鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显…

JavaWeb知识梳理(后端部分)

JavaWeb 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。 静态web资源开发技术&#xff1…

NAT地址转换,路由器作为出口设备,实现负载分担

路漫漫其修远兮,吾将上下而求索 一个善于创造的人,一定是一个善于分享的人。 今天整理了一个实验,具备NAT地址转换,路由器作为出口设备,实现负载分担,实现路由策略 目录 实验图 实验要求 实验配置 基…

Python Tkinter Multiple Windows 教程

一、说明 在这个Python Tkinter教程中,我们将学习如何在Python Tkinter中创建多个窗口,我们还将介绍与多个窗口相关的不同示例。而且,我们将介绍这些主题。 Python Tkinter multiple windows使用多个窗口的 Python Tkinter 用户注册Python Tk…

Java“牵手”唯品会商品详情数据,唯品会商品详情API接口,唯品会API接口申请指南

唯品会平台商品详情接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取唯品会商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品详情接口API是一种用于获取电商平台上商品详情数据的接口,…

华为Mate 60系列安装谷歌服务框架,安装Play商店,Google

华为Mate 60 Pro悄悄的上架。但是却震撼市场的强势登场,Mate 60系列默认搭载的就是鸿蒙4.0。那么mate 60加上4.0是否可以安装谷歌服务框架呢?本机到手经过测试是可以安装的,但是在解决play非保护机制认证还通知这个问题上,他和鸿蒙3.0是不一样的。如果我…

Notepad++下载安装

自己在 找Notepad发现网上的网址参差不齐,自己找到的一个不错下载链接见文末! Notepad 是一个免费的代码编辑器,专为在微软 Windows 环境下使用。它是一个开源项目,采用 GPL 许可证,并使用 C 编程语言结合 Win32 API 和…

AI绘画:StableDiffusion实操教程-完美世界-魔女(附高清图下载)

前段时间我分享了StableDiffusion的非常完整的教程:“AI绘画:Stable Diffusion 终极宝典:从入门到精通 ” 尽管如此,还有读者反馈说,尽管已经成功安装,但生成的图片与我展示的结果相去甚远。真实感和质感之…

SW - 3D打印时遇到的审核问题(模型中存在多个壳体)

文章目录 SW - 3D打印时遇到的审核问题(模型中存在多个壳体)概述在.step中查看实体数量在.SLDPRT中查看实体数量备注END SW - 3D打印时遇到的审核问题(模型中存在多个壳体) 概述 给一个小PCB做了一个小壳子(为了使用安全和修护方便), 初步检查了一下, 没看出啥问题. 就丢给厂…

Ansys Zemax | 如何模拟自适应光学系统

概述 这篇文章介绍了如何在OpticStudio中使用多重结构创建反射式自适应光学系统。本文详细介绍了: 如何通过缩放光阑镜面的偏心来模拟一组镜面阵列 如何使用公差功能生成随机的波前差来模拟大气不均匀性对成像的影响 如何补偿该影响引入的像差以得到最优的几何和…

《TCP/IP网络编程》阅读笔记--基于TCP的服务器端/客户端

1--TCP/IP协议栈 TCP/IP协议栈共分 4 层,可以理解为数据收发分成了 4 个层次化过程; 链路层: 链路层是物理链接领域标准化的结果,专门定义LAN、WAN、MAN等网络标准; IP层: IP层用于解决数据传输过程中路径的…

第十八课、Qt 下载、安装与配置

功能描述:介绍了 Qt 的下载、安装和配置的全部过程,并对关键页面选项进行了详细说明 一、Qt 的下载 Qt 官方下载地址:https://www.qt.io/zh-cn/downloadhttps://download.qt.io/https://download.qt.io/https://www.qt.io/zh-cn/download进入…

Unity制作下雨中的地面效果

Unity引擎制作下雨效果 大家好,我是阿赵。   之前介绍了Unity引擎里面通过UV偏移做序列帧动画的做法,这里再介绍一个进阶的用法,模拟地面下雨的雨点效果。 一、原理 最基本的原理,还是基于这个序列帧动画的做法。不过这里做一点…

深度入门 Android 车机核心 CarService 的构成和链路

作者:TechMerger 本文将结合 Android 系统整体,对 CarService 的构成和链路对其做一个全面的分析和理解。 构成 1. CarServiceHelperService 系统服务 SystemServer 中专门为了 Automotive OS 设立的系统服务,用来管理车机的核心服务 CarS…

计算机网络的故事——了解Web及网络基础

了解Web及网络基础 文章目录 了解Web及网络基础一、使用 HTTP 协议访问 Web二、HTTP 的诞生三、网络基础 TCP/IP四、与 HTTP 关系密切的协议 : IP、TCP 和 DNS 一、使用 HTTP 协议访问 Web 根据Web浏览器指定的URL,从对应的服务器中获取文件资源,从而显…