UML建模实例教程(第3版)课件 第8章 动态建模_第1页
UML建模实例教程(第3版)课件 第8章 动态建模_第2页
UML建模实例教程(第3版)课件 第8章 动态建模_第3页
UML建模实例教程(第3版)课件 第8章 动态建模_第4页
UML建模实例教程(第3版)课件 第8章 动态建模_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

第8章动态建模18.1动态建模概述8.2状态图8.3活动图8.4活动图拾遗8.5时序图8.6通信图8.7时序图和通信图的比较2本章将向读者详细介绍动态建模的基本内容。动态建模是从用例的执行过程、对象之间的消息传递、对象的状态变化等角度对软件系统中动态的特性进行的描述。主要包括:使用状态图、使用活动图、使用时序图和使用通信图。本章的学习要点包括:状态图的功能及绘制;活动图的功能及绘制;时序图的功能及绘制;通信图的功能及绘制。38.1动态建模概述48.1动态建模概述5任务1了解动态模型的基本功能和基本组成。任务描述

6所有系统(包括软件系统)均可表示为两个方面:静态结构和动态行为。为了描述软件系统中的静态特性,UML中提供类图和对象图等,类图最适合于描述系统的静态结构,即描述类、对象以及它们之间的关系。而为了能够很好地描述软件系统中的动态特性,UML提供了状态图、活动图、时序图和通信图来描述系统的结构和行为。状态图、活动图、时序图和通信图适合于描述系统中的对象在执行期间不同的时间点是如何动态交互的。怎样理解系统的静态结构和动态行为呢?下面来看一个例子:在WebShop电子商城中“购物用户”对象“张三”通过电子商城提供的购买平台购买一台“摩托罗拉W380”的手机,这个过程实际上就是“购物用户”对象“张三”发送一个“购买”消息给“商品”对象“摩托罗拉W380”。这里的“购物用户”和“商品”就是WebShop电子商城中的一个静态结构,可以使用UML中的类图描述“购物用户”、“商品”以及它们之间的关系。但是类图并不能解释WebShop电子商城中的各个对象是如何协作来实现“购买”行为的。这就需要借助于活动图和时序图来完成。8.1动态建模概述

8.2.1状态图概述7状态图是由表示状态的节点和表示状态之间转换的带箭头的直线组成。若干个状态由一条或者多条转换箭头连接,状态的转换由事件触发。状态图可以有一个起点和多个终点,起点(初始态)用一个实心圆表示,终点(终态)用一个含有实心圆的空心圆表示。状态图中的状态用一个圆角四边形表示。状态之间为状态转换,用一条带箭头的线表示。引起状态转换的事件可以用状态转换线旁边的标签来表示。8.1动态建模概述

8.2.2状态图组成Word编辑器的简单状态图81.起点和终点起点代表状态图的一个初始状态,此状态代表状态图的起始位置。终点代表状态图的最后状态,此状态代表状态图的终止位置。8.1动态建模概述

8.2.2状态图组成起点和终点2.状态状态是指在对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。状态的三个组成部分93.活动

活动是对一个在时间和空间上占有一定位置的有意义的事情的规格说明。

如“下班时间到了(准备回家)”“电梯到达楼上(上电梯)”。8.1动态建模概述

8.2.2状态图组成4.转换

转换表示当一个特定活动发生或者某些条件满足时,一个源状态下的对象完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。108.1动态建模概述

8.2.3绘制员工下班回家状态图按钮按钮名称功能Selection选择工具Note添加注释Anchor将图中的元素与注释相连Label添加文本标签Box绘制盒子,将某些元素框在一起InitialState绘制开始状态State绘制状态EndState绘制结束状态StateTransition添加状态转换Join添加联接Fork添加分叉Junction添加汇总点Choice添加选择状态图工具栏按钮118.1动态建模概述绘制员工下班回家状态图。详见教学视频《绘制状态图》

8.2.3绘制员工下班回家状态图128.1动态建模概述

8.2.3绘制员工下班回家状态图员工下班回家状态图13(1)绘制图书管理系统的图书状态图,并对不同状态间的转换进行描述(参照书中的提示)。(2)绘制WebShop电子商城系统的前台购物用户账号的状态图,并对不同状态间的转换进行描述(参照书中的提示)。(3)阅读图8-14所示的学生选课系统中的课程状态图,尝试对不同状态间的转换进行描述(参照书中的提示)。

1.操作要求

2.操作提示

(1)maxstudents表示选修某一门课程的最多人数。(2)students表示选修了某一门课程的人数。(3)afterthisterm表示学期结束。8.3活动图148.3活动图15任务3了解活动图的基本功能和绘制方法,并绘制WebShop电子商城系统中前台购物用户购买活动的活动图。任务描述

16活动图(ActivityDiagram)显示活动动作及其结果,着重描述操作(方法)实现中所完成的工作以及用例实例或对象中的活动。

活动是某件事情正在进行的状态,既可以是现实生活中正在进行的某一项工作,也可以是软件系统某个类的对象的一个操作。

