uml建模 状态图
UML中的活动图和状态图的区别与实际应用案例解析

UML中的活动图和状态图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的图形符号和规范,帮助开发人员更好地理解和设计软件系统。
在UML中,活动图和状态图是两种常用的图形表示方式,用于描述系统中的活动流程和对象状态。
本文将探讨这两种图形的区别,并通过实际应用案例来解析它们的具体应用。
活动图是一种用于描述系统中活动流程的图形表示方式。
它主要由活动(Action)、控制流(Control Flow)和决策节点(Decision Node)等元素组成。
活动图可以清晰地展示系统中的各种活动以及它们之间的关系和顺序。
活动图通常用于描述业务流程、系统交互和软件系统中的算法等。
例如,在一个在线购物系统中,我们可以使用活动图来描述用户选择商品、添加到购物车、填写订单信息、确认支付等流程。
通过活动图,我们可以更好地理解和设计系统中的各个步骤,从而提高系统的可靠性和可维护性。
与活动图相比,状态图主要用于描述系统中对象的状态和状态之间的转换。
状态图由状态(State)、转移(Transition)和事件(Event)等元素组成。
状态图可以清晰地展示对象在不同状态之间的转换和触发条件。
状态图通常用于描述系统中的状态机、对象的生命周期和系统中的并发操作等。
例如,在一个自动售货机系统中,我们可以使用状态图来描述售货机的工作状态,如待机状态、售货状态和故障状态等。
通过状态图,我们可以更好地理解和设计系统中对象的状态变化,从而提高系统的可靠性和性能。
活动图和状态图在应用上有一些区别。
活动图主要用于描述系统中的活动流程,强调活动之间的顺序和关系。
它更适合于描述系统中的业务流程和交互流程等。
而状态图主要用于描述系统中对象的状态和状态之间的转换,强调对象状态的变化和触发条件。
它更适合于描述系统中的状态机和对象的行为。
下面通过一个实际应用案例来进一步解析活动图和状态图的具体应用。
第9讲UML概要设计建模活动图状态图

2.分岔和联结 分岔用来表示并行活动的分支处理,联结用来把并行活动的汇
集到同步处理。 分岔和联结在UML中的表示方法相似,都用粗黑线表示。分岔
具有一个转移人口,两个或者多个转移出口。分岔描述了单向处 理控制流分成了多个控制流。联结与此相反,联结具有两个或者 多个转移人口,只有一个出口。联结描述了不同的处理控制流合 并到一起形成一个单向处理,如下图所示。
4. 综合运用 现在已经学习了活动图的4种主要标记符,下面综合运用这
些标记来生成一个活动图,如下图所示。
5、 决策 决策是基于判断条件选择控制流继续的方向。决策的UML符号
是一个小菱形标记符,然后从这里再按条件控制分支转移到满足条 件的活动,如下图所示。
例 描述教师记录学生成绩用例的活动图
6. 泳道 泳道可以使活动图非常整洁,因为它们在很大程度上增强了
三、活动图的基本元素
活动图保留了许多传统的流程图 的特征,包含如下元素。
•活动 •操作 •状态 •转移 •对象流 •分岔 •决策 •联结
活动图示意
1. 活动 活动在活动图中,用来指示要完成某项工作的动作或表示工作 流的步骤。其UML标记符是一个带有圆角的矩形,如下图所示。
在确定活动名称时应该恰当地命名,选择准确描述所发生 动作的几个词。例如,Save File或者 Create New Document 就是比较恰当的活动名称,而Run或者Update 对读者而言是 不完整的名称。
例内部和用例之间的路径;它也可以向读者说明需要满足什么条件 用例才会有效,以及用例完成后系统保留的条件或者状态。 。 2.理解工作流程
活动图对理解业务处理过程十分有用。可以画出描述业务工作流 的活动图与领域专家进行交流,明确业务处理操作是如何进行的, 将会有怎样的变化。 3.描述复杂过程的算法
跟我学UML建模工具StarUML(第12部分)——应用StarUML创建状态图的创建示例

