实验六 状态机图

合集下载

状态机图(状态活动)汇总课件

状态机图(状态活动)汇总课件
do/启动发货 发货
已发货
收到货物[缺部分商品]
检查完[缺部分商品]
等待
收到货物[商品齐全]
取消
取消 取消
取消订单
状态图(订单处理3)
检查 do/检查商品
订单处理
收到货物[缺部分商品]
检查完[缺部分商品]
等待
检查完[商品齐全]
办理发货 do/启动发货
收到货物[商品齐全]
已发货
发货
取消 取消订单
状态图(航班预订1)
无预定
预定/已预订数+=预订数
部分预定
event 预 定 [ 预 订 数 < 空 位 数 ] event退 订 [ 退 定 数 < 已 预 订 数 ] /
取消航班
关闭
预定关闭
关闭 关闭
退订/已预订数-=退定数
预定完
预定[无空位]
状态图(航班预订3)
使用复合状态
预定中 退订[已预订人数==0]/已预订数=退定数
action)
Action 可执行的原子计算。 不可中断,其执行时间可忽略不计。
两种特殊动作:
进入动作 (entry action) 进入状态时执行的动作;Entry/ setMode(onTrack)
退出动作 (exit action)
退出状态时执行的动作;Exit /setMode(offTrack)
●例如:在烧水器的状态图中, turnOn 就是一种调用事 件,用来将开关置于“0n” 状态。
触发事件的四种类型
改变事件
● 某个指定属性值为真时,事件得到触发。 ●在对象生命周期内, 一直在计算改变事件中的属性值。
当属性值为真时,事件触发,计算停止 ●例如: when(temperature>100)/alerm()

状态机与时序图

状态机与时序图

3.状态机的设计
• •

• • • •
4)状态机选型: Mealy型和Moore型 从输出时序上看,Mealy状态机的输出是当前状态和所有输 入信号的函数,它的输出是在输入变化后立即发生的,不依 赖时钟的同步。Moore型状态机输出则仅为当前状态的函数, 状态机的输入发生变化还必须与状态机的时钟同步。 5)HDL代码描述 三要素: 首先需要在状态存储中存储这些状态--同步进程 其次需要有下一个状态的逻辑关系--状态转化进程 另外还需要有输出信号的逻辑关系--输出描述进程 常用case……when……when……others……语句。

3.状态机的设计

• •

• • •

• • •


process (curren_state, X) --状态转化进程 begin case curren is when a=> if (X=‘0’) then next_state <= a; else next_state <= b; end if; when b => if(X=‘0’) then next_state <= a; else next_state <= d; end if;
5.时序图到状态机



• •
时序图到状态机,一般要求时序图反应了所有输入和 输出随时间的变化情况 然后分析输入和输出的关系,列出真值表,再根据真 值表画出状态图。 如例1中,根据其时序图,发现只有X连续4个周期为1 时,Z才是1,其它为0。则按照第3节所述的方法进行 状态机的设计。 有一类特殊的时序图:读写时序图(接口时序图) 该类时序图反应了模块之间接口信号随时间变化情况, 一般描述了模块之间读写的情况。

UML图详解(八)——状态机(状态图和活动图)

UML图详解(八)——状态机(状态图和活动图)

UML图详解(⼋)——状态机(状态图和活动图)⼀、概念状态图和活动图是状态机的两种表现形式。

利⽤状态机可以精确地描述对象的⾏为。

从对象的初始状态起,开始响应事件并执⾏某些动作,这些事件引起状态的转换;对象在新状态下⼜开始响应事件和执⾏动作,如此连续进⾏直到终结状态。

⼆、状态图状态图(State Diagram)=状态(State)+迁移(Transition)⼀个状态图描述⼀个状态机。

状态图表现从⼀个状态到另⼀个状态的控制流。

<1>状态图的语法1>除了状态中的初始状态(实⼼圆)和终⽌状态(⽜眼形状),其它状态⽤⼀个圆⾓矩形表⽰转换表⽰状态间可能的路径,⽤箭头表⽰事件/动作写在由它们触发引起的转换上<2>状态2>状态⼀般是给定类对象中的⼀组属性值,在其所在的上下⽂中应该唯⼀,但可以匿名。

