【软考速通笔记】系统架构设计师⑦——系统架构设计基础知识

文章目录

  • 一、前言
  • 二、软件架构基础
    • 2.1 定义
    • 2.2 视图
  • 三、软件架构生命周期
  • 四、软件架构重要性
  • 五、基于架构的软件开发方法
    • 5.1 基于体系结构(架构)的软件设计(Architecture-Based Software Design,ABSD)
    • 5.2 基于体系结构(架构)的软件设计具有三个基础
    • 5.3 基于体系结构(架构)的软件设计的六个子过程
  • 六、软件架构风格
    • 6.1 数据流体系结构风格
    • 6.2 调用/返回体系结构风格
    • 6.3 以数据为中心的体系结构风格
    • 6.4 虚拟机体系结构风格
    • 6.5 独立构件体系结构风格
  • 七、软件架构复用
    • 7.1 软件架构复用的原因
    • 7.2 软件架构复用的基本过程
    • 7.3 软件架构复用类型
  • 八、特定领域软件架构
    • 8.1 特定领域软件架构的特征
    • 8.2 特定领域软件架构的基本活动
    • 8.3 特定领域软件架构的参与人员
    • 8.4 特定领域软件架构的建立过程

一、前言

笔记目录大纲请查阅:【软考速通笔记】系统架构设计师——导读

二、软件架构基础

2.1 定义

软件架构(Software Architecture)或称为软件体系结构

架构==体系结构

是指系统的一个或者多个结构,这些结构包括软件的构件构件的外部可见属性及其之间的相互关系

架构设计包括数据库设计软件结构设计

2.2 视图

软件结构设计关注软件构件的结构属性交互作用,并通过多种视图全面描述

  • 逻辑视图:系统的功能性和业务逻辑。
  • 开发视图:系统的模块化和代码结构。
  • 物理视图:系统的部署和硬件分布。
  • 进程视图:系统的并发和进程结构。
  • 场景视图:系统的运行时行为和交互。

三、软件架构生命周期

阶段作用和意义
需求分析阶段有利于各个阶段参与者的交流,也易于维护各阶段的可追踪性
设计阶段软件架构模型描述、软件架构模式的设计和分析方法等
实现阶段有效实现从软件架构设计向实现的转换
构件组装阶段可复用构建组装的设计能够提高系统实现的效率
部署阶段组织和展示部署阶段的软硬件架构、评估分析部署方案
后开发阶段主要围绕维护、演化、复用进行

四、软件架构重要性

  • 指导系统开发
  • 提高系统质量
  • 降低技术风险
  • 降低维护费用
  • 支持冲突分析
  • 支持计划编制过程
  • 管理系统复杂性

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

5.1 基于体系结构(架构)的软件设计(Architecture-Based Software Design,ABSD)

  • 采用视角与视图来描述软件架构。
  • 采用用例来描述功能需求。
  • 采用质量场景来描述质量需求。

5.2 基于体系结构(架构)的软件设计具有三个基础

  • 功能的分解
  • 通过选择体系结构风格来实现质量和商业需求
  • 软件模板的复用

ABSD是自顶向下、递归细化的,迭代的每一步都有清晰的定义,有助于降低体系结构设计的随意。

5.3 基于体系结构(架构)的软件设计的六个子过程

  • 体系结构需求:需求获取、标识构件、需求评审。
  • 体系结构设计:提出结构模型—>将已标识的构件映射到架构中—>分析构件之间的相互作用—>产生体系结构评审。
  • 体系结构文档化:生成《体系结构规格说明书》和《测试体系结构需求的质量设计说明书》。
  • 体系结构复审:安排一次由外部人员(如客户代表和领域专家)参加的架构复审。目的是标识潜在的风险,及早发现架构设计中的缺陷和错误,包括架构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件的划分是否合理等。
  • 体系结构实现:分析与设计—>构件实现—>构件组装—>系统测试
  • 体系结构演化:需求变化归类—>体系结构演化计划—>构件变动—>更新构件的相互作用—>构件的组装与测试—>技术评审—>演化后的体系结构。

六、软件架构风格

6.1 数据流体系结构风格

其核心思想是将数据处理流程划分为一系列独立的处理单元,并通过数据流将这些单元连接起来。这种风格在数据处理和转换方面具有较高的效率和灵活性。

  • 批处理
  • 管道和过滤器