活动图是状态图的一个变种,与状态图不同,活动图的主要目的是描述动作(执行的工作和活动)及对象状态改变的结果。当状态中的动作被执行时,活动图中的状态(称为动作状态)直接转换到下一个阶段。活动图和状态图的另一个区别是活动图中的动作可以放在泳道中。泳道聚合一组活动,并指定负责人和所属组织。8.3活动图

8.3.1活动图概述“机场个人登记”活动图171.动作状态动作状态是指执行原子的、不可中断的动作,并在此动作完成后转换到另一个状态。8.3活动图

8.3.2活动图组成动作状态图示2.活动状态活动状态用于表达状态机中的非原子的运行。3.动作流动作流是指所有动作状态之间的转换。184.分支与合并

分支是软件系统流程中很常见的一种逻辑,它一般用来表示对象所具有的条件行为。

在UML中活动图中的分支和合并用空心菱形表示。分支包括一个入转换和两个带条件的出转换(一个入口和两个出口),出转换的条件是互斥的,这样可以保证只有一条出转换能够被触发。合并包括两个带条件的入转换和一个出转换(两个入口和一个出口),用来表示从对应的分支开始的条件行为的结束。8.3活动图

8.3.2活动图组成分支与合并图示195.分叉与汇合UML中使用了分叉和汇合来表示并行运行的控制流。分叉用于将动作流分为两个或多个并发运行的分支,每一个分支可以有一个入转换和两个或多个出转换,并且每个转换都可以是独立的控制流;汇合则用于将不同的分支汇聚一起,当所有分支的控制流都达到汇合点后,控制才能继续往下进行,每个汇合可以有两个或多个入转换和一个出转换。分叉和汇合都使用加粗的水平线段表示。8.3活动图

8.3.2活动图组成分叉与汇合图示206.活动分区在活动图中可以使用活动分区将操作按照某些公共的特性进行分组,活动分区可以是垂直的或水平的,每一个操作都只能明确地属于一个活动分区。从语义上,活动分区可以被理解为一个包。通常情况下,可以按照参与者来划分活动分区,也可以按照应用程序的层次来划分。每一个活动分区都有唯一的名字,控制流可以在活动分区之间传递。8.3活动图

8.3.2活动图组成分叉与汇合图示217.对象流对象可以在活动图中显示,表示动作状态或者活动状态与对象之间的依赖关系。对象用矩形符号来表示,在矩形的内部有对象名或类名。对象流用带有箭头的虚线表示。当一个对象是一个动作的输入时,用一个从对象指向动作的虚线箭头来表示,这时表示该动作使用对象流所指向的对象;当对象是一个动作的输出时,用一个从动作指向对象的虚线箭头来表示,这时表示动作对对象施加了一定的影响(创建、修改和撤销等)。对象流中的对象有如下特点:一个对象可以由多个动作操纵;一个动作输出的对象可以作为另一个动作输入的对象;同一个对象可以多次出现在活动图中,每一次出现表明该对象正处于对象生存期的不同时间点。8.3活动图

8.3.2活动图组成22按钮按钮名称功能Selection选择工具Note添加注释Anchor将图中的元素与注释相连Label添加文本标签Box绘制盒子,将某些元素框在一起InitialActivity绘制开始活动Activity绘制活动EndActivity绘制结束活动FinalActivity绘制最终活动Branch/Merge绘制条件分支/合并活动图工具栏按钮(未完待续)8.3活动图

8.3.3绘制WebShop电子商城活动图23活动图工具栏按钮(续)8.3活动图

8.3.3绘制WebShop电子商城活动图按钮按钮名称功能Fork/Join绘制工作流的分叉/汇合ActivityTransition绘制活动转换Exception绘制异常Pre/Postcondition绘制前置条件/后置文件Sendsignal绘制发送信号Acceptsignal绘制接受信号Accepttimeevent绘制接受时间事件Region绘制区域Pin绘制别钉ObjectNode绘制对象节点248.3活动图

8.3.3绘制WebShop电子商城活动图绘制WebShop电子商城活动图。详见教学视频《绘制活动图》购物用户活动图8.4活动图拾遗25268.4活动图拾遗

8.4.1活动图与流程图的比较UML中的活动图用来描述系统使用的活动、判定点和分支,与传统的流程图的功能非常类似。传统的流程图所能表示的程序逻辑,大多数情况下也可以使用活动图表示,但活动图与流程图有着本质的区别:流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系;而活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程;活动图能够表示并发活动的情形,而流程图不能;活动图是面向对象的,而流程图是面向过程的。278.4活动图拾遗

8.4.2活动图与状态图的比较状态图描述了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态之间的转移。它用来描述一个对象在其生命周期的行为,主要强调外部动作的影响。活动图是一种描述工作流的方式,它用来描述采取何种动作、做什么、何时发生以及在何处发生。活动图是由状态图扩展而来的,主要强调对象本身状态的变化。状态图和活动图的主要区别在于:状态图描述类的对象所有可能的状态以及活动发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态,其行为受外界环境的影响并且发生改变的类画状态图;活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。28(1)阅读图书管理系统的系统管理员维护读者信息的活动图,如右图所示,尝试对系统管理员维护读者活动进行描述。

