对嵌入式开发过程中设计的浅显理解
设计的目的(统一思想)
从IPD项目流程中理解,设计阶段介于需求定义和功能(电路和程序)实现之间,所以要承上启下,即
- 证明(讲明白)我们最终可呈现出来的东西,是如何满足需求的,设计的功能点与需求的各需求点之间存在一个怎样的对应关系,这个关系保证了最终实现的目标是能Cover到所有的需求点的。
- 告诉(做明白)我们最终要呈现出来什么东西,指导我们应该采用什么方法可以很好的实现出来。
设计的思路(统一目标)
将一个产品的全部功能进行抽象,抽象成一个“系统”。若是复杂的系统,则可以对系统进行分解,分解为若干子系统和模块,还可以拆解为子模块、子服务等更小的单元。
分解的过程,要及时进行反向推演,一个模块拆解出来的各个子模块,能否再还原出之前的模块。若不能则要考虑换个思路重新分解。
每个模块视作一个分立的个体时,就存在模块内和模块外两种关系,模块内即是考虑(设计)模块内部的运行逻辑,模块外则是考虑本模块与其他模块之间的交互与协作的方式(接口)。
设计的方法(统一行动)
定义系统与模块
通常可以采用一段概括性的文字描述。
举例:
参数管理模块
该模块负责满足整个系统其他所有模块对于“参数的需求”,即为其他模块提供控制其运行逻辑行为的能力。
本模块是非常基础的服务模块,为几乎全部的其他模块所使用。主要的接口能力有
- 参数读取接口
- 参数写入接口
- 参数保存及防丢能力
- 参数整体更新替换能力
- 轻量数据交互能力(保存在RAM中参数,允许掉电丢失)
模块内的设计
通过功能框图、流程图、交互时序图等图表,适当配合一些文字说明、表格数据等,对模块本身的运行逻辑进行说明。
对运行逻辑进行分割,定义为实现该逻辑,所要设计的接口、组件与服务。
模块外的设计
主要定义出本模块与其他模块之间交互的内容、数据是什么,为这些交互动作规定合理的接口出来。这个过程需要更高层级设计者,和需要交互模块的设计者之间进行协同与协作,是一个思想碰撞的过程,是碰撞后共同提升的过程,也是一个互相包容和妥协的过程。