UML在嵌入式系统设计中的应用
最后,在规格说明阶段进行系统的业务描述。即规范系统完成一定功能的主要流程。这可以利用Activity框图进行。图5显示了GPS数据到达时,车载GPS终端系统所进行的处理流程。
2.4 系统设计
规格说明完成后,需要对系统的各个模块及模块之间的关系仔细地分析,从而确定哪些部分使用硬件完成,哪些部分使用软件实现。在本例中,需要硬件实现的模块有:GPS接收模块、电源模块、用户控制模块、LCD显示模块和GSM通讯模块。所有的控制逻辑和数据计算全部由主控制器的软件实现。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2.5 构件设计
接下来对每一个系统构件进行详细的设计。对于某些大型工程,甚至需要把每一个构件作为一个项目,重新以需求分析、规格说明开始展开构件设计循环。在构件设计中,除了可以使用前文介绍过的各种UML框图外,通常还需要使用State Chart、Sequence这两种框图描述具体的系统流程细节。
在本例中,GSM模块共有四个状态:待命、有问题、通话中、短消息通讯中。使用State Chart框图描述它们之间的转换关系,如图7所示。
Sequence框图显示了一个特定对象进行特定操作时所遇到的流程。图8显示了车载终端用户甲在遇到危险按下报警按钮后系统的处理过程。
javascript:window.open(this.src);" style="cursor:pointer;"/>
在集成测试时,可以联合使用所有的UML框图认真分析每个构件的原理,针对每一个系统功能、每一个可能发生错误的过程写出相应的测试程序,进行完整而可靠的程序测试。
利用UML和系统的设计方法可以使传统的嵌入式系统设计告别“手工作坊”的开发方式,大大提高嵌入式系统的开发速度和产品质量,增强设计的可复用性。
但是UML是图形化描述语言,比较适用于面向对象的程序设计;对于精确的规格设计或非面向对象的语言设计来说就不尽如人意了。在具体应用中,灵活应用注释功能,把框图对应模块所需的具体规格要求以注释的形式写在框图中,充分利用State Chart和Sequence这些框图来完成面向过程部分的设计。