(2)绘制WebShop电子商城系统中订单处理的活动图。

1.操作要求

2.操作提示

(1)通过学习小组讨论和上网查询资料形式完成。(2)在绘制活动图的同时,也可绘制相应的流程图,再将流程图与活动图进行比较。系统管理员维护读者信息活动图8.5时序图298.5时序图30任务4了解时序图的基本功能和绘制方法,并绘制WebShop电子商城系统中购物用户查看历史订单的时序图。任务描述

31在描述对象之间的交互时,常用到交互图。交互图一步一步地显示用例的实现流程,包括需要什么对象、对象之间发送什么内容、什么角色启动流程、消息按什么顺序发送等。UML中的交互图不是一个单独的图,而是包括时序图和通信图两种图,其中的时序图以时间为顺序描述对象之间的时间顺序。8.5时序图32

8.5.1时序图概述时序图(SequenceDiagram)描述了对象之间传送消息的时间顺序,它用来表示用例中的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作中引起转换的触发事件。时序图描述对象是如何交互的,并且将重点放在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。8.5时序图购物用户注册时序图在UML中,时序图表示为二维图。其中,在横轴上表示的是与顺序有关的对象。纵轴是时间轴,时间沿竖线向下延伸。有一条纵向的虚线表示对象在序列中的执行情况,称为对象的“生命线”,当对象存在时,生命线用一条虚线表示,当对象的过程处于激活状态时,生命线是一条双道线。浏览时序图的方法是:从上到下查看对象间交换的消息。33

8.5.2时序图组成时序图包含了四个元素:对象、生命线、消息和激活。1.对象时序图中对象的符号与对象图中对象的符号是一样的,都是使用矩形将对象名称包含起来,并且在对象名称下加下画线。2.生命线生命线是一条垂直的虚线,表示时序图中的对象在一段时间内的存在。8.5时序图时序图中的对象和对象生命线34

8.5.2时序图组成3.消息消息是对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。消息是两个对象之间的单路通信,从发送方到接收方的控制信息流。8.5时序图时序图中的消息消息类型消息符号含义Creation一个对象创建另一个对象的消息Destroy一个对象销毁另一个对象的消息SynchronousMessage同步消息AsynchronousMessage异步消息FoundMessage发现对象的消息LostMessage对象丢失的消息35

8.5.2时序图组成4.激活时序图可以描述对象的激活和钝化,激活表示该对象被占用以完成某个任务,钝化表示对象处于空闲状态,在等待消息。在UML中,通过将对象的生命线拓宽为矩形,表示对象是激活的,其中的矩形称为激活条。对象就是在激活条的顶部被激活的。对象在完成自己的工作后处于钝化状态,通常发生在当一个消息箭头离开对象生命线的时候。8.5时序图36按钮按钮名称功能Selection选择工具Note添加注释Anchor将图中的元素与注释相连Label添加文本标签Box绘制盒子,将某些元素框在一起Object绘制对象Creation绘制创建(对象)Destroy绘制销毁(对象)SynchronousMessage绘制同步消息AsynchronousMessage绘制异步消息FoundMessage绘制发现消息LostMessage绘制丢失消息CombinedFragment绘制组合碎片Precondition绘制前提条件时序图工具栏按钮8.5时序图

8.5.3绘制WebShop电子商城时序图37

8.5.3绘制WebShop电子商城时序图8.5时序图绘制WebShop电子商城时序图。详见教学视频《绘制时序图》WebShop电子商城前台购物用户查看当前订单时序图(1)阅读如右图所示学生选课系统中的管理员维护课程的时序图,尝试描述不同对象间的消息传递顺序。(2)绘制图书管理系统中读者借阅图书的时序图。38

1.操作要求

2.操作提示(1)通过学习小组讨论和上网查询资料形式完成。(2)在时序图中通常用到控制类和边界类。管理员维护课程时序图8.6通信图398.6通信图40任务5了解通信图的基本功能和绘制方法,并绘制WebShop电子商城系统的通信图。任务描述

41

通信图(CommunicationDiagram)是时序图之外的另一种表示交互的方法,它主要描述通信对象间的交互和链接,强调的是与对象结构相关的信息。

时序图和通信图都描述交互,但是时序图强调的是时间,而通信图强调的是空间。链接显示真正的对象以及对象间是如何联系在一起的,可以只显示对象的内部结构。同时序图一样,通信图也可以说明操作的执行、用例的执行或系统中的一次简单的交互情节。

8.6.1通信图概述8.6通信图图书管理系统读者借阅图书通信图42通信图由对象、链接和消息等组成。1.对象通信图中的对象与时序图中的对象的概念是一样的,图形表示方法也是一样的。但是与时序图不同的是,通信图中不能表示对象的创建和撤销,所以对象在通信图中没有位置的限制。2.链接一条链接是两个对象间的连接。通信图中的链接符号和对象图中的链接符号相同,即一条连接两个类角色的实线。3.消息

温馨提示

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

评论

0/150

提交评论