UML状态图课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
终止状态在一个状态图中可以有多个,它 用一个套有一个实心圆的空心圆表示。
5 判定
判定在状态图中的位置:工作流在此处按 监护条件的取值而发生分支。
判定用空心小菱形表示。
因为监护条件为布尔表达式,所以通常条 件下的判定只有一个入转换和两个出转换。
根据监护条件的真假可以触发不同的分支 转换。
然而处于不同状态下的对象会通过不同的 动作对同一事件做出不同的反应。
示意图:
状态图
1 状态
状态由一个带圆角的 矩形表示。
状态图标可以分为: ① 名称 ② 内部转换
名称
entry/ exit/
2 转换
转换用带箭头的直线表示,一端连接源状态即转 出的状态,箭头一端连接目标状态即转入的状态。
如图所示:
准备
常见的三个活动是:
entry/ 进入教室 do/ 打开投影 exit/ 宣布上课
1、入口动作(entry ) :进入某一状态时执行的动作。
2、动作(do):系统处于该状态时要发生的动作。
3、出口动作 (exit ):离开某一状态时执行的动作 。
子状态(substate)
某些状态存在于另一个状态之中,因此它们被称为 子状态。子状态以两种形式出现:顺序子状态和并 发子状态。
状态图
讲授内容
状态图基本表示 状态、事件、转移、活
动 状态图练习 状态图知识点小节
什么是状态图
按电灯的开关时,电灯改变了它的状态 按遥控器的调频按钮时,电视机的状态由显
示一个频道的节目变为显示另一个频道的节 目 经过一段时间,洗衣机由洗涤变为漂洗状态 夏天树叶绿了,秋天变黄了 如何表示这些变化呢?
作业
自学历史状态
对象与状态
class Teacher { private boolean isWorking; …………. public void receivephone () {
…. If (isWorking ==true) refuse();
else listen();
}
}
class maintest { static public void main(){
转换可以标注与此转换相关的选项如事件、动作 和监护条件。
3 初始状态
初始状态代表状态图的起始位置,只能作 为转换的源,而不能作为转换的目标。
初始状态在一个状态图中只允许有一个, 它用一个实心的圆表示。
4 终止状态
终止状态是模型元素的最后状态,是一个 状态图的终止点。
终止状态只能作为转换的目标,而不能作 为转换的源。
状态图
状态图对对象的生命周期建立模型来描
述对象随时间变化的动态行为。
预 备 铃 响
准备
上课铃响
课间铃响
教学 下 课 铃 响
状态图要素
对象:教师。 事件:预备铃响,上课铃响,下课铃响。 状态:初态、终态;准备、教学。 转移:转换
对象与状态
状态是对象某一属性的取值。比如教师类 的对象。 class Teacher { private boolean isWorking; …………. }
时间事件:满足一定时间表达式的情况出现,到 了某一时间点或经过某一时间段。(after、when)
信号事件:信号事件表示对象接收到信号这种情 况,信号事件一般会触发状态的转移。
在状态图中增加细节
可以把状态图标分成两个区域。最上面的区域保存状态名(必 要),下面的区域保存在该状态中发生的活动。
Teacher li= new Teacher(); li.setWork( false); li.receivephone(); Teacher lin = new Teacher(); lin.setWork(true); lin.receivephone(); }
对象与状态
当给定状态下的多个对象接收到相同事件 时会执行相同的动作;
分析图书馆管理系统中的状态图
“书”的状态图 “借书证”的状态图
1. 书的状态图
2. 借书证的状态图
小结
系统中的对象改变自身的状态以响应事件和时间的流逝。 UML状态图就能捕获这些状态变化,状态图的焦点就是一个 对象状态的变化。
状态用一个圆角矩形表示,状态转移用带箭头的实线表示, 它指向目标状态。
转移可能作为对触发器事件的响应而发生,并且需要一个 活动;转移可能因为状态中的活动完成而引起:这种方式 发生的转移叫做无触发器转移;转移还可能起因于一个特 定条件而引起。
UML必须包括状态图,因为它能够帮助分析员、设计员和 开发人员理解系统中各个对象的行为。开发人员尤其应该 知道对象是如何体现各自的行为的,因为他们要用软件实 施这些行为。只实施对象的静态特征是不够的:开发人员 必须要让对象能够做一些事情。
并发子状态
同时执行的状态是并发状态。
forward
backward
lows习
每次乘车,大家都要去买票,现在大家分 析预定车票和买票过程中,车票这个对象 的状态图。
售票状态图
assigned to
time out
available
lock
locked
buy
sold
状态1
[ 满足监护条件 ]
状态2
[ 不满足监护条件 ]
状态3
事件
引起对象状态变化的就是事件。
事件存在很多形式,比如:接收到从一个对象
到另一个对象的调用;某些值的改变或一个时间段 的终结。
事件分类
调用事件。表示对操作的调度。可以理解为一个 对象对另一个对象发出的消息。
变化事件:布尔表达式中的变量发生变化后,该 表达式也变了,从而满足某些条件。(when)
unlock exchange
售票状态图说明
初始状态是Available状态。在票开始对外出 售前,一部分票是给预约者预留的。
当顾客预定票,被预定的票首先处于锁定状态, 此时顾客仍有是否确实要买这张票的选择权,故这 张票可能出售给顾客,也可能因为顾客不要这张票 而解除锁定状态。
如果超过了指定的期限顾客仍未做出选择,此 票被自动解除锁定状态。预约者也可以换其他车次 的票,如果这样的话,最初预约票也可以对外出售。
如果一个组成状态的子状态对应的对象在 其生命期内的任何时刻都只能处于一个子 状态,即多个子状态之间是互斥的,不能 同时存在,这种子状态称为顺序子状态。
顺序子状态(sequential substate)
正如其名字一样,顺序子状态按照顺序一个接 着一个出现
forward
running backward
相关文档
最新文档