活动图与状态图课件.ppt
《活动图与状态图课件.ppt》由会员分享,可在线阅读,更多相关《活动图与状态图课件.ppt(80页珍藏版)》请在三一办公上搜索。
1、第10章 状态图与活动图,10.1 动态建模概述 10.2 状态图10.3 活动图10.4 活动图与状态图的比较,UML系统建模基础教程,第10章 状态图与活动图10.1 动态建模概述 UML系统,10.1 动态建模概述,1.状态图与活动图在系统建模中的位置在UML软件开发过程中,是通过建立业务用例模型对系统进行需求分析的,对于某些重要的用例采用活动图来配合描述用例具体实现的流程,在系统分析阶段也经常用活动图来进一步深入描述用例图的具体功能实现流程。在系统分析与系统设计阶段都涉及到对象类的动态建模。对象的动态模型是描述系统的动态行为的,分为状态模型和交互模型。在UML中,用状态图和活动图为状态
2、模型建模,用顺序图和合作图为交互模型建模。,用例建模,对象类建模,对象交互模型:顺序图/协作图,对象状态模型:状态图/活动图,活动图,10章 状态图与活动图,10.1 动态建模概述1.状态图与活动图在系统建模中的位置,10.1 动态建模概述,1.状态图与活动图在系统建模中的位置在系统分析系统阶段用状态图和活动图为对象动态模型中的状态模型建模。在系统设计阶段阶段对已经建立的对象动态模型(状态图、活动图、顺序图和协作图)采用迭代式的方式进一步细化和完善。,用例建模,对象类建模,对象交互模型:顺序图/协作图,对象状态模型:状态图/活动图,活动图,10章 状态图与活动图,10.1 动态建模概述1.状态
3、图与活动图在系统建模中的位置,10.1 动态建模概述,2.系统设计做什么?在UML 的面向对象开发过程,系统设计是在系统分析的基础上,对系统分析阶段建立的对象静态模型、对象的动态模型的进一步细化,是对这些模型的更加详细的设计、补充和完善。系统设计时,从类中导出对象,关注对象的关系、行为和对象间的通信是如何实现的。对每个类的属性和操作出更详细的设计,并设计相关联类间的消息规约。加入接口类对象,建立更完整的对象的静态、动态模型。系统设计包括系统对象设计、系统体系结构设计和系统设计的优化和审查。(需求分析的用例模型 反映系统能做什么?系统分析的对象类建模是关心系统对谁做的问题,而系统设计的动态建模是
4、解决系统如何做的。),10章 状态图与活动图,10.1 动态建模概述2.系统设计做什么?10章 状态图,10.1 动态建模概述,3.顺序图做什么?顺序图(Sequence Diagram)描述了对象之间传送消息的时间顺序,它用来表示用例中的行为顺序,当执行一个用例行为时,顺序图中的每条消息对应了一个类操作中引起转换的触发事件。1)确认和丰富一个使用语境的逻辑表达。一个系统的使用情境就是系统潜在的使用方式的描述,也就是它的名称所要描述的。一个使用情境的逻辑可能是一个用例的一部分,或是一条控制流。2)细化用例的表达。我们前面已经提到,序列图的主要用途之一,就是把用例表达的需求,转化为进一步、更加正
5、式层次的精细表达。用例常常被细化为一个或者更多的序列图。3)有效地描述如何分配各个类的职责以及各类具有相应职责的原因。我们可以根据对象之间的交互关系来定义类的职责,各个类之间的交互关系构成一个特定的用例。,10章 状态图与活动图,10.1 动态建模概述3.顺序图做什么?10章 状态图与活,10.1 动态建模概述,4.协作图做什么?协作图(Collaboration Diagram)是顺序图之外的另一种表示交互的方法。主要描述协作对象间的交互和链接,强调的是对象结构相关的信息。顺序图和协作图都描述交互,但是顺序图强调的是时间,而协作图强调的是空间。1) 通过描绘对象之间消息的传递情况来反映具体的
6、使用语境的逻辑表达。一个使用情境的逻辑可能是一个用例的一部分,或是一条控制流。这和序列图的作用类似。2 )显示对象及其交互关系的空间组织结构。协作图显示了在交互过程中各个对象之间的组织交互关系以及对象彼此之间的链接。与序列图不同,协作图显示的是对象之间的关系,并不侧重交互的顺序,它没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序。3) 表现一个类操作的实现。协作图可以说明类操作中使用到的参数、局部变量以及返回值等。当使用协作图表现一个系统行为时,消息编号对应了程序中嵌套调用结构和信号传递过程。,10章 状态图与活动图,10.1 动态建模概述4.协作图做什么?10章 状态图
7、与活,10.1 动态建模概述,5.状态图做什么?状态图(State Diagram)主要用来描述对象、子系统、系统的生命周期。通过状态图可以表现系统中一个对象所具有的各种状态和这个对象从一种状态到另一种状态的转换(迁移),以及影响对象这些状态的事件(如收到消息、时间已到、报错、条件为真)等。它主要描述某个对象从一个状态到另一个状态变化迁移的控制流。,10章 状态图与活动图,10.1 动态建模概述5.状态图做什么?10章 状态图与活动,10.1 动态建模概述,6.活动图做什么?活动图(Activity Diagram)主要用于描述系统中对象的一个活动到另一个活动的控制流、一个事务的活动序列、工作
8、的流程和并发的处理能力。需求分析中的活动图主要用来配合描述某个重要的用例,用图型的方式对用例的具体实现的过程进行描述,这样比文字的描述更直观、更准确地说明用例的功能,在系统分析与设计过程中,经常用活动图进一步深入描述用例图的具体实现流程。系统设计中的活动图对系统的业务工作流、操作建模,它描述业务流中从一个活动到另一个活动的控制流。它描述活动的序列,用来分析和验证用例,理解工作流程,描述复杂过程的算法,并具支持带条件的行为和并发行的多程建模。,10章 状态图与活动图,10.1 动态建模概述6.活动图做什么?10章 状态图与活,10.2 状态图,10.2 .1 状态图概述10.2.2 状态图的组成
9、10.2.3 状态图创建案例,10章 状态图与活动图,10.2 状态图10.2 .1 状态图概述10章 状态图与活,10.2 .1 状态图概述,状态图(Statechart Diagram)是软件系统进行面向对象分析的一种常用工具,它通过建立对象、子系统、系统的生命周期模型(状态)来描述对象、子系统随时间变化的动态行为。 状态图详细说明了一个对象生命周期内的可能的状态序列,状态允许发生的迁移,会引起迁移发生的事件,以及为了响应事件而执行的行为。,10章 状态图与活动图,10.2 .1 状态图概述状态图(Statechart,10.2 .1 状态概述,并不是对所有的对象都创建状态图,只有当行为的
10、改变和状态有关时才创建状态图。如图书管理系统中的图书(相关:新书、在架、预订、借出、注销)和读者帐号(有效、挂失、失效)可以创建其状态图,而图书管理员帐号则没有必要建立状态图。 与类图、对象图和用例图不同,状态图只能对单个对象建立模型,而类图、对象图和用例图可以对一个系统或一组类建立模型。,10章 状态图与活动图,10.2 .1 状态概述并不是对所有的对象都创建状态图,,10.2 .1 状态概述,状态图清晰地描述了状态之间的转换顺序,通过状态的转换顺序可以清晰看出事件的执行顺序。清晰的事件顺序有利于程序员在开发程序时避免出现事件错序的情况。状态图清晰地描述了状态转换时所必须触发的事件、监护条件
11、和动作等影响转换的因素。状态图通过判定可以更好地描述工作流因为不同的条件发生的分支。,10章 状态图与活动图,10.2 .1 状态概述状态图清晰地描述了状态之间的转换,10.2.2 状态图的组成,状态图由状态、转换、事件、活动和动作5部分组成: 1 状态指的是对象在其生命周期中的一种状况,处于某个特定状态中的对象必然会满足某些条件、执行某些动作或者是等待某些事件。一个状态的生命周期是一个有限的时间阶段。 2 转换指的是两个不同状态之间的一种关系,表明对象将在第一个状态中执行一定的动作,并且在满足某个特定条件下由某个事件触发进入第二个状态。 3 事件指的是发生在时间和空间上的对状态机来讲有意义的
12、那些事情。事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态,如信号、对象额度创建和销毁等。 4 活动指的是状态机中进行的非原子操作。 5 动作指的是状态机中可以执行的那些原子操作,所谓原子操作指的是它们在运行的过程中不能被其他消息所中断,必须一直执行下去,最终导致状态的变更或者返回一个值。,10章 状态图与活动图,10.2.2 状态图的组成状态图由状态、转换、事件、活动和,10.2.2 状态图组成,1起点和终点(起始状态与终止状态,特殊状态节点) 起点代表状态图的一个初始状态,此状态代表状态图的起始位置。起点只能作为转换的源,而不是作为转换的目标。起点在一个状态图中只允许有一个
13、。 终点代表状态图的最后状态,此状态代表状态图的终止位置。终点只能作为转换的目标,而不是作为转换的源。终点在一个状态图中可以有一个或多个,表示一个活动图的最后和终结状态。,10章 状态图与活动图,10.2.2 状态图组成1起点和终点(起始状态与终止状态,,10.2.2 状态图组成,2. 状态状态是指在对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。,10章 状态图与活动图,10.2.2 状态图组成2. 状态10章 状态图与活动图,10.2.2 状态图组成,理解状态的特征状态是一个时间段:在员工下班回家的过程中,经历的状态包括: 到下班时间了,收拾东西准备
14、回家(不考虑加班); 开始等待电梯;乘坐电梯下楼;乘坐电梯到达楼下; (发现没带家里钥匙,上楼拿)乘坐电梯上楼; 去公交车站等车; 乘公共汽车去菜场; 买菜; 回到家。,10章 状态图与活动图,10.2.2 状态图组成理解状态的特征状态是一个时间段,10.2.2 状态图组成,理解状态的特征:(1)进入/退出动作:对象本身的一个操作。如果在电梯里是一个状态的话,那员工进电梯和出电梯就是状态“在电梯里”的进入/退出动作。(2)内部转换:例如员工在去等电梯的时候发现钥匙没带,此时我们不用在“等电梯”以后,而是在“准备回家”的状态中就去拿钥匙了。虽然整体的状态没有发生变化,但对于对象本身来说,前后是不
15、一样的,一个是有钥匙,一个是没有钥匙。(3)子状态:如果需要进一步描述员工对象在电梯里聊天、打电话等状态时,这些状态就是该对象的“在电梯里”状态的子状态。(4)延迟事件:现在不立即产生的事件,该事件是在一段时间以后才产生的事件。员工必须等待到达17:50的时候,才能下班。,10章 状态图与活动图,10.2.2 状态图组成理解状态的特征:10章 状态图与活动,10.2.2 状态图组成,状态图符的三个组成部分:状态名、状态变量、事件。一个状态一般包含三个部分,如图所示。第事件一部分为状态的名称,如空闲、已付、移动、在菜场等。第二部分为可选的状态变量的变量名和变量值。属性(变量)指的是状态图中类的属
16、性。第三部分为可选的活动表,列出有关的事件和活动。,10章 状态图与活动图,10.2.2 状态图组成状态图符的三个组成部分:状态名、状态,10.2.2 状态图组成,3. 事件事件是在某个时刻发生的事情,一个事件是一次激发的产生,激发可以触发一个状态转换。“事件”指的是发生的且引起某些动作执行的事情,即事件表示在某一特定的时间或空间出现的能够引发状态改变的运动变化。 事件是一个时间点,事件种类如下。,10章 状态图与活动图,10.2.2 状态图组成3. 事件10章 状态图与活动图,10.2.2 状态图组成,事件是一个时间点:在员工下班回家的过程中,发生的事件包括: 到下班时间了,收拾东西准备回家
17、(不考虑加班); 开始等待电梯; 电梯到达梯上; 乘坐电梯到达楼下; (发现没带家里钥匙,上楼拿)乘坐电梯上楼; 去公交车站等车;乘坐的公共汽车到了() 乘公共汽车去菜场; 买菜; 回到家。,10章 状态图与活动图,10.2.2 状态图组成事件是一个时间点:10章 状态图与活,10.2.2 状态图组成,事件的种类:事件可以分成明确或隐含的几种,主要包括:状态内部的事件、消息事件和时间事件等。状态内部的事件(又称为动作Activety):主要有入口事件、出口事件和DO事件等。,10章 状态图与活动图,10.2.2 状态图组成事件的种类:10章 状态图与活动图,10.2.2 状态图组成,消息信号事
18、件和调用事件。调用事件:一个对象调用另一个对象的操作,标在迁移线上,调用事件后,引起状态迁移。如,补办借书证(帐号),调用后,帐号由挂失状态迁移到有效状态。信号事件:由发出信号事件和接收信号事件构成。,10章 状态图与活动图,10.2.2 状态图组成消息信号事件和调用事件。发出信号,10.2.2 状态图组成,时间事件:由after事件、when事件和defer事件。其中aftert事件和when事件后跟有动作。,10章 状态图与活动图,10.2.2 状态图组成时间事件:10章 状态图与活动图,10.2.2 状态图组成,4. 迁移(转换)状态的改变转换表示当一个特定事件发生或者某些条件满足时,一
19、个源状态下的对象完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。当发生转换时,转换进入的状态为活动状态,转换离开的状态变为非活动状态。,10章 状态图与活动图,10.2.2 状态图组成4. 迁移(转换)状态的改变1,10.2.2 状态图组成,迁移的特征:,10章 状态图与活动图,10.2.2 状态图组成迁移的特征:10章 状态图与活动图,10.2.2 状态图组成,监护条件:转换可能具有一个监护条件,监护条件是一个布尔表达式,它是触发转换必须满足的条件。,10章 状态图与活动图,10.2.2 状态图组成监护条件:转换可能具有一个监护条件,10.2.2 状态图组成,触发器事件:触发
20、器事件就是能够引起状态转换的事件。如果此事件有参数,则这些参数可以被转换所用,也可以被监护条件和动作的表达式所用。动作:动作(Action)通常是一个简短的计算处理过程或一组可执行语句。动作也可以是一个动作序列,即一系列简单的动作。动作有两种情况:附加到相应的迁移线上或对应的状态框内。,10章 状态图与活动图,10.2.2 状态图组成触发器事件:10章 状态图与活动图,10.2.2 状态图组成,外部转换:外部转换是一种改变状态的转换,也是最普通最常见的一种转换。在UML中,它用从源状态到目标状态的带箭头的线段表示,其他属性以文字串附加在箭头旁。,10章 状态图与活动图,10.2.2 状态图组成
21、外部转换:10章 状态图与活动图,10.2.2 状态图组成,内部转换只有源状态,没有目标状态,不会激发入口和出口动作,因此内部转换激发的结果不改变本来的状态。如果一个内部转换带有动作,它也要被执行。内部转换常用于对不改变状态的插入动作建立模型。要注意的是内部转换的激发可能会掩盖使用相同事件的外部转换。 内部转换的表示法与入口动作和出口动作的表示法很相似。他们的区别主要在于入口和出口动作使用了保留字“entry”和“exit”,其它部分两者的表示法相同。,10章 状态图与活动图,10.2.2 状态图组成内部转换只有源状态,没有目标状态,,判定示例,无判定示例,10.2.2 状态图组成,5.判定判
22、定用来表示一个事件依据不同的监护条件有不同的影响。在实际建模的过程中,如果遇到需要使用判定的情况,通常用监护条件来覆盖每种可能,使得一个事件的发生能保证触发一个转换。,10章 状态图与活动图,判定示例 无判定示例10.2.2 状态图组成5.判定10章,10.2.2 状态图组成,6. 分叉与汇合同步条是为了说明并发工作流的分支与汇合。状态图和活动图中都可能用到同步。在UML中,同步用一条线段来表示。,10章 状态图与活动图,10.2.2 状态图组成6. 分叉与汇合10章 状态图与活,10.2.3 状态图创建案例,在UML中,交互模型描述若于对象共同协作完成一项作,而状态图则是描述一个对象穿越若干
23、用例的行为。建立状态图模型的建模步骤如下:1)确定状态图的主体,它可以是一个系统、一个用例、一个对象;2)确定主体的生存期的各种稳定的状态及顺序;3)确定状态迁移的事件;4)附加上必要的动作,把动作附加到相应的迁移线上或对应的状态框内;5)审核状态图,确认所有状态在事件触发下都可到达、死锁状态(无迁移)。,10章 状态图与活动图,10.2.3 状态图创建案例在UML中,交互模型描述若于,10.2.3 状态图创建案例进销存管理系统中“产品”的状态图,1. 确定状态图的主体要创建状态图,首先要标识出哪些实体需要使用状态图进一步建模。虽然我们可以为每一个类、操作、包或用例创建状态图,但是这样做势必浪
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 活动 状态图 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1345123.html