1.1跟我学UML建模工具StarUML(第12部分)——应用StarUML创建状态图的创建示例1.1.1UML状态图及相关技术1、状态机图和状态机图中的状态(1)状态机图UML状态图(也称UML状态机图)是展示对象状态与状态转换的视图,在UML中,状态机图用于对具有事件驱动的特性的动态行为的建模。
(2)状态机图中的状态状态是状态机图的重要组成部分,所有对象都具有状态,状态是对象执行了一系列活动的结果。
当某个事件发生后,对象的状态将发生变化。
2、状态图(State Diagram)(1)什么是状态图用来描述一个特定对象的所有可能状态及其引起状态转移的事件,从而可以实现对单个的对象行为建模。
(2)状态图的主要作用大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为,同时也显示了该实体如何根据当前所处的状态对不同的时间做出反应的。
3、什么场合中应该要采用状态图当功能行为的改变和状态有关时才需要创建出UML状态图,因为通过状态图可以显示对象在其生命周期中依次经历的各种状态。
但如果要表示由系统内部生成的功能操作(而非外部事件)驱动的事件流时,则一般使用UML活动图。
如下给出一个Account对象的状态图示例:4、为什么要使用UML状态图(1)动态特性是由事情所触发的一个完全静态的系统是无任何应用价值的,因为没有事件发生也就不可能产生出具体的功能。
所有真正的软件应用系统自身都含有某些动态的特性,并且这些动态的特性是由内部或外部发生的事件所触发。
比如,在一个ATM机上,动作是由一个用户按下相关的功能按钮引发而开始一个事件;在一个自动机器人中,动作是由机器人碰上一个对象而引发的;在一个网络路由器中,动作是由检测消息缓冲区是否溢出而引发的。
如下图为一个图书销售业务的状态图示例:(2)为单个的对象和共同工作的对象建模使用UML交互图可以对共同工作的对象群体的行为进行建模,而使用状态图,则可以对单个的对象行为进行建模。
解析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练习-状态图

状态图
1,电梯的状态建模
电梯的第一层有向上按钮,最高层有向下 电梯的第一层有向上按钮, 按钮,中间各层都有向上或向下的按钮. 按钮,中间各层都有向上或向下的按钮. 平时电梯处于第一层, 平时电梯处于第一层,当有人按了向上按 钮时,电梯向上移动到指定的楼层, 钮时,电梯向上移动到指定的楼层,到达 后电梯处于闲置状态, 后电梯处于闲置状态,此时可以接收向上 移动或向下移动请求.若闲置时间超过3 移动或向下移动请求.若闲置时间超过3分 则电梯自动移动到第一层. 钟,则电梯自动移动到第一层.
�
2,ATM自动取款机的状态建 ATM自动取款机的状态建 模
ATM取款机平时处于闲置状态. ATM取款机平时处于闲置状态.用户需要 取款机平时处于闲置状态 取钱时,首先插入银行卡,此时ATM要求 取钱时,首先插入银行卡,此时ATM要求 用户输入密码,若连续输入3 用户输入密码,若连续输入3次错误则自动 退卡.若输入正确则进入选择服务界面. 退卡.若输入正确则进入选择服务界面. 用户可以选择查询,取款等服务. 用户可以选择查询,取款等服务.取款完 用户可以选择继续服务, 毕,用户可以选择继续服务,也可以选择 直接退卡. 直接退卡.
取款时,用户首先输入取款金额,系统进 取款时额不足则回到输入金额界面, 否则ATM吐出现金 吐出现金, 否则ATM吐出现金,然后提示是否打印凭 选择是则打印, 据.选择是则打印,打印完毕提示是直接 退卡还是继续服务. 退卡还是继续服务.
UML各种图例—用例图、类图、状态图、包图、协作图、顺序图

UML各种图例——用例图、类图、状态图、包图、协作图、顺序图面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了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是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.∙决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.每个类图包括类,关联和多样性表示.方向性和角色是为了使图示得更清楚时可选的项目.包和对象图为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型. dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.。
uml建模-状态图和活动图

