保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

基于Rhapsody和VxWorks的自动取款机系统


自动取款机系统之间的通信行为。当创建这样的图表时,关于系统的更多细节被隐藏了;同时,这些场景帮助我们更好地理解使用者如何使用报警系统以及需要做哪些事情。总而言之,每一用例都有很多的场景需要捕获,每一个场景都是用例的一个有效的实例。


    第三步:设计子系统图。

??下一步是如何把模型分割成子系统。在UML中,一个子系统作为一个封装显示,即主要是一个类的集合。图4的子系统图表明自动取款机系统已经被分解成两个基本的部分:自动柜员机封装(AtmerPkg)和硬件封装(HardharePkg)。同时也表明:自动柜员机封装是完全独立于实际的硬件和硬件封装的,并且实现了Ihardware接口能够用于连接自动柜员机封装。接口类Ihardware描述了对自动柜员机封装的所有必需的操作,实现了应用与硬件环境的隔离。

??一旦在自动柜员机封装和硬件封装之间定义了接口类,每一个子系统就能同步和独立地细化为更多的子系统。每一个子系统都知道它和其它子系统之间的接口。例如,我们可以开始分析自动柜员机子系统图,而不需要知道关于硬件的更多情况。

    第四步:设计对象模型图。

??对自动柜员机封装而言,我们设想有一个AtmerController类,其中包含Keypad类、Card类、LCD类和Cash类,这些类表示如图5所示。

??图5表明:AtmerController类作为一个聚合类,包含了其它类的实例。我们也能看出,我们能选择显示“Keypad”类的不同的操作和属性。在上面的例子中,假如一个实例被AtmerControlle类创建,那么它将创建Keypad类的一个实例theKeypad、LCD类的一个实例theLCD、Cash类的一个实例theCash以及Card类的一个实例theCard。假如AtmerController类的实例被删除,这些包含的实例也同时被删除。

??Ihardware类也有一些纯虚函数,所以为了测试AtmerController类,必须忽略这些操作。图6表示:ATM包含了AtmerController类的一个实例和从Ihardware类继承并忽略了其操作的Hw类的一个实例。

    第五步:生成白匣子场景。

??生成了一个新类AtmerController后,就可以开始为每一个黑匣子场景生成白匣子场景。消息序列表将用于获取以上不同场景的类的实例之间的通信行为。例如,图7消息序列描述了顾客输入支取现金数额并取出现金的场景。

??消息通常对应于对象模型中操作和操作的返回值。消息值对应于类的属性或是类操作的返回值。消息可以是同步的,也可以是异步的。从图中可以看出,这些类都有动态行为:它们正在处理定时事件;调用其它类的操作;接受事件。对UML来说,这些动态行为都可以用一个状态图来表示。

    第六步:创建状态图。

??以顾客输入密码过程为例,创建状态图,如图8所示。通常,当一个问题很复杂时,它往往被分解成一些简单的问题,这也正是对顾客输入密码过程要做的事情。图8所示的状态图描述了顾客输入密码过程中的行为。

图7 顾客输入支取数据并取出现金的白匣子场景

    2.3 属性、操作和事件

??属性来源于需求文档中定义的数据,应该简单,不考虑设计和实现的细节。每个类都可能有定义在其上的事件和操作。事件对应于明确的瞬时发生的影响类的动态行为。操作对应于类的服务和功能。Rhapsody中有3种事件。

① 信号事件:对应于实例间的异步通信。

② 时间事件:这种事件在进入一个状态并且经过一个指定的时间后触发。

③ 触发操作:触发操作是同步的操作,通过能够迅速得到响应的事件得到执行。触发操作没有实现代码,却可以作为类的状态图转移的触发器。当调用触发操作时,同时产生响应的事件。

2.4 生成代码

??一般嵌入式应用中有60%~90%的代码用于内务处理(如状态图的实现、任务间的通信等),这些代码在设计新的系统时一般都可以重用。这种重用一般是通过实时框架来实现的。Rhapsody就提供了这样一个实

《基于Rhapsody和VxWorks的自动取款机系统(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/147280.html

  • 上一篇范文: RTOS的必备特性
  • 下一篇范文: 基于虚拟处理器嵌入式中间件

  • ★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。