活动图与状态图课件

上传人:仙*** 文档编号:241583118 上传时间:2024-07-06 格式:PPT 页数:81 大小:1.89MB
返回 下载 相关 举报
活动图与状态图课件_第1页
第1页 / 共81页
活动图与状态图课件_第2页
第2页 / 共81页
活动图与状态图课件_第3页
第3页 / 共81页
点击查看更多>>
资源描述
活活动图与状与状态图 10.1 动态建模概述建模概述1.状状态图与活与活动图在系在系统建模中的位置建模中的位置在在UML软件开件开发过程中,是通程中,是通过建立建立业务用例模型用例模型对系系统进行需求分析的,行需求分析的,对于某些重要于某些重要的用例采用活的用例采用活动图来配合描述用例具体来配合描述用例具体实现的流的流程,在系程,在系统分析分析阶段也段也经常用活常用活动图来来进一步深一步深入描述用例入描述用例图的具体功能的具体功能实现流程。流程。在系在系统分析与系分析与系统设计阶段都涉及到段都涉及到对象象类的的动态建模。建模。对象的象的动态模型是描述系模型是描述系统的的动态行行为的,分的,分为状状态模型和交互模型。模型和交互模型。在在UML中,用状中,用状态图和活和活动图为状状态模型模型建模,用建模,用顺序序图和合作和合作图为交互模型建模。交互模型建模。需求分析需求分析系系统分析分析实现测试部署系系统设计用例建模用例建模对象象类建模建模对象交互模型:象交互模型:顺序序图/协作作图对象状象状态模型:模型:状状态图/活活动图活活动图1010章章 状态图与活动图状态图与活动图 10.1 动态建模概述建模概述1.状状态图与活与活动图在系在系统建模中的位置建模中的位置在系在系统分析系分析系统阶段用状段用状态图和活和活动图为对象象动态模型中的状模型中的状态模型建模。模型建模。在系在系统设计阶段段阶段段对已已经建立的建立的对象象动态模型(状模型(状态图、活、活动图、顺序序图和和协作作图)采)采用迭代式的方式用迭代式的方式进一步一步细化和完善。化和完善。需求分析需求分析系系统分析分析实现测试部署系系统设计用例建模用例建模对象象类建模建模对象交互模型:象交互模型:顺序序图/协作作图对象状象状态模型:模型:状状态图/活活动图活活动图1010章章 状态图与活动图状态图与活动图10.1 动态建模概述建模概述2.系系统设计做什么?做什么?在在UML 的面向的面向对象开象开发过程,系程,系统设计是在系是在系统分析的基分析的基础上,上,对系系统分析分析阶段建立段建立的的对象静象静态模型、模型、对象的象的动态模型的模型的进一步一步细化,是化,是对这些模型的更加些模型的更加详细的的设计、补充和完充和完善。善。系系统设计时,从,从类中中导出出对象,关注象,关注对象的关系、行象的关系、行为和和对象象间的通信是如何的通信是如何实现的。的。对每个每个类的属性和操作出更的属性和操作出更详细的的设计,并,并设计相关相关联类间的消息的消息规约。加入接口。加入接口类对象,建象,建立更完整的立更完整的对象的静象的静态、动态模型。模型。系系统设计包括系包括系统对象象设计、系、系统体系体系结构构设计和系和系统设计的的优化和化和审查。(需求分析的用例模型(需求分析的用例模型 反映系反映系统能做什么?系能做什么?系统分析的分析的对象象类建模是关心系建模是关心系统对谁做做的的问题,而系,而系统设计的的动态建模是解决系建模是解决系统如何做的。)如何做的。)1010章章 状态图与活动图状态图与活动图10.1 动态建模概述建模概述3.顺序序图做什么?做什么?顺序序图(Sequence Diagram)描述了)描述了对象之象之间传送消息的送消息的时间顺序,它序,它用来表示用例中的行用来表示用例中的行为顺序,当序,当执行一个用例行行一个用例行为时,顺序序图中的每条消息中的每条消息对应了了一个一个类操作中引起操作中引起转换的触的触发事件。事件。1)确确认和丰富一个使用和丰富一个使用语境的境的逻辑表达。一个系表达。一个系统的使用情境就是系的使用情境就是系统潜在的使用方潜在的使用方式的描述,也就是它的名称所要描述的。一个使用情境的式的描述,也就是它的名称所要描述的。一个使用情境的逻辑可能是一个用例的一可能是一个用例的一部分,或是一条控制流。部分,或是一条控制流。2)细化用例的表达。我化用例的表达。我们前面已前面已经提到,序列提到,序列图的主要用途之一,就是把用例表达的的主要用途之一,就是把用例表达的需求,需求,转化化为进一步、更加正式一步、更加正式层次的精次的精细表达。用例常常被表达。用例常常被细化化为一个或者更多一个或者更多的序列的序列图。3)有效地描述如何分配各个有效地描述如何分配各个类的的职责以及各以及各类具有相具有相应职责的原因。我的原因。我们可以根据可以根据对象之象之间的交互关系来定的交互关系来定义类的的职责,各个,各个类之之间的交互关系构成一个特定的用例。的交互关系构成一个特定的用例。1010章章 状态图与活动图状态图与活动图10.1 动态建模概述建模概述4.协作作图做什么?做什么?协作作图(Collaboration DiagramCollaboration Diagram)是)是顺序序图之外的另一种表示交互的方法。之外的另一种表示交互的方法。主要描述主要描述协作作对象象间的交互和的交互和链接,接,强调的是的是对象象结构相关的信息。构相关的信息。顺序序图和和协作作图都描述交互,但是都描述交互,但是顺序序图强调的是的是时间,而,而协作作图强调的是空的是空间。1 1)通通过描描绘对象之象之间消息的消息的传递情况来反映具体的使用情况来反映具体的使用语境的境的逻辑表达。一个使用情表达。一个使用情境的境的逻辑可能是一个用例的一部分,或是一条控制流。可能是一个用例的一部分,或是一条控制流。这和序列和序列图的作用的作用类似。似。2 2)显示示对象及其交互关系的空象及其交互关系的空间组织结构。构。协作作图显示了在交互示了在交互过程中各个程中各个对象之象之间的的组织交互关系以及交互关系以及对象彼此之象彼此之间的的链接。与序列接。与序列图不同,不同,协作作图显示的是示的是对象之象之间的关系,并不的关系,并不侧重交互的重交互的顺序,它没有将序,它没有将时间作作为一个一个单独的独的维度,而是使用序度,而是使用序列号来确定消息及并列号来确定消息及并发线程的程的顺序。序。3 3)表表现一个一个类操作的操作的实现。协作作图可以可以说明明类操作中使用到的参数、局部操作中使用到的参数、局部变量以及返量以及返回回值等。当使用等。当使用协作作图表表现一个系一个系统行行为时,消息,消息编号号对应了程序中嵌套了程序中嵌套调用用结构构和信号和信号传递过程。程。1010章章 状态图与活动图状态图与活动图10.1 动态建模概述建模概述5.状状态图做什么?做什么?状状态图(State DiagramState Diagram)主要用来描述主要用来描述对象、子系象、子系统、系、系统的生命周期。通的生命周期。通过状状态图可以表可以表现系系统中一个中一个对象所具有的各种状象所具有的各种状态和和这个个对象从一种状象从一种状态到另一种状到另一种状态的的转换(迁移),以及影响(迁移),以及影响对象象这些状些状态的事件(如收到消息、的事件(如收到消息、时间已到、已到、报错、条件条件为真)等。它主要描述某个真)等。它主要描述某个对象从一个状象从一个状态到另一个状到另一个状态变化迁移的控制流。化迁移的控制流。1010章章 状态图与活动图状态图与活动图10.1 动态建模概述建模概述6.活活动图做什么?做什么?活动图(Activity DiagramActivity Diagram)主要用于描述系)主要用于描述系统中中对象的一个活象的一个活动到另一个活到另一个活动的控制流、一个事的控制流、一个事务的活的活动序列、工作的流程和并序列、工作的流程和并发的的处理能力。理能力。需求分析中的活动图主要用来配合描述某个重要的用例,用主要用来配合描述某个重要的用例,用图型的方式型的方式对用例用例的具体的具体实现的的过程程进行描述,行描述,这样比文字的描述更直比文字的描述更直观、更准确地、更准确地说明用例的功能,明用例的功能,在系在系统分析与分析与设计过程中,程中,经常用活常用活动图进一步深入描述用例一步深入描述用例图的具体的具体实现流程。流程。系系统设计中的活中的活动图对系系统的的业务工作流、操作建模,它描述工作流、操作建模,它描述业务流中从一个流中从一个活活动到另一个活到另一个活动的控制流。它描述活的控制流。它描述活动的序列,用来分析和的序列,用来分析和验证用例,理解工作流用例,理解工作流程,描述复程,描述复杂过程的算法,并具支持程的算法,并具支持带条件的行条件的行为和并和并发行的多程建模。行的多程建模。1010章章 状态图与活动图状态图与活动图10.2 状状态图态图10.2.1 状状态图概述概述10.2.2 状状态图的的组成成10.2.3 状状态图创建案例建案例1010章章 状态图与活动图状态图与活动图10.2.1 状状态图概述概述 状状态图(Statechart Diagram)是)是软件系件系统进行面向行面向对象分析的一种常用工具,象分析的一种常用工具,它通它通过建立建立对象、子系象、子系统、系、系统的生命周期模型(状的生命周期模型(状态)来描述)来描述对象、子系象、子系统随随时间变化化的的动态行行为。状状态图详细说明了一个明了一个对象生命周期内的可能的状象生命周期内的可能的状态序列,状序列,状态允允许发生的迁移,生的迁移,会引起迁移会引起迁移发生的事件,以及生的事件,以及为了响了响应事件而事件而执行的行行的行为。1010章章 状态图与活动图状态图与活动图10.2.1 状状态概述概述并不是并不是对所有的所有的对象都象都创建状建状态图,只,只有当行有当行为的改的改变和状和状态有关有关时才才创建状建状态图。如如图书管理系管理系统中的中的图书(相关:新(相关:新书、在架、在架、预订、借出、注、借出、注销)和)和读者者帐号(有效、号(有效、挂失、失效)可以挂失、失效)可以创建其状建其状态图,而,而图书管理管理员帐号号则没有必要建立状没有必要建立状态图。与与类图、对象象图和用例和用例图不同,状不同,状态图只能只能对单个个对象建立模型,而象建立模型,而类图、对象象图和和用例用例图可以可以对一个系一个系统或一或一组类建立模型。建立模型。1010章章 状态图与活动图状态图与活动图10.2.1 状状态概述概述状状态图清晰地描述了状清晰地描述了状态之之间的的转换顺序,通序,通过状状态的的转换顺序可以清晰看出事件序可以清晰看出事件的的执行行顺序。序。清晰的事件清晰的事件顺序有利于程序序有利于程序员在开在开发程序程序时避免出避免出现事件事件错序的情况。序的情况。状状态图清晰地描述了状清晰地描述了状态转换时所必所必须触触发的事件、的事件、监护条件和条件和动作等影响作等影响转换的的因素。因素。状状态图通通过判定可以更好地描述工作流因判定可以更好地描述工作流因为不同的条件不同的条件发生的分支。生的分支。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图的的组成成状状态图由状由状态、转换、事件、活、事件、活动和和动作作5部分部分组成:成:1 状状态指的是指的是对象在其生命周期中的一种状况,象在其生命周期中的一种状况,处于某个特定状于某个特定状态中的中的对象必然会象必然会满足某些足某些条件、条件、执行某些行某些动作或者是等待某些事件。一个状作或者是等待某些事件。一个状态的生命周期是一个有限的的生命周期是一个有限的时间阶段。段。2 转换指的是两个不同状指的是两个不同状态之之间的一种关系,表明的一种关系,表明对象将在第一个状象将在第一个状态中中执行一定的行一定的动作,作,并且在并且在满足某个特定条件下由某个事件触足某个特定条件下由某个事件触发进入第二个状入第二个状态。3 事件指的是事件指的是发生在生在时间和空和空间上的上的对状状态机来机来讲有意有意义的那些事情。事件通常会引起状的那些事情。事件通常会引起状态的的变迁,促使状迁,促使状态机从一种状机从一种状态切切换到另一种状到另一种状态,如信号、,如信号、对象象额度度创建和建和销毁等。等。4 活活动指的是状指的是状态机中机中进行的非原子操作。行的非原子操作。5 动作指的是状作指的是状态机中可以机中可以执行的那些原子操作,所行的那些原子操作,所谓原子操作指的是它原子操作指的是它们在运行的在运行的过程中程中不能被其他消息所中断,必不能被其他消息所中断,必须一直一直执行下去,最行下去,最终导致状致状态的的变更或者返回一个更或者返回一个值。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组成成1起点和起点和终点(起始状点(起始状态与与终止状止状态,特殊状,特殊状态节点)点)起点代表状起点代表状态图的一个初始状的一个初始状态,此状,此状态代表状代表状态图的起始位置。起点只能作的起始位置。起点只能作为转换的源,的源,而不是作而不是作为转换的目的目标。起点在一个状。起点在一个状态图中只允中只允许有一个有一个。终点代表状点代表状态图的最后状的最后状态,此状,此状态代表状代表状态图的的终止位置。止位置。终点只能作点只能作为转换的目的目标,而不是作而不是作为转换的源。的源。终点在一个状点在一个状态图中可以有一个或多个,表示一个活中可以有一个或多个,表示一个活动图的最的最后和后和终结状状态。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组成成2.状状态状状态是指在是指在对象的生命期中的一个条件或状况,在此期象的生命期中的一个条件或状况,在此期间对象将象将满足某些条件、足某些条件、执行某些活行某些活动或等待某些事件。或等待某些事件。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组成成理解状理解状态的特征的特征状状态是一个是一个时间段:段:在在员工下班回家的工下班回家的过程中,程中,经历的状的状态包括:包括:到下班到下班时间了,收拾了,收拾东西准西准备回家(不考回家(不考虑加班);加班);开始等待开始等待电梯;梯;乘坐乘坐电梯下楼;梯下楼;乘坐乘坐电梯到达楼下;梯到达楼下;(发现没没带家里家里钥匙,上楼拿)乘坐匙,上楼拿)乘坐电梯上楼;梯上楼;去公交去公交车站等站等车;乘公共汽乘公共汽车去菜去菜场;买菜;菜;回到家。回到家。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组成成理解状理解状态的特征:的特征:(1)进入入/退出退出动作:作:对象本身的一个操作。如果在象本身的一个操作。如果在电梯里是一个状梯里是一个状态的的话,那,那员工工进电梯和出梯和出电梯就是状梯就是状态“在在电梯里梯里”的的进入入/退出退出动作。作。(2)内部)内部转换:例如:例如员工在去等工在去等电梯的梯的时候候发现钥匙没匙没带,此,此时我我们不用在不用在“等等电梯梯”以后,而是在以后,而是在“准准备回家回家”的状的状态中就去拿中就去拿钥匙了。匙了。虽然整体的状然整体的状态没有没有发生生变化,化,但但对于于对象本身来象本身来说,前后是不一,前后是不一样的,一个是有的,一个是有钥匙,一个是没有匙,一个是没有钥匙。匙。(3)子状)子状态:如果需要:如果需要进一步描述一步描述员工工对象在象在电梯里聊天、打梯里聊天、打电话等状等状态时,这些状些状态就是就是该对象的象的“在在电梯里梯里”状状态的子状的子状态。(4)延)延迟事件:事件:现在不立即在不立即产生的事件,生的事件,该事件是在一段事件是在一段时间以后才以后才产生的事件。生的事件。员工工必必须等待到达等待到达17:50的的时候,才能下班。候,才能下班。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组成成状状态图符的三个符的三个组成部分:状成部分:状态名、状名、状态变量、事件。量、事件。一个状一个状态一般包含三个部分,如一般包含三个部分,如图所示。第事件一部分所示。第事件一部分为状状态的名称,如空的名称,如空闲、已付、移、已付、移动、在菜、在菜场等。第二部分等。第二部分为可可选的状的状态变量的量的变量名和量名和变量量值。属性(。属性(变量)指的是量)指的是状状态图中中类的属性。第三部分的属性。第三部分为可可选的活的活动表,列出有关的事件和活表,列出有关的事件和活动。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组成成3.事件事件事件是在某个事件是在某个时刻刻发生的事情,一个事件是一次激生的事情,一个事件是一次激发的的产生,激生,激发可以触可以触发一个状一个状态转换。“事件事件”指的是指的是发生的且引起某些生的且引起某些动作作执行的事情,即事件表示在某一特定的行的事情,即事件表示在某一特定的时间或空或空间出出现的能的能够引引发状状态改改变的运的运动变化。化。事件是一个事件是一个时间点,事件种点,事件种类如下。如下。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组成成事件是一个事件是一个时间点:点:在在员工下班回家的工下班回家的过程中,程中,发生的事件包括:生的事件包括:到下班到下班时间了,收拾了,收拾东西准西准备回家(不考回家(不考虑加班);加班);开始等待开始等待电梯;梯;电梯到达梯上;梯到达梯上;乘坐乘坐电梯到达楼下;梯到达楼下;(发现没没带家里家里钥匙,上楼拿)乘坐匙,上楼拿)乘坐电梯上楼;梯上楼;去公交去公交车站等站等车;乘坐的公共汽乘坐的公共汽车到了()到了()乘公共汽乘公共汽车去菜去菜场;买菜;菜;回到家。回到家。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组态图组成成事件的种类:事件可以分成明确或隐含的几种,主要包括:状状态内部的事件、消息内部的事件、消息事件和时间事件等。状状态内部的事件(又称内部的事件(又称为动作作Activety):):主要有入口事件、出口事件和主要有入口事件、出口事件和DO事件等。事件等。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组态图组成成消息信号事件和调用事件。调用事件:一个对象调用另一个对象的操作,标在迁移线上,调用事件后,引起状态迁移。如,补办借书证(帐号),调用后,帐号由挂失状态迁移到有效状态。信号事件:由发出信号事件和接收信号事件构成。发出信号事件接收信号事件1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组态图组成成时间事件:事件:由由after事件、事件、when事件事件和和defer事件。事件。其中其中aftert事件和事件和when事件后事件后跟有跟有动作。作。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组成成4.迁移(迁移(转换)状状态的改的改变转换表示当一个特定事件表示当一个特定事件发生或者某些条件生或者某些条件满足足时,一个源状,一个源状态下的下的对象完成一定的象完成一定的动作作后将后将发生状生状态转变,转向另一个称之向另一个称之为目目标状状态的状的状态。当。当发生生转换时,转换进入的状入的状态为活活动状状态,转换离开的状离开的状态变为非活非活动状状态。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组成成迁移的特征:迁移的特征:1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组态图组成成监护条件:条件:转换可能具有一个可能具有一个监护条件,条件,监护条件是一个布条件是一个布尔表达式,它是触表达式,它是触发转换必必须满足的条件。足的条件。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组态图组成成触触发器事件:器事件:触触发器事件就是能器事件就是能够引起状引起状态转换的的事件。如果此事件有参数,事件。如果此事件有参数,则这些参数可以些参数可以被被转换所用,也可以被所用,也可以被监护条件和条件和动作的表作的表达式所用。达式所用。动作:作:动作(作(Action)通常是一个)通常是一个简短的短的计算算处理理过程或一程或一组可可执行行语句。句。动作也可以作也可以是一个是一个动作序列,即一系列作序列,即一系列简单的的动作。作。动作有两种情况:作有两种情况:附加到相附加到相应的迁移的迁移线上或上或对应的状的状态框内框内。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组态图组成成外部外部转换:外部转换是一种改变状态的转换,也是最普通最常见的一种转换。在UML中,它用从源状态到目标状态的带箭头的线段表示,其他属性以文字串附加在箭头旁。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组态图组成成内部转换只有源状只有源状态,没有目,没有目标状状态,不会激,不会激发入口和出口入口和出口动作,因此内部作,因此内部转换激激发的的结果不改果不改变本来的状本来的状态。如果一个内部。如果一个内部转换带有有动作,它也要被作,它也要被执行。内部行。内部转换常用于常用于对不改不改变状状态的插入的插入动作建立模型。要注意的是内部作建立模型。要注意的是内部转换的激的激发可能会掩盖使用相同可能会掩盖使用相同事件的外部事件的外部转换。内部内部转换的表示法与入口的表示法与入口动作和出口作和出口动作的表示法很相似。他作的表示法很相似。他们的区的区别主要在于入口和主要在于入口和出口出口动作使用了保留字作使用了保留字“entry”和和“exit”,其它部分两者的表示法相同。,其它部分两者的表示法相同。1010章章 状态图与活动图状态图与活动图判定示例 无判定示例10.2.2 状状态图组态图组成成5.判定判定判定用来表示一个事件依据不同的判定用来表示一个事件依据不同的监护条件有不同的影响。在条件有不同的影响。在实际建模的建模的过程中,如果遇到程中,如果遇到需要使用判定的情况,通常用需要使用判定的情况,通常用监护条件来覆盖每种可能,使得一个事件的条件来覆盖每种可能,使得一个事件的发生能保生能保证触触发一个一个转换。1010章章 状态图与活动图状态图与活动图10.2.2 状状态图组态图组成成6.分叉与分叉与汇合合同步条是为了说明并并发工作流的分支与汇合。状态图和活动图中都可能用到同步。在UML中,同步用一条线段来表示。1010章章 状态图与活动图状态图与活动图10.2.3 状状态图创态图创建案例建案例在在UML中,交互模型描述若于中,交互模型描述若于对象共同象共同协作完成一作完成一项作,而状作,而状态图则是描述一个是描述一个对象穿越若干用例的行象穿越若干用例的行为。建立状。建立状态图模型的建模步模型的建模步骤如下:如下:1)确定状)确定状态图的主体,它可以是一个系的主体,它可以是一个系统、一个用例、一个、一个用例、一个对象;象;2)确定主体的生存期的各种)确定主体的生存期的各种稳定的状定的状态及及顺序;序;3)确定状)确定状态迁移的事件;迁移的事件;4)附加上必要的)附加上必要的动作,把作,把动作附加到相作附加到相应的迁移的迁移线上或上或对应的状的状态框内;框内;5)审核状核状态图,确,确认所有状所有状态在事件触在事件触发下都可到达、死下都可到达、死锁状状态(无迁移)。(无迁移)。1010章章 状态图与活动图状态图与活动图 10.2.3 状状态图创建案例建案例进销存管理系存管理系统中中“产品品”的状的状态图1.1.确定状确定状确定状确定状态图态图的主体的主体的主体的主体要创建状态图,首先要标识出哪些实体需要使用状态图进一步建模。虽然我们可以为每一个类、操作、包或用例创建状态图,但是这样做势必浪费很多的精力。一般来说,不需要给所有的类都创建状态图,只有具有重要动态行为的类才需要。从另一个角度看,状态图应该用于复杂的实体,而不必用于具有复杂行为的实体。使用活动图可能会更加适合那些有复杂行为的实体。具有清晰、有序的状态实体最适合使用状态图进一步建模。对于产品出入仓库来说,需要建模的实体就是产品。1010章章 状态图与活动图状态图与活动图 10.2.3 状状态图创建案例建案例进销存管理系存管理系统中中“产品品”的状的状态图2.2.确定状确定状确定状确定状态图态图中中中中实实体的状体的状体的状体的状态态对于一个入于一个入库的的产品来品来说,它的状,它的状态主要包括:主要包括:(1)未入未入库状状态 (2)入入库状状态 (3)被排除状被排除状态 (4)销售出售出库状状态1010章章 状态图与活动图状态图与活动图 10.2.3 状状态图创建案例建案例进销存管理系存管理系统中中“产品品”的状的状态图3.3.创创建相关事件完成状建相关事件完成状建相关事件完成状建相关事件完成状态图态图当确定了需要建模的当确定了需要建模的实体,并找出了体,并找出了实体的初体的初始状始状态和和终止状止状态以及其他相关状以及其他相关状态后,后,就可以着手就可以着手创建状建状态图。首先,我首先,我们要找出相关的事件和要找出相关的事件和转换。对于于企企业的的产品来品来说,刚被生被生产出来的出来的产品可品可以通以通过仓库管理管理员添加成添加成为入入库的的产品。品。当入当入库产品被出售,品被出售,产品品品品处于被于被销售状售状态。当当产品由于品由于过期、期、损坏等因素造成的不合格坏等因素造成的不合格时,产品会被剔除。根据品会被剔除。根据产品的各种状品的各种状态以及以及转换规则。1010章章 状态图与活动图状态图与活动图10.2.3 状状态图创建案例建案例网上商城中网上商城中“商品商品”的状的状态图1.商品商品对对象象2.状状态态序列序列3.转换转换事件及活事件及活动动。1010章章 状态图与活动图状态图与活动图10.2.3 状状态图创建案例建案例图书管理系管理系统的的图书状状态图1.图书对图书对象象2.状状态态序列序列3.转换转换事件及活事件及活动动。1010章章 状态图与活动图状态图与活动图10.2.3 状状态图创建案例建案例员工下班回家状工下班回家状态图(1)确定状确定状态对象:象:员工。工。(2)添加状)添加状态选择状状态图绘图工具工具栏上的相上的相应按按钮,在,在绘图区域中区域中单击鼠鼠标左左键,就可以,就可以绘制状制状态。1010章章 状态图与活动图状态图与活动图10.2.3 状状态图创建案例建案例员工下班回家状工下班回家状态图(3)添加状)添加状态之之间添加状添加状态转换单击状状态图绘制工具制工具栏上的按上的按钮 ,在,在状状态之之间添加添加转换,由此得到的,由此得到的员式下式下班回家的状班回家的状态图及其状及其状态转换 1010章章 状态图与活动图状态图与活动图10.2.3 状状态图创建案例建案例员工下班回家状工下班回家状态图(4)设置状置状态转移事件移事件在不同的状在不同的状态之之间进行行转换时,需要指定从一种状,需要指定从一种状态转换到另一种状到另一种状态的事件。的事件。1010章章 状态图与活动图状态图与活动图10.2.3 状状态图创建案例建案例员工下班回家状工下班回家状态图(5)添加活)添加活动在在绘制状制状态图时,一般情况下需要指定状,一般情况下需要指定状态的活的活动。右。右键单击对应的状的状态(如:等待(如:等待电梯),梯),打开状打开状态属性属性设置置对话框,框,选择【Actions】选项卡,右卡,右键单击中中间空白区域,空白区域,选择【Insert】菜菜单,完成活,完成活动的添加。的添加。1010章章 状态图与活动图状态图与活动图10.2.3 状状态图创建案例建案例员工下班回家状工下班回家状态图(6)调整大小和位置整大小和位置遵循美遵循美观、实用的原用的原则,调整状整状态图的大小和位置,的大小和位置,得到的得到的员工下班回家的工下班回家的状状态图。1010章章 状态图与活动图状态图与活动图课堂堂实践践 1阅读如如图所示的学生所示的学生选课系系统中的中的课程状程状态图,试着着对不同状不同状态间的的转换进行描述。行描述。(1)maxstudents表示表示选修某一修某一门课程的最多人数。程的最多人数。(2)students表示表示选修了某一修了某一门课程的人数。程的人数。(3)after this term表示学期表示学期结束束 1010章章 状态图与活动图状态图与活动图10.3 10.3 活活动图1010章章 状态图与活动图状态图与活动图10.3 10.3 活活动图活活动图(Activity DiagramActivity Diagram)主要用于描述系)主要用于描述系统中中对象的一个活象的一个活动到另一个活到另一个活动的控制流、的控制流、一个事一个事务的活的活动序列、工作的流程和并序列、工作的流程和并发的的处理能力。理能力。需求分析中的活动图主要用来配合描述某个重要的用例,用主要用来配合描述某个重要的用例,用图型的方式型的方式对用例的用例的具体具体实现的的过程程进行描述,行描述,这样比文字的描述更直比文字的描述更直观、更准确地、更准确地说明用例的功能,在系明用例的功能,在系统分析与分析与设计过程中,程中,经常用活常用活动图进一步深入描述用例一步深入描述用例图的具体的具体实现流程。流程。系系统设计中的活中的活动图对系系统的的业务工作流、操作建模,它描述工作流、操作建模,它描述业务流中从一个活流中从一个活动到另一个活到另一个活动的控制流。它描述活的控制流。它描述活动的序列,用来分析和的序列,用来分析和验证用例,理解工作流程,用例,理解工作流程,描述复描述复杂过程的算法,并具支持程的算法,并具支持带条件的行条件的行为和并和并发行的多程建模。行的多程建模。1010章章 状态图与活动图状态图与活动图10.3.1 活活动图概述概述活活动图的作用的作用:*描述一个操作描述一个操作执行行过程中所完成的工作,程中所完成的工作,说明角色、工作流、明角色、工作流、组织和和对象是如何工作的。象是如何工作的。*活活动图对用例描述尤其有用,它可建模用例的工作流、用例描述尤其有用,它可建模用例的工作流、显示用例内部和用例之示用例内部和用例之间的路径。的路径。*显示如何示如何执行一行一组相关的相关的动作,以及作,以及这些些动作如何影响它作如何影响它们周周围的的对象。象。*活活动图可以画出工作流用以描述可以画出工作流用以描述业务,有利于与,有利于与领域域专家家进行交流。通行交流。通过活活动图可以明确可以明确业务处理操作是如何理操作是如何进行的,以及可能行的,以及可能产生的生的变化。化。*描述复描述复杂过程的算法,在程的算法,在这种情况下使用的活种情况下使用的活动图和和传统的程序流程的程序流程图的功能是相似的。的功能是相似的。活活动图与常用的程序流程与常用的程序流程图相似,它相似,它们的主要区的主要区别在于程序流程在于程序流程图一般用来表示串行一般用来表示串行过程,程,而活而活动图则可以用来表示可以用来表示并行并行过程程。1010章章 状态图与活动图状态图与活动图10.3.1 活活动图概述概述1010章章 状态图与活动图状态图与活动图10.3.2 活活动图组成成1动作状作状态动作状作状态是指是指执行原子的、不可中断的行原子的、不可中断的动作,并在此作,并在此动作完成后作完成后转换到另一个状到另一个状态。动作作状状态有如下特点:有如下特点:动作状作状态是原子的,它是构造活是原子的,它是构造活动图的最小的最小单位,无法分解位,无法分解为更小的部分;更小的部分;动作状作状态是不可中断的,它一旦运行就不能中断,一直运行到是不可中断的,它一旦运行就不能中断,一直运行到结束;束;动作状作状态是瞬是瞬时的行的行为,它所占用的,它所占用的处理理时间极短,有极短,有时甚至可以忽略;甚至可以忽略;动作状作状态有入有入转换,入,入转换可以是可以是动作流,也可以是作流,也可以是对象流。象流。动作状作状态至少有一条出至少有一条出转换,这条条转换以内部以内部动作的完成作的完成为起点,与外部事件无关;起点,与外部事件无关;动作状作状态与状与状态图中的状中的状态不同,它不能有入口不同,它不能有入口动作和出口作和出口动作,也不能有内部作,也不能有内部转移;移;动作状作状态允允许多多处出出现在同一活在同一活动图中。中。1010章章 状态图与活动图状态图与活动图10.3.2 活活动图组成成2活活动状状态活活动状状态是非原子性的,用来表示一个具有子是非原子性的,用来表示一个具有子结构的构的纯粹粹计算的算的执行。行。活活动状状态有如下特有如下特点:点:活活动状状态可以分解成其他子活可以分解成其他子活动或或动作状作状态,由于它是一,由于它是一组不可中断的不可中断的动作或操作的作或操作的组合,合,所以可以被中断;所以可以被中断;活活动状状态的内部活的内部活动可以用另一个活可以用另一个活动图来表示;来表示;活活动状状态可以有入口可以有入口动作和出口作和出口动作,也可以有内部作,也可以有内部转移;移;动作状作状态是活是活动状状态的一个特例,如果某一个活的一个特例,如果某一个活动状状态只包括一个只包括一个动作,那么它就是一个作,那么它就是一个动作状作状态。1010章章 状态图与活动图状态图与活动图10.3.2 活活动图组成成3动作流:作流:动作流是指所有作流是指所有动作状作状态之之间的的转换。4.分支与合并分支与合并分支是分支是软件系件系统流程中很常流程中很常见的一种的一种逻辑,它一般用来,它一般用来表示表示对象所具有的条件行象所具有的条件行为,每一部分都有单独的监护条件和不同的结果。合并包括两个合并包括两个带条件的入条件的入转换和一个出和一个出转换(即两个(即两个入口和一个出口),用来表示从入口和一个出口),用来表示从对应的分支开始的的分支开始的条件行条件行为的的结束。束。1010章章 状态图与活动图状态图与活动图10.3.2 活活动图组动图组成成5.分叉与分叉与汇合(合(结合)合)活活动图显求了如何求了如何协调多个事件,当多个事件,当执行活行活动时,有可能并行使用,有可能并行使用这些事件。些事件。考考虑一一对夫妻的餐夫妻的餐馆就餐活就餐活动,如,如右右图,仅当两当两盘菜都做好后才会提供菜都做好后才会提供这套套便餐。便餐。1010章章 状态图与活动图状态图与活动图10.3.2 活活动图组成成5.分叉与分叉与汇合合 分叉用于将分叉用于将动作流分作流分为两个或多个并两个或多个并发运行运行的分支的分支 汇合合则用于将不同的分支用于将不同的分支汇聚一起聚一起汇合有多个入合有多个入转换和一个出和一个出转换,出,出转换开始于开始于所有并行活所有并行活动都完成都完成时。活活动图主要用于主要用于为有多个活有多个活动并行并行执行的行的业务建建模模1010章章 状态图与活动图状态图与活动图10.3.2 活活动图组成成6泳道泳道为了了对活活动的的职责进行行组织而在活而在活动图中将活中将活动状状态分分为不同的不同的组,称,称为泳道(泳道(Swimlane)。)。每个泳道代表特定含每个泳道代表特定含义的状的状态职责部分。部分。泳道泳道显示了示了对象象对系系统所做的所做的贡献。献。1010章章 状态图与活动图状态图与活动图带泳道活泳道活动图的特点:的特点:-泳道显示了对象对系统所做的贡献。1010章章 状态图与活动图状态图与活动图10.3.2 活活动图组成成7对象流象流对象可以在活象可以在活动图中中显示,表示示,表示动作作状状态或者活或者活动状状态与与对象之象之间的依的依赖关系。关系。对象可以作象可以作为动作的作的输入或入或输出,或出,或简单地表示指定地表示指定动作作对对象的影响。象的影响。1010章章 状态图与活动图状态图与活动图10.3.2 活活动图组动图组成成在活在活动图中,中,对象流描述了象流描述了动作状作状态或者活或者活动状状态与与对象之象之间的关系,表示了的关系,表示了动作使用作使用对象以及象以及动作作对对象的影响象的影响对象用矩形符号来表示,在矩形的内部有象用矩形符号来表示,在矩形的内部有对象名或象名或类名。名。对象流用象流用带有箭有箭头的虚的虚线表示。表示。活活动图中的中的对象流象流1010章章 状态图与活动图状态图与活动图活动图中加入对象流更能显示系统的交互:1010章章 状态图与活动图状态图与活动图在活在活动图中添加中添加对象及象及对象流:象流:步步骤:工具工具CREATEOBJECT1010章章 状态图与活动图状态图与活动图10.3.2 活活动图组成成8组合活合活动在在UML的活的活动图中,一个大的活中,一个大的活动可以分可以分为若干个若干个动作或子活作或子活动,这些些动作或子活作或子活动本身又可以本身又可以组成一个活成一个活动图。1010章章 状态图与活动图状态图与活动图10.3.3 活活动图创建案例建案例活活动图建模步建模步骤:1.(1)确定确定对象:找出象:找出负责实现工作流的主体工作流的主体对象。象。对象主要参考与象主要参考与业务工作流相关的用例工作流相关的用例中的中的参与者。参与者。为重要的重要的对象分配一条象分配一条泳道。泳道。(2)确定范确定范围:明确起始状:明确起始状态和和终止状止状态。(3)确定主要确定主要活活动序列序列:建模主要:建模主要用例路径用例路径。(4)处理迁移:分支状理迁移:分支状态迁移,并迁移,并发与同步(分叉与与同步(分叉与结合)迁移。合)迁移。(5)确定工作流中涉及的重要确定工作流中涉及的重要对象:添加象:添加对象流象流。1010章章 状态图与活动图状态图与活动图活动图的创建示例:用户购物活动图10.3.3 活活动图创建案例建案例电子商城用子商城用户购物活物活动图1.标识活活动图的用例的用例用用户购物活物活动中要涉及多个用例,完成工作流的主要中要涉及多个用例,完成工作流的主要对象是象是购物用物用户如如图。1010章章 状态图与活动图状态图与活动图活动图的创建示例:用户购物活动图10.3.3 活活动图创建案例建案例电子商城用子商城用户购物活物活动图2.建模用例的路径建模用例的路径用用户登登录,首先,首先选择要要查看商品信息,看商品信息,,最后退出系最后退出系统。1010章章 状态图与活动图状态图与活动图活动图的创建示例:用户购物活动图10.3.3 活活动图创建案例建案例电子商城用子商城用户购物活物活动图3.创建活建活动图在在创建活建活动图的的过程中,需要注意如下程中,需要注意如下问题:考考虑用例其他可能的工作流情况,如用例其他可能的工作流情况,如执行行过程中可能出程中可能出现的的错误或是可能或是可能执行行其他活其他活动。使用泳道使用泳道细化活化活动图。按照按照时间顺序自上而下的排列泳道内的序自上而下的排列泳道内的动作或者状作或者状态。使用并使用并发时,不要漏掉任何的分支,尤,不要漏掉任何的分支,尤其是当分支比其是当分支比较多的多的时候。候。1010章章 状态图与活动图状态图与活动图10.3.3 活活动图创建案例建案例电子商城用子商城用户前台前台购物活物活动图4.在在Rose中中绘制活制活动图(1)创建活建活动图包包图(起点的(起点的问题)(2)创建新的活建新的活动图单击“Logical View”节点,点,选择【New】【Activity Diagram】,输入新的活入新的活动图的名称(如:前台的名称(如:前台购物)物)1010章章 状态图与活动图状态图与活动图10.3.3 活活动图创建案例建案例电子商城用子商城用户前台前台购物活物活动图(3)添加)添加购物用物用户活活动图的起点和的起点和终点。点。(4)添加)添加动作状作状态或活或活动状状态。基本操作方式同状。基本操作方式同状态图。(5)增加分支与合并。)增加分支与合并。购物用物用户通通过网上系网上系统进行行购物物时,如果没有登,如果没有登录系系统,则需要需要进行登行登录才能完成商品的才能完成商品的购买操作。操作。1010章章 状态图与活动图状态图与活动图10.3.3 活活动图创建案例建案例电子商城用子商城用户购物活物活动图(6)增加分叉与)增加分叉与汇合。合。购物用物用户进入网上入网上系系统后,在未登后,在未登录状状态下可以搜索并下可以搜索并查看商品,并看商品,并查询商品的商品的详细情况。用情况。用户登登录系系统后,既可以后,既可以查看商品信息,看商品信息,购买商品,也可以修改个人信息和商品,也可以修改个人信息和查看个看个人信息。因此,人信息。因此,查看并看并购买商品和修改商品和修改/查看个人信息属于并行流。看个人信息属于并行流。1010章章 状态图与活动图状态图与活动图活动图的创建示例:教教师查看、修改学生信息看、修改学生信息10.3.3 活活动图创建案例建案例教教师管理学生信息活管理学生信息活动图1.标识活活动图的用例的用例对于于“教教师查看、修改学生信息看、修改学生信息”来来说,它的参与者是教它的参与者是教师,教,教师在在查看、看、修改学生信息的活修改学生信息的活动中有以下中有以下3个用个用例:例:登登录;查询学生信息;学生信息;修改学修改学生信息。生信息。1010章章 状态图与活动图状态图与活动图活动图的创建示例10.3.3 活活动图创建案例建案例 教教师管理学生信息活管理学生信息活动图2.建模用例的路径建模用例的路径教教师登登录后,首先后,首先选择要要查看哪看哪位同学的信息,位同学的信息,查看之后修改看之后修改该学生的学生的信息,修改完成后保存修改信息,修改完成后保存修改过的信息,的信息,最后退出系最后退出系统。1010章章 状态图与活动图状态图与活动图10.3.3 活活动图创建案例建案例教教师管理学生信息活管理学生信息活动图3.创建活建活动图在在创建活建活动图的的过程中,需要注意如下程中,需要注意如下问题:考考虑用例其他可能的工作流情况,如用例其他可能的工作流情况,如执行行过程中程中可能出可能出现的的错误或是可能或是可能执行其他活行其他活动。使用泳道使用泳道细化活化活动图。按照按照时间顺序自上而下的排列泳道内的序自上而下的排列泳道内的动作或者作或者状状态。使用并使用并发时,不要漏掉任何的分支,尤其是当分,不要漏掉任何的分支,尤其是当分支比支比较多的多的时候。候。1010章章 状态图与活动图状态图与活动图10.3.3 活活动图创建案例建案例 系统管理员查看修改员工信息活活动图1.1.确定需求用例确定需求用例确定需求用例确定需求用例对于“系统管理员查看修改员工信息”来说,参与者是系统管理员,系统管理员在查看修改员工信息的活动中,有3个用例:1 登录:要进入系统,首先要登录。2 查询员工信息:进入系统后可以选择查询不同员工的信息。3 修改员工信息:需要修改某些员工的部分信息,比如员工晋升后需要修改的员工的职务和工资信息。1010章章 状态图与活动图状态图与活动图10.3.3 活活动图创建案例建案例 系统管理员查看修改员工信息活活动图2.2.确定用例路径确定用例路径确定用例路径确定用例路径1010章章 状态图与活动图状态图与活动图10.3.3 活活动图创建案例建案例 系统管理员查看修改员工信息活活动图3.3.绘绘制完整的活制完整的活制完整的活制完整的活动图动图1010章章 状态图与活动图状态图与活动图10.4 活活动图与状与状态图的比的比较 状状态图描述了一个特定描述了一个特定对象的所有可能状象的所有可能状态,以及由于各种事件的,以及由于各种事件的发生而引生而引起的状起的状态之之间的的转移;用来描述一个移;用来描述一个对象在其生命周期的行象在其生命周期的行为,主要,主要强调外部外部动作作的影响。活的影响。活动图是一种描述工作流的方式,它用来描述采取何种是一种描述工作流的方式,它用来描述采取何种动作、做什么、何作、做什么、何时发生以及在何生以及在何处发生。活生。活动图是由状是由状态图扩展而来的,是状展而来的,是状态图的另外一种表的另外一种表现形式,它形式,它们之之间有有联系有区系有区别。1010章章 状态图与活动图状态图与活动图10.4 活活动图与状与状态图的比的比较状状态图和活和活动图的相同点:的相同点:1.描述描述图符基本一符基本一样。2.都可以描述一个系都可以描述一个系统和和对象在生存期象在生存期间的状的状态和行和行为;3.都可以描述系都可以描述系统或或对象在多象在多线程操作中的同步和并程操作中的同步和并发行行为。.都可以采用分支流描述一个系都可以采用分支流描述一个系统或或对象的行象的行为控制。控制。总之,活之,活动图是描述一个系是描述一个系统或或对象的象的动态行行为的一种方法,它是状的一种方法,它是状态图的另一种形式。的另一种形式。1010章章 状态图与活动图状态图与活动图10.4 活活动图与状与状态图的比的比较状状态图和活和活动图的主要区的主要区别在于:在于:1.触触发迁移的机制不同:迁移的机制不同:状状态图中中对象状象状态的迁移,一般都有一个触的迁移,一般都有一个触发迁移的事件迁移的事件发生。活生。活动图中的活中的活动状状态迁迁移不需要事件触移不需要事件触发,一个活,一个活动结束可以直接束可以直接进入下一个活入下一个活动。2.描述多个描述多个对象共同完成一个操作的机制不同:象共同完成一个操作的机制不同:状状态图一般用于描述一个一般用于描述一个对象生存期内的象生存期内的经历的行的行为、状、状态,引起状,引起状态转移的事件及因移的事件及因状状态转移移发生的生的动作。若活作。若活动涉及多个涉及多个对象,象,则采用状采用状态嵌套的方式来描述多个嵌套的方式来描述多个对象共象共同完成的一个操作。同完成的一个操作。而活而活动图利用泳道将穿越多个利用泳道将穿越多个对象的操作象的操作组织起来,它能清楚的表明起来,它能清楚的表明动作在哪里(作在哪里(对象)象)执行。行。1010章章 状态图与活动图状态图与活动图实验实验五五 状状态图态图与活与活动图动图实验实验目的:目的:理解并掌握状理解并掌握状态图态图和活和活动图动图的画法。的画法。实验实验内容:内容:1.使用状使用状态图态图来描述学生管理系来描述学生管理系统统中学生中学生对对象象/课课程程对对象状象状态变态变化化过过程程;2.绘绘制学生管理系制学生管理系统统中系中系统统管理管理员查询员查询、更改学生信息的活、更改学生信息的活动图动图。1010章章 状态图与活动图状态图与活动图完完1010章章 状态图与活动图状态图与活动图课堂堂实践践(1)阅读图书管理系管理系统的系的系统管理管理员维护图书用用户信息的活信息的活动图,试着着对系系统管理管理员的的维护读者活者活动进行描述。行描述。(2)绘制制WebShop电子商城系子商城系统中中订单处理的活理的活动图。1010章章 状态图与活动图状态图与活动图1010章章 状态图与活动图状态图与活动图图书管理系管理系统“借借书活活动图”1010章章 状态图与活动图状态图与活动图谢谢观赏!2020/11/581
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!