嵌入式系统软件架构设计方法
1.嵌入式系统软件架构设计的目的
嵌入式系统软件架构是开发大型嵌入式系统密集型软件贯穿始终的关键桥梁,同时软件架构也是软件开发的基础。架构设计的目的是:
- 保证应用的代码逻辑清晰,避免重复的设计;
- 实现软件的可移植性;
- 最大限度的实现软件复用;
- 实现代码的高内聚、低耦合。
软件架构并非可运行软件,它是一种表达,是软件工程师能够:
- 分析设计在满足规定需求方面的有效性;
- 考虑体系结构可能的选择方案;
- 降低与软件构造相关联的风险。
在嵌入式软件架构总体设计时,应充分考虑软件的可靠性、安全性、可伸缩性、可定制性、可维护性、客户体验和市场时机等因素。
2.基于架构的软件开发方法的应用
由于嵌入式系统是为某特定对象、特定目标而设计的一种系统,这样的系统通常具备目标明确、用途单一、质量、可靠性要求高等。在嵌入式系统中,其设计通常采用了自顶向下的设计方法,基于架构的软件设计(ABSD)可适应于嵌入式系统的软件设计方法。
基于架构的软件设计(Architecture-Based Software Design,ABSD)方法强调有业务、质量和功能需求的组合驱动软件架构设计。ABSD是一个自顶向下,递归细化的软件开发方法,它以系统功能的分解为基础,通过选择架构风格实现质量和业务需求,并强调在架构设计过程中使用软件架构模板。ABSD方法是递归的,并不是说需求抽取和分析活动可以终止,而是应该与设计活动并行。设计活动可以从项目总体功能框架明确后就开始,可以逐步迭代、逐步完善的进行,不管设计是否完成,架构总是清晰的,有利于降低架构设计的随意性。
嵌入式软件的需求通常是从系统角度分解而来的,因此,在采用ABSD方法时,要关注系统的需求描述。
3.属性驱动的软件设计方法
嵌入式系统,尤其是安全攸关的系统与通常软件系统的最大不同点就是高质量属性始终贯穿于整个产品的全生命周期中。属性驱动的软件设计(Attribute-Driven Design,ADD)是把一组质量属性场景作为输入,利用对质量属性实现与架构设计之间的关系的了解(如体系结构风格、质量战术等)对软件架构进行设计的一种方法。
4.实时系统设计方法
嵌入式系统具有众多自身的特性,这些特性通常和应用场景密切相关,而实时特性常被各类具备控制能力的系统所采用,比如工业控制、航空航天和轨道交通等领域中的嵌入式系统应同时具备高可靠性、高安全性、强实时性等。系统的实时性是这些嵌入式系统的核心特性,针对实时系统,其设计方法也有它的自身特点。实时系统设计方法(Design Approach for Real Time System,DARTS)常被应用于嵌入式系统的软件设计中。
DARTS方法主要是将事实系统分解为多个并发任务,并定义这些任务之间的接口。该方法起源于实时系统的实时结构化分析和设计方法(Real-Time Structuring Analysis and Design,RTSAD)。RTSAD在分析阶段使用实时结构化分析(RTSA)方法,设计阶段使用实时结构化设计(RTSD)方法,但是这个方法没有考虑实时系统是由一些任务组成的这个特点。这对实时系统的这个特点,DARTS方法提供了一些分解规则和一高处理并发任务的设计步骤,还提供了一套把实时系统建造成并发任务的标准和定义并发任务间接口的指南。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
嵌入式系统软件架构设计方法
1.嵌入式系统软件架构设计的目的 嵌入式系统软件架构是开发大型嵌入式系统密集型软件贯穿始终的关键桥梁,同时软件架构也是软件开发的基础。架构设计的目的是: 保证应用的代码逻辑清晰,避免重复的设计;实现软件的可移植性&#…...
![](https://img-blog.csdnimg.cn/direct/c86dfd524d8246059f06fe828ae4cdd3.png)
【面试题】风险评估和应急响应的工作流程
风险评估和应急响应是网络安全管理中两个重要的环节。下面分别介绍它们的工作流程: 一、风险评估工作流程: 1.确定评估范围:明确需要评估的信息系统或资产的范围。 2.资产识别:识别并列出所有需要评估的资产,包括硬件…...
![](https://img-blog.csdnimg.cn/direct/d0eb78bb34c540bda10c87f584238068.png)
Vue70-路由的几个注意点
一、路由组件和一般组件 1-1、一般组件 1-2、路由组件 不用写组件标签。靠路由规则匹配出来,由路由器渲染出来的组件。 1-3、注意点1 一般组件和路由组件,一般放在不同的文件夹,便于管理。 一般组件放在components文件夹下。 1-4、注意点…...
![](https://img-blog.csdnimg.cn/direct/7b12846b62d54128963510769b15bdd1.png)
Aidlux 1.4 部署Nextcloud 2024.6实录 没成功
Aidux阉割版Debain10,坑很多,比如找不到实际的系统日志,有知道的大神吗? 1 Apache2安装 # 测试Apache2 sudo apt update && sudo apt upgrade sudo apt install apache2 -y80端口疑似被禁止只能换端口 rootlocalhost:/…...
![](https://img-blog.csdnimg.cn/direct/965e23de29774c22b3269f65e02b0e9a.png#pic_center)
网络与协议安全复习 - 电子邮件安全
文章目录 PGP(Pretty Good Privacy)功能 S/MIME(Secure/Multipurpose Internet Mail Extensions)DKIM(Domain Keys Identified Mail) PGP(Pretty Good Privacy) 使用符号: Ks:会话密钥、KRa:A 的私钥、KUa:A 的公钥、EPÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
Python里的序列化是什么?
在Python中,序列化(serialization)是一个过程,它可以将数据结构或对象状态转换为可以存储或传输的形式。通常,这意味着将数据结构或对象转换为字节流,以便可以将其写入文件、发送到网络,或用于其…...
![](https://www.ngui.cc/images/no-images.jpg)
自动抓取服务器功耗
以下脚本为linux系统内通过ipmitool工具自动抓取服务器当前功耗,每隔5分钟抓取一次,累计抓取20次 脚本如下: #!/bin/bashcurrent_dirpwd node_list${current_dir}/nodelistbmc #BMC IP usernameAdministrator #BMC用…...
![](https://www.ngui.cc/images/no-images.jpg)
服务器接收苹果订阅通知
我们的服务器需要提供一个URL来接收苹果的通知,要使用HTTPS。 苹果会对这个URL发送HTTP POST请求,body是JSON格式,包含了通知的内容。 我们服务器处理成功后,应向苹果返回HTTP 200。若出现问题,需要苹果重新发送通知…...
![](https://img-blog.csdnimg.cn/direct/7c1aba96cfde4d7db728e059daa0bbe9.jpeg)
2024年旅游与经济发展国际会议(ICTED 2024)
2024年旅游与经济发展国际会议(ICTED 2024) 2024 International Conference on Tourism and Economic Development 【重要信息】 大会地点:青岛 大会官网:http://www.icicted.com 投稿邮箱:icictedsub-conf.com 【注意…...
![](https://img-blog.csdnimg.cn/direct/8d1a499997fd4cd2acaf9b75a2085b08.png)
【NLP练习】Transformer实战-单词预测
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 任务:自定义输入一段英文文本进行预测 一、定义模型 from tempfile import TemporaryDirectory from typing import Tuple from torch import nn…...
![](https://www.ngui.cc/images/no-images.jpg)
使用Lua脚本保证原子性的Redis分布式锁实现
这是原来的代码: Override public void unlock() {// 获取线程标示String threadId ID_PREFIX Thread.currentThread().getId();// 判断标示是否一致String id stringRedisTemplate.opsForValue().get(KEY_PREFIX name);if (threadId.equals(id)) {// 释放锁st…...
![](https://www.ngui.cc/images/no-images.jpg)
什么是nginx到底怎么配置,什么是网关到底怎么配置?
那使用upstream里面具体哪个服务器是怎么决定和区分的呢? AI生成 在Nginx中,使用upstream里面具体哪个服务器是通过负载均衡算法来决定的。upstream块定义了一组服务器,Nginx会根据配置的负载均衡算法来选择一个服务器来处理当前的请求。常见的负载均衡算法包括轮询(round-…...
![](https://www.ngui.cc/images/no-images.jpg)
轻量级服务器内存不够编译的情况解决方案(以安装Ta-Lib库为例)
安装 TA-Lib 时遇到的问题通常与系统缺少必要的编译依赖项或者内存不足有关。以下是一些解决步骤,你可以按照这些步骤尝试解决问题: 问题描述:编译安装Tal-ib库出现以下问题: root@tianbaobao12:~/shipan/ta-lib# pip install ta-lib Collecting ta-libUsing cached TA-L…...
![](https://img-blog.csdnimg.cn/direct/a2507e8c97534e77a36b03d277b19015.jpeg)
学校校园考场电子钟,同步授时,助力考场公平公正-讯鹏科技
随着教育技术的不断发展,学校对于考场管理的需求也日益提高。传统的考场时钟往往存在时间误差、维护不便等问题,这在一定程度上影响了考试的公平性和公正性。为了解决这些问题,越来越多的学校开始引入考场电子钟,通过同步授时技术…...
![](https://img-blog.csdnimg.cn/direct/f2dc7ab06a3d4eefaef2f999e5a0f3eb.png)
MySQL存储管理(一):删数据
从表中删除数据 从表中删除数据,也即是delete过程。 什么是表空间 表空间可以看做是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中。默认情况下,InnoDB存储引擎有一个共享表空间idbdata1,即所有数据都存放在这个表…...
![](https://img-blog.csdnimg.cn/direct/59b4a9db64e44ea781bfdc2774f1c0ba.png)
深度剖析现阶段的多模态大模型做不了医疗
导读 在人工智能的这波浪潮中,以ChatGPT为首的大语言模型(LLM)不仅在自然语言处理(NLP)领域掀起了一场技术革命,更是在计算机视觉(CV)乃至多模态领域展现出了令人瞩目的潜力。 这些…...
![](https://img-blog.csdnimg.cn/direct/3bff047cb4ce4dfea097a634936613ee.png)
Zabbix 监控 Kubernetes 集群
Zabbix 监控 Kubernetes 集群 Zabbix作为一个成熟且功能强大的监控系统,被许多企业广泛采用。它能够对各种IT基础设施进行全面的监控,包括服务器、网络设备、应用程序等。而将Zabbix与Kubernetes结合,可以实现对Kubernetes集群的全面监控&am…...
![](https://img-blog.csdnimg.cn/direct/a7e26f98402b46e88966972d134560e9.png)
网上预约就医取号系统
摘 要 近年来,随着信息技术的发展和普及,我国医疗信息产业快速发展,各大医院陆续推出自己的信息系统来实现医疗服务的现代化转型。不可否认,对一些大型三级医院来说,其信息服务质量还是广泛被大众所认可的。这就更需要…...
![](https://img-blog.csdnimg.cn/direct/629eed17df2d45ed84667bdc4cf195ab.png)
概念描述——TCP/IP模型中的两个重要分界线
TCP/IP模型中的两个重要分界线 协议的层次概念包含了两个也许不太明显的分界线,一个是协议地址分界线,区分出高层与低层寻址操作;另一个是操作系统分界线,它把系统与应用程序区分开来。 高层协议地址界限 当我们看到TCP/P软件的…...
![](https://www.ngui.cc/images/no-images.jpg)
ECharts,拿来吧你!
作为一名前端程序员,在日常的项目开发中,我们会遇到各种各样的图表设计,那么,为了提高我们的开发效率,ECharts便应运而生了!它提供了丰富的图表样式和多浏览器支持的API接口,不仅能够将静态的数据转换为图表,还可以动态的请求后端传递过来的数据,将其以可视化的形式展现给用户,…...
![](https://www.ngui.cc/images/no-images.jpg)
【DICOM】BitsAllocated字段值为8和16时区别
一、读取dicom C# 使用fo-dicom操作dicom文件-CSDN博客 二、DICOM中BitsAllocated字段值为8和16时区别 位深度差异: 当BitsAllocated为8时,意味着每个像素使用8位来表示其灰度值。这允许每个像素有2^8256种不同的灰度等级,适用于那些不需要高…...
![](https://img-blog.csdnimg.cn/img_convert/085f0875e7a55d5836547958d30d8411.png)
【MySQL】 -- 事务
如果对表中的数据进行CRUD操作时,不加控制,会带来一些问题。 比如下面这种场景: 有一个tickets表,这个数据库被两个客户端机器A和B用时连接对此表进行操作。客户端A检查tickets表中还有一张票的时候,将票出售了&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
c#调用c++生成的dll,c++端使用opencv, c#端使用OpenCvSharp, 返回一张图像
c代码: // OpenCVImageLibrary.cpp #include <opencv2/opencv.hpp> #include <vector> extern "C" { __declspec(dllexport) unsigned char* ReadImageToBGR(const char* filePath, int* width, int* height, int* step) { cv::Mat i…...
![](https://www.ngui.cc/images/no-images.jpg)
【Android面试八股文】你能说一说View绘制流程与自定义View注意点吗?
文章目录 一、自定义View的构造函数以及各参数的用法二、自定义View的几种方式三、自定义View的绘制流程四、自定义View需要注意的一些点五、举个例子一、自定义View的构造函数以及各参数的用法 在Android中,自定义View通常需要提供多个构造函数,以适应不同的使用场景。主要…...
![](https://img-blog.csdnimg.cn/direct/81853c57f6c94f6da23c00f09de72f9c.png)
【第24章】Vue实战篇之用户信息展示
文章目录 前言一、准备1. 获取用户信息2. 存储用户信息3. 加载用户信息 二、用户信息1.昵称2.头像 三、展示总结 前言 这里我们来展示用户昵称和头像。 一、准备 1. 获取用户信息 export const userInfoService ()>{return request.get(/user/info) }2. 存储用户信息 i…...
![](https://img-blog.csdnimg.cn/direct/c8f5640d58214ff49d105d442ebcfd5f.png)
“打造智能售货机系统,基于ruoyi微服务版本生成基础代码“
目录 # 开篇 1. 菜单 2. 字典配置 3. 表配置 3.1 导入表 3.2 区域管理 3.3 合作商管理 3.4 点位管理 4. 代码导入 4.1 后端代码生成 4.2 前端代码生成 5. 数据库代码执行 6. 点位管理菜单顺序修改 7. 页面展示 8. 附加设备表 8.1 新增设备管理菜单 8.2 创建字…...
![](https://img-blog.csdnimg.cn/direct/2925950be69b4c8bbd6e4a1ef6dca528.png)
oracle12c到19c adg搭建(五)dg搭建后进行切换19c进行数据字典升级
一、备库切主库升级 12c切换为19c主库的时候是由低版本到高版本所以cdb和pdb的数据字典需要进行升级才可以让数据与软件版本兼容。 1.1切换 SQL> alter database recover managed standby database finish; Database altered. SQL> alter database commit to switcho…...
![](https://www.ngui.cc/images/no-images.jpg)
在公司的一些笔记
6.19 记住挂载在windows上的账户是DAHUATECH\401593,不是401593Windows与linux不能同时挂载在虚拟盘上 6.21 /******************************************************************************* pdc_ledSy7806e.c* * Description: 提供I2C访问sy7806e。 * * …...
![](https://www.ngui.cc/images/no-images.jpg)
2020C++等级考试二级真题题解
202012数组指定部分逆序重放c #include <iostream> using namespace std; int main() {int a[110];int n, k;cin >> n >> k;for (int i 0; i < n; i) {cin >> a[i];}for (int i 0; i < k / 2; i) {swap(a[i], a[k - 1 - i]);}for (int i 0…...
![](https://www.ngui.cc/images/no-images.jpg)
面试官:聊聊 nextTick
前言 在最近的面试中,不少面试官叫我聊聊 nextTick,nextTick 是个啥,这篇文章咱来好好聊聊! 我的回答 nextTick 是官方提供的一个异步方法,用于在 DOM 更新之后执行回调。正好在我的项目中用到了,就拿它来形容一下,大概的场景是渲染一个列表,每次点击按钮就会往列表后…...
![](/images/no-images.jpg)
网站制作商家入驻/百度是国企还是央企
[目前个人计算机的主要机型目前个人计算机的主要机型PC (Personal Computer) 个人计算机:一种设计用于一次由一个人使用的计算机,PC (personal computer),个人计算机一词源自于1978年IBM的第一部桌上型计算机型号PC,在此之前有App…...
![](https://img-blog.csdnimg.cn/20201107145937699.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pQQ3JvYm90,size_16,color_FFFFFF,t_70#pic_center)
怎么访问域名网站吗/互联网推广是什么
前言 内容导读: 启动优化的背景介绍->如何测量启动时间->启动优化工具选择->优雅获取方法耗时->异步优化原理介绍->异步优化最佳实践-启动器->延迟初始化方案->启动优化其它方案 启动优化介绍 日活上千万,几千万。 背景介绍 第…...
![](https://img-blog.csdnimg.cn/201905081636007.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTExNTk2MDc=,size_16,color_FFFFFF,t_70)
网站建设需求书模板/迅雷磁力链bt磁力天堂
目标网站:http://bohaishibei.com/post/category/main/(一个很有趣的网站,一段话配一个图,老有意思了~)网站形式如下: 爬取标题和图片链接 import re import requests url"https://bh.…...
![](/images/no-images.jpg)
个人可以建设新闻网站吗/优质网站
你真的了解telnet吗?一 摘要Telnet的应用不仅方便了我们进行远程登录,也给hacker们提供了又一种***手段和后门,但无论如何,在你尽情享受Telnet所带给你的便捷的同时,你是否真正的了解Telnet呢?二 远程登录Telnet服务虽…...
![](https://img2018.cnblogs.com/blog/1467309/201812/1467309-20181203193453037-41934405.png)
政府网站站群建设方案/搜索引擎技巧
Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置 0. 创建Spring Boot项目,选中 Web、MySQL、JDBC 依赖 1. 启动类默认加载了DataSourceAutoConfiguration,默认数据源是HikariD…...
![](https://img-blog.csdnimg.cn/2574b4710683451b93505baff1dcb24a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pqW5LuU5Lya6aOe,size_20,color_FFFFFF,t_70,g_se,x_16)
网站备案到期了怎么办/网站需要怎么优化比较好
文章目录类适配器代码对象适配器代码类适配器 SDCard 是一个接口,代表了 SD 卡本身具有的功能SDCardImpl 是一个具体的实现类,代表了 SDCard 一种具体的实现形式TFCard 是一个接口,代表了 TF 卡本身具有的功能TFCardImpl 是一个具体的实现类…...