文档库 最新最全的文档下载
当前位置:文档库 › UML状态机图介绍

UML状态机图介绍

UML状态机图介绍
UML状态机图介绍

UML状态机图

1.状态机图的作用

状态机图是用来为对象的状态及造成状态改变的事件建模。UML的状态机图主要用于建立对象类或对象的动态行为模型,表现一个对象所经历的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。状态机图也可用于描述Use Case,以及全系统的动态行为。

状态机图表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,响应事件,执行某些动作,引起转移到新状态,又在新状态下响应事件,执行动作,引起转移到另一个状态,如此继续,直到终结状态。

2.状态机图的基本元素

状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。

状态图由状态(state,圆角矩形)与转换(transition,连接状态的箭头)组成。引起状态改变的触发器(trigger)或者事件(event)沿着转换箭头标示。如图所示灯光有2个状态:off与on。当lift switch或者lower switch事件被触发时,灯光状态会改变。

图表1 状态图的基本元素

状态图通常有初始伪状态(initial pseudostate)和最终状态(final state),分别表示状态机的开始和结束。初始状态用实心圆表示,终止状态用牛眼表示。

图表2状态图中的初始伪状态与最终状态

2.1状态(state)

状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成。

图表3 带分栏的状态

在状态图的下面部分可以标识内部活动,包括事件和动作(event/action)。Entry和exit事件是标准的,任何一个进入状态的转换都将会调用entry动作,任何一个退出状态的转换都将会调用exit动作,而且也可以添加自己的事件。与do行为不同,进入和退出行为是无法被中断的。

图表4状态的内部行为

例如,咖啡机正在煮咖啡的状态(Brewing),并且可以把行为写在状态内。

图表5状态中"d o"的行为细节

内部转换(Internal transition)是对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换,用来处理一些不离开该状态的事件。内部转换的表示方法rigger[guard]/behavior,并且被列在状态内。

2.2转换(transition)

转换以箭头显示,描述状态从源状态到目标状态的改变。转换描述(transition description)描述引起状态改变的情况。完整的转换描述表示法是触发器[监护条件]/转换行为(trigger[guard]/behavior),每个元素都是可以选择的。

图表6状态图为触发器、监护条件和转换行为之一建模

触发器(trigger)是能够引起转换的事件,在图表5处理用户输入的系统里,keystroke触发器可引发系统状态从Gathering input改变到Processing input。

监护条件(guard)是允许或封锁转换的一个Boolean条件。如果条件为真,接受该转换;否则,封锁该转换,停留在原状态。示例中,在按键盘键后,触发器运行,如果该输入少于要求的长度,guard可以用来封锁该转换。

转换行为(transition behavior)是转换发生时所执行的连续活动。例如,状态从Gathering input改变到Processing input时执行submit input的动作。图5也显示状态可以转换成自身,即self-transition。

2.3伪状态(Pseudo State)

伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。它是一个瞬时状态,用于构造转换的细节。当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。伪状态用来连接转换段,到一个伪状态的转换意味着会自动转换到另一个状态而不需要事件来触发。

伪状态包括:初始状态、入口点、出口点、选择和合并、结合和分叉、连接、终止和历史状态。

入口点是状态内的一个外部可见的伪状态,外部转换可以将它作为目标。包含入口点的状态将成为转换的有效目标状态,在UML中,用状态符号边框的空心圆表示。出口点也是状态内的一个外部可见的伪状态,外部转换可以将它作为源,它代表状态内的一个终态,在UML中,用状态符号边框的十字交叉圆表示。

图表7入口点与出口点

选择伪状态用来强调由Boolean条件决定接下来执行哪个转换,根据节点后的警戒条件动态计算选择转换路径,在UML中,用菱形表示,其输出必须包含警戒条件且不能有触发器。合并表示两个或者多个可选的控制路径汇合在一起,在UML中用菱形表示。

图表8选择伪状态

分叉和结合伪状态表示分叉成并行状态,然后再结合在一起。在UML中,用一段粗线表示。

图表9分叉与结合伪状态

连接是状态机中表示整体转换为部分的一种伪状态。在UML中,连接用小的实心圆表示。

图表10连接伪状态

历史伪状态,用于表示退出所属的复合状态后,它会记录复合状态之前处于活动的子状态。历史伪状态包括浅度历史伪状态和深度历史伪状态。浅度历史伪状态用带字母H的圆表示,深度历史伪状态用带字母H和*的圆表示。

2.4复合状态

