① 嵌入式系统包括硬件和软件两部分,不同厂商的硬件千差万别,在某个嵌入式芯片中能正确运行的软件在另外一个嵌入式硬件平台上就不一定能正常运行。
② 嵌入式系统软件平台也千差万别,各自对开发的要求差异较大。
③ 大部分嵌入式系统对实时性要求严格。
④ 嵌入式平台的软件一般不是采用面向对象语言开发的,主要采用C语言甚至是汇编语言编写。
① 为了使所建立模型的正确性能够得到验证,有人提出采用形式化的方法。例如William和H. C. Cheng使用VHDL作为模型的形式化描述语言,通过分析UML模型中的类图和状态图得到嵌入式系统的VHDL描述,确定系统的结构和行为,并进行模型验证[2]。还有学者使用有限状态自动机与UML相结合来完成系统的分析、设计和验证[3]。
② 对于实时性要求,提供的解决方法主要包括: 使用标准的UML及其构造型概念设计实时系统
[4],以及扩充UML或改造UML以使其满足实时系统的要求[5]。
③ 对于语言的问题,主要有以下两种解决方法: 一种是使用面向对象的C++语言开发,如SystemC[6];另一种是使用可以与C语言结合的UML开发环境,如美国ILogix公司推出的Rhapsody。
① 首先确定系统需求。在此阶段既不考虑哪部分是软件,也不考虑哪部分是硬件,只根据调研和与用户的交流得出系统应具有的功能,并通过角色与用例的关系表现出来,从而得出用例图和系统最终需求。
② 进入系统设计阶段,也就是根据用例图得出的需求来设计类图。这个阶段需要确定哪些功能由硬件完成,哪些功能由软件完成。软件类图的设计与纯软件建模方法基本一样,在此不再赘述。对硬件的处理一般由硬件包装类来实现,硬件包装类提供访问硬件的接口。这些硬件包装类处理到设备的通信和设备产生的中断,通过这样的硬件类可以隐藏低级协议的细节,并且很方便、快速地将低级中断转换为系统中其余部分的高级事件。包装类是属于活动的还是静态的类,主要取决于硬件的属性。
③ 如果类图中所描述的软件类或硬件类比较复杂,难以描述清楚,那么可以采用对象图来细化,使之更加具体和明确。
参考文献
[1] 王田苗. 嵌入式系统设计与实例开发——基于ARM微处理器与μC/OSII实时操作系统[M].第2版. 北京:清华大学出版社,2003:530.
[2] William E McUmber,Betty HC Cheng. UMLBased Analysis of Embedded Systems Using a Mapping to VHDL[J]. IEEE High Assurance Software Engineering,1999(11):5663.
[3] 石柯阳,富民,胡贯荣.基于UML的嵌入式系统模型验证机制的研究[J].计算机工程与应用,2001,37(23):13111.
[4] 何海,钟毅芳,蔡池兰. 基于UMLRT的复杂嵌入式系统建模方法及其应用[J]. 计算机应用,2005,25
(6):14271429.
[5] Bikander M. Graphical Programming Using UML and SDL[J]. IEEE Computer,2000(12):3035.
[6] 石柯. 基于UML和SystemC的嵌入式系统集成开发的研究[J]. 高技术通讯,2003(11):4447.(end)