• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

一种改进型UML在嵌入式系统中的应用

发布: 2008-4-25 10:01 | 作者: 杨立春 | 来源: 单片机与嵌入式系统应用 | 查看: 112次 | 进入软件测试论坛讨论

领测软件测试网

 

虽然如此,各国的研究者和开发商为把UML引入到嵌入式系统中都做出了不懈的努力,并取得了一些成果,主要包括:

①  为了使所建立模型的正确性能够得到验证,有人提出采用形式化的方法。例如William和H. C. Cheng使用VHDL作为模型的形式化描述语言,通过分析UML模型中的类图和状态图得到嵌入式系统的VHDL描述,确定系统的结构和行为,并进行模型验证[2]。还有学者使用有限状态自动机与UML相结合来完成系统的分析、设计和验证[3]。
②  对于实时性要求,提供的解决方法主要包括: 使用标准的UML及其构造型概念设计实时系统[4],以及扩充UML或改造UML以使其满足实时系统的要求[5]。
③  对于语言的问题,主要有以下两种解决方法: 一种是使用面向对象的C++语言开发,如SystemC[6];另一种是使用可以与C语言结合的UML开发环境,如美国ILogix公司推出的Rhapsody。

  由以上3种解决方案可知,UML应用在嵌入式系统所产生的可验证性、实时性以及语言的问题,都是可以解决的,因而有可能广泛使用UML来分析、设计与指导嵌入式系统开发,以解决嵌入式系统开发效率低下的问题。

2  一种改进的通用嵌入式系统UML方案

  由于目前对UML应用在嵌入式系统中的研究往往都是侧重于解决嵌入式系统的某一方面,因而不具有通用性,很难成为嵌入式系统建模的标准。为了解决UML在嵌入式系统中的建模问题,本文提出了一种通用的UML嵌入式系统设计解决方案。

  为了给嵌入式系统建模必须考虑以下方面:

  ◆ 时间。在序列图中描述时间及其约束信息。
  ◆ 并发性。用活动类来描述并发。活动类的属性(如优先级)可以定义成类的标签值,可通过组件版类﹤﹤Process﹥﹥和﹤﹤Thread﹥﹥将它们映射到实现环境中。
  ◆ 异步通信。UML支持线程间发送异步消息。
  ◆ 同步通信。定义信号量、监视器或关键区的类/版类来描述同步。

  由此,可以得出嵌入式系统建模的一般过程如下:

①  首先确定系统需求。在此阶段既不考虑哪部分是软件,也不考虑哪部分是硬件,只根据调研和与用户的交流得出系统应具有的功能,并通过角色与用例的关系表现出来,从而得出用例图和系统最终需求。
②  进入系统设计阶段,也就是根据用例图得出的需求来设计类图。这个阶段需要确定哪些功能由硬件完成,哪些功能由软件完成。软件类图的设计与纯软件建模方法基本一样,在此不再赘述。对硬件的处理一般由硬件包装类来实现,硬件包装类提供访问硬件的接口。这些硬件包装类处理到设备的通信和设备产生的中断,通过这样的硬件类可以隐藏低级协议的细节,并且很方便、快速地将低级中断转换为系统中其余部分的高级事件。包装类是属于活动的还是静态的类,主要取决于硬件的属性。
③  如果类图中所描述的软件类或硬件类比较复杂,难以描述清楚,那么可以采用对象图来细化,使之更加具体和明确。
④  对于实时性要求,需要在序列图中进行定义和描述;如果想知道不同对象之间的链接,以及链接对象间如何发送消息,可以建立协作图;通过建立状态图,可以了解到某个对象所能到达的所有状态,以及对象收到的事件对该对象状态的影响等。
⑤  最后,使用组件图和展开图来实现系统的集成与验证。

  以上过程可以在Rhapsody软件环境下实现,因为该软件可以产生嵌入式系统常用的C语言,更接近通常的嵌入式开发环境。

3  实例分析与讨论

  这里以一个报警系统为例,说明如何使用UML来设计嵌入式系统。一个报警系统一般由传感器(包括声音传感器、图像传感器和热传感器),报警器(包括声音报警器、电话报警器和光报警器),键盘,LCD显示器,系统处理器,以及用于存储系统配置信息和日志信息的存储器等部件组成。

  当传感器接收到某个信号,通过模/数转换把信息送到系统处理器中后,系统处理器根据设定的配置信息条件,判断是否需要报警。若需要,则会向报警器发出报警命令。键盘和LCD显示器用于人机对话,可以根据实际需要设定报警条件和方式。

文章来源于领测软件测试网 https://www.ltesting.net/

32/3<123>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网