在对系统建模时,我们可以只关⼼那些明显影响对象⾏为的属性以及由他们表达的对象状态,⽽不⽤理睬那些于对象⾏为⽆关的状态。

表⽰⽅式:状态由⼀个带圆⾓的矩形表⽰。

应⽤标签标⽰状态的内部活动。

语法:标签/活动表达式UML提供的标签:1. entry:当进⼊⼀个状态的时候被⾃动触发,该活动在状态中其它任何活动之前被⾃动触发。

2. do:当状态处于激活时执⾏do活动,do活动在进⼊活动之后执⾏,并且⼀直运⾏到它本⾝完成为⽌。

3. exit:当离开⼀个状态的时候被⾃动触发,该活动在该状态结束之前、所有其它活动都完成后被触发。

状态可以嵌套状态图,此时状态称为组成状态,否则为简单状态。

⼊⼝事件表⽰⼀个⼊⼝的动作序列,它在进⼊状态时执⾏。

⼊⼝事件的动作是原⼦的,并且先于⼈和内部活动或转换。

出⼝事件表⽰⼀个出⼝的动作序列,它在退出状态时执⾏。

出⼝事件也是原⼦的,它跟在所有的内部活动之后,但是先于所有的出⼝转换。

1. 简单状态(Simple State)2. 复合状态(Composite State)复合状态可以有多组状态图,每组⽤虚线分割开来。

状态机图(精品)

状态机图(精品)

状态机图1.概述状态机图(State Machine Diagram)是用来显示状态机的图,包括简单状态、转换和嵌套的复合状态等,一个典型的状态机图如图1所示:图1. 状态机图2.基本表示符号状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。

2.1状态(State)状态是对象生命周期中的一个条件或形态。

状态由对象的属性值、与其他对象的关系以及正在执行的活动来确定。

在UML中,状态用圆角矩形和状态名表示,初始状态用实心圆表示,终止状态用牛眼表示,如图2所示:图2. 状态状态可以有一个或多个分栏,这些分栏是可选的,包括名称分栏、嵌套区域、内部转换分栏等,如图3所示:图3. 带分栏的状态状态也可用圆角矩形上带有状态名称标签的方框表示,如图4所示:图4. 带有名称标签符号的状态2.2转移(Transaction)转移表示状态之间可能的路径,可以表示外部转换(用箭头表示),也可以表示内部转换(嵌套在状态内部)。

如图5所示:图5. 转移2.3事件(Event)事件是对,在特定时间和空间上,所发生的有意义的事情。

在状态机中,事件触发转移,事件或者显示在转换之上,或显示在状态以内。

共有四种类型的事件:信号事件、调用事件、时间事件、改变事件。

信号用于对象间异步传递的信息包,它没有任何操作,只有自身携带的信息。

信号事件是通过信号来触发的事件,在UML中,信号如图6所示:图6. 信号调用事件是请求在类语境的实例上调用特定的操作,在UML中,调用事件如图7所示:图7. 调用事件时间事件用关键字after表示,说明事件被触发的临界时间。

改变事件用关键字when表示,说明将事件改变所满足的条件。

如图8所示:图8. 时间事件和改变事件2.4伪状态(Pseudo State)伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。

它是一个瞬时状态,用于构造转换的细节。

当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。

状态机图PPT

状态机图PPT