l 使用状态图的最常见的是对反应型对象、尤其是对类、 用例或整个系统的实例的行为建模。反应型对象是指 这个对象可能处于的稳定状态、从一个状态到另一个 状态之间的转换所需的触发事件,以及每个状态改变 时发生的动作。反应型对象具有如下的特点:
活动图的符号集与状态图中使用的符号集类似。像状态图 一样,活动图也从一个连接到初始活动的实心圆开始。 活动是通过一个圆角矩形(活动的名称包含在其内)来 表示的。活动可以通过转换线段连接到其他活动,或者 连接到判断点,这些判断点连接到由判断点的条件所保 护的不同活动。结束过程的活动连接到一个终止点(就 像在状态图中一样)。活动图中的基本要素包括状态、 转移、分支、分叉和汇合、泳道、对象流等。
l ⑹把动作附加到这些转换上,并且附加到这些状态上; l ⑺考虑通过使用子状态、分支、汇合和历史状态,来简化状态图; l ⑻核实所有的状态都是在事件的某种组合下可达的; l ⑼核实不存在死角状态,即不存在那种不能转换出来的状态; l ⑽通过手工或通过使用工具跟踪状态机,核对所期望的事件序列以及它
们的响应。
::new book 借书
::availห้องสมุดไป่ตู้ble 还书
::delete
一个图书对象从它的起始点 开始,首先是“新书”状态
(new book),然后是“可 以借阅”(available)的状 ::borrowed 态,如果有读者将书借走, 则该书的状态为“已借出”
状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于
uml状态图

