当前位置: 首页 > news >正文

嵌入式系统软件架构设计方法

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方法提供了一些分解规则和一高处理并发任务的设计步骤,还提供了一套把实时系统建造成并发任务的标准和定义并发任务间接口的指南。

http://www.lryc.cn/news/378934.html

相关文章:

  • 【面试题】风险评估和应急响应的工作流程
  • Vue70-路由的几个注意点
  • Aidlux 1.4 部署Nextcloud 2024.6实录 没成功
  • 网络与协议安全复习 - 电子邮件安全
  • Python里的序列化是什么?
  • 自动抓取服务器功耗
  • 服务器接收苹果订阅通知
  • 2024年旅游与经济发展国际会议(ICTED 2024)
  • 【NLP练习】Transformer实战-单词预测
  • 使用Lua脚本保证原子性的Redis分布式锁实现
  • 什么是nginx到底怎么配置,什么是网关到底怎么配置?
  • 轻量级服务器内存不够编译的情况解决方案(以安装Ta-Lib库为例)
  • 学校校园考场电子钟,同步授时,助力考场公平公正-讯鹏科技
  • MySQL存储管理(一):删数据
  • 深度剖析现阶段的多模态大模型做不了医疗
  • Zabbix 监控 Kubernetes 集群
  • 网上预约就医取号系统
  • 概念描述——TCP/IP模型中的两个重要分界线
  • ECharts,拿来吧你!
  • 【DICOM】BitsAllocated字段值为8和16时区别
  • 【MySQL】 -- 事务
  • c#调用c++生成的dll,c++端使用opencv, c#端使用OpenCvSharp, 返回一张图像
  • 【Android面试八股文】你能说一说View绘制流程与自定义View注意点吗?
  • 【第24章】Vue实战篇之用户信息展示
  • “打造智能售货机系统,基于ruoyi微服务版本生成基础代码“
  • oracle12c到19c adg搭建(五)dg搭建后进行切换19c进行数据字典升级
  • 在公司的一些笔记
  • 2020C++等级考试二级真题题解
  • 面试官:聊聊 nextTick
  • shell编程之条件语句(shell脚本)