第一章 嵌入式软件新途径–组件化设计
嵌入式软件发展趋势
随着数字家电、汽车电子化等发展,使得人们对嵌入式软件的需求越来越多,嵌入式软件变得越来越复杂,且对软硬件整合设计有强烈的诉求。嵌入式软件必须在软、硬件组件的快速淘汰与重组过程中保持整体和谐,因此软硬件整合设计的观点也随之改变。
如果用一颗树来比喻软硬件整合,那么过去和现在的观点分别如下:
过去的观点
认为软件比较软,像树叶一般。而硬件比较硬,像树干一般。
现在的观点
从改变的角度看,树叶长大之后就不易改变了,所以每年都必须锐变换新,就像硬件的迅速更换。而树干则是柔软地、不断地、局部地持续改变与成长,就像软件一样,容易局部修改、持续成长。
就像我们用Android智能手机,每隔几年就要换个新手机(硬件更换,就像树叶落了后重长新树叶),但新手机上仍然使用的Android系统(软件局部修改、持续成长)。
如何适应嵌入式软件的发展趋势? – 组件化新思维
嵌入式软件由一体成型的做法,变为组件化的做法:
一体成型的做法
软件交给客户之后,客户只能照单全收,无法调换其功能,只能慢慢地等待新版本的到来(就像功能手机的软件)。
缺点:缺乏弹性,改版升级速度缓慢,不能适应快速变化的环境。
组件化的做法
将应用程序分割成为许多小块(即:组件),在使用时可以随意调换其中一个或多个组件,以满足客户的特殊需求或新需求。
我的点评:现在的智能设备(比如:智能手机)的确采用了组件化的做法。考虑到这本书的出版日期是2008年,那时候智能手机还不像现在(2020年)这么普及,这本书的思想真是非常非常的超前。
如何实现组件化? – 架构驱动 + 对象(OO)技术
架构驱动
架构设计的目的是管理组件间的依赖关系,实现系统的整体和谐。整体和谐的架构使得更换单一组件时,几乎不会对其它组件或整个系统产生影响。
对象(OO)技术
以对象模型来表达组件间的合作关系,这便于组件的设计、组装、沟通以及测试等。
如何描述组件化的系统? – 使用对象建模语言
由于一个真实的系统可能非常庞大,且可能包含很多细节,所以需要借助模型来对整个系统进行描述。
由于一种模型通常只能描述系统的某一个层面,所以常常需要同时使用多种模型才能较正确地表达出系统的全貌。
UML就是本书使用的对象建模语言。