2、伴随的,以及因状态或活动的转移而伴随的动作动作。5主要内容主要内容1.状态机状态机2.状态状态3.转移转移4.组合状态组合状态5.状态图的应用状态图的应用63.1状态机状态机1状态机对系统的动态特征建模。状态机对系统的动态特征建模。p状态机表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,状态机表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,响应事件,执行某些动作,引起转移到新状态,在新状态下响应事件,执行响应事件,执行某些动作,引起转移到新状态,在新状态下响应事件,执行动作,引起转移到另一个状态,直到终结状态。动作,引起转移到另一个状态,直到终结状
5、列动作的执行。活动可能被某个事件中断。中断。73.1状态机状态机2p状态机用于对状态机用于对一个一个模型元素建立行为模型,该模型元素通模型元素建立行为模型,该模型元素通常是一个对象类,也可以是一个子系统,常是一个对象类,也可以是一个子系统,甚至整个系统。甚至整个系统。p在在UML中状态机用状态图可视化表示。中状态机用状态图可视化表示。状态图:状态的节点、转移的弧、事件等组成。状态图:状态的节点、转移的弧、事件等组成。源状态源状态目标状态目标状态事件事件83.2状态状态p状态:对象全部属性的当前值。状态:对象全部属性的当前值。(问题:对象任何一个新的属性值组合就是一个新状态,状态空间太大)(
6、问题:对象任何一个新的属性值组合就是一个新状态,状态空间太大)p状态属性:对确定对象的状态有重要意义的属性。状态属性:对确定对象的状态有重要意义的属性。p状态属性一般具有少量的值,而且这些属性的值的转换是有限的。状态属性一般具有少量的值,而且这些属性的值的转换是有限的。并且其属性值反映所属对象的特定状态。并且其属性值反映所属对象的特定状态。如:对于如:对于“汽车汽车”对象,可能有对象,可能有“型号型号”、“车况车况”、“使用情况使用情况”、“公里数公里数”、“汽油剩余量汽油剩余量”等属性。不应取等属性。不应取“公里数公里数”或或“汽油剩余量汽油剩余量”作为状态属性,可取作为状态属性,可取“使
8、对象)被被支付支付(状态状态)p小车(对象对象)正在正在停着停着(状态状态)p发动机(对象对象)正在正在工作工作(状态状态)p电灯(对象对象)开着开着(状态状态)9103.2.1状态图标状态图标p状态图标(状态节点)状态图标(状态节点)一个状态可以加入信息一个状态可以加入信息:进入操作、退出操作、进入操作、退出操作、活动等活动等状态名状态名entry/动作动作do/活动活动exit/动作动作113.2.2状态行为状态行为1p进入操作(进入操作(entry):):系统进入该状态时要发生的动作,前面加上系统进入该状态时要发生的动作,前面加上entry和和“/”。不可中断。不可
9、中断。注:航班进入预定状态时,注:航班进入预定状态时,系统将时刻表发布到系统将时刻表发布到Internet。尽管发布动作在技术上是可以尽管发布动作在技术上是可以中断的,但其速度很快,用户中断的,但其速度很快,用户很难在其发生时取消事物。很难在其发生时取消事物。p活动(活动(do):):系统处于该状态时要发生的活动,前面加上系统处于该状态时要发生的活动,前面加上do和和“/”。活动是可中断行为,活动是可中断行为,可以在对象处于该状态时可以在对象处于该状态时运行完毕,也可以在对象运行完毕,也可以在对象转入另一状态时中断。转入另一状态时中断。航班预定航班预定entry/将时刻表发布到将时刻
12、,代表一个状态图的终止点,是一个伪状态。终结状态是转移态图的终止点,是一个伪状态。终结状态是转移的最后目标,而不能是转移的初始源。牛眼表示。的最后目标,而不能是转移的初始源。牛眼表示。143.3转移转移(迁移)(迁移)1p转移:用实箭线表示,箭尾连接出发状态,即转移:用实箭线表示,箭尾连接出发状态,即源状态源状态,箭头连接到,箭头连接到达状态,即达状态,即目标状态目标状态。在箭线上可以标示与该转移有关的选项:事。在箭线上可以标示与该转移有关的选项:事件、保护件、保护(警戒)条件(警戒)条件和动作。和动作。p当处于源状态的对象接收到一个当处于源状态的对象接收到一个事件,事件,并且保护条件得到满
13、足时并且保护条件得到满足时(如果有的话),则执行相应的动作,并从源状态转移到目标状态。(如果有的话),则执行相应的动作,并从源状态转移到目标状态。p当发生一个转移时,该转移进入的状态为活动状态,它将执行相应当发生一个转移时,该转移进入的状态为活动状态,它将执行相应的动作。当发生一个转移离开一个状态时,该状态变为非活动状态。的动作。当发生一个转移离开一个状态时,该状态变为非活动状态。p转移类型:转移类型:简单转移、自转移、自动转移、复合转移等简单转移、自转移、自动转移、复合转移等。源状态源状态目标状态目标状态事件事件警戒条件警戒条件/动作动作事件事件p事件(event)是指某个时刻发生的事情。p
15、态是同一状态的转移。标状态是同一状态的转移。如:卖票的航班中增加乘客如:卖票的航班中增加乘客或减少乘客时,航班是打开的。或减少乘客时,航班是打开的。p自动转移(自动转移(Automatic-Transition):自动转移又称):自动转移又称完成转移(完成转移(Completion-Transition)。每个状态都)。每个状态都可能有一个不由事件触发的转移,它是根据该状态内的动可能有一个不由事件触发的转移,它是根据该状态内的动作完成而自动触发的。见作完成而自动触发的。见GUI状态图。状态图。打开打开增加乘客增加乘客人数人数+1未满未满/sum+1关闭关闭增加增加人数人数+1已满已满/s
16、um+1减少乘客减少乘客/sum-1减少乘客减少乘客/sum-1183.3.1转移类型转移类型2p判定:是在状态图中的一个特定的位置,工作流在此依判定:是在状态图中的一个特定的位置,工作流在此依据保护条件的取值而发生的分支。判定用空心小菱形表示。据保护条件的取值而发生的分支。判定用空心小菱形表示。p复合转移(复合转移(Compound-Transition):复合转移由简):复合转移由简单转移组成,这些简单转移通过分支判定、分叉组成。单转移组成,这些简单转移通过分支判定、分叉组成。源状态源状态目标状态目标状态2目标状态目标状态1条件条件1条件条件2193.3.1转移类型转移类型3制定计划
17、制定计划招聘人员招聘人员实施实施人员齐备人员齐备人员未齐备人员未齐备制定计划制定计划招聘人员招聘人员实施实施人员齐备人员齐备人员未齐备人员未齐备20源状态源状态目标状态目标状态4目标状态目标状态3目标状态目标状态2目标状态目标状态1事件事件1条件条件1/动作动作1条件条件3/动作动作3条件条件4/动作动作4条件条件5/动作动作6条件条件2/动作动作2条件条件6/动作动作6多条件链式分支多条件链式分支源状态源状态目标状态目标状态4目标状态目标状态3目标状态目标状态2目标状态目标状态1事件事件1条件条件1and条件条件3/动作动作1,动作,动作3多条件非链式分支多条件非链式分支事件事件1条件
18、条件2and条件条件6/动作动作2,动作,动作6事件事件1条件条件2and条件条件5/动作动作2,动作,动作5事件事件1条件条件1and条件条件4/动作动作1,动作,动作4213.3.2转移示例转移示例未分配任务未分配任务已分配任务已分配任务取消对任务的资源分配取消对任务的资源分配NumAssTasks1/NumAssTasks-1NumAssTasks=1/NumAssTasks=0分配任务给资源分配任务给资源/NumAssTasks+1资源休闲资源休闲资源管理员资源管理员PRMS的一个资源状态图的一个资源状态图分配任务给资源分配任务给资源/NumAssTas
19、ks+1223.4.1组合状态组合状态子状态子状态p一个状态内嵌套了若干个状态,则称该状态为一个状态内嵌套了若干个状态,则称该状态为组合状态组合状态(超状态)。(超状态)。其中,被嵌套的状态称为其中,被嵌套的状态称为子状态子状态。子状态本身仍然可以是组合状态。子状态本身仍然可以是组合状态。p一个组合状态可以有一个被嵌套的子状态图,它代表了该组合状态的一个组合状态可以有一个被嵌套的子状态图,它代表了该组合状态的一个活动。子状态图中必须有自己的初始和终结状态。对组合状态的一个活动。子状态图中必须有自己的初始和终结状态。对组合状态的一个入转移代表对其子区域内的初始状态的入转移,对子区域内的终一个入
20、转移代表对其子区域内的初始状态的入转移,对子区域内的终结状态的转移代表包含它的组合状态的相应活动的完成。结状态的转移代表包含它的组合状态的相应活动的完成。p采用组合状态可以简化复杂行为的建模。采用组合状态可以简化复杂行为的建模。发货处理发货处理取消取消已发货已发货取消取消网上商店处理送货过程的状态图网上商店处理送货过程的状态图检查检查do/检查商品检查商品办货处理办货处理do/启动发货启动发货等待等待取消取消已发货已发货全部商品已全部商品已检查完,但部检查完,但部分商品缺货分商品缺货全部商品全部商品检查完且全检查完且全部商品都有部商品都有收到商品收到商品全部商品都有全部商品都有收到商品
21、收到商品部分商品缺货部分商品缺货未检查完未检查完全部商品全部商品/取下一个取下一个取消取消取消取消取消取消网上商店处理送货过程的状态图网上商店处理送货过程的状态图检查检查do/检查商品检查商品办货处理办货处理do/启动发货启动发货等待等待取消取消已发货已发货全部商品已全部商品已检查完,但部检查完,但部分商品缺货分商品缺货全部商品已全部商品已检查完且全部检查完且全部商品都有商品都有收到商品收到商品全部商品都有全部商品都有收到商品收到商品部分商品缺货部分商品缺货发货处理发货处理未检查完未检查完全部商品全部商品/取下一个取下一个网上商店处理送货过程的状态图网上商店处理送货过程的状态图取消
24、输入工作工作监视监视系统时钟系统时钟更新更新界面显示界面显示时钟间隔已过时钟间隔已过GUI中中“工作工作”的并发组合状态的并发组合状态293.4.3并发子状态并发子状态2网上商店系统中网上商店系统中“订货订货”对象的并发状态图对象的并发状态图等待等待商品检查商品检查办理装货办理装货付款检查付款检查已付款已付款取消取消发货发货拒绝拒绝订货订货303.4.4同步同步p同步:同步可定义为并发工作流的分劈(同步:同步可定义为并发工作流的分劈(Fork)与接合)与接合(Join)。)。分劈(拆分):分劈(拆分):是一个源状态分为两个或两个以上的目标状态。是一个源状态分为两个或两个以上的目标状态。接
25、合:接合:是两个以上的源状态连接为一个目标状态。是两个以上的源状态连接为一个目标状态。同步在状态图中用一条粗短实线表示,称为同步杆。同步在状态图中用一条粗短实线表示,称为同步杆。源状态源状态目标状态目标状态目标状态目标状态1目标状态目标状态2源状态源状态1源状态源状态2313.4.4并发子状态并发子状态同步同步p在并发状态图中一个子状态图中在并发状态图中一个子状态图中的子状态,常常需要与另一个子的子状态,常常需要与另一个子状态图中的子状态的行为同步。状态图中的子状态的行为同步。在在UML中使用同步状态表示这中使用同步状态表示这种情况。种情况。p并发子状态之间的同步状态用含并发子状态之间的同
26、步状态用含“*”的小圆表示(伪状态),放的小圆表示(伪状态),放在分隔子状态的虚线上。在分隔子状态的虚线上。p例:例:建筑住宅的并发状态图建筑住宅的并发状态图。其中有二个子状态图,分别其中有二个子状态图,分别代表主体工程施工和水电工程代表主体工程施工和水电工程施工,它们是并行进行的。施工,它们是并行进行的。砌筑基础砌筑基础铺设铺设室内管线室内管线安装安装水电设备水电设备主体结构主体结构水电准备水电准备安装门框安装门框室内装修室内装修竣工验收竣工验收*323.4.5历史状态历史状态1p历史状态(历史状态(HistoryState):代表上次离开组合状态时代表上次离开组合状态时的最后一个活
27、动子状态。历史状态用含有字母的最后一个活动子状态。历史状态用含有字母“H”的小的小园圈表示。每当转移到组合状态中的历史状态时,对象便园圈表示。每当转移到组合状态中的历史状态时,对象便恢复上次离开该组合状态时最后一个子状态,并执行入口恢复上次离开该组合状态时最后一个子状态,并执行入口动作。动作。p历史状态是一个伪状态的图形标记,只能作为组合状态中历史状态是一个伪状态的图形标记,只能作为组合状态中的子状态,不能在顶层状态图中使用。的子状态,不能在顶层状态图中使用。333.4.5历史状态历史状态2停止停止播发播发选择选择暂停暂停H恢复恢复活动活动中断中断影碟机对象工作的部分状态图影碟机对象工作的
28、部分状态图343.5状态图的应用状态图的应用p状态图为一个对象的生命周期建立模型。状态图可以表示状态图为一个对象的生命周期建立模型。状态图可以表示一个对象的历史,引起一个状态向另一个状态转移的事件,一个对象的历史,引起一个状态向另一个状态转移的事件,以及由于状态的转移而引发的动作。以及由于状态的转移而引发的动作。p状态图适合描述一个对象穿越多个状态图适合描述一个对象穿越多个UseCase的行为,但的行为,但不适合描述多个对象的协同行为。不适合描述多个对象的协同行为。p使用状态图可以对一个对象(类)的行为建模,也可以对使用状态图可以对一个对象(类)的行为建模,也可以对一个子系统或整个系统的行
29、为建模。一个子系统或整个系统的行为建模。状态图建模技术状态图建模技术p建模的时候要找出对象所处的状态、触发状态改变的动作,以及对象状态改变时应执行的动作具体步骤如下:1、找出适合用模型描述其行为的类。、找出适合用模型描述其行为的类。2、确定对象可能存在的状态。、确定对象可能存在的状态。找出状态属性。找出状态属性。3、确定引起状态转换的事件。、确定引起状态转换的事件。4、确定转换进行时对对象执行的相应动作。、确定转换进行时对对象执行的相应动作。利用利用子状态、分支、历史状态等概念组织和简化一个子状态、分支、历史状态等概念组织和简化一个复杂的状态机。复杂的状态机。5、对建模的结果进行相应的精化和细
30、化。、对建模的结果进行相应的精化和细化。35363.5.2系统总体状态图系统总体状态图备份系统备份系统未激活未激活PRMS未激活未激活备份系统备份系统已激活已激活PRMS已激活已激活退出系统退出系统启动系统启动系统启动备份系统启动备份系统/使使PRMS备份备份例程工作例程工作关闭备份系统关闭备份系统/使使PRMS备份备份例程不工作例程不工作启动启动PRMS第一次使用第一次使用启动启动PRMS非第一次使用非第一次使用/装载数据装载数据关闭关闭PRMS系统系统备份系统已激活备份系统已激活/备份数据备份数据37PRMS已激活已激活资源管理资源管理项目管理项目管理系统管理系统管理休闲休闲忙忙资源管理
31、启动处理资源管理启动处理完成处理完成处理休闲休闲忙忙项目管理启动处理项目管理启动处理完成处理完成处理休闲休闲忙忙系统管理启动处理系统管理启动处理完成处理完成处理PRMS的激活状态的组合状态的激活状态的组合状态38用于预定的状态图:用于预定的状态图:在在Reservation创建后,就处于等待状态,创建后,就处于等待状态,一旦到达一旦到达Concluded状态,在系统中就不再承担任何任务。状态,在系统中就不再承担任何任务。Waiting没找到汽车没找到汽车NotifiableNeedingRenewalCollectableStorableConcluded会员取消会员取消会员没有来会员
32、没有来会员取车会员取车返回汽车返回汽车助手找到汽车助手找到汽车没有汽车回来没有汽车回来会员取消会员取消助手存储助手存储会员再次预约会员再次预约找不到会员找不到会员会员取消会员取消助手已通知会员助手已通知会员会员取消会员取消找不到会员找不到会员何时使用状态图何时使用状态图p大多数面向商业的应用中的类不需要状态图p以下情况经常使用状态图:状态多于三个n动态模型中产生或接收大量信息的类:订单、交通n界面类n实时系统中的类39404142状态图的代码实现状态图的代码实现p状态图用于辅助类图建模p迁移通常被实现成对象上的操作,操作名与信号名相对应;信号比操作更富有表现力,因为信号不仅依赖
33、于类,而且依赖于状态p状态通常是类的属性p状态的完整性反映了属性的取值的特点p迁移与状态的关系反映了对象属性与操作的关系4344两种不同的系统两种不同的系统p一种是“信息处理系统”:系统对某些输入信息按照预先指定的步骤和方式进行处理,以便得到某些输出的信息,系统目前的状态可以用資料目前的状态來描述,例如:人事薪资系統、仓储物流系统;p另外一类是与外界环境互动的系统,例如:飛航管制系統、交通管制系統、游戏等等,这一类系统一般没有明确的输入和输出,但是与外界有很多不预期的互动。p通常系统回应的方法与系统内部的状态有关系,而系統內部通常有许多记录的变数。p针对这两大类的系统,我们描述他们的方法也不
34、一样,对于前者,我们通常使用活动图来描述,因为活动图中最重要的部分是活动的处理控制。p后者则常用状态图。45练习练习1:图书馆中图书馆中“图书图书”的状态图的状态图p图书状态有:订购、编目、馆藏、借出。4647四、活动图(四、活动图(ActivityDiagram)p活动图是系统的一种行为视图,它描述参与行为的对象类的活动图是系统的一种行为视图,它描述参与行为的对象类的活动活动的顺序,包的顺序,包括依赖于条件的行为和并发行为。括依赖于条件的行为和并发行为。p活动图演示了系统中的功能流。如:在业务模型中显示业务工作流;在收集活动图演示了系统中的功能流。如:在业务模型中显示业务工作流;在收集需求
35、时显示一个用例中的事件流等。活动图定义了工作流从哪里开始,到哪需求时显示一个用例中的事件流等。活动图定义了工作流从哪里开始,到哪里结束,工作流中发生了哪些活动,这些活动按什么顺序发生,活动是由哪里结束,工作流中发生了哪些活动,这些活动按什么顺序发生,活动是由哪些对象来完成的。些对象来完成的。p活动图是状态图的一种扩展形式。如果在一个状态图中的大多数状态是表示活动图是状态图的一种扩展形式。如果在一个状态图中的大多数状态是表示操作的活动,而转移是自动转移,就演化为活动图。但两者有区别,活动图操作的活动,而转移是自动转移,就演化为活动图。但两者有区别,活动图描述的是响应内部处理的对象类行为,状态图描
36、述的是对象类响应事件的外描述的是响应内部处理的对象类行为,状态图描述的是对象类响应事件的外部行为。部行为。48接受订货接受订货填写订单填写订单通宵发货通宵发货常规发货常规发货寄送货票寄送货票接收付款接收付款关闭订货关闭订货快速订货快速订货否则否则顾客订货处理的活动图顾客订货处理的活动图49主要内容主要内容1.活动图的组成活动图的组成2.活动分解活动分解3.并发与同步并发与同步4.活动图的应用活动图的应用504.1活动图的组成活动图的组成1p活动图的基本图形元素有:活动图的基本图形元素有:动作状态(或活动状态)、转移、泳道、动作状态(或活动状态)、转移、泳道、对象流、信号。此外,初始
39、有入口动作和出口动作,也可以有内部转移。注:注:动作状态的图标可以代表一个不可中断的动作状态,也可以代表一个可动作状态的图标可以代表一个不可中断的动作状态,也可以代表一个可以被中断的活动,后者可用另外的活动图详细表达。以被中断的活动,后者可用另外的活动图详细表达。制定计划制定计划制订计划制订计划entry/SetGoal()524.1活动图的组成活动图的组成3(2)转移:转移:在活动图中转移用实箭线表示,箭线从一个动作出发指向在活动图中转移用实箭线表示,箭线从一个动作出发指向另一个动作状态。转移可以是无条件的,也可以是有条件的。另一个动作状态。转移可以是无条件的,也可以是有条件的。计算
40、所得计算所得计算所得税计算所得税发放津贴发放津贴else总所得总所得2000计算所得计算所得计算所得税计算所得税发放津贴发放津贴else总所得总所得2000534.1活动图的组成活动图的组成4(3)泳道(泳道(Swimlance):):泳道代表对象对活动的责任。泳道代表对象对活动的责任。泳道把活动泳道把活动图中的活动划分为若干组,并把这些组指定给对象,这些对象必须履行图中的活动划分为若干组,并把这些组指定给对象,这些对象必须履行该组所包含的活动。泳道是该组所包含的活动。泳道是把活动与对象相联系把活动与对象相联系的方法之一,它明确表的方法之一,它明确表示哪些活动由哪些对象进行的。示哪些活动由哪
41、些对象进行的。在活动图上泳道用垂直实线画出,垂直线分隔的区域就是泳道。在在活动图上泳道用垂直实线画出,垂直线分隔的区域就是泳道。在泳道的上方给出泳道的名字或对象名字,该对象负责泳道内的全部活动。泳道的上方给出泳道的名字或对象名字,该对象负责泳道内的全部活动。泳道没有顺序,不同泳道中的活动可以是顺序进行的,也可以是并发进泳道没有顺序,不同泳道中的活动可以是顺序进行的,也可以是并发进行的,允许转移和对象流穿过泳道分隔线。行的,允许转移和对象流穿过泳道分隔线。填写订单填写订单发货发货接受订货接受订货寄送货票寄送货票关闭订货关闭订货接收付款接收付款财务结算财务结算顾客服务顾客服务处理订货处理订货泳道
43、员随后给他们准备好会议用纸。)业务员随后给他们准备好会议用纸。(6)如果会议产生了一个问题陈述,咨询顾问就要根据问题陈述建)如果会议产生了一个问题陈述,咨询顾问就要根据问题陈述建立一个提案并把该提案发给客户。立一个提案并把该提案发给客户。在一般情况下,绘制活动图时应先集中注意力在在一般情况下,绘制活动图时应先集中注意力在业务工作上或业务工作上或系统的服务内容系统的服务内容上,绘制动作状态和转移等,弄清楚系统的总上,绘制动作状态和转移等,弄清楚系统的总体行为含义,而后在绘制泳道,把开展活动的责任分配到对象。体行为含义,而后在绘制泳道,把开展活动的责任分配到对象。Callclientandse
44、tupappointmentPrepareaconferenceroomPreparealaptopappointmentonsiteappointmentoffsiteMeetwiththeclientSendfollow-upletterCreateproposalstatementofproblemSendproposaltoclientnostatementofproblem参见参见“创建文创建文档档”活动图活动图业务过程业务过程“会见新客户会见新客户”的活动图的活动图Callclientandsetupappoint
45、mentSendfollow-upletterPrepareaconferenceroomappointmentonsiteCreateproposalSendproposaltoclientMeetwiththeclientPreparealaptopappointmentoffsite参见参见“创建创建文档文档“活动图活动图statementofproblemnostatementofproblemCorporateTechnicianConsultantSalePerson584.1活动图的组成活动图的组成5当活动图过于复杂
46、时,绘制泳道可能出现困难,这时可以不用泳道表现活动当活动图过于复杂时,绘制泳道可能出现困难,这时可以不用泳道表现活动与对象的联系。替代的方法之一是在活动上贴上对象名标签,或者改用交互与对象的联系。替代的方法之一是在活动上贴上对象名标签,或者改用交互图指定负责活动的对象。图指定负责活动的对象。(4)对象流(对象流(ObjectFlow):):对象流是动作状态(或活动状态)与对象之对象流是动作状态(或活动状态)与对象之间的依赖联系,表示动作使用对象或动作对对象的影响。间的依赖联系,表示动作使用对象或动作对对象的影响。在活动图中在活动图中对象流用虚箭线表示对象流用虚箭线表示。虚箭线从动作状态出发指
47、向对象虚箭线从动作状态出发指向对象:表示该动作创建或更新了对象流所指的对:表示该动作创建或更新了对象流所指的对象,该对象是动作的输出。象,该对象是动作的输出。虚箭线从对象出发指向动作状态:表示该动作使用对象流所指的对象,该对虚箭线从对象出发指向动作状态:表示该动作使用对象流所指的对象,该对象是动作的输入。象是动作的输入。59按名找资源按名找资源按名找技能按名找技能指定技能给资源指定技能给资源R:资源资源S:技能技能R-S:资源资源-技能技能把技能指定给资源的活动图把技能指定给资源的活动图资源中已指定技能资源中已指定技能资源中未指定技能资源中未指定技能604.1活动图的组成活动图的组
48、成6(5)信号事件(信号事件(SignalEvent):):在活动图中,可以使用信号发送在活动图中,可以使用信号发送构造型图标和信号接收构造型图标表示信号事件。发送信号图标是凸构造型图标和信号接收构造型图标表示信号事件。发送信号图标是凸角五边形,接收信号图标是凹角五边形。当信号被接收时,会引起一角五边形,接收信号图标是凹角五边形。当信号被接收时,会引起一个活动的发生。个活动的发生。P124PressChannelNumberWatchChange(channel)ShowNewChannelTelevisionChange(channel)614.2活动分解活动分解p一个活动可以
49、分解为若干个子活动或动作,这些子活动或一个活动可以分解为若干个子活动或动作,这些子活动或动作本身组成一个活动图。动作本身组成一个活动图。p如果一个活动内嵌套了若干个活动或动作,则称该活动为如果一个活动内嵌套了若干个活动或动作,则称该活动为组合活动,其中的被嵌套的活动称为子活动。组合活动,其中的被嵌套的活动称为子活动。p使用活动分解的好处是,在高一层的活动图中只需要给出使用活动分解的好处是,在高一层的活动图中只需要给出组合活动,不必涉及子活动图的内容,组合活动的内部行组合活动,不必涉及子活动图的内容,组合活动的内部行为可以在低一层的活动图中表示,这样便于抓住主要问题,为可以在低一层的活动图中表示
50、,这样便于抓住主要问题,使得图形更为简洁明了。使得图形更为简洁明了。接受订货接受订货填写订单填写订单发货发货通宵发货通宵发货常规发货常规发货寄送货票寄送货票接收付款接收付款关闭订货关闭订货紧急订货紧急订货否则否则组合活动示例组合活动示例63使用使用Office软件包建立一个文档的过程。一个活动软件包建立一个文档的过程。一个活动序列可能如下:序列可能如下:(1)打开)打开Word处理软件包。处理软件包。(2)创建一个文档。)创建一个文档。(3)命名该文档并为该文档指定一个存放目录。)命名该文档并为该文档指定一个存放目录。(4)键入文档的内容。)键入文档的内容。(5)如果文档中需要图形,则打开图
51、形软件包,创建图形,将图形粘)如果文档中需要图形,则打开图形软件包,创建图形,将图形粘贴到文档中。贴到文档中。(6)如果文档中需要电子表格,则打开电子表格软件包,建立电子表)如果文档中需要电子表格,则打开电子表格软件包,建立电子表格,将电子表格粘贴到文档中。格,将电子表格粘贴到文档中。(7)保存该文件。)保存该文件。(8)打印一份该文档的硬拷贝。)打印一份该文档的硬拷贝。(9)退出)退出Office软件包。软件包。tablesnoneededOpenWordProcessingPackageCreateFileSaveFileTypetheDocumentOpenand
52、UseGraphingPackageOpenandUseSpreadsheetSavetheFilePrintHardCopyExitOfficeSuitegraphicsneededgraphicsnoneededtablesneeded一个文档创建过程的活动图一个文档创建过程的活动图print(file)print(file):PrinterPrint未完成未完成已完成已完成654.3并发与同步并发与同步p在活动图中用在活动图中用“分劈分劈”(Fork)和和“接合接合”(Join)来表达并发和同步行来表达并发和同步行为。为。“分劈分劈”和和
53、“接合接合”均用同步杆(均用同步杆(Synchronizationbar)表示。表示。p对于对于“接合接合”的同步的规则:的同步的规则:只有当所有的入转移全部只有当所有的入转移全部完成其活动后才发生出转完成其活动后才发生出转移。可有一种例外情况,移。可有一种例外情况,就是条件线程就是条件线程(ConditionalThread),),条件线程是从一个条件线程是从一个“分劈分劈”发出的线程上加上条件,发出的线程上加上条件,在执行时,如果该线程在执行时,如果该线程的条件取值为的条件取值为“假假”,则就,则就“接合接合”而论认为该线程已经完成。而论认为该线程已经完成。享用晚餐享用晚餐烹调菜肴烹调
54、菜肴煮饭煮饭安排餐桌安排餐桌打开啤酒打开啤酒想喝酒想喝酒砌筑基础砌筑基础主体结构主体结构水电准备水电准备安装门窗安装门窗铺设室内管道铺设室内管道室内装修室内装修安装水电设备安装水电设备竣工验收竣工验收活动的同步状态示例活动的同步状态示例673.4.4并发子状态并发子状态同步同步p在并发状态图中一个子状态图中在并发状态图中一个子状态图中的子状态,常常需要与另一个子的子状态,常常需要与另一个子状态图中的子状态的行为同步。状态图中的子状态的行为同步。在在UML中使用同步状态表示这中使用同步状态表示这种情况。种情况。p并发子状态之间的同步状态用含并发子状态之间的同步状态用含“*”的小圆表示(伪状
55、态),放的小圆表示(伪状态),放在分隔子状态的虚线上。在分隔子状态的虚线上。p例:例:建筑住宅的并发状态图建筑住宅的并发状态图。其中有二个子状态图,分别其中有二个子状态图,分别代表主体工程施工和水电工程代表主体工程施工和水电工程施工,它们是并行进行的。施工,它们是并行进行的。砌筑基础砌筑基础铺设铺设室内管线室内管线安装安装水电设备水电设备主体结构主体结构水电准备水电准备安装门框安装门框室内装修室内装修竣工验收竣工验收*TimeEvent68AtimeeventwithanincomingedgerepresentsatimeoutAtimeeventwithno
56、incomingflowsmodelsarepeatingtimeeventCallingOtherActivities69Ratherthanclutteringupthetop-leveldiagramwithdetailsofthePrepareMotherboardaction,detailsareprovidedinanotheractivitydiagramObjects-ShowingObjectsPassedBetweenActions70TheOrderobjectnodeemphasizestha
57、titisimportantdatainthisactivityandshowswhichactionsinteractwithitP125Objects-ShowingActionInputsandOutputs71Pinsinthischangerequestapprovalprocessallowfiner-grainedspecificationofinputandoutputparametersTransformationsshowwhereinputparameterscomefrom,onlypart
58、ofOrderneededObjects-ShowingHowObjectsChangeStateDuringanActivity72ThefocusofthisdiagramisthechangeofstateoftheOrderobjectthroughouttheorderapprovalprocessShowingInputtoandOutputfromanActivityObjectnodescanbeusedtoemphasizeinputtoandoutputfromanactivi
59、tySendingandReceivingSignals73SendandreceivesignalnodesshowinteractionswithexternalparticipantsStartinganactivitywithareceivesignalnode:thereceivesignalnodereplacestheusualinitialnodeEndingActivitiesandFlows-InterruptinganActivity74ifacancellationisreceivedwhile
60、ProcessOrderisactive,ProcessOrderwillbeinterruptedandCancelOrderwillbecomeactive.Cancellationregionsarerelevantonlytothecontainedactions.IfacancellationisreceivedwhileShipOrderisactive,ShipOrderwontbeinterruptedsinceitsnotinthecancellationregion.Excepti