第8章动态建模.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

UML建模实例教程第8章动态建模刘志成编著UML建模实例教程本章学习导航本章学习导航UML建模实例教程本章学习要点动态建模概述状态图及其绘制活动图及其绘制活动图拾遗顺序图及其绘制协作图及其绘制顺序图拾遗建议课时:10课时UML建模实例教程任务1了解动态模型的基本功能和基本组成。任务目标分组教学法资料查询法案例教学法教学方法UML建模实例教程8.1动态建模概述动态建模概述所有系统(包括软件系统)均可表示为两个方面:静态结构和动态行为。UML提供了状态图、活动图、顺序图和协作图来描述系统的结构和行为。状态图、活动图、顺序图和协作图则适合于描述系统中的对象在执行期间不同的时间点是如何动态交互的。一组对象为了实现一些功能而进行通信称之为交互,可以通过状态图、活动图、顺序图和协作图来描述系统的动态行为。UML建模实例教程任务2了解状态图的基本功能和绘制方法,并绘制员工下班回家的状态图。任务目标分组教学法资料查询法案例教学法教学方法UML建模实例教程8.2.1状态图概述状态图概述状态图(StatechartDiagram)是软件系统进行面向对象分析的一种常用工具,它通过建立对象的生存周期模型(状态)来描述对象随时间变化的动态行为。状态图主要用来描述对象、子系统、系统的生命周期。通过状态图可以了解到一个对象所能到达的所有状态以及对象收到的事件(收到消息、超时、错误和条件满足等)对对象状态的影响等。并不是对所有的对象都创建状态图,只有当行为的改变和状态有关时才创建状态图。与类图、对象图和用例图不同,状态图只能对单个对象建立模型,而类图、对象图和用例图可以对一个系统或一组类建立模型。UML建模实例教程8.2.2状态图组成状态图组成状态图是由表示状态的节点和表示状态之间转换的带箭头的直线组成。若干个状态由一条或者多条转换箭头连接,状态的转换由事件触发。UML建模实例教程8.2.2状态图组成状态图组成1.起点和终点起点代表状态图的一个初始状态,此状态代表状态图的起始位置。起点只能作为转换的源,而不是作为转换的目标。起点在一个状态图中只允许有一个。终点代表状态图的最后状态,此状态代表状态图的终止位置。终点只能作为转换的目标,而不是作为转换的源。终点在一个状态图中可以有一个或多个,表示一个活动图的最后和终结状态。UML建模实例教程8.2.2状态图组成状态图组成2.状态状态是指在对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。UML建模实例教程8.2.2状态图组成员工下班回家在员工下班回家的过程中,经历的状态包括:到下班时间了,收拾东西准备回家(不考虑加班);开始等待电梯;乘坐电梯到达楼下;(发现没带家里钥匙,上楼拿)乘坐电梯上楼;去公交车站等车;乘公共汽车去菜场;买菜;回到家。UML建模实例教程8.2.2状态图组成状态的特征(1)进入/退出动作:对象本身的一个操作。如果在电梯里是一个状态的话,那员工进电梯和出电梯就是状态“在电梯里”的进入/退出动作。(2)内部转换:例如员工在去等电梯的时候发现钥匙没带,此时我们不用在“等电梯”以后,而是在“准备回家”的状态中就去拿钥匙了。虽然整体的状态没有发生变化,但对于对象本身来说,前后是不一样的,一个是有钥匙,一个是没有钥匙。(3)子状态:如果需要进一步描述员工对象在电梯里聊天、打电话等状态时,这些状态就是该对象的“在电梯里”状态的子状态。(4)延迟事件:现在不立即产生的事件,该事件是在一段时间以后才产生的事件。员工必须等待到达17:50的时候,才能下班。UML建模实例教程8.2.2状态图组成状态图组成一个状态一般包含三个部分,如图所示。第一部分为状态的名称,如空闲、已付、移动、在菜场等。第二部分为可选的状态变量的变量名和变量值。属性(变量)指的是状态图中类的属性。第三部分为可选的活动表,列出有关的事件和活动。UML建模实例教程8.2.2状态图组成状态图组成3.事件事件是对一个在时间和空间上占有一定位置的有意义的事情的规格说明。在状态机中,一个事件是一次激发的产生,激发可以触发一个状态转换。“事件”指的是发生的且引起某些动作执行的事情,即事件表示在某一特定的时间或空间出现的能够引发状态改变的运动变化。UML建模实例教程8.2.2状态图组成状态图组成4.转换转换表示当一个特定事件发生或者某些条件满足时,一个源状态下的对象完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。当发生转换时,转换进入的状态为活动状态,转换离开的状态变为非活动状态。UML建模实例教程8.2.3绘制员工下班回家状态图绘制状态图(1)打开工程WebShop.mdl。(2)新建状态图。在视图区域中右键单击“LogicalView”节点,依次选择【New】【StatechartDiagram】,默认的状态图的名称为“NewDiagram”,输入新的状态图的名称(如员工下班回家)UML建模实例教程8.2.3绘制员工下班回家状态图绘制状态图(3)添加状态选择状态图绘图工具栏上的相应按钮,在绘图区域中单击鼠标左键,就可以绘制状态。UML建模实例教程8.2.3绘制员工下班回家状态图绘制状态图(4)添加状态之间的转换单击状态图绘制工具栏上的按钮,在状态之间添加转换,由此得到的员式下班回家的状态图及其状态转换UML建模实例教程8.2.3绘制员工下班回家状态图绘制状态图(5)设置状态转移事件在不同的状态之间进行转换时,需要指定从一种状态转换到另一种状态的事件。右键单击表示状态转换的箭头,选择【OpenSpecification】,如图所示。打开状态转换属性设置对话框,在【General】选项卡中输入【Event】中的内容,即可完成状态转移事件的设置UML建模实例教程8.2.3绘制员工下班回家状态图绘制状态图(6)添加活动在绘制状态图时,一般情况下需要指定状态的活动。右键单击对应的状态(如:等待电梯),选择【OpenSpecification】,如图8-11所示。打开状态属性设置对话框,选择【Actions】选项卡,右键单击中间空白区域,选择【Insert】菜单,完成活动的添加。UML建模实例教程8.2.3绘制员工下班回家状态图绘制状态图(6)调整大小和位置最后,遵循美观、实用的原则,调整状态图的大小和位置,得到的员工下班回家的状态图。UML建模实例教程8.2.3绘制员工下班回家状态图WebShop商品状态图UML建模实例教程课堂实践1(1)绘制图书管理系统的图书状态图,并对不同状态间的转换进行描述(参照书中的提示)。(2)绘制WebShop电子商城系统的前台购物用户帐号的状态图,并对不同状态间的转换进行描述(参照书中的提示)。(3)阅读如图所示的学生选课系统中的课程状态图,试着对不同状态间的转换进行描述(参照书中的提示)。操作要求UML建模实例教程课堂实践1(1)maxstudents表示选修某一门课程的最多人数。(2)students表示选修了某一门课程的人数。(3)afterthisterm表示学期结束操作提示UML建模实例教程任务3了解活动图的基本功能和绘制方法,并绘制WebShop电子商城系统中前台购物用户购买活动的活动图。任务目标分组教学法案例教学法SDSPR教学法教学方法UML建模实例教程8.3.1活动图概述活动图概述活动图(ActivityDiagram)显示活动动作及其结果,着重描述操作(方法)实现中所完成的工作以及用例实例或对象中的活动。活动是某件事情正在进行的状态,既可以是现实生活中正在进行的某一项工作,也可以是软件系统某个类对象的一个操作。活动图与常用的程序流程图相似,它们的主要区别在于程序流程图一般用来表示串行过程,而活动图则可以用来表示并行过程。使用活动图主要目的是:描述一个操作执行过程中(操作实现的实例化)所完成的工作(动作);描述对象内部的工作;显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;显示用例的实例是如何执行动作以及如何改变对象状态;说明一次商务活动中的参与者、工作流、组织和对象是如何工作的。UML建模实例教程8.3.1活动图概述典型活动图UML建模实例教程8.3.2活动图组成活动图组成1.动作状态动作状态是指执行原子的、不可中断的动作,并在此动作完成后转换到另一个状态。动作状态有如下特点:动作状态是原子的,它是构造活动图的最小单位,无法分解为更小的部分;动作状态是不可中断的,它一旦运行就不能中断,一直运行到结束;动作状态是瞬时的行为,它所占用的处理时间极短,有时甚至可以忽略;动作状态有入转换,入转换可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部动作的完成为起点,与外部事件无关;动作状态与状态图中的状态不同,它不能有入口动作和出口动作,也不能有内部转移;动作状态允许多处出现在同一活动图中。UML建模实例教程8.3.2活动图组成活动图组成2.活动状态活动状态用于表达状态机中的非原子的运行。活动状态有如下特点:活动状态可以分解成其他子活动或动作状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断;活动状态的内部活动可以用另一个活动图来表示;活动状态可以有入口动作和出口动作,也可以有内部转移;动作状态是活动状态的一个特例,如果某一个活动状态只包括一个动作,那么它就是一个动作状态。UML建模实例教程8.3.2活动图组成活动图组成3.动作流:动作流是指所有动作状态之间的转换。4.分支与合并分支是软件系统流程中很常见的一种逻辑,它一般用来表示对象所具有的条件行为。合并包括两个带条件的入转换和一个出转换(即两个入口和一个出口),用来表示从对应的分支开始的条件行为的结束。UML建模实例教程8.3.2活动图组成活动图组成5.分叉与汇合分叉用于将动作流分为两个或多个并发运行的分支汇合则用于将不同的分支汇聚一起UML建模实例教程8.3.2活动图组成活动图组成6.泳道泳道的本义是用来分隔游泳池的,以保证不同的选手可以在指定的区域中进行比赛,而不会互相干扰。UML建模实例教程8.3.2活动图组成活动图组成7.对象流对象可以在活动图中显示,表示动作状态或者活动状态与对象之间的依赖关系。对象可以作为动作的输入或输出,或简单地表示指定动作对对象的影响。对象用矩形符号来表示,在矩形的内部有对象名或类名。对象流用带有箭头的虚线表示。对象流中的对象有如下特点:一个对象可以由多个动作操纵;一个动作输出的对象可以作为另一个动作输入的对象;同一个对象可以多次出现在活动图中,每一次出现表明该对象正处于对象生存期的不同时间点。UML建模实例教程8.3.2活动图组成活动图组成8.组合活动在UML的活动图中,一个大的活动可以分为若干个动作或子活动,这些动作或子活动本身又可以组成一个活动图。UML建模实例教程8.3.3绘制WebShop电子商城活动图完成步骤(1)打开工程WebShop.mdl。(2)新建活动图。在视图区域中右键单击“LogicalView”节点,依次选择【New】【ActivityDiagram】,默认的状态图的名称为“NewDiagram”,输入新的活动图的名称(如:前台购物)UML建模实例教程8.3.3绘制WebShop电子商城活动图完成步骤(3)添加购物用户活动图的起点和终点。选择活动图工具栏上的起点和终点图标,在绘图区域中单击鼠标左键,即可绘制活动图的起点和终点。(4)添加动作状态或活动状态。基本操作方式同状态图。(5)增加分支与合并。在WebShop电子商城中,购物用户通过网上系统进行购物时,如果没有登录系统,则需要进行登录才能完成商品的购买操作。UML建模实例教程8.3.3绘制WebShop电子商城活动图完成步骤(6)增加分叉与汇合。购物用户进入网上系统后,在未登录状态下可以搜索并查看商品,并查询商品的详细情况。用户登录系统后,既可以查看商品信息,购买商品,也可以修改个人信息和查看个人信息。因此,查看并购买商品和修改/

1 / 70
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功