0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式软件架构的特点有哪些

麦辣鸡腿堡 来源:嵌入式系统 作者:嵌入式系统 2023-12-07 15:20 次阅读

1 问题背景

一切为了进度,软件开发的首要目标就是以最快的速度满足客户需求,“快”是第一要素,但是短期指标;可复用性、扩展性等长期指标被忽略,导致后期的维护、功能增减调整都非常困难。

一个小的业务需求会牵一发而动全身,一个小的故障修复可能引入更多的问题。整个系统包袱越来越沉重,软件的质量和开发周期越来越不可控。

排除软件开发人员的水平和项目进度的原因,主要影响因素还包括软件架构,和软件缺陷的修复能力。对于量产软件,架构问题是先天性的,后期很难大改,只能前期预防;软件缺陷问题是无法避免的,只能期望快速修复。抛砖引玉,也可先参看《嵌入式软件bug从哪来,怎么去》。

2 软件架构问题

2.1 软件架构的特点

1. 承载力

正如一艘船最多能装多少人,从软件方面来说是软件架构能承载多少业务或功能需求,当然,这需要架构师一开始架构系统的时候,就需要有一定的预见性。但也没必要为了极小概率事件增加过多的冗余。

2. 易用性

易用性决定了软件的整体开发效率,好的架构会让团队成员容易上手,子系统容易对接,开发效率高,各模块和子系统的编写只需要关注系统的设计和编码工作,其他模块间通信方面的事情架构可以提供很好的兼容。

3. 扩展性

一个水杯除了用来喝水,也可用来喝酒,适应不同场景,在一定范围内满足不同的需求,是非常有必要的。软件架构也是这样,要新增更多的功能就要具备更高的扩展性。可扩展性的关键就在于新增部分不能影响其他,如果增删导致系统整体使用异常,那么这个架构的可扩展性就很差。

4. 伸缩性

伸缩性就是设计的方案或系统是否可以根据需求适配不同数量的功能或子系统,在我们设计的软件系统中,架构的可伸缩性决定了架构的可适配性,例如,当硬件资源不足时,可以调整配置如flash的空间分配,支持减少一些服务但仍能正常运行。

5. 容错性

软件运行中的异常,如用户的非法操作,或者软件本身的小缺陷导致整个系统无法使用,那这个架构容错性就很差。软件中的一些缺陷无法避免,但是我们应尽量保证这个缺陷的影响范围最小。倘若出现系统无法使用的情况,应该有备份方案,比如自动重启或者自动恢复数据等功能,也应该能够让开发人员及时知道问题的发生,以及问题所在的位置并记录错误信息

在架构设计中,以上五项基本能力缺一不可,某项能力的突出并不能带动其他项,如果某一项能力比较弱,随着时间的推移,问题会越来越大,甚至系统崩溃。就像木桶原理那样,一个木桶的容量不是取决于最长的那根木板,而是取决于最短的那根。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式软件
    +关注

    关注

    4

    文章

    240

    浏览量

    26613
  • 架构
    +关注

    关注

    1

    文章

    509

    浏览量

    25444
  • 系统
    +关注

    关注

    1

    文章

    1006

    浏览量

    21310
收藏 人收藏

    评论

    相关推荐

    嵌入式系统的软件架构设计!

    1. 前言嵌入式软件设计领域的一个分支,它自身的诸多特点决定了系统架构师的选择,同时它的一些问题又具有相当的通用性,可以推广到其他的领域。提起嵌入
    发表于 08-10 07:46

    嵌入式的诸多特点

    1. 前言嵌入式软件设计领域的一个分支,它自身的诸多特点决定了系统架构师的选择,同时它的一些问题又具有相当的通用性,可以推广到其他的领域。提起嵌入
    发表于 08-20 08:08

    嵌入式架构多重要

    嵌入式架构多重要?要做到嵌入式应用的代码逻辑清晰,且避免重复的造轮子,没有好的应用架构怎么行?如果没有好的
    发表于 10-27 08:15

    嵌入式软件哪些特点?

    关于嵌入式软硬件开发的几点思考1、嵌入式软件哪些特点?答:(1) 实时性:环境特定;快速启动(2)异步事件的并发处理:多任务;随机性(3)
    发表于 10-28 07:07

    嵌入式软件开发的特点哪些呢

    嵌入式软件开发的特点、设计流程、嵌入式软件的结构 一:嵌入式
    发表于 11-08 06:58

    决定嵌入式系统软件架构的因素和架构的影响

    嵌入式系统软件架构设计目录1.前言42.决定架构的因素和架构的影响42.1.常见的误解52.1.1.小型的系统不需要
    发表于 11-08 06:54

    嵌入式环境下软件设计的特点是什么

    详见微信公众号,二进制人生。目录:嵌入式环境下软件设计的特点设计目标设计思路多进程解耦嵌入式环境下软件设计的
    发表于 11-09 06:31

    嵌入式软件架构设计

    嵌入式软件架构的设计,帮助我们建立合理,有效的软件架构
    发表于 11-09 17:34 19次下载

    嵌入式软件是什么意思_嵌入式软件的分类哪些

    本文首先阐述了嵌入式软件的概念,其次介绍了嵌入式软件的特征,最后介绍了嵌入式软件的分类。
    发表于 08-31 15:54 1.6w次阅读

    嵌入式软件架构

    嵌入式软件架构
    发表于 10-20 20:51 20次下载
    <b class='flag-5'>嵌入式</b>系<b class='flag-5'>软件</b><b class='flag-5'>架构</b>

    嵌入式软件开发的特点、设计流程、嵌入式软件的结构

           嵌入式软件开发的特点、设计流程、嵌入式软件的结构 一:嵌入式
    发表于 11-03 15:21 37次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>开发的<b class='flag-5'>特点</b>、设计流程、<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>的结构

    嵌入式系统软件架构设计

    嵌入式系统软件架构设计目录1.前言42.决定架构的因素和架构的影响42.1.常见的误解52.1.1.小型的系统不需要
    发表于 11-03 18:21 30次下载
    <b class='flag-5'>嵌入式</b>系统<b class='flag-5'>软件</b><b class='flag-5'>架构</b>设计

    嵌入式架构师成长之路--架构设计

    详见微信公众号,二进制人生。目录:嵌入式环境下软件设计的特点 设计目标 设计思路 多进程解耦嵌入式环境下软件设计的
    发表于 11-03 20:21 31次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>架构</b>师成长之路--<b class='flag-5'>架构</b>设计

    嵌入式系统的软件架构设计

    嵌入式软件设计领域的一个分支,它自身的诸多特点决定了系统架构师的选择,同时它的一些问题又具有相当的通用性,可以推广到其他的领域。
    的头像 发表于 03-12 11:06 4142次阅读

    详解FreeRTOS:嵌入式软件系统架构

    目前常见的嵌入式软件系统架构三种可以分为:轮询系统架构、前后台系统架构和多任务系统
    的头像 发表于 05-04 16:40 2423次阅读
    详解FreeRTOS:<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>系统<b class='flag-5'>架构</b>