UML中的复合状态(composite state)允许并发(concurrent)的状态,即处在某个状态的对象同时在做一个或多个事情。每个组成状态包含一个或多个状态图的状态,每个图属于一个区域,各区域以虚线分隔,区域内的状态被称为组成状态的子状态。

图表11复合状态包含一个或多个状态图

3.状态机图的例子

图表7表示CD播放器的状态图,包括了不同的状态及转换。通过分析这个例子,观察触发器与监护条件如何用来为不同类型的状态改变建模。

如果指定了触发器,但是没有监护条件。当触发器被触动时,接受转换。当press stop发生时,CD播放器从Playing状态变为Stopped状态。

如果指定了触发器和监护条件,当触发器被触动,并且监护条件为真时,接受转换。在press play发生,并且播放器中有光盘时,CD播放器才会从Stopped 状态转换到Playing状态。

也可以使用监护条件显示转换之间的选择,监护条件为真时,接受转换。如CD播放器读完一张光盘后,如果没有其他光盘,则转换为Stopped状态;如果有其他光盘,则转换为Playing状态;其中有其他光盘,包含了转换行为change disk。

图表12CD播放器状态图

UML统一建模语言-实验报告2-活动图及状态图

《UML技术》课程实验报告 专业: 班级: 学号: 姓名: 日期: 2013 年 10 月 11 日

一、实验题目 活动图及状态图 二、实验目的 1.熟悉活动图的基本功能和使用方法。 2.掌握如何使用建模工具绘制活动图方法。 三、实验内容及原理 通过前面内容的学习,完成了对TJKD图书馆的图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动态。通过这两类图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。因此,指派你运用本节所学的状态图,完成如下任务: 1. 完成图书业务模块中还书用例的状态图。 1.业务分析:由前面章节对图书馆管理系统中的还书主要业务的描述和分析可知,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。 2.绘制状态图:请您根据分析运用UML绘制还书用例的状态图。 分析: 还书的状态图,还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息; 四、实验步骤 第一个 (1)在用例图中,找到删除的用例,在删除用例上单击右键,在弹出的快捷菜单中选“New”,Rose 工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。 (2)新建好活动图后,双击删除的活动图,然后把在左边的工具栏内点击“Swinlane“,在右边的图添加一个泳道,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool (3)接着在左边的工具上选取开始点,并在administrator的泳道上添加;添加完开始结点后,再来为此活动图添加活动,在左边的工具栏上选中Activity这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系 (4)完成步骤(2)后,登录输入需要对输入的信息进行验证,则在图中添加一个验证框结束(5)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete (6)最后,在删除后,系统会返回操作结果给操作者;删除成功或删除失败系统都会有信息返回给操作者。 (7)根据分析设计情况,进一步添加或细化活动图 第二个 (1)在用例图中的还书(revesion)用例,单击右键,新建一个状态图,命名为revesion状态图,(2)双击“receivesion”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点;当还书的时候,操作者先要询问系统的状态,如果系统忙,操作者则必需等待,因此,得到系统的两种状态

UML类图活动UseCase图状态机图

一、类图主要构成元素 1.类(Classes) 类包含3个组成部分。第一个是Java中定义的类名。第二个是属性(attributes)。第三个是该类提供的方法。 属性和操作之前可附加一个可见性修饰符。加号(+)表示具有公共可见性。减号(-)表示私有可见性。#号表示受保护的可见性。省略这些修饰符表示具有package(包)级别的可见性。如果属性或操作具有下划线,表明它是静态的。在操作中,可同时列出它接受的参数,以及返回类型,如下图所示: 2.包(Package) UML类图中包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,你通常拥有逻辑性的包,它主要用于对你的模型进行组织。你还会拥有物理性的包,它直接转换成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。 3.接口(Interface) 接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口既可用下面的那个图标来表示(上面一个圆圈符号,圆圈符号下面是接口名,中间是直线,直线下面是方法名),也可由附加了<>的一个标准类来表示。通常,根据接口在类图上的样子,就能知道与其他类的关系。 二、活动图主要构成元素 1、活动状态图(Activity) 活动状态用于表达状态机中的非原子的运行,其特点如下: (1)、活动状态可以分解成其他子活动或者动作状态。 (2)、活动状态的内部活动可以用另一个活动图来表示。 (3)、和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。 (4)、动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。UML中活动状态和动作状态的图标相同,但是活动状态可以在图标中给出入口动作和出口动作等信息。 2、动作状态(Actions) 动作状态是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。动作状态有如下特点: (1)、动作状态是原子的,它是构造活动图的最小单位。 (2)、动作状态是不可中断的。 (3)、动作状态是瞬时的行为。

