期11本UML第八章状态图和活动.ppt_第1页
期11本UML第八章状态图和活动.ppt_第2页
期11本UML第八章状态图和活动.ppt_第3页
期11本UML第八章状态图和活动.ppt_第4页
期11本UML第八章状态图和活动.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,UML 面向对象技术教程,第八章 状态图和活动图,天津理工大学华信软件学院,2,课程内容回顾,用例图 用例图 类 图、对象图 静态图 UML视图 状态图、活动图 行为图 构件图、部署图 实现图 协作图、顺序图 交互图 UML视图的五种类型分类: 用例图:从用户角度描述系统功能,指出操作者。 静态图:表示系统的静态结构。 行为图:描述系统的动态模型和组成对象间的相互关系。 交互图:描述对象间的相互关系。 实现图:描述系统的物理实现。,3,本章中所涉及的主要内容,什么是状态图? 状态图中涉及的基本概念 (状态、组合状态和子状态、历史状态、转移、事件、动作) 工具支持 什么是活动图? 活动图中涉及的基本概念 活动、泳道、分支、分叉和汇合、对象流 工具支持 状态图和活动图的比较,4,状态图是UML中对系统动态方面建模的图例之一. 状态图是针对类对象的生命周期建立模型,描述对象随时间变化的动态行为. 状态图显示了一个状态机,它是一个状态机中的元素的一个投影,意味着状态图包括状态机的所有特性. 状态机(State Machine) 状态机是展示状态与状态转换的图形。 在UML里,状态机用于对具有事件驱动特性的动态行为建模,事件驱动的动态行为的特定是对象当前时刻的动态行为将取决于当前的事件输入和此对象在以前时刻的动态行为的结果。 状态(state)状态是状态机的重要组成部分,描述了状态机所在对象的动态行为的执行所产生的结果.,一. 状态图的定义(Statechart Diagram ),5,状态图通过对对象的状态以及状态间的转换建模来 展现系统动态行为。 下面是对图书馆的图书的简单状态图例:,一. 状态图的定义(续一),一本书 有两种状态: 在图书馆 或 已借出 (在借阅者手中),6,二. 状态图中的基本概念,1状态(state) 状态是指对象在其生命周期中各个阶段的状况,包括:满足某些条件、执行某些活动或等待某些事件. 所有对象都具有状态.状态是对象执行了一系列活动的结果.当某个事件发生后,对象状态可能发生变化.,一个状态图包括四个部分: 状态、转移、事件和动作。,7,状态名为 Lighting(点灯)状态:, 进入该状态时,做开灯动作; 退出该状态时,做关灯动作; 对象处于该本状态时,要闪烁灯5次; 当关闭电源事件(内部事件)出现时,使用自供电源。,1状态(续),8,状态可细分成:,状态图是用于显示状态机的,重点描述状态之间的控制流. 在状态机中,动作可以与状态相关,也可以与转移相关. 动作与状态相关,则对象在进入一个状态时将触发某一动作,而不管是从哪个状态转入这个状态的. 动作与转移相关,则对象在不同状态之间转移时,将触发相应的动作.,1状态(续二),9,转移又称状态转换 表示对象在第一个状态(源状态)中执行一定的动作,并在某个特定事件发生、并满足特定警戒条件时进入第二个状态(目的状态)。 在UML里转换由五个部分组成, 源状态(Source State)、 目标状态(Target State) 触发事件(Trigger Event) 监护条件(Guard Condition) 动作(Action)。,2转移(转换)(transition),10,从相同的状态出来,事件相同的几个转换之间应 该是互斥的,如下图:(见P94图8.7),2转移(续),11,事件:是对一个在时间和空间上占有一定位置的有 意义的事情的详细说明。 UML中的事件可分为4类(调用、变化、时间、信号) 1) 调用事件(Call event) 表示的是对操作的调度。 格式:Event-name(coma-separated-parameter-list) 即: 事件名(以逗号隔开的参数表) 例如:,其中:事件名为startAutoPilot. 参数为normal,3事件(event),12,2) 变化事件又称修改事件(change event) 由一个布尔表达式的变量变化引起条件满足而触发 转换的事件。 例如:when(temperature120)/alarm(),变化事件很像警戒条件,但它们有以下区别: 警戒条件是转移说明的一部分,相关事件出现后,它只计算一次,若值为false,则不进行状态转移,以后也不进行重新计算。 变化事件表示一个要被不断测试的事件。,3事件(续一),13,3) 时间事件(time event) 是指满足某一时间表达式的情况出现,常用关键字 after, when 等表示。 如:,3事件(续二),14,4) 信号事件(signal event) 信号事件表示对象收到信号的情况(往往会触发状态的转移)。 在UML中,信号用版型Signal的类来表示,信号之间可以有泛化关系,形成类的层次结构. (参见教科书P96 图8.11),3事件(续三),15,动作(action)当转换引起时,它对应的动作被执行. 动作是一个可执行的原子计算,一般是一组可执行语句或者计算处理过程,即动作在它的执行控制线程中是不可中断的、其时间上可以被忽略. UML没规定动作的具体的语法格式,只规定了两种特殊的动作. 格式如下: (1) 进入动作: entry/action-expression (2) 退出动作: exit/ action-expression,4动作(active),16,三. 状态图的工具支持(略) (目前 Rose 尚不支持 StateChart 的正向工程。),17,四.状态图的建模技术(附加),在使用状态图对系统反映型对象建模时,可以参照 以下步骤进行: (1)识别一个要对其生命周期进行描述的参与行为的类。 (2)对状态建模,即确定对象可能存在的状态。 (3)对事件建模,即确定对象可能存在的事件。 (4)对动作建模,即确定当转变被激活时,相应被执行的动作。 (5)对建模结果进行精化和细化。,18,状态图图示,19,五. 绘制状态图练习,1试绘制“图书馆借还书系统”中一本书(对象)的状 态图。 题意: 一本书从购置到废弃不用要经过“新书(New Book)”, “在图书馆 (Available)”,“已借出(Borrowed)”, “已预订(Reserved)”,“删除(Deleted)”等状态 2如果在上题中再加上一个“罚款(Fine)”状态,则状 态图将如何变化?,20,第 1 题图书馆借还书系统的参考答案:,21,第 2 题添加罚款后的参考答案:,22,3绘制“打电话过程”电话线路的状态图。 注:可设置如下状态: “Idle”,“Dialing”,“Connecting”,“Ringing”,“Connected”, “Disconnected”,“Time Out”,“Play Message”, “Busy Tone” (可以适当增减状态,也可以使用中文。),五. 绘制状态图练习 (续一),23,第 3 题参考答案:,24,一. 什么是活动图?,UML活动图(Activity Diagram) 学习过程序设计语言的读者一定接触过流程图,流程图清晰的表达了程序的每个步骤序列、过程、判定点和分支。程序流程图无论对编程者自身或是阅读程序的人都是极好的文档资料。尤其对于程序员,都会推荐他使用流程图做可视化描述工具来描述问解决方案。 在UML里,活动图本质上就是流程图,它描述系统的活动、判定点、分支等,是一个重要的工具。 活动图的功能: 活动图可描述系统工作流程和并发行为 活动图可看作状态图的特殊形式 活动图中的一个活动结束将立即进入下一个活动 (和状态图不同,状态转移需要事件触发),25,二. 活动图的基本概念,1活动(activity)可以表示某流程中任务的执行, 也可表示为某算法过程中语句的执行。 在活动图中区分动作状态和活动状态两个概念; 对象的动作状态是活动图的最小单位的构造块,并且表示原子动作。 在UML里,动作状态是以执行指定动作,并在此动作完成后通过完成变迁转向另一个状态而设置的状态。这里所指的动作有三个特点:原子性的即不能被分解成更小的部分;是不可中断的即一旦开始就必须运行到结束;是瞬时的即动作状态所占用的处理时间通常是极短的,甚至是可以被忽略的。 动作状态表示状态的入口动作。 入口动作是在状态被激活的时候执行的动作。 在UML中,动作状态使用带圆端的方框表示。,26,二. 活动图的基本概念(续),活动状态是可分解的,不是原子的,其工作的完成 需要一定的时间。可以把动作状态看作活动状态的特例。 对象的活动状态可以被理解成一个组合,它的控制流由其他活动状态或动作状态组成。因此活动状态的特点是:它可以被分解成其他子活动或动作状态,它能够被中断,它占有有限的事件。 活动状态内部的活动从程序设计的角度来理解,活动状态对于软件对象的实现过程中的一个子过程。如果某活动状态是只包括一个动作的活动状态,那它就是动作状态,因此动作状态是活动状态是一个特例。 在UML中,动作状态和活动状态的图标没有什么区别,都是圆端的方框。只是活动状态可以有附加的部分,如可以指定入口动作、出口动作、状态动作以及内嵌状态机。,27,2. 泳道(swimlane) 泳道是活动图中的区域划分,每个泳道代表一个责任区,由指定的对象来完成。从语义上,泳道可以被理解为一个模型包。 一个泳道可以由一个类来实现,也可以由多个类来实现。 使用垂直线分割成各个泳道。在上方给出泳道名或对象(类)名,该对象(或类)负责该泳道的全部活动。,二. 活动图的基本概念(续一),28,下面是描述订货工作流程的活动图:,二. 活动图的基本概念(续二),三个泳道分别是: Customer (顾客), Sales (销售部门), Stockroom (库房)。 活动从顾客泳道开始, 顾客要求订货服务,由此 可并行处理付款和办理订 货 ;其中办理订货需要在 库房(泳道)填写订货单。 当付款和填写订单同时完 成后,就可交付订货了。 当顾客收集到订货后活动 结束。,29,同一个问题如果从其他角度(泳道含义不同),比如销售部门的职责上绘制或活动图,可得到下面的图:,二. 活动图的基本概念(续三),30,3分支(Branch) 分支是根据不同警戒条件转向不同的活动,每个 可能的活动称作一个分支。 UML有两种表示分支的方法(见教科书图8.14),二. 活动图的基本概念(续四),授权,31,4分叉和汇合 分支表示从多个可能的活动中选择一个, 这些活动不是并发的。 如果表示系统和对象中的并发行为,则可以使用分叉(fork)和汇合(join)这两种建模元素。 分叉表示一个控制流被两个或多个控制流代替,经分叉后这些控制流是并发进行的。 汇合与分叉相反,表示表示两个或多个控制流被一个控制流代替。,二. 活动图的基本概念(续五),32,分叉的两种类型表示如下:(见P99图8.15),二. 活动图的基本概念(续六),33,5对象流 对象流表示活动(状态)和对象之间的关系,对象可以作为活动的输入和输出。,二. 活动图的基本概念(续五),活动Submit Defect 创建对象Defect, 该对象的状态是 Submitted. 活动Fix Defect 使 用处于Submitted 状 态的对象Defect,同 时把对象的状态改 变为Fixed。,状态变化:Submitted-Fixed,34,三. 活动图的用途,1对系统工作流程建模 若用例图8.17虽然能说明系统的功能,但它很难描述系统的工作流程。,Make Part,Ship Part,Customer,Manufaction,35,三. 活动图的用途,可以很好的描述工作流程 用活动图来描述详细的工作流程的例子:,制造Manufacting 发货Shiping 顾客Customer,Part to Shipping do/Verfiry Quality exit/Give to shipping,Package Part do/Wrap Part exit/Verify Address,Ship Next Day do/Apply Shipping Lablel exit/Send to Custommer,Packge Part do/Apply shipping Label exit/Send to Custonner,Weight= 5lb,Weight 5lb,Weight Package,entry/Verify Part,36,三. 活动图的用途,2用活动图来描述算法 参见教科书P101图8.19活动图像流程图那样,对系统的具体操作进行详细描述。,37,订票系统中上演一个剧目的活动图,38,四实例分析,下图表示“股票交易系统”中,处理股票交易订单的 一张活动图:(泳道省略),Activity diagram for stock trade processing,39,上图描述的是高层操作,更细致的底层操作可分别 绘制在另一张活动图上。这是“execute order”的细节。,四实例分析,为了保持平衡, 同样要把“settle

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论