新状态
开始
பைடு நூலகம்
结束
转换
状态机的各种元素
初始状态
最终状态
开始
结束
关闭 首页面
entry/ 播放音乐()
<<类型>>
事件( 参数 )[ 监护条件 ] / 动作
入口动作
事件、动作、参数、警戒(监护条件)
状态
嵌套状态
转换
NewState2
NewState 4
NewState 3
NewState 5
NewState 6
状态图的概念和内容
• 状态图是UML中对系统动态方面建模的图之一。 • 状态图是一种特殊种类的图形,它拥有所有其他图一样的
公共特性,即名称和投影在一个模型上的图形。状态图和 其他图的区别在于它的内容。状态图通常包括如下内容: (1)状态(2)转换 • 在UML中,图形上每一个状态图都有一个初始状态(实心 圆),用来表示状态机的开始还有一个终止状态(半实心 圆),用来表示状态机的终止,其他的状态用一个圆角的 矩形表示
• 工作任务:完成系统状态建模 交付的工作产品:系统状态图
6.1状态机(State Machine)
• 状态机用于对具有事件驱动的特性的动态行为建模。 • 状态机是展现状态与状态转换的图。 • 状态机由状态组成,各状态由转移链接在一起。状态时对
象执行某项活动或等待某个事件时的条件。转移时两个状 态之间的关系,它由某个事件触发,然后执行特定的操作 或者评估,并导致特定结束状态。
状态机图
State Machine Diagram
需求阶段工作任务回顾
• 在需求分析阶段中,我们进行了用户访谈、领域分析,需求分析,需 求规格说明,以及需求评审交付了以下工作产品:

CPLD实验报告

CPLD实验报告

实验一 Xilinx软件及状态机设计一实验目的:学习FPGA设计软件, 掌握软件流程, 掌握状态机编程。

二实验内容:设计一个状态机三实验说明:状态机设计是数字电路中使用非常广泛和方便的时序设计工具。

由于硬件是并行的触发, 相对软件是串行执行, 那么让硬件电路按照节拍执行串行操作指令就成为一个问题, 这就是状态机的主要功能。

相应的, 软件指令中的几十条简单顺序执行代码可能需要硬件的几十上百个触发器去实现其功能。

所以, 软件与硬件的设计思路有相当大的区别。

当然, 随着FPGA规模的不断扩大, 这些问题也越来越容易解决了。

我们可以用软件的思路去描述自己的设计, 可能最终实现的电路是几十万门级的器件, 但是你只要花费几美元就能买到。

状态机是数字电路的基础, 因此, VHDL的学习也从这个实验开始。

四实验过程:1.在进行实验之前, 我先自学了VHDL语言。

2.熟悉Xilinx软件环境。

3.通过仿真, 读懂了states这段代码所实现的功能及其出现的问题。

五思考题:1.通过仿真, 这段代码实现相应功能时出了什么问题?请修正代码。

答:这段程序完成的是对红绿灯的控制功能。

通过仿真发现所有的灯都比预期的多亮了2秒, 比如东西方向绿灯亮62秒(应该是60秒), 黄灯是5秒(应该是3秒)。

出现此问题的原因是没有考虑到硬件的延时问题。

所以只要把程序中的59改为57, 39改为37, 3改为1, 再进行仿真, 结果就正确了。

2.状态机输出分成同步输出和异步输出, 状态机异步输出直接用状态机的某个状态进行组合逻辑运算来得到一个输出, 同步输出是在该状态的时钟上跳沿控制输出变化。

请问同步输出和异步输出利弊各在哪里?答: 同步输出的优点是: 时钟脉冲的间距解决了组合逻辑电路中的延时和竞争问题。

只要时钟脉冲的宽度合适, 输出就不会存在竞争与现象。

缺点是: 外部输入信号的变化应满足触发器正常工作所需的建立和保持时间。

因为上述特点使得同步时序输出的工作速度的提高受到限制, 且对时钟脉冲到达个触发器的时间及外部信号的变化有较严格的要求。

UML实验二

UML实验二

UML实验二第一篇:UML实验二实验2 用例图一、实验目的1.学会分析系统中的参与者和用例2.掌握用例图的绘制方法3.掌握需求分析阶段的用例建模二、实验器材1.计算机一台;2.StarUML工具软件。

三、实验内容1.画出ATM系统的用例图2.完成ATM系统用例的事件流描述3.完成网络教学系统的用例建模4.完成学生课程注册系统的用例建模四、ATM系统的用例建摸1.分析ATM自动取款机:客户可以取钱,存钱,查询余额,转帐,修改密码。

