软件体系结构复习-02 软件体系结构定位及构建
软件体系结构复习-02 软件体系结构定位及构建
原文链接:《软件体系结构复习-02 软件体系结构定位及构建》
目录
软件体系结构复习-02 软件体系结构定位及构建
1 什么是软件体系结构
2 软件生命周期中的软件体系结构
2.1 生命周期
2.2 定位与作用
1 规划和需求分析阶段
2 系统设计阶段
3 实现阶段
4 测试阶段
5 部署阶段
6 维护和迭代阶段
7 系统退役阶段
3 软件体系结构构建过程
3.1 整体过程
3.2 软件体系结构分析
3.3 软件体系结构设计
1 风格选择
2 质量属性设计
3.4 软件体系结构评估
3.5 软件体系结构演化
1 什么是软件体系结构

2 软件生命周期中的软件体系结构
2.1 生命周期
- 软件生命周期是指软件从概念提出到软件结束使用的整个过程
-

- 需求分析阶段:
-
- 确定系统的基本结构
- 评估技术可行性
- 促进利益相关者之间的沟通
- 系统设计阶段——降低系统复杂性,增强代码可读性和可维护性,提高协作效率:
-
- 确定系统组件和模块
- 确定交互和接口设计
- 影响性能和资源的利用
- 支持错误处理和异常处理
- 实现阶段:
-
- 提供实现蓝图
- 确保安全性和可靠性
- 测试阶段:
-
- 定义测试范围和用例
- 促进故障定位和诊断
- 影响非功能性测试
- 部署阶段:
-
- 确定部署配置和环境
- 确保安全性和合规性
- 维护和迭代阶段:
-
- 促进系统的可维护性
- 支持系统的灵活迭代
- 确保长期系统的稳定性和性能
- 系统退役:
-
- 支持平滑的服务转移
- 促进数据和资源的安全转移
- 确保合规性和遵循标准
2.2 定位与作用
1 规划和需求分析阶段

2 系统设计阶段

3 实现阶段

4 测试阶段

5 部署阶段

6 维护和迭代阶段

7 系统退役阶段

3 软件体系结构构建过程
3.1 整体过程
- 质量属性的精准捕获、 恰当的体系结构设计、 严格的体系结构评估, 以及灵活的体系结构演化
-

3.2 软件体系结构分析
- 从非功能需求中捕获与软件体系结构密切相关的软件质量属性集合
- 通常采用质量属性工作坊(Quality Attribute Workshop, QAW) 的方式来进行质量属性捕获
-

3.3 软件体系结构设计
1 风格选择
2 质量属性设计
3.4 软件体系结构评估
- 分析和验证软件体系结构是否能够满足其预定的质量属性要求
- 识别潜在的风险、问题和瓶颈
- 使用加固权衡分析法(Architecture Trade-off Analysis Method, ATAM)和软件体系结构分析法(Software Architecture Analysis Method, SAAM)
-

3.5 软件体系结构演化
- 持续性变化和调整
-