UML实例图讲解

UML实践----用例图、顺序图、状态图、类图、包图、协作图 2009-01-20 作者:Randy Miller 来源:网络 面向对象的问题的处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出。许多建模工具封装了UML(也就是Unified Modeling Language?),这篇课程的目的是展示出UML的精彩之处。 UML中有九种建模的图标,即: ?用例图 ?类图 ?对象图 ?顺序图 ?协作图 ?状态图 ?活动图 ?组件图 ?配置图 本课程中的某些部分包含了这些图的细节信息的页面链接。而且每个部分都有一个小问题,测试一下你对这个部分的理解。 为什么UML很重要? 为了回答这个问题,我们看看建筑行业。设计师设计出房子。施工人员使用这个设计来建造房子。建筑越复杂,设计师和施工人员之间的交流就越重要。蓝图就成为了这个行业中的设计师和施工人员的必修课。 写软件就好像建造建筑物一样。系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。现在它已经成为了软件行业的一部分了。UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。 UML被应用到面向对象的问题的解决上。想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。一个模型model就是根本问题的抽象。域domain就是问题所处的真实世界。 模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。记住把一个对象想象成“活着的”。对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。对象的属性的值决定了它的状态state。 类Classes是对象的“蓝图”。一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。对象是类的实例instances。 用例图 用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象。强调这个系统是什么而不是这个系统怎么工作。 用例图与情节紧紧相关的。情节scenario是指当某个人与系统进行互动时发生的情况。下面是一个医院门诊部的情节。 “一个病人打电话给门诊部预约一年一次的身体检查。接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录。”

解析UML活动图和状态图的作用和区别

本文和大家重点讨论一下UML活动图和状态图的概念,这两种图都有各自的特点和作用,那么他们之间有什么区别和联系呢,请看本文详细介绍。 UML活动图和状态图 一、UML活动图: ◆流程图常被用来建立算法模型 ◆UML活动图与流程图类似,不同在于它支持并行活动. ◆缺点:不能清楚的表示 二、作用: 1、描述一个操作的执行过程中所完成的工作或者动作 2、描述对象内部的工作 3、描述用例的执行 4、处理多线程 5、显示如何执行一组相关的动作,以及这些动作如何影响周围对象 三、以下情况不用UML活动图 1、显示对象之间的合作 2、显示对象在其生命周期内的运转情况。 这两点是通过序列图和协作图完成的。 四、UML活动图的基本要素: ◆活动状态 ◆活动状态之间的转移(箭头) ◆判断(决策点) ◆保证条件 ◆同步条:活动之间的同步 ◆起点和终点 --起点有且只有一个,终点可以有n个。 五、泳道: 用于对UML活动图中的活动进行分组,用于描述对象之间的合作关系。 ----所谓泳道技术,就是将活动用线分成一些纵向区域,这些纵向区域称为泳道。 UML状态图 一、状态图: ◆描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转换。例如呼叫中心系统。

◆状态图符 --状态:矩形(四角圆弧) --转移 --起点 --终点 1、状态机: ◆一种行为:描述了一个对象或一个交互在生命周期内响应事件所经历的状态序列。 ◆单个类或者一组类之间协作的行为可以用状态机来描述 ◆一个状态机涉及到一些其他元素,包括状态、转换、事件 2、状态: 在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件活状况。1)名称 2)进入协作和退出动作 3)内部转换 4)子状态 5)延迟事件 3、转换:两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作并在某个特定事件发生而某个特定条件满足时进入第二个状态。 1)源状态 2)事件触发 3)监护条件 4)动作 5)目标状态 例子:电话机状态图 二、UML活动图与状态图的区别: 状态:行为的结果 活动:行为的动作 在uml中图符不一样。 注意:实际项目中,UML活动图不是必须的。 用到UML活动图的情况: --描述并行的过程或这行为 --描述一个算法 --描述一个跨越多个用例的活动 状态图描述了一个具体对象的可能状态以及他们之间的转换。 单独的说UML活动图很抽象,但是当把UML活动图与流程图进行简单的比较之后就

软件工程---UML状态图和活动图的绘制