通过分析可找出如下几个参与者:(1)ATM(2)客户通过分析得到如下用例:(1)存款(2)取款(3)查询余额(4)转帐(5)修改密码(6)打印收据 2.绘图步骤:下面介绍在StarUML中创建用例图的过程:(1)在“Use Case View”中双击Main图,双击图标,出现图1,为编辑用例图做准备。

图1(2)在用例视图中,从工具栏中选择Actor图标,在右边的绘图区中添加一个新元素,并取名客户表明新增一个参与者,如图2所示。

图2(3)同样的方法添加参与者“ATM”,如图3所示。

图3(4)在工具栏上选择用例的图标,依次添加存款、取款、查询余额、转帐、修改密码、打印收据,如图4所示。

图4(5)添加参与者和用例间的关联关系,如图5所示。

图5 依照个人理解,增加一些功能或修改该用例图。

(增加的功能或修改的用例图放在此处)参照如下的取款用例的事件流描述,给出ATM系统的其它用例的事件流描述。

1)通过读卡机,储户插入ATM卡2)ATM系统从卡上读取银行ID、帐号、并验证帐号。

3)储户键入密码,系统检验密码。

4)储户按确认键,输入取款金额。

5)ATM把帐号和取款金额传递给银行系统,取回帐户余额。

6)ATM输出现金,并显示帐户余额。

7)ATM记录事务到日志文件。

(ATM系统的其它用例的事件流描述放在此处)登录用例的事件流:1)通过读卡机,储户插入ATM卡2)ATM系统从卡上读取银行ID、帐号、并验证帐号。

第6章 状态机图

第6章 状态机图

14
例1:子状态之间“or”关系的例子。
例2:子状态之间“and”关系的例子。
15
History State(历史状态)


History State: A pseudostate whose activation restores the previously active state within a composite state. 使用历史状态,可以记住从组合状态中退出时 所处的子状态,当再次进入组合状态时,可直 接进入到这个子状态,而不是再次从组合状态 的初态开始。
7
状态(State)


定义:A state is a condition or situation during the life of an object during which it satisfies some condition, performs some activity, or waits for some event. 一个状态是指在对象的生命期中的一个条件或 状况,在此期间对象将满足某些条件、执行某 些活动或等待某些事件。
22


说明: 在UML中,事件分为四类: (1) Call event (调用事件) (2) Change event (变化事件) (3) Time event (时间事件) (4) Signal event (信号事件)
23
(1) Call event: The event of receiving a call for an operation that is implemented by actions on state machine transitions. Call event的语法格式如下: 事件名 ( [逗号分隔的参数列表] ) 其中参数列表中的参数格式为: 参数名:类型 例:

EDA实验报告:基于VHDL语言的交通灯控制系统设计与实现

EDA实验报告:基于VHDL语言的交通灯控制系统设计与实现
(k1=0)
图为k1=0时的输出状态s1,输出恒为011110。即亮灯为R1,y2。保持时间1S。
(k2=0)
上图为k2=0时的输出状态s2,输出恒为101011。即亮灯为G1,R2。保持时间2S。
(k3=0)
上图为k3=0时的输出状态s3,输出恒为110011。即亮灯为R1,G2。保持时间1S。
四、小结及心得体会
else
if counter<5 then
next_state<=s3;
else
next_state<=s0;
end if;
end if;
end if;
end if;
end if;
end case;
end process;
ouput:process(current_state)
begin ——显示程序
begin
u1: jiaotongdeng port map(
clk=>clki,
k0=>k0,
k1=>k1,
k2=>k2,
k3=>k3,
r1=>r1,r2=>r2,g1=>g1,g2=>g2,y1=>y1,y2=>y2
);
u2: div port map(clk=>clk1,clk_out=>clki);
end if;
end if;
end if;
when s3=>
if k0='0' then
next_state<=s0;
else
if k1='0' then
next_state<=s1;

学生选课系统之状态机图

学生选课系统之状态机图

学⽣选课系统之状态机图
学⽣选课系统之状态机图
1、图形⽂档
2、⽂字说明
(1)状态机图综述
主要是描述了⼀个特定对象的所有可能状态,以及由于各种事件的发⽣⽽引起状态之间的转移。

