嵌入式软件架构 基本知识个人观点.

2019-12-28 17:50发布

嵌入式软件架构  基本知识个人观点.

        1. 为什么要在写程序的时候,考虑软件架构? 今天嵌入式硬件资料更新的越来越快.一个10多块钱的STM32F103VCT6, 就带有256kB flash,48k Ram. 在我们设计程序的时候. 完全可能考虑设计成一个,好一点的架构.

那到底是什么架构了, 所谓的架构,就是一种程序框架(个人观点,不一定对), 这种程序框架,  这个框架,可以根据 软件的特点进行分层, 什么是软件的特点,就是我也不知道.  软件为了可读,可维护, 都是使用分函数模块,分层来设计.

比如说: 我们可以把 程序这样分三层.

                        APP                        ---------->>>应用层(业务层)
              ==============================================
                       APPinterface           ------------->>>应用接口层(底层函数接口封装)
             ==============================================
                      BSP                    -------------------->>硬件驱动层
               =============================================
                如果我们是基于STM32的库,这里还有一个stm32lib


我们为什么要这样分,      为了可读性?  可移植性?   还是可考性,?  可维护性?   可测试性?      这些都有道理?  
但是大家有没有考虑这些说 的都是很表面,  没有说出架构的设计本来应该解决的第一问题,  架构设计目的只有一个, 提高效率,提高编码效率,提高测试效率,提高维护效率,  提高效率就是提高生产力,提高产品利润.
提高效率的目的, 可读性,可移植性,可维护性,可靠性,都是为了软件提高效率而已做的事.     如果我们在做架构设计的时候, 为了达了可维护,可移植性, 却不了解为什么要这么做, 可能会做的过分, 而已导致架构设计过于详细,浪费了时间.
架构设适可而止. 架构设计是持续进行的(重架与调整代码)

        其实简单的理解
        架构设计的直接带来的好处的 就是 ,考虑优先级,可这样分.  第一,可测试性(敢改,  代码分层后,我们可以把业务层代码拿到PC上去测试.) 接着往后,可维护性( 容易改) , 可靠安全, 可移植,可扩展 最后再是性能(合理的硬件选型)
架构设计是为了降低总成本.


        敏捷开发推崇的架构设计过程
         A: 构想(驱动因素) B: 设计(基础架构) C: 输出(设计结果)  D: 持续优化  E: 输出
         
        过早优化是一切的根源.
       
        输出的架构图: 有开发视图(只关心软件,包与包的编译,包..文件夹) 逻辑视图(数据流).
       
        今天学习了一天,好像了写不出来什么分享了.