6.2 调用/返回体系结构风格

调用/返回风格是指在系统中采用了调用与返回机制,其核心思想是将一个复杂的大系统分解为若干子系统,以便降低复杂度,并且增加可修改性。

  • 主程序/子程序风格
  • 面对对象体系结构风格
  • 层次型体系结构风格
  • 客户端/服务器体系结构风格
  • 浏览器/服务器体系结构风格

6.3 以数据为中心的体系结构风格

以数据为中心的架构风格强调数据在系统中的核心地位,将数据处理逻辑围绕数据进行组织。

  • 仓库体系结构风格
  • 黑板体系结构风格

6.4 虚拟机体系结构风格

基本思想是人为构建一个运行环境,可以解析与运行自定义的一些语言,增加架构的灵活性。

  • 解释器体系结构风格
  • 规则系统体系结构风格

6.5 独立构件体系结构风格

系统每个构件都是相对独立的个体,它们之间不直接通信,以降低耦合度,提高灵活性。

  • 进程通信体系结构风格
  • 事件系统体系结构风格

七、软件架构复用

7.1 软件架构复用的原因

  • 减少开发工作
  • 减少开发时间
  • 降低开发成本
  • 提高生产力
  • 提高产品质量

7.2 软件架构复用的基本过程

  • 构建/获取可复用的软件资产
  • 管理可复用软件资产
  • 使用可复用软件资产

7.3 软件架构复用类型

  • 机会复用:在开发过程中,只要发现有可复用的资产就复用。
  • 系统复用:开发前进行规划,决定复用哪些软件资产。

八、特定领域软件架构

特定领域软件架构(Domain Specific Software Architecture,DSSA)

8.1 特定领域软件架构的特征

  • 领域性
  • 普遍性
  • 抽象性
  • 可复用性

8.2 特定领域软件架构的基本活动

  • 领域分析
  • 领域设计
  • 领域实现

8.3 特定领域软件架构的参与人员

  • 领域专家
  • 领域分析师
  • 领域设计人员
  • 领域实现人员

8.4 特定领域软件架构的建立过程

  • 定义领域范围
  • 定义领域特定原色
  • 定义领域特定的设计和实现约束
  • 定义领域模型和体系结构
  • 产生、搜集可重用的单元

若觉得文章对你有帮助,随手『点赞』、『收藏』、『关注』,也是对我的支持。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

husky,commit规范,生成CHANGELOG.md,npm发版

项目git提交工程化(钩子,提交信息commit message),npm修改版本,需要涉及到的包: husky,允许在git钩子中执行不同的脚步,如commitlint,eslint,prettier&#…

基于Python的飞机大战复现

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

【趣味】斗破苍穹修炼文字游戏HTML,CSS,JS

目录 图片展示 游戏功能 扩展功能 完整代码 实现一个简单的斗破苍穹修炼文字游戏,你可以使用HTML、CSS和JavaScript结合来构建游戏的界面和逻辑。以下是一个简化版的游戏框架示例,其中包含玩家修炼的过程、增加修炼进度和显示经验值的基本功能。 图片…

005 MATLAB符号微积分

前言: 在MATLAB中,数值与符号的主要区别在于它们的处理方式和应用场景 数值计算适用于实际的数值计算问题,如矩阵运算、数据分析等。符号计算适用于符号推导、公式化简和符号解析,如理论物理和工程计算。 01 符号对象 1.基本符…

Android 13 编译Android Studio版本的Launcher3