本系统主要是描述了课程这个对象。

(2)状态机图的状态描述
Created(创建):创建⼀个课程对象并添加到数据库中。

Modified(修改):课程管理员可以修改课程信息,并更新数据库。

Deleted(删除):课程管理员可以删除课程信息。

In Database(在数据库中):主要是保存课程对象及其数据信息。

In Schedule(在某个学期内):在某个学期开设某些课程。

Locked(锁定):如果选修⼈数超过指定的⼈数,就不再允许学⽣选这门课。

(3)状态机图的状态间转移描述
①先创建⼀个课程对象,并向数据库添加课程。

②课程管理员可以修改课程信息和更新数据库。

③课程管理员可以从数据库中删除课程信息。

④查找数据库中的选课⼈数是否已达课程限定⼈数的上限,如果是的话,则锁定该课程,不能再让学⽣选择。

否则,进⼊该学期的课程确定,然后锁定课程信息。

(8)状态机全

(8)状态机全

input clk,rst_n, in;
output out;
reg out;
reg[1:0] current_state,next_state;//状态寄存器
parameter s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11;
//状态编码
clk rst_n
in
out
识别110序列
//当状态为S2时,如果输入为1, 状态变为S2, 否则状态为s3; 输出值与输入有关,如果输入为1, 则输出0,否则输出1。
s3:begin state<=(in==1)?s1:s0;out<=0;end
endcase
endmodule
不建议用此种方法
// pluse_check 3.v:
module pluse_check(clk,rst_n,in,out);
// pluse_check 1.v第一种方法:
module pluse_check (in,clk,rst_n,out);
input in,clk,rst_n;
output out;
reg out;
reg [1:0]state; //存储状态的寄存器
parameter s0=0,s1=1,s2=2,s3=3; //各个状态编码
endcase
0/0
endmodule
1/0
S0
0/0
S1
1/0
0/0 1/0
S3
0/1 S2 1/0
关于状态机的“思考”
1.起始状态: 2.状态图化简: 3.状态编码: 4.剩余状态与容错技术
1.起始状态
在设计状态机时,需要让状态机在复位过 后进入一个确定的起始状态,然后从该起始状态 开始工作。我们应该根据事务处理流程,合理安 排分配成不同的状态,便于进行状态跳转表的设 计及描述。

UML 新编实验指导书(实验六 状态图)

UML 新编实验指导书(实验六 状态图)

天津理工大学(华信软件学院)实验指导书课程名称:面向对象设计UML建模实验六:创建状态图适应课程:(1969216)上机实验六:创建状态图一. 实验目的:根据需求陈述创建应用对象的状态图。

二. 实验内容:1.根据以下叙述,绘制“复印机”的状态图:“未接到工作命令时,复印机处于闲置状态。

接到复印命令后,转入复印状态, 完成复印后又回到闲置状态,等待命令。

若复印时发现没纸, 则进入缺纸状态. 发出警告等待装纸。

装纸完成后又进入闲置状态。

若复印时发现卡纸, 则进入卡纸(故障)状态。

发出警告等待排除故障。

故障排除后又进入闲置状态。

”2. 绘制“学生选课系统”中课程(Course)对象的状态图.经过需求分析,Course对象有以下状态:〃创建(Created)〃添加到数据库中(in database)〃课程(在数据库中)被删除(Deleted)〃课程被修改(Modified)〃课程被开设(纳入学期计划)(In Schedule)〃不允许选修(选修人数满)(Locked)3.绘制"一本书"在其生存周期的状态图.经过需求分析Book对象有以下状态:〃新书(New Book)〃可借阅(Available)〃已借出(Borrowed)〃已预约(Reserved)〃删除(Deleted)如果在上题中再加上一个”罚款(Fine)”状态,则状态图将如何变化?4.绘制打电话过程“电话线路”的状态图经过需求分析电话线路对象有以下状态:(可适当增减状态)“Idle”,“Dialing”,“Connecting”,“Ringing”,“Connected”,“Disconnected”,“TimeOut”,“Play Message”,“Busy Tone” (可以适当增减状态)相关事件:on hook(挂机)= hangs up,off hook(摘机)=pickup receiver,timeout(超时),called phone answers(接电话),line busy(线路忙),routed(线路接通),valid number(有效号码),invalid number(无效号码),wrong number(错码)5.绘制”智能交通信号灯控制”的状态图。