内容: UML状态图和活动图的绘制 作业提交时间:20 年月日 姓名:学号:班级:计算机短号: 1 在操作系统中,进程包括就绪、运行、阻塞、挂起等状态,以及初态就绪和程序运行结束后的终态。就绪状态获得CPU时间片转为运行态;运行态时间片用完转为就绪态;运行态不满足所需资源转为阻塞态,阻塞态若资源满足则回到就绪态。考虑到内存空间,还有挂起和唤醒行为。请结合操作系统上上述相关知识,给出一般进程的可能的状态图,并要求给出每个状态具体的进入工作、退出动作以及驻留改状态时可能执行的动作。 答:首先确定好进程的基本状态以及个状态之间的转换关系。 进程的基本状态:就绪,运行,阻塞,挂起,终止。 进程各个状态之间的转换关系如下图所示: 2 在图书管理系统中,"新增读者信息"用例属于读者信息管理中的一个功能,主要用于在系统中增加新的读者信息,其具体的办理流程是:(1)"读者"填写申请表,并交给"图书管理员"; (2)"图书管理员"将申请表中的信息通过录入界面,输入到图书管理系统;(3)系统中的"业务逻辑"组件将判断输入的信息是否合法; (4)如果不合法则转入步骤(5),否则转入步骤(6); (5)显示"添加错误信息",转到(8); (6)在“数据库”添加相信的用户信息; (7)显示"添加成功信息";

(8)结束。 请绘制该过程的活动图。 答: 按照题目要求画出读者增添信息活动图如下所示: 作业心得: 通过本次作业更深的了解了状态图和活动图的基本概念。结合实际问题画出对应的状态图和活动图给人一种特别形象的流程感觉。通过开始到结束之间的状态之间的转换关系清楚的体现出一个工作的循序以及各种判断。两种图主要用于描述用例内部的工作流程。显示如何执行一组相关的动作,以及这些动作如何影响周围对象的基本路线。在此过程当中更进一步的掌握了如何使用建模工具的方法和思路。特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转换充分展示一各活动的全部层面。 教师评语:

UML状态图和活动图的设计(第五个实验)

湖南文理学院实验报告 课程名称:UML建模技术实验 实验名称:UML状态图和活动图的设计成绩: 学生姓名:傅湘黔专业:计算机科学与技术班级、学号: 201017010220 同组者姓名:实验日期: 一、实验目的: ①掌握状态的设计、名字域、转移域、动作域的设计、状态转移的设计; ②掌握状态图和活动图的设计。 二、实验原理: 时序图(Sequence Diagram),亦称为序列图或顺序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。时序图描述对象是如何交互的,并且将重点放在消息序列上。也就是说,描述消息是如何在对象间发送和接收的。 所谓协作是指在一定的语境中一组对象以及用以实现某些行为的这些对象间的相互作用。它描述了在这样一组对象为实现某种目的而组成相互合作的“对象社会”。协作图就是表现对象协作关系的图,它表示了协作中作为各种类元角色的对象所处的位置,在图中主要显示了类元角色(Classifier Roles)和关联角色(Association Roles)。类元角色描述了一个对象,关系角色描述了协作关系中的链。 与序列图中明确表示了角色之间的关系,通过协作角色来限定协作中的对象和链接。另一方面,协作图不将时间作为单独的维来表示,所以必须使用顺序号判断消息的顺序以及并行线程。序列图和协作图表达的是类似的信息,虽然它们使用的不同的方法表示,但是可以通过适当的方式将它们进行转换。 三、实验内容: ①通过对BBS论坛系统的需求分析,绘制状态图; ②通过对BBS论坛系统的需求分析,绘制活动图。 具体内容如下: (一)BBS论坛系统的需求分析 1、系统功能需求 (1)从前台用户和游客角度,系统应包括:用户注册,用户登录,浏览文章,发表文章,帖子查询。 (2)从论坛管理员角度:会员管理,帖子管理,论坛分类管理,帖子分类。

火车购票系统UML类图 时序图 状态图 协作图 活动图 对象汇总

《UML 面向对象分析》课程 实践项目报告 项目名称:网上订购火车票系统 项目组成员:学号:班级:指导教师: 2008年 11 月 10 日 目录 1 需求分析 .................................................................................... 1 1.1 需求概述 ............................................................................ 1 1. 2 需求分 析 ............................................................................ 2 1.3 需求模型(用例 图) ........................................................ 6 2 静态模 型 .................................................................................... 7 2.1 类 图 .................................................................................... 7 2.2 对象 图 ................................................................................ 9 2.3 包 图 .................................................................................. 11 3 动态模 型 .................................................................................. 12 3.1 时序 图 .............................................................................. 12 3.2 状态 图 .............................................................................. 15 3.3 协作 图 .............................................................................. 16 3.4 活动 图 .............................................................................. 17 4 项目组成员分工说 明 .............................................................. 18 5 总 结 .......................................................................................... 19 6 参考资 料 (20) 1 需求分析 1.1 需求概述

相关文档