Android 13 Aosp源码 源码版本Android Studio版本Launcher3QuickStepLib (主要代码) Launcher3ResLib(主要资源)Launcher3IconLoaderLib(图

Ubuntu交叉编译 opencv for QNX

前言 在高通板子上开发一些程序的时候,会用到opencv帮助处理一下图像数据,高通车载板子sa8155和sm8295都有QNX os,需要交叉编译opencv的库,(这个交叉编译真是搞得我太恶心了,所以进行一个记录和分享) 搜了很多资料,有些太过于复杂,有些也存在错误导致最后没有编译成…

NVR监测软件EasyNVR多个NVR同时管理:录播主机的5条常见问题与解决办法

视频监控广泛应用于城市治安、交通管理、商业安保及家庭监控等领域。在使用EasyNVR平台管理多个NVR设备时,尤其是涉及到海康录播主机的场景中,使用者可能会遇到一些常见问题。本文将探讨海康录播主机的五个常见问题及其解决办法。 1、海康录播主机的5条常…

力扣刷题TOP101:6.BM7 链表中环的入口结点

目录: 目的 思路 复杂度 记忆秘诀 python代码 目的 {1,2},{3,4,5}, 3 是环入口。 思路 这个任务是找到带环链表的环入口。可以看作是上一题龟兔赛跑(Floyd 判圈算法)的延续版:乌龟愤愤不平地举报兔子跑得太快,偷偷…

网关: 用途和产品对比

概述 微服务中的有一个非常关键的组件: API网关 和配置中心一样,在没有采用微服务架构的时候 我们可以自己搭建自己的API网作作为统一的 API 出口和安全验证 在微服务架构之下,服务被拆的非常的零散,在降低了耦合度的同时 也给服务的统一…

Java ConcurrentHashMap

Java Map本质不是线程安全的,HashTable和Collections同步包装器(Synchronized Wrapper)在并发场景下性能低。Java还为实现 Map 的线程安全提供了并发包,保证线程安全的方式从synchronize简单方式到精细化,比如Concurre…

Spring 自调用事务失效分析及解决办法

前言 博主在写公司需求的时候,有一个操作涉及到多次对数据库数据的修改。当时就想着要加 Transactional注解来声名事务。并且由于一个方法中有太多行了,于是就想着修改数据库的操作单独提取出来抽象成一个方法。但这个时候,IDEA 提示我自调用…

【LeetCode每日一题】——189.轮转数组

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【题目进阶】八【解题思路】九【时空频度】十【代码实现】十一【提交结果】 一【题目类别】 数组 二【题目难度】 中等 三【题目编号】 189.轮转数组 四【题目描述】 …

Spark基本命令详解

文章目录 Spark基本命令详解一、引言二、Spark Core 基本命令1、Transformations(转换操作)1.1、groupBy(func)1.2、filter(func) 2、Actions(动作操作)2.1、distinct([numTasks])2.2、sortBy(func, [ascending], [numTasks]) 三、…

AppFlow:支持飞书机器人调用百炼应用

AppFlow:支持飞书机器人调用百炼应用 简介: 本文介绍了如何创建并配置飞书应用及机器人,包括登录飞书开发者后台创建应用、添加应用能力和API权限,以及通过AppFlow连接流集成阿里云百炼服务,最后详细说明了如何将机器…

基于vite创建一个脚手架(快速入门)

Vite是一种新型的前端构建工具,主要用于构建现代化的Web应用程序。以 原生ESM 方式提供源码。这实际上是让浏览器接管了打包程序的部分工作:Vite 只需要在浏览器请求源码时进行转换并按需提供源码。根据情景动态导入代码,即只在当前屏幕上实际…

学习ASP.NET Core的身份认证(基于Session的身份认证1)

ASP.NET Core使用Session也可以实现身份认证,关于Session的介绍请见参考文献5。基于Session的身份认证大致原理就是用户验证成功后将用户信息保存到Session中,然后在其它控制器中从Session中获取用户信息,用户退出时清空Session数据。百度基于…

视觉语言模型(VLM)学习笔记

目录 应用场景举例 VLM 的总体架构包括: 深度解析:图像编码器的实现 图像编码器:视觉 Transformer 注意力机制 视觉-语言投影器 综合实现 训练及注意事项 总结 应用场景举例 基于文本的图像生成或编辑:你输入 “生成一张…

spider--某站搜索--自动化dp

免责声明:本文仅作分享! 自动化: DrissionPage DrissionPage官网 import time from DrissionPage import ChromiumPage,ChromiumOptions import pandas as pd# 这里配置了浏览器路径,不配置的话直接 page ChromiumPage() co Ch…

学成在线day07

视频处理 技术方案 掌握了xxl-job的分片广播调度方式,下边思考如何分布式去执行学成在线平台中的视频处理任务。 任务添加成功后,对于要处理的任务会添加到待处理任务表中,现在启动多个执行器实例去查询这些待处理任务,此时如何…

vsftpd 的安装和应用(超详细!!!)

FTP(File Transfer Protocol,文件传输协议)是一种用于在计算机网络上进行文件传输的标准协议。它允许用户从一台计算机向另一台计算机上传或下载文件。FTP的工作原理涉及到客户端和服务器之间的交互,以及数据传输的过程。 一、FT…