实验八用状态机实现序列检测器的设计

实验八用状态机实现序列检测器的设计

实验八用状态机实现序列检测器的设计
1、实验目的
本实验旨在通过状态机的设计实现一个序列检测器,该序列检测器可
以检测01序列中可编程的模式,并实现相应的响应动作。

2、实验原理
序列检测器是一种有限状态机,由一系列状态和一系列触发器组成,
可以检测特定的序列,并拥有一定的驱动和响应动作。

根据所检测的序列,检测器通过触发器设置能够自动的转换到特定的状态,触发器的设置可以
根据需要进行调整,从而实现不同的序列和不同的响应动作。

3、实验内容
(1)状态机的设计
状态机的设计分为状态图设计和状态表设计两部分,在状态图设计中,绘制出起始状态、可能的转移状态以及相应的触发器, shown by figure 1 below . 再根据实验的要求,结合状态图和状态表,确定每一个触发器
的对应的转移状态以及响应动作, shown by table 1 below .
(2)用VHDL编程实现状态机
在VHDL中,可以实现上面的状态机,用自定义的类型定义状态、触
发器、响应动作以及转移条件,将状态图转换成可执行的VHDL代码,shown by listing 1 below .
(3)VHDL代码的仿真
在仿真中,可以根据状态图测试序列检测器的功能,确保能够检测出正确的模式,并实现预期的响应动作, shown by figure 2 below.
4、实验结果。

状态机图

状态机图

1 基本概念

1.4 状态机操作
– 创建一个状态模型: • 单击Browse>State Machine Diagram, 在左边的“State Machine”下面选择新 创建的状态模型所要放置的位置: • 双击New: • 在Title文本框中为图命名; • 指定要创建的图类型:活动图(Activity) 或状态图(Statechart); • 单击OK按钮。
2 状态机图中的模型元素

2.3 状态转移 – 状态转移通常采用如下的语法进行标记: 事件名(参量)[监护条件]/动作 – 转移及转移动作
转移种类 入口动作 出口动作 外部转移 含 义
进入某一状态时执行的动作 离开某一状态时执行的动作 引起状态改变的转移或自身转移,同时执行一个 具体的动作,包括引起入口动作和出口动作被 执行的转移 引起一个动作的执行但不改变状态或不引起入口 动作和出口动作的执行
8 判断规范

8.1 General标签


8.2 Transitions标签
8.3 Swimlanes标签
9 同步规范

9.1 General标签 9.2 Transitions标签
1 基本概念
--对象的每一种状态通过对象的一个属性 或几个属性的值来表达。
--分析状态的目的:为了认识对象的行为 规律,为了看清在不同的状态下对象将 呈现哪些行为,这些行为将遵循什么规 律和约束,以及通过什么行为能使对象 从一种状态转移到另一种状态,从而确 切地定义这个对象。
--认识对象状态的抽象原则:划分状态等价类
帐号输入状态 entry/清空输入框
(2)exit:出口动作,用来指定状态被另一个状态取代时发生 的动作。出口动作的语法形式:exit/动作名。 帐号输入状态

UML(六)状态机状态图

