当前位置:文档之家› 实验六 状态图

实验六 状态图

实验六状态图
[实验目的和要求]
1、掌握状态的定义和组成部分。

2、掌握UML中状态的表示方法。

3、掌握转换的定义及转换的5要素。

4、了解触发事件、监护条件、动作的定义。

5、掌握阅读和绘制状态图的方法。

[实验环境]
1、Windows操作系统(XP、Vista等)
2、Rational Rose2003软件(或RSA8.0)
[实验内容和步骤]
1、说出下面状态图所表达的信息。

2、说出下面状态图所表达的信息,并指出蓝色部分代表的含义。

3、根据下面状态图回答问题。


GFloor
UP
entry/ CloseDoor
do/ E
exit/ motor.stop()
WaitingForFloorNum
entry/ openDoor
Return
entry/ closeDoor
do/ motor.moveDown()
exit/ F
Dow n
entry/ closeDoor
do/ D
exit/ motor.stop()
goToFloor(n) arrive()
arrive()
request(floor,direction)[ floor>0 ]
request(floor,direction)[ floor==0 ]
timeout[ getNextFloor()> A ]
B[ C ]
timeout[ getNextFloor()==-1&&currentFloor==0 ] /
closeDoor
arrive()
上图是一个表示电梯系统的状态图,该系统中Controller类和Motor类的详细定义如下图所示:
根据类图,完成上面
状态图中
A,B,C,D,E,F处的内
容。

GFloor
UP
entry/ Close Door do/ motormoveUP()entry/ motorStop
Waiting of floorNum
entry/ open door
Down
entry/ close door do/ motormove down exit/ motor stop()
Return
entry/ close door do/ motormove down exit/ motor stop()
arrive
timeout[ get next floor()==1&&current floor==0/close door ]
requet( floor,drection )
go to floor(n)
arrive
arrive
timeout[ get next floor()>0 ]
requet(floor,drection)(floor==0)
timeout[ get next floor()<n ]
4、 某销售POS 机工作流程如下:当客户到收银台后,收银员逐一
输入用户购买的商品,然后计算总金额,等待用户付款,确定支付成功之后,完成收银,等待下一个用户。

请为其画出对应的状态图。

收银台
计算金额
等待用户付款
完成收银
下一个用

收银员逐一输入用户购买的商品完成
完成
完成
确定支付成功
用户追加商品
支付失败
[分析与讨论]
1、 讨论思考状态图在UML 建模中可以起到什么样的作用。

状态图是用来描述对象,子系统,系统的生命周期,通过状态图可以了解一个对象所能达到的所有状态,以及对象收到的事件对对象状态的影响。

2、 思考什么样的情况下适合引入状态图进行建模。

状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达到这些状态时所发生的操作。

相关主题