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