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

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

3天内不再提示

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

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

1 问题背景

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

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

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

2 软件架构问题

2.1 软件架构的特点

1. 承载力

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

2. 易用性

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

3. 扩展性

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

4. 伸缩性

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

5. 容错性

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

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

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

    关注

    4

    文章

    228

    浏览量

    26386
  • 架构
    +关注

    关注

    1

    文章

    484

    浏览量

    25200
  • 系统
    +关注

    关注

    1

    文章

    981

    浏览量

    21036
收藏 人收藏

    评论

    相关推荐

    诚聘嵌入式软件架构

    猎头职位:嵌入式软件架构师【厦门】岗位职责:1、负责软件系统总体方案设计和详细设计,负责核心代码编写;2、负责技术方案评审,负责制定系统测试方案;3、负责新技术和关键技术的跟踪、研究和
    发表于 03-01 10:20

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

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

    嵌入式软件开发中的程序架构

    嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系
    发表于 02-02 06:58

    嵌入式架构多重要?

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

    嵌入式的诸多特点

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

    嵌入式架构多重要

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

    嵌入式软件哪些特点?

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

    为何要进行嵌入式软件架构设计?如何设计?

    为何要进行嵌入式软件架构设计?如何进行嵌入式软件架构设计?
    发表于 11-01 06:31

    嵌入式系统设计具有什么特点

    嵌入式系统开发设计嵌入式系统设计的主要任务是定义系统的功能、决定系统的架构,并将功能映射到系统实现架构上。系统架构既包括
    发表于 11-08 06:02

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

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

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

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

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

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

    嵌入式软件基础的四层架构分别是哪些

    嵌入式软件分层架构基本原则有哪些?嵌入式软件基础的四层架构分别是哪些?
    发表于 12-24 07:57

    嵌入式音频软件架构的相关资料分享

    本文转载自:http://www.cnblogs.com/talkaudiodev/p/7077034.html转载—–>嵌入式音频软件架构嵌入式产品中语音通信和音乐播放的
    发表于 12-24 06:39

    嵌入式软件架构

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