相关文章:
软件体系结构复习-02 软件体系结构定位及构建
软件体系结构复习-02 软件体系结构定位及构建 原文链接:《软件体系结构复习-02 软件体系结构定位及构建》 目录 软件体系结构复习-02 软件体系结构定位及构建 1 什么是软件体系结构 2 软件生命周期中的软件体系结构 2.1 生命周期 2.2 定位与作用 1 规划和需求…...
鸿蒙获取 APP 信息及手机信息
前言:获取 APP 版本信息可以通过 bundleManager.getBundleInfoForSelfSync(bundleFlags) 去获取,获取手机信息可以通过 kit.BasicServicesKit 库去获取,以下是封装好的工具类。 import bundleManager from ohos.bundle.bundleManager; impo…...
Linux-V4L2摄像头应用编程
ALPHA/Mini I.MX6U 开发板配套支持多种不同的摄像头,包括正点原子的 ov5640(500W像素)、 ov2640(200W 像素)以及 ov7725(不带 FIFO、30W 像素)这三款摄像头,在开发板出厂系统上&…...
掌握谈判技巧,达成双赢协议
在当今竞争激烈且合作频繁的社会环境中,谈判成为了我们解决分歧、谋求共同发展的重要手段。无论是商业合作、职场交流,还是国际事务协商,掌握谈判技巧以达成双赢协议都具有极其关键的意义。它不仅能够让各方在利益分配上找到平衡点࿰…...
Mysql - 存储引擎
一 MYSQL体系结构简介 MYSQL的体系结构可以分为四个层级,从上往下依次为: 1. 连接层: 最上层为客户端以及一些连接服务,包含连接操作,例如JAVA想要与MYSQL建立连接就需要用到JDBC,PHP语言与Python也可以连接到MYSQL&am…...
借助 CC-Link IE FB 转 Profinet 网关实现西门子 PLC 接入三菱 PLC 系统的解决策略
我们公司自动化生产线上,原有的控制系统采用三菱 PLC 通过 CC-Link IEFB 网络进行通信和控制。后来随着企业生产规模的扩大和对自动化系统集成度要求的提高,需要将部分设备与新引入的西门子 PLC 控制系统相连接,而西门子 PLC 使用 ProfiNet 协…...
未完成_RFdiffusion应用案例_从头设计pMHC的结合剂
目录 1. 论文导读1)摘要2)设计流程3)设计流程的验证 2. 实战 1. 论文导读 Liu, Bingxu, et al. “Design of high specificity binders for peptide-MHC-I complexes.” bioRxiv (2024): 2024-11. 1)摘要 MHC-I 将胞内抗原肽递呈…...
python使用h5py保存数据
python使用h5py保存使用 1、导入库 pip install h5py 2、简介 HDF5(Hierarchical Data Format version 5)是一种可用于存储大量科学数据的文件格式。 支持层次化的数据组织,可以将数据分为多个组(group)和数据集(dataset)。 支持多种数据类型,包括整数、浮点数、字…...
ubuntu24.04利用selenium控制浏览器的方法
ubuntu24.04利用selenium控制浏览器的方法 1.安装selenium sudo apt install python3-selenium2.下载chromedriver 下载地址1 下载地址2 在上面两个地址中挑选自己的版本号 下载chromedriver的时候一定要跟自己浏览器的版本相对应,笔者采用的是版本 131.0.6778.1…...
Thonny IDE + MicroPython + ESP32 + 0.96寸OLED(IIC) 显示任意字符
四针脚0.96英寸OLED显示屏模块的具体参数如下表所示。 参数名称 参数特性 分辨率 128x64像素 通信方式 IIC 驱动芯片 SSD1306 屏幕颜色 白色、蓝色或黄蓝双色 元件: 四针脚0.96英寸OLED显示屏模块 ESP32 DEVKIT_C开发板 杜邦线USB Type-C 接线…...
centos7 扩容
首先关闭虚拟机设置一下磁盘 lsblk查看磁盘 空间 可以看到想要扩容的是sda2 只有19.7G sudo fdisk -l查看sda2 的起始扇区 sudo fdisk /dev/sda更改磁盘依次输入: sudo pvresize /dev/sda2sudo xfs_growfs /...
FreeRTOS实现UART通信
串口通信 速战速决形式,大家走一遍就通; 本次实验验证: 配置文件 4、打开CubeMX 5、选择芯片型号,然后点击开始项目 6、配置时钟 配置烧录引脚,与FreeRTOS系统时钟 选择FreeRTOS 这里已经默认有一个任务&…...
【从CURD到全栈成长】Java后端如何提升自己?
全文目录: 开篇语前言 🌟📜 目录1. 为什么CRUD不等于后端开发? 🤔2. 技能进阶:从CRUD走向设计与架构 🛠️2.1 了解MVC与三层架构2.2 理解设计模式2.3 学习微服务架构 3. 深挖Java核心࿱…...
动态计算加载图片
学习啦 别名路径:①npm install path --save-dev②配置 // vite.config,js import { defineConfig } from vite import vue from vitejs/plugin-vueimport { viteStaticCopy } from vite-plugin-static-copy import path from path export default defineConfig({re…...
利用R包QstFstComp包进行Qst-Fst分析
1.Qst-Fst分析 安装和加载QstFstComp包 首先,你需要安装devtools包,如果尚未安装,可以使用以下命令安装: install.packages("devtools") 2. 然后,使用devtools安装QstFstComp包:R library(de…...
ASP.NET Core8.0学习笔记(二十五)——EF Core Include导航数据加载之预加载与过滤
一、导航属性数据加载 1.在EF Core中可以使用导航属性来加载相关实体。 2.加载实体的三种方式: (1)预先加载:直接在查询主体时就把对应的依赖实体查出来(作为初始查询的一部分) (2)显式加载:使用代码指示稍后显式的从…...
ubuntu常用的设置
目录 1.设置vim的tab键为4个空格2.设置git提交时自动将Tab转换为空格 1.设置vim的tab键为4个空格 set tabstop4 set shiftwidth4 set expandtab tabstop设置Tab键为4个字符宽,shiftwidth设置自动缩进时的宽度也为4,expandtab表示将Tab转换为等量的空格。…...
基于框架的逻辑回归:原理、实现与应用
目录 编辑 逻辑回归原理 损失函数与优化 正则化 基于框架的实现 1. 数据预处理 2. 模型初始化与训练 3. 模型评估与调优 4. 特征缩放 逻辑回归的应用 信用评分 医疗诊断 垃圾邮件识别 推荐系统 结论 在机器学习领域,逻辑回归是一种基础且强大的分类…...
Charts 教程:创建交互式图表的基础
ECharts 是一个开源的、基于 JavaScript 的数据可视化库,它可以帮助你快速创建交互式的图表。无论是简单的柱状图、折线图,还是复杂的地图和关系图,ECharts 都能够轻松应对。本文将带你了解如何在你的网页中使用 ECharts 创建图表,…...
VTK知识学习(20)- 数据的存储与表达
1、数据的存储 1)、vtkDataArray VTK中的内存分配采用连续内存,可以快速地创建、删除和遍历,称之为数据数组(DataArray),用类 vtkDataArray 实现。数组数据的访问是基于索引的,从零开始计数。 以 vtkFloatArray 类来说明如何在 …...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...


