基于新信息技术的软件工程与UML教程第11章课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《基于新信息技术的软件工程与UML教程第11章课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 信息技术 软件工程 UML 教程 11 课件
- 资源描述:
-
1、项目十一 动态建模项目十一 动态建模任务一任务一 认识动态建认识动态建模模任任务二务二 认认识识状状态态图图任任务三务三 认识活动图认识活动图任任务四务四 认识顺序图认识顺序图任任务五务五 认识协作图认识协作图习习题题项目十一 动态建模项目引项目引导导本项目主要介绍应用UML进行软件系统动态建模的基本内容。动态模型描述的是参与者如何通过交互实现系统中的用例。动态建模主要包括状态图、活动图、时序图和协作图。知识目标知识目标(1)认识动态建模的作用。(2)掌握动态建模过程中的各种交互图。能力目标能力目标 使用Rational Rose建模工具绘制状态图、活动图、时序图和协作图。项目十一 动态建模任
2、务一任务一 认识动态建模认识动态建模动态建模描述的是参与者如何通过交互实现系统中的用例。系统中对象的交互是通过时序图、协作图或者活动图来描述的,同时,用例模型中用例实现所使用的类会在状态图中得以描述。项目十一 动态建模前面通过类图和对象图介绍了系统的静态结构建模,本项目将介绍系统的动态结构模型。UML提供了状态图、活动图、时序图和协作图来描述系统的结构和行为,它们适合于描述系统中的对象在执行期间不同的时间点是如何动态交互的。一组对象为了实现一些功能而进行通信称之为交互,可以通过状态图、活动图、时序图和协作图来描述系统的动态行为。通过对软件系统的静态结构和动态行为的描述,开发团队和用户易于理解目
3、标系统的功能及执行结果。项目十一 动态建模任务二任务二 认认识识状状态态图图一、状态图概述一、状态图概述状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。通常创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统或组件的复杂行为。项目十一 动态建模状态图主要用来描述对象、子系统、系统的生命周期。状态图适合描述跨越多个用例的对象在其生命周期中的各种状态及其状态之间的转换。这些对象可以是类、接口、构件或者节点。状态图常用于对反应型对象建模,反应型对象在接收到一个时间之前通常处于空闲状态,当这个对象对当
4、前事件作出反应后又处于空闲状态等待下一个事件。项目十一 动态建模状态图能帮助分析员、设计员和开发人员理解系统中对象的行为。类图和对应的对象图只展示出系统的静态方面。它们展示的是系统静态层次和关联,并能告诉用户系统的行为是什么。但它们不能说明这些行为的动态细节。开发人员尤其要知道对象是如何表现自己的行为的,因为他们要用软件实施这些行为。仅仅实施对象是不够的,开发人员还必须让对象做该做的事情。状态图可以确保开发人员能够清楚地了解对象应该做什么,而不用自己去猜测它。如果有了一幅展示对象行为的清晰图景,那么开发小组构造出的系统满足需求的可能性就会大大增加。项目十一 动态建模二、状态图的组成二、状态图的
5、组成状态图是由表示状态的节点和表示状态之间转换的带箭头的直线组成。若干个状态由一条或者多条转换箭头连接,状态的转换由事件触发,如图11-1所示。图11-1 状态图项目十一 动态建模1起点和终点起点和终点起点代表状态图的一个初始状态,此状态代表状态图的起始位置。起点只能作为转换的源,而不能作为转换的目标。起点在一个状态图中只允许有一个。终点代表状态图的最后状态,此状态代表状态图的终止位置。终点只能作为转换的目标,而不能作为转换的源。终点在一个状态图中可以有一个或多个,表示一个活动图的最后和终结状态。状态图的起点与终点如图11-2所示。项目十一 动态建模图11-2 状态图的起点与终点项目十一 动态
6、建模2状态状态(State)状态是指对象在其生命周期中,满足某些条件、执行某些活动或等待某些事件时的一个状况。状态指的是对象的状态,用圆角的矩形框表示状态,如图11-3所示。例如:发票(对象)被支付(状态);小车(对象)正在停着(状态);发动机(对象)正在工作(状态);电灯(对象)开着(状态)。项目十一 动态建模图11-3 登录提示状态项目十一 动态建模 1)状态的特征通常一个状态由名称、进入/退出动作、内部转换、子状态和延迟事件等五个部分组成,如表11-1所示。如图11-4所示,常常使用三种标准事件:entry(进入),do(做)和exit(退出)。“进入”用来指定进入一个状态的动作;“退出
7、”用来指定退出一个状态的动作;“做”事件用来指定在该状态下的动作(如发送一条消息)。项目十一 动态建模项目十一 动态建模图11-4 初始状态、原子状态和结束状态项目十一 动态建模“动作”是对象类中一个操作的执行,动作具有原子和不可中断特性。“事件”指的是发生且引起某些动作执行的事情,即事件表示在某一特定的时间或空间出现的能够引发状态改变的运动变化。事件有很多,大致可以分为入口事件、出口事件、动作事件、信号事件、调用事件、修改事件、时间事件和延迟事件等,如表11-2所示。项目十一 动态建模项目十一 动态建模 2)状态的类型状态的类型有:初始状态、原子状态和结束状态,如图11-4所示。组合状态和子
8、状态,并发状态,历史状态等。组合状态和子状态如图11-5所示。子状态是指被嵌套在另外一个状态中的状态。组合状态是指含有子状态的状态。组合状态也可以有初态和终态。项目十一 动态建模图11-5 组合状态与子状态项目十一 动态建模并发状态指一个对象在同一时刻可以处在多种状态,如图11-6所示。图11-6 并发状态项目十一 动态建模历史状态代表上次离开组成状态时的最后一个活动子状态,它用一个包含字母“H”的小圆圈表示。每当转换到组成状态的历史状态时,对象便恢复到上次离开该组成状态时的最后一个活动子状态,并执行入口动作,如图11-7所示。项目十一 动态建模图11-7 历史状态项目十一 动态建模 3转换转
9、换转换表示当一个特定事件发生或者某些条件满足时,一个源状态下的对象完成一定的动作后将发生状态转变,转向另一个称为目标状态的状态。当发生转换时,转换进入的状态为活动状态,转换离开的状态变为非活动状态。转换用箭头表示,如果没有标注事件,则本转移为自动转移。转换通常分为外部转换、内部转换、完成转换和复合转换四种。一个转换一般包括五部分信息:源状态、目标状态、触发事件、监护条件和动作。转换的特征如表11-3所示。项目十一 动态建模项目十一 动态建模三、使用三、使用Rational Rose绘制状态图绘制状态图状态图显示了对象的动作行为、对象可能存在的各种状态、对象创建时的状态、对象删除时的状态、对象如
10、何从一种状态转移到另一种状态以及对象在不同状态中干什么。1创建状态图创建状态图(1)在浏览器中右击类。(2)选择“New”“Statechart Diagram”,对该类创建一个状态图,并命名该图,如图11-8所示。项目十一 动态建模图11-8 创建状态图项目十一 动态建模 2在图中增加状态,初始和终止状态在图中增加状态,初始和终止状态(1)选择工具栏的【State】按钮,单击框图增加一个状态,双击状态命名。(2)选择工具栏的“Start State”和“End State”,单击框图增加初始状态和终止状态,如图11-9所示。初始状态是对象首次实例化时的状态,状态图中只有一个初始状态。终止状态
11、表示对象在内存中被删除之前的状态,状态图中有0个、1个或多个终止状态。项目十一 动态建模图11-9 增加状态项目十一 动态建模 3状态之间增加交接状态之间增加交接(1)选择【State Transition】工具栏按钮。(2)从一种状态拖到另一种状态。(3)双击“交接”弹出对话框,可以在“General”中增加事件(Event),在“Detail”中增加保证条件(Guard Condition)等交接的细节,如图11-10、图11-11所示。事件用来在交接中从一个对象发送给另一个对象,保证条件放在中括号里,控制是否发生交接。项目十一 动态建模图11-10 增加事件项目十一 动态建模图11-11
12、 增加保证条件项目十一 动态建模 4在状态中增加活动在状态中增加活动(1)右击状态并选择“Open Specification”。(2)选择【Action】标签,右击空白处并选择“Insert”。(3)双击新活动(清单中有“Entry/”)打开活动规范,在“Name”中输入活动细节,如图11-12所示。项目十一 动态建模图11-12 在状态中增加活动项目十一 动态建模任务三任务三 认认识识活活动动图图一、活动图概述一、活动图概述活动图(Activity Diagram,动态图)阐明了业务用例实现的工作流程。业务工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作。业务用例由一
13、系列活动组成,它们共同为业务主角生成某些工件。工作流程通常包括一个基本工作流程和一个或多个备选工作流程。工作流程的结构使用活动图来进行说明。项目十一 动态建模活动图与常用的程序流程图相似,它们的主要区别在于程序流程图一般用来表示串行过程,而活动图则可以用来表示并行过程,如图11-13所示。项目十一 动态建模图11-13 活动图项目十一 动态建模使用活动图主要目的是:(1)描述一个操作执行过程中(操作实现的实例化)所完成的工作(动作)。(2)描述对象内部的工作。(3)显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象。(4)显示用例的实例是如何执行动作以及如何改变对象状态的。(5)说
14、明一次商务活动中的参与者、工作流、组织和对象是如何工作的。项目十一 动态建模二、活动图的组成二、活动图的组成1动作状态动作状态动作状态是原子性的动作或操作的执行状态,它不能被外部事件的转换中断。动作状态的原子性决定了动作状态要么不执行,要么就完成执行,不能中断。如发送一个信号、设置某个属性值等。动作状态没有子结构、内部转换或内部活动,它不能包括事件触发的转换。动作状态有如下特点:项目十一 动态建模(1)动作状态是原子的,它是构造活动图的最小单位,无法分解为更小的部分。(2)动作状态是不可中断的,它一旦运行就不能中断,一直运行到结束。(3)动作状态是瞬时的行为,它所占用的处理时间极短,有时甚至可
15、以忽略。(4)动作状态有入转换,入转换可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部动作的完成为起点,与外部事件无关。项目十一 动态建模(5)动作状态与状态图中的状态不同,它不能有入口动作和出口动作,也不能有内部转移。(6)动作状态允许多处出现在同一活动图中。项目十一 动态建模2活动状态活动状态活动状态是非原子性的,用来表示一个具有子结构的纯粹计算的执行。活动状态可以分解成其他子活动或动作状态,可以使转换离开状态的事件从外部中断。活动状态可以有内部转换、入口动作和出口动作。活动状态至少具有一个输出完成转换,当状态中的活动完成时该转换激发。活动状态用两边为弧的条形框表示,
16、中间填活动名。活动分为简单活动和组合活动。简单活动是指不能再分解的活动;组合活动是指可以再分解的复杂活动。活动状态有如下特点:项目十一 动态建模(1)活动状态可以分解成其他子活动或动作状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断。(2)活动状态的内部活动可以用另一个活动图来表示。(3)活动状态可以有入口动作和出口动作,也可以有内部转移。(4)动作状态是活动状态的一个特例,如果某一个活动状态只包括一个动作,那么它就是一个动作状态。动作状态与活动状态如图11-14所示。项目十一 动态建模图11-14 动作状态与活动状态项目十一 动态建模3组合活动组合活动组合活动也叫复合活动。在UM
17、L的活动图中,一个大的活动可以分为若干个动作或子活动,这些动作或子活动本身又可以组成一个活动图,如图11-15所示。项目十一 动态建模图11-15 组合活动与简单活动项目十一 动态建模4分叉与结合分叉与结合并发指的是在同一时间间隔内有两个或者两个以上的活动执行。对于一些复杂的大型系统而言,对象在运行时往往不只存在一个控制流,而是存在两个或者多个并发运行的控制流。为了对并发的控制流建模,在UML中引入了分叉和结合的概念。分叉用于表示将一个控制流分成两个或者多个并发运行的分支,结合用来表示并行分支在此得到同步。项目十一 动态建模分叉用粗黑线表示。分叉具有一个输入转换、两个或者多个输出转换,每个转换
18、都可以是独立的控制流。结合与分叉相反,结合具有两个或者多个输入转换、一个输出转换,先完成的控制流需要在此等待,只有当所有的控制流都到达结合点时,控制才能继续向下进行,如图11-16所示。项目十一 动态建模图11-16 分叉与结合项目十一 动态建模5分支与合并分支与合并分支在活动图中很常见,它是转换的一部分,它将转换路径分成多个部分,每一个部分都有单独的监护条件和不同的结果。当动作流遇到分支时,会根据监护条件的真假来判定动作的流向。分支的每个路径监护条件应该是互斥的,这样可以保证只有一个路径的转换被激发。合并指的是两个或者多个控制路径在此汇合,合并和分支常常成对使用,合并表示从对应分支开始的条件
19、的行为结束。项目十一 动态建模在活动图中,分支与合并都用空心的菱形表示,分支有一个输入箭头和两个输出箭头,而合并有两个输入箭头和一个输出箭头,如图11-17所示。图11-17 分支与合并项目十一 动态建模6泳道泳道为了活动的职责进行组织而将活动图中的活动状态分为不同的组,称为泳道。每个泳道代表特定含义的状态职责部分。在活动图中,每个活动只能明确地属于一个泳道,泳道表示了哪些活动是由哪些对象进行的。每个泳道都有一个与其他泳道不同的名称。在活动图中,每个泳道通过垂直实线与它的邻居泳道相分离。在泳道的上方是泳道的名称,不同的泳道中的活动既可以顺序进行也可以并发进行,如图11-18所示。项目十一 动态
20、建模图11-18 泳道项目十一 动态建模7对象流对象流对象可以在活动图中显示,表示动作状态或者活动状态与对象之间的依赖关系。对象可以作为动作的输入或输出,或简单地表示指定动作对对象的影响。对象用矩形符号来表示,在矩形的内部有对象名或类名。对象流用带有箭头的虚线表示,如图11-19所示。项目十一 动态建模图11-19 对象流项目十一 动态建模对象流中的对象有如下特点:(1)一个对象可以由多个动作操纵。(2)一个动作输出的对象可以作为另一个动作输入的对象。(3)同一个对象可以多次出现在活动图中,每一次出现表明该对象正处于对象生存期的不同时间点。项目十一 动态建模8动作流动作流动作流是指所有动作状态
21、之间的转换。在活动图中,一个动作状态执行完成本状态需要完成的动作后会自动转换到另外一个状态,一般不需要特定事件的触发。动作流用带箭头的直线表示,箭头的方向指向转入的方向,如图11-20所示。项目十一 动态建模图11-20 动作流项目十一 动态建模三、使用三、使用Rational Rose绘制活动图绘制活动图活动图显示了从活动到活动的流。活动图可以在分析系统业务时用来演示业务流,也可以在收集系统需求时显示一个用例中的事件流。活动图显示了系统中某个业务或者某个用例中要经历哪些活动,以及这些活动按什么顺序发生。项目十一 动态建模1创建活动图创建活动图(见图见图11-21)(1)用于分析系统业务:在浏
展开阅读全文