UML(六)状态机状态图
exit/ ChangePrivateShoe entry/ ChangeInternalShoe event MeetMaster/ ShakeHand do/ discussionWithMaster event MeetChild/ SayHello
SampelState
9
2. 状态的迁移
迁移
10
InstallLi ght bulbBroken switchOn[ NoPower ] Black swithOn[ withPower ] Bright
destro yLi ne
swi tch Off
powerEnd
自身转移 不同于内部转移
3. 高级状态和迁移
高级状态和迁移
进入动作(entry/….) 每当进入该状态时,就执行它的进入动作 退出动作(exist/….) 每当离开该状态时,就执行它的退出 注意:进入和退出动作 不可以有监护条件 如c++,构造函数 和析构函数
信号 Signal
信号是消息的类元,或类型 消息是一个具名的对象,它由一个对象异步地发送给另一个对象接收 信号是一个异步事件
3
事件、 事件、信号
时间事件 和 变化事件
时间事件 是表示一段时间的推移 用关键字after 后面跟着时间表达式 用关键字at 表示某个绝对时间点上发生的时间事件 变化事件 表示状态的一个变化或某些条件得到满足的事件 用关键字 when后跟一个布尔表达式,当条件满足,则引发变化 事件
Door open
17
- timer and heatingElements are additional objects - Power can be on or off - Time can be set after the power has been turned on

如何绘制状态图

如何绘制状态图

学习绘制状态图•状态和状态机状态、状态表示法及状态机•状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况•一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成•状态机是计算机科学理论的一部分,但UML中的状态机模型主要是基于David Harel所做的扩展,是用来展示状态与状态之间转换的图•如何阅读状态机图阅读最简单的状态图•最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换转换的五要素•源状态:即受转换影响的状态•目标状态:当转换完成后对象的状态•触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件•监护条件:布尔表达式,决定是否激活转换、•动作:转换激活时的操作读图小结•与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。

如果对象收到事件turnOn,那么将判断壶中是否有水;如果[没水],则仍然处于off状态;如果[有水]则转为on状态,并执行“烧水”动作•而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了复杂转换转换类型描述语法外部转换对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作,如果离开或进入状态将引发进入转换、离开转换事件(参数)[监护条件]/动作内部转换对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换事件(参数)[监护条件]/动作进入转换当进入某一状态时,执行相应活动entry/活动退出转换当离开某一状态时,执行相应活动exit/活动阅读带有复杂转换的状态图只有动作描述,进入和退出和操作方法写在了里面各种转换的区别•进入和退出转换:当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六状态机图
一、实验目的
1.熟悉状态图的基本功能和使用方法。

2.初步掌握创建状态图的方法。

3.掌握如何使用建模工具Rational Rose2003绘制状态图方法。

二、实验器材
1.计算机一台。

2.Rational Rose 2003工具软件。

三、实验内容
通过前面内容的学习,完成了对图书管理系统需求的初步分析,得出系统的用例图和相应的活动图。

通过这两类图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,而状态图能从对象的动态行为的角度去描述系统的业务活动。

具体包括:
1.确定状态图的实体。

2.确定实体的状态。

3.确定相关事件。

4.使用Rational Rose工具绘制状态图。

四、实验步骤(具体方案)
(一)在整个的系统中书籍和借阅者对象的状态变换最为复杂,因此对书籍和借阅者对象建立状态图。

1.图书状态图:
图书包含以下的状态:刚被购买后的新书、被添加能够借阅时的图书、图书被预定、图书被借阅、图书被管理员删除。

它们之间的转化规则是:
(1)刚被购买后的新书可以通过系统管理员添加成为能够被借阅的图书。

(2)图书被预定成为被预定状态。

(3)当被预定的图书超过预定期限或者被借阅者取消预定时,转换为能够被借阅的图书状态。

(4)被预定的图书可以被预定的借阅者借阅。

(5)图书被借阅后成为被借阅状态。

(6)图书被借阅后归还成为能够借阅状态。

(7)图书被删除时成为被删除状态。

状态图如下:
图6.1
2.借阅者状态图
借阅者包含以下的状态:借阅者帐户创建、借阅者能够借阅图书、借阅者不能够借阅图书、借阅者被管理员删除。

它们之间的转化规则是:
(1)借阅者通过创建借阅者帐户成为能够借阅图书的借阅者。

(2)当借阅者借阅图书数目超过一定限额,不能够借阅图书。

(3)当借阅者处于不能够借阅图书时,借阅者归还借阅图书,成为能够借阅状态。

(4)借阅者能够借阅一定数目的图书。

(5)借阅者能够被系统管理员删除。

状态图如下:。

相关文档
最新文档