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

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

3天内不再提示

如何规划嵌入式软件架构

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

2.2.1 必须熟悉业务

软件是为业务服务的,业务才是“目的”,软件系统是为了达成业务系统目标的手段和方法。适应当前的业务需求是基础,充分考虑和预测未来的业务扩展,根据业务的扩展性来设计软件的扩展性。如果可预见未来没有扩展重大新业务的需求,那么相应的软件架构就没有必要采用高扩展的软件架构。比如嵌入式传感器数据采集小设备,就没有必要把云计算等,业务范围不沾边的技术点放到其中。软件架构必须以服务业务为核心思想,不熟悉当前软件业务、和未来业务的扩展的架构师是很难设计出好的软件架构。

2.2.1 借鉴业内成熟的架构

不照搬,并不意味着不要借鉴。借鉴业内成熟的软、硬件架构是相对稳妥、高效的做法。以业内的架构为基础,根据自身业务的特点,进行适配、裁剪和增加新的功能。熟悉业内常规的、成熟的、最新的软件架构是架构师的一项基本功。但熟悉并不是意味着必须立即在目标系统中实施这些软件架构。

2.2.3 采用设计模块

设计模式(Design pattern)代表了最佳实践,设计模式是软件开发人员在开发过程中对一般问题的解决方案;是一套被反复使用的、多数人知晓的代码设计经验的总结,经过相当长的一段时间的试验和错误总结出来的。

使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性,合理地运用设计模式可以完美地解决很多问题。每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。

用设计模式构建一个新的软件模块时,短期会让人感觉有多此一举的味道;但中长期来看,设计模式能够克服“坏”架构的特征。学习这些模式有助于经验不足的开发人员通过一种简单快捷的方式来学习软件设计。尽管设计模块通常被有经验的面向对象的软件开发人员所采用,但是嵌入式软件C语言也可以借鉴,参考《嵌入式软件的设计模式(上)》,《嵌入式软件的设计模式(下)》。

2.2.4 合理的横向和纵向切分

横向切分 :从硬件、驱动、组件到业务层,软件分层隔离。如数据通信:PHY/MAC/IP/TCP/应用层

纵向切分 :根据业务处理流程的环节纵向切分,不同的环节为不同的模块,不同的业务功能为不同的模块,如socket网络、GNSS卫星定位。

2.2.5 按树形结构组织

按照树形结构的方式组织软件系统,不同的大功能拆分为小功能,文件夹内套文件夹的实现形式,命名上统一,方便按功能快速找到对应的源码。

2.2.6 降低模块之间的耦合

耦合性是一种软件度量,是指一程序中模块及模块之间信息参数依赖的程度;内聚性是一个和耦合性相对的概念,一般而言低耦合性代表高内聚性,反之亦然。

2.2.7 降低模块与模块之间通信

一个软件内模块与模块之间的通信,构成了一个内部的通信网,避免内部模块的通信采用网状结构,这种解决方案是设计模式中的中介者模式。

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

    关注

    5076

    文章

    19045

    浏览量

    303853
  • C语言
    +关注

    关注

    180

    文章

    7602

    浏览量

    136357
  • 嵌入式软件
    +关注

    关注

    4

    文章

    240

    浏览量

    26625
  • 架构
    +关注

    关注

    1

    文章

    511

    浏览量

    25457
收藏 人收藏

    评论

    相关推荐

    诚聘嵌入式软件架构

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

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

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

    嵌入式架构有多重要

    原有的代码。接下来嵌入式ARM便和大家分享一下,嵌入式架构那些事儿……01嵌入式系统的基本架构嵌入式
    发表于 10-27 08:15

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

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

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

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

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

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

    嵌入式软件架构设计

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

    实时多任务嵌入式软件架构方式的设计应用

    分享到:标签:软总线 嵌入式软件 实时多任务 1.引言 随着大型嵌入式系统向着集成化和多元化方向的发展,嵌入式软件系统的复杂度也日益增大。在
    发表于 10-25 14:46 1次下载
    实时多任务<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>的<b class='flag-5'>架构</b>方式的设计应用

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

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

    嵌入式开发中常用的软件架构

    嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系
    的头像 发表于 01-01 10:16 5558次阅读
    <b class='flag-5'>嵌入式</b>开发中常用的<b class='flag-5'>软件</b><b class='flag-5'>架构</b>

    嵌入式开发中软件架构存在的意义

    嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系
    的头像 发表于 09-08 09:18 2365次阅读
    <b class='flag-5'>嵌入式</b>开发中<b class='flag-5'>软件</b><b class='flag-5'>架构</b>存在的意义

    嵌入式软件架构

    嵌入式软件架构
    发表于 10-20 20:51 20次下载
    <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>设计

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

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

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

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