例如,当像“获取时间片”这样的事件发生时,程 序可能从“就绪”状态转换到“运行”状态。
•20
转换的组成部分
•17
状态的组成部分
1.名称(name)
– 是可以把该状态和其他状态区分开的字符串;状态也可能是匿名的, 即没有名称。
2.进入/退出动作(entry/exit action)
– 分别指进入和退出这个状态时所执行的动作。
3.内部转换(internal transition)
– 不会导致状态改变的转换。
•6
3.1.1 事件 (Event)
• 事件可以是内部的事件或外部的事件
– 外部事件是在系统和参与者之间传送的事件。 – 内部事件是在系统内部的对象之间传送的事件。
• 事件可以分成多种类型:
– – – – – 信号 调用事件 变化事件 时间事件 ……
•7
信号
• 信号(Signal):是作为两个对象之间通信媒 介的命名的实体,信号的接收是信号接收对象 的一个事件。
第三章 架构建模
3.1 状态图
•1
本章目标
• 掌握状态图的基本概念;
• 了解状态图建模方法;
• 掌握类的基本抽象方法;
• 掌握关系的基本概念;
• 掌握交互图的基本概念; • 了解交互图的建模方法。
•2
章节安排
§ 3.1 状态图
§ 3.2 类 § 3.3 类的关系 § 3.4 交互图
•3
本节目标
•15
时间事件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、何谓状态图
1、状态图的概念
活动图和状态图中都有需要根据给定条件进行判断,然后根据
判 不同的判断结果进行不同的转换的情况。
定
实际就是工作流在此处按监护条件的取值发生分支,在UML中
判定用空心菱形表示。
UML统一建模语言
一、何谓状态图
2、为什么要使用状态图
状态图的作用主要体现在以下几个方面: 1 状态图清晰的描述了状态之间的转换顺序,通过状态的转换 顺序也就可以清晰的看出事件的执行顺序。如果没有状态图我们就 不可避免的要使用大量的文字来描述外部事件的合法顺序。 2 清晰的事件顺序有利于程序员在开发程序时避免出现事件错 序的情况。 3 状态图清晰的描述了状态转换时所必须的触发事件、监护条 件和动作等影响转换的因素,有利于程序员避免程序中非法事件的 进入。 4 状态图通过判定可以更好的描述工作流因为不同的条件发生 的分支。
部 换带有动作,它也要被执行。内部转换常用于对不改变状态的插入 动作建立模型。要注意的是内部转换的激发可能会掩盖使用相同事
转 件的外部转换。 换 内部转换的表示法与入口动作和出口动作的表示法很相似。他
们的区别主要在于入口和出口动作使用了保留字“entry”和
“exit”,其它部分两者的表示法相同。
UML统一建模语言
一个状态图只能有一个初始状态,用一个实心的圆表示。
UML统一建模语言
一、何谓状态图
1、状态图的概念
态终 止 状
终止状态是一个状态图的终点,一个状态图可以拥有一个或者 多个终止状态。
对象可以保持在终止状态,但是终止状态不可能有任何形式的 触发转换,它的目的就是为了激发封装状态上的完成转换。
UML统一建模语言
UML统一建模语言
二、构成状态图的元素
1、状态
状态名:在实际使用中,状态名通常是直观、易懂、能充分表 达语义的名词短语,其中每个单词的首字母要大写。
内部活动:状态可以包含描述为表达式的内部活动。当状态进 入时,活动在进入动作完成后就开始。如果活动结束,状态就完成, 然后一个从这个状态出发的转换被触发。
历史状态:组成状态可能包含历史状态(History stete)。
UML统一建模语言
二、构成状态图的元素
2、转换
转换用于表示一个状态机的两个状态之间的一种关系,即一个 在某初始状态的对象通过执行指定的动作并符合一定的条件下进入 第二种状态。
在这个状态的变化中,转换被称作激发。在激发之前的状态叫 做源状态,在激发之后的状态叫做目标状态。简单转换只有一个源 状态和一个目标状态。复杂转换有不止一个源状态和(或)有不止 一个目标状态。
UML统一建模语言
一、何谓状态图
1、状态图的概念
态状
状态用于对实体在其生命周期中的各种状况进行建模,一个实 体总是在有限的一段时间内保持一个状态。状态由一个带圆角的矩 形表示,状态的描述应该包括:名称、入口和出口动作、内部转换 和嵌套状态。
UML统一建模语言
一、何谓状态图
1、状态图的概念
换转
在UML的状态建模机制中,转换用带箭头的直线表示,一端连接源 状态,箭头指向目标状态。转换还可以标注与此转换相关的选项, 如事件、监护条件和动作等,如果转换上没有标注触发转换的事件, 则表示此转换自动进行。
UML统一建模语言
第13章 状态图
重点内容:
何谓状态图 构成状态图的元素 状态图的组成 使用Rose创建状态图 创建项目中的状态图
UML统一建模语言
一、何谓状态图
1、状态图的概念
状态图由状态、转换、事件、活动和动作5部分组成: 1 状态指的是对象在其生命周期中的一种状况,处于某个特定状态 中的对象必然会满足某些条件、执行某些动作或者是等待某些事件。一 个状态的生命周期是一个有限的时间阶段。 2 转换指的是两个不同状态之间的一种关系,表明对象将在第一个 状态中执行一定的动作,并且在满足某个特定条件下由某个事件触发进 入第二个状态。 3 事件指的是发生在时间和空间上的对状态机来讲有意义的那些事 情。事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种 状态,如信号、对象额度创建和销毁等。 4 活动指的是状态机中进行的非原子操作。 5 动作指的是状态机中可以执行的那些原子操作,所谓原子操作指 的是它们在运行的过程中不能被其他消息所中断,必须一直执行下去, 最终导致状态的变更或者返回一个值。
UML统一建模语言
二、构成状态图的元素
2、转换
外部转换是一种改变状态的转换,也是最普通最常见的一种转
外 换。在UML中,它用从源状态到目标状态的带箭头的线段表示,其 部 他属性以文字串附加在箭头旁。 转 换
UML统一建模语言
二、构成状态图的元素
2、转换
内 内部转换只有源状态,没有目标状态,不会激发入口和出口动 作,因此内部转换激发的结果不改变本来的状态。如果一个内部转
UML统一建模语言
一、何谓状态图
1、状态图的概念
态初 始 状
每个状态图都应该有一个初始状态,它代表状态图的起始位置。 初始状态是一个伪状态(一个和普通状态有连接的假状态),对象 不可能保持在初始状态,必须要有一个输出的无触发转换(没有事 件触发器的转换)。通常初始状态上的转换是无监护条件的,并且 初始状态只能作为转换的源,而不能作为转换的目标。
二、构成状态图的元素
2、转换
完 完成转换没有明确标明触发器事件的转换是由状态中活动的完 成引起的。完成转换也可以带一个监护条件,这个监护条件在状态
成 中的活动完成时被赋值,而不是活动完成后被赋值成状态图的元素
2、转换
监 转换可能具有一个监护条件,监护条件是一个布尔表达式,它 是触发转换必须满足的条件。当一个触发器事件被触发时,监护条
内部转换:状态可能包含一系列的内部转换,内部转换因为只 有源状态而没有目标状态,所以内部转换的结果并不改变状态本身。 如果对象的事件在对象正处在拥有转换的状态时发生,那内部转换 上的动作也被执行。
入口和出口动作:状态可能具有入口和出口动作。这些动作的 目的是封装这个状态,这样就可以不必知道状态的内部状态而在外 部使用它。入口动作和出口动作原则上依附于进入和出去的转换, 但是将它们声明为特殊的动作可以使状态的定义不依赖状态的转换, 因此起到封装的作用。