第6章_顺序图_第1页
第6章_顺序图_第2页
第6章_顺序图_第3页
第6章_顺序图_第4页
第6章_顺序图_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章第五章 顺序图顺序图学习内容学习内容n顺序图的基本概念顺序图的基本概念n顺序图的组成顺序图的组成n顺序图中的项目相关概念顺序图中的项目相关概念n案例分析与练习案例分析与练习顺序图的基本概念n在在UML的表示中,顺序图将交互关系表示为一个二维图。的表示中,顺序图将交互关系表示为一个二维图。其中,纵向是时间轴,时间沿竖线向下延伸。横向代表了其中,纵向是时间轴,时间沿竖线向下延伸。横向代表了在协作中各独立对象的角色。角色使用生命线进行表示,在协作中各独立对象的角色。角色使用生命线进行表示,当对象存在时,生命线用一条虚线表示,此时对象不处于当对象存在时,生命线用一条虚线表示,此时对象不处于激活状

2、态,当对象的过程处于激活状态时,生命线是一个激活状态,当对象的过程处于激活状态时,生命线是一个双道线。顺序图中的消息使用从一个对象的生命线到另一双道线。顺序图中的消息使用从一个对象的生命线到另一个对象生命线的箭头表示,箭头以时间顺序在图中从上到个对象生命线的箭头表示,箭头以时间顺序在图中从上到下排列。下排列。顺序图例子顺序图例子从参与者到对象和从从参与者到对象和从对象到参与者之间发对象到参与者之间发送的消息送的消息从对象传递给另一从对象传递给另一个对象的消息个对象的消息在类图中的类在类图中的类的对象的对象使用系统的使用系统的参与者,这参与者,这个系统是为个系统是为某个用例的某个用例的某个场景设

3、某个场景设计的计的对象生命线表示从上到对象生命线表示从上到下的时间顺序,消息下的时间顺序,消息1在在消息消息2之前发生,消息之前发生,消息2在消息在消息3之前发生之前发生窄长方框用窄长方框用以强调这个以强调这个部分处于活部分处于活动状态动状态顺序图用来表示用例中的行为顺序。当执行一个用顺序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。或状态机中引起转换的事件。顺序图展示对象之间的交互,这些交互是指在场景顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。或用例的事件流中发

4、生的。 顺序图属于动态建模。顺序图属于动态建模。 顺序图的重点在消息序列上,也就是说,描述消息顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序。送消息的时间顺序。浏览顺序图的方法是:从上到下查看对象间交换的浏览顺序图的方法是:从上到下查看对象间交换的消息。消息。顺序图中的事物及解释顺序图中的事物及解释事物事物名称名称解释解释图图参与参与者者与系统、子系统或类发生交互作用的外与系统、子系统或类发生交互作用的外部用户部用户(参见用例图定义参见用例图定义)。对象对象顺序图的横轴上是与序列有关的对象。顺

5、序图的横轴上是与序列有关的对象。对象的表示方法是:矩形框中写有对象对象的表示方法是:矩形框中写有对象或类名,且名字下面有下划线。或类名,且名字下面有下划线。生命生命线线坐标轴纵向的虚线表示对象在序列中的坐标轴纵向的虚线表示对象在序列中的执行情况执行情况(即发送和接收的消息,对象的即发送和接收的消息,对象的活动活动)这条虚线称为对象的这条虚线称为对象的“生命线生命线”。消息消息符号符号消息用从一个对象的生命线到另一个对消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。在图中从上到下排列。顺序图的基本概念n顺序图作为一种描述在

6、给定语境中消息是如何在对顺序图作为一种描述在给定语境中消息是如何在对象间传递的图形化方式,在使用其进行建模时,主象间传递的图形化方式,在使用其进行建模时,主要可以将其用途分为以下三个方面:要可以将其用途分为以下三个方面: (1)确认和丰富一个使用语境的逻辑表达。一个系确认和丰富一个使用语境的逻辑表达。一个系统的使用情境就是系统潜在的使用方式的描述,也统的使用情境就是系统潜在的使用方式的描述,也就是它的名称所要描述的。一个使用情境的逻辑可就是它的名称所要描述的。一个使用情境的逻辑可能是一个用例的一部分,或是一条控制流。能是一个用例的一部分,或是一条控制流。 (2)细化用例的表达。顺序图的主要用途

7、之一,细化用例的表达。顺序图的主要用途之一,就是把用例表达的需求,转化为进一步、更加正就是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者式层次的精细表达。用例常常被细化为一个或者更多的顺序图。更多的顺序图。 (3)有效地描述如何分配各个类的职责以及各类有效地描述如何分配各个类的职责以及各类具有相应职责的原因。我们可以根据对象之间的具有相应职责的原因。我们可以根据对象之间的交互关系来定义类的职责,各个类之间的交互关交互关系来定义类的职责,各个类之间的交互关系构成一个特定的用例。例如,系构成一个特定的用例。例如,“Customer对对象向象向Address对象请求

8、其街道名称对象请求其街道名称”指出指出Customer对象应该具有对象应该具有“知道其街道名知道其街道名”这个这个职责。职责。顺序图与用例图和类图的关系顺序图与用例图和类图的关系5.2 顺序图的组成顺序图中的对象可以是系统的参与者或者任何有效的系统对顺序图中的对象可以是系统的参与者或者任何有效的系统对象。对象的表示形式也和对象图中的对象的表示方式一样,象。对象的表示形式也和对象图中的对象的表示方式一样,使用包围名称的矩形框来标记,所显示的对象及其类的名称使用包围名称的矩形框来标记,所显示的对象及其类的名称带有下划线,二者用冒号隔开,使用带有下划线,二者用冒号隔开,使用“对象名对象名 :类名:类

9、名”的形的形式,对象的下部有一条被成为式,对象的下部有一条被成为“生命线生命线”的垂直虚线。的垂直虚线。将对象置于时序图的顶部意味着在交互开始的时候对象就已将对象置于时序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的。互的过程中被创建的。n创建对象的两种表示方法: 创建一个对象的主要步骤是发送一个create消息到该对象。对象被创建后就会有生命线,这与顺序图中的任何其他对象一样。创建一个对象后,就可以像顺序图中的其他对象那样来发送和接收消息。在处理新创建的对象,或顺序图中的其他对象

10、时,都可以发送destroys消息来删除对象。要想说明某个对象被销毁,需要在被销毁对象的生命线上放一个X字符。n生命线(生命线(Lifeline)是一条垂直的虚线,用来表示顺)是一条垂直的虚线,用来表示顺序图中的对象在一段时间内的存在。序图中的对象在一段时间内的存在。n每个对象的底部中心的位置都带有生命线。生命线每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从顺序图的顶部一直延伸到底部,是一个时间线,从顺序图的顶部一直延伸到底部,所用时间取决于交互持续的时间,也就是说生命线所用时间取决于交互持续的时间,也就是说生命线表现了对象存在的时段。表现了对象存在的时段。n对象与生命线结合在一

11、起称为对象的生命线。对象对象与生命线结合在一起称为对象的生命线。对象的对象存在的时段包括对象在拥有控制线程时或被的对象存在的时段包括对象在拥有控制线程时或被动对象在控制线程通过时存在。当对象在拥有控制动对象在控制线程通过时存在。当对象在拥有控制线程时,对象被激活,作为线程的根。线程时,对象被激活,作为线程的根。n顺序图可以描述对象的激活(顺序图可以描述对象的激活(Activation),),激活是对象操作的执行,它表示一个对象直接激活是对象操作的执行,它表示一个对象直接地或通过从属操作完成操作的过程。它对执行地或通过从属操作完成操作的过程。它对执行的持续时间和执行与其调用者之间的控制关系的持续

12、时间和执行与其调用者之间的控制关系进行建模。进行建模。n激活在顺序图中用一个细长的矩形框表示,它激活在顺序图中用一个细长的矩形框表示,它的顶端与激活时间对齐而底端与完成时间对齐。的顶端与激活时间对齐而底端与完成时间对齐。被执行的操作根椐不同风格表示成一个附在激被执行的操作根椐不同风格表示成一个附在激活符号旁或在左边空白处的文字标号。活符号旁或在左边空白处的文字标号。n在任何一个软件系统中,对象都不是孤立存在的,它们之间通过消息进行通信。消息是用来说明顺序图中不同活动对象之间的通信,因此,消息可以激发某个操作、创建或解构某对象。在顺序图中,消息是从一对象的生命线指向另一个对象的生命线的直线箭头来

13、表示,箭头上面还可以表明要发送的消息名。在各对象间,消息发送的次序由它们在垂直轴上的相对位置决定。如图所示,发送消息2的时间是在发送消息1之后。1)消息格式)消息格式: operation (parameter list) 向哪个对象发消息实际上就是调用它的类中的向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指向的对象所在类的操作,就是调用箭头指向的对象所在类的 一个一个operation。 订单类发消息给客户类调用客户类中的订单类发消息给客户类调用客户类中的“验证验证客户客户”操作操作2)消息种类:)消息种类:n简单消息简单消息n返回消息返回消息n同步消息同步消息n限时消息限时消

14、息n异步消息异步消息5.3 创建对象和分支、从属流创建对象和分支、从属流n 到目前为止,顺序图中的对象在创建顺序图都已经创建好的。事实上,顺序图中的对象并不一定需要在顺序图的整个交互期间存活,对象可以根据传递进来的消息创建或销毁。在本节将学习如何在创建顺序图的过程中创建对象,以及使用分支和从属流来控制顺序图的控制流。21n创建一个对象指的是发送者发送一个实例化消息后实创建一个对象指的是发送者发送一个实例化消息后实例化对象的结果。例化对象的结果。n销毁对象指的是将对象销毁并回收其拥有的资源,它销毁对象指的是将对象销毁并回收其拥有的资源,它通常是一个明确的动作,也可以是其它动作、约束或通常是一个明

15、确的动作,也可以是其它动作、约束或垃圾回收机制的结果。垃圾回收机制的结果。n在顺序图中,创建对象操作的执行使用消息的箭头表在顺序图中,创建对象操作的执行使用消息的箭头表示,箭头指向被创建对象的框。示,箭头指向被创建对象的框。n在顺序图中,对象被销毁是使用在对象的生命线上画在顺序图中,对象被销毁是使用在对象的生命线上画大大表示,在销毁新创建的对象,或者顺序图中的任表示,在销毁新创建的对象,或者顺序图中的任何其他对象时,都可以使用。它的位置是在导致对象何其他对象时,都可以使用。它的位置是在导致对象被销毁的信息上,或者在对象自我终结的地方。被销毁的信息上,或者在对象自我终结的地方。n在UML中,存在

16、两种方式可以来修改顺序图中消息的控制流,分别是:分支和从属流。n分支是指的是从同一点发出多个消息的并指向不同的对象,根据条件是否互斥,可以有条件和并行两种结构。由于顺序图只表示某一个活动按照时间顺序的经历过程,所以在Rational Rose 2003中,对顺序图的分支画法没有明显的支持。 n从属流指的是从同一点发出多个消息指向同一个对象的不同生命线。从属流在Rational Rose 2003中不支持,因为添加从属流以后会明显增加顺序图的复杂度。 255.5 时序图建模技术设置交互的语境。通过识别对象在交互中扮演的角色,设置交互的场景。为每个对象设置生命线。从引发某个消息的信息开始,在生命线

17、之间画出从顶到底依次展开的消息,显示每个消息的特性(如参数)。如果需要可视化消息的嵌套或实际计算发生时的时间点,可以用激活修饰每个对象的生命期。如果需要说明时间或空间的约束,可以用时间标记修饰每个消息,并附上合适的时间和空间约束。如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。 1 建模时间建模时间n消息箭头通常是水平的,说明传递消息的时间很短,在此期间不会“发生”其他事件。对多数计算而言,这是正确的假设。但有时从一个对象到另一个对象之间的消息之间可能存在一定的时间延迟,即消息传递不是瞬间完成的。如果消息的传送需要一定时间,在此期间可以出现其他事件(来自对方的消息到达),则消

18、息箭头可以画为向下倾斜的。这种情况发生在两个应用程序通过网络相互通信时。如图 272 建模迭代建模迭代n通过建模迭代可以实现消息的重复执行。在顺序图中,建模人员常用的建模迭代消息是通过一个矩形把重复执行的消息包括在矩形框中,并且提供一个控制重复执行的控制条件。如图所示重复执行的消息。293 消息中的参数和序号消息中的参数和序号n顺序图中的消息除了具有消息名称之外还可以包含许多附加的信息。例如,在消息中包含参数,返回值和序列表达式。n消息可以与类中的操作等效。即消息可以带有可传递到被调用对象的参数列表,并且最多可以包含一个返回给调用对象的返回值。下面的示例演示了如何使用指定参数和返回值的消息来计

19、算并且返回一个数平均值。如图所示:31概念模型时序图实现业务用例实现业务用例消息细致到方法级别消息细致到方法级别复杂的例子复杂的例子信息亭售票中心信用卡服务从这个例子中可以看出:从这个例子中可以看出:Kjosk类中的操作有类中的操作有 Show Available (seat-list) Demand Payment (cost) printtickets (performance, seats) eject cardBox Office中的操作有中的操作有 Request (count, performance) Select Seats Insert Card (Card Number)

20、authorizedCredit Card Service类中的操作有类中的操作有 charge(card number, cost)n 此图是描述购票这个用例的顺序图。顾客在信息亭与此图是描述购票这个用例的顺序图。顾客在信息亭与售票中心通话触发了这个用例的执行。顺序图中付款售票中心通话触发了这个用例的执行。顺序图中付款这个用例包括售票中心与信息亭和信用卡服务处使用这个用例包括售票中心与信息亭和信用卡服务处使用消息进行通信过程。消息进行通信过程。n此图中存在的事物有:n 对象对象(信息亭信息亭 Kjosk ,售票中心,售票中心 Box Office, 信信用卡服务用卡服务 Credit Car

21、d Service ),生命线,消息符号。,生命线,消息符号。n信息亭发信息亭发Request (count, performance)消息给售消息给售票中心,表示调用售票中心类的票中心,表示调用售票中心类的Request (count, performance)操作,来查询演出的信息。操作,来查询演出的信息。n售票中心发售票中心发Show Available(seat-list)消息给信息亭,消息给信息亭,表示调用信息亭类中的表示调用信息亭类中的Show Available(seat-list)操操作,给出可用的座位表。作,给出可用的座位表。UML- 38 -1 指出左图中的参与者?指出左图

22、中的参与者?A B C D2 哪些是对象?哪些是对象?A B C D3 Server类调用了类调用了CreditService类类中的什么操作?中的什么操作?A B C D练习题练习题1. A 2. B 3. B 顺序图案例分析1. 需求分析需求分析n我们可以通过更加具体的描述来确定工作流程,基本工作我们可以通过更加具体的描述来确定工作流程,基本工作流程如下:流程如下: (1)李老师希望通过系统查询某名学生的学科成绩。)李老师希望通过系统查询某名学生的学科成绩。 (2)李老师通过用户界面录入学生的学号以及学科科目请)李老师通过用户界面录入学生的学号以及学科科目请求学生信息。求学生信息。 (3)

23、用户界面根据学生的学号向数据库访问层请求学生信)用户界面根据学生的学号向数据库访问层请求学生信息。息。 (4)数据库访问层根据学生的学号加载学生信息。)数据库访问层根据学生的学号加载学生信息。 (5)数据库访问层根据学生信息和学科科目获取该名学生)数据库访问层根据学生信息和学科科目获取该名学生的分数信息。的分数信息。 (6)数据库访问层将学生信息和分数信息提供给用户界面。)数据库访问层将学生信息和分数信息提供给用户界面。 (7)用户界面将学生信息和分数信息显示出来。)用户界面将学生信息和分数信息显示出来。顺序图案例分析n建模顺序图的下一步是从左到右布置在该工作流程中所有的参与者和对象,同时也包

24、含要添加消息的对象生命线。 顺序图案例分析例:图书馆管理系统的时序图n1. 系统管理员添加书籍的时序图n2. 图书管理员处理借书的时序图(不包括 预留书籍的情况)n3. 系统管理员删除书目的时序图n4. 借阅者预留书籍的时序图1. 系统管理员添加书籍的时序图 : Item : Administrator : Maintenance Window : Title1: add item( )4: create(Integer, Title)Check if correspondingtitle exist2: find(String)3: return true2. 图书管理员处理借书的时序图(不

25、包括预留书籍的情况)3. 系统管理员删除书目的时序图4. 借阅者预留书籍的时序图theBorrower : BorrowerWeb ApplicationtheTitle : Title1: Login2: find(String)3: Return true4: reserve( )例:超市管理系统1.1.售货员销售商品顺序图售货员销售商品顺序图工作流程如下:工作流程如下:(1)顾客希望通过售货员购买商品,售货员希望通过售货管理子系统处理)顾客希望通过售货员购买商品,售货员希望通过售货管理子系统处理商品销售。商品销售。(2)顾客将购买商品提交给售货员。)顾客将购买商品提交给售货员。(3)售货

26、员通过销售管理子系统中的管理商品界面获取商品信息。)售货员通过销售管理子系统中的管理商品界面获取商品信息。(4)管理商品界面根据商品的编号将商品类实例化并请求该商品信息。)管理商品界面根据商品的编号将商品类实例化并请求该商品信息。(5)商品类实例化对象根据商品的编号加载商品信息并提供给管理商品界)商品类实例化对象根据商品的编号加载商品信息并提供给管理商品界面。面。(6)管理商品界面对商品进行计价处理。)管理商品界面对商品进行计价处理。(7)管理商品界面更新销售商品信息。)管理商品界面更新销售商品信息。(8)管理商品界面显示处理商品。)管理商品界面显示处理商品。(9)售货员将货物提交给顾客。)售

27、货员将货物提交给顾客。创建系统动态模型2.2.统计分析员查询商品信息顺序图统计分析员查询商品信息顺序图工作流程如下:工作流程如下:(1)统计分析员希望通过统计分析子系统查询商品信息。)统计分析员希望通过统计分析子系统查询商品信息。(2)统计分析员通过统计分析子系统中的查询商品信息界面获取商品信息。)统计分析员通过统计分析子系统中的查询商品信息界面获取商品信息。(3)查询商品信息界面根据商品的属性或特征将商品类实例化并请求该类商)查询商品信息界面根据商品的属性或特征将商品类实例化并请求该类商品信息。品信息。(4)商品类实例化对象加载商品信息,并提供给管理商品界面。)商品类实例化对象加载商品信息,

28、并提供给管理商品界面。(5)查询商品信息界面显示该类商品信息。)查询商品信息界面显示该类商品信息。(6)统计分析员请求查询商品信息界面制定出该类商品报表。)统计分析员请求查询商品信息界面制定出该类商品报表。(7)查询商品信息界面制定该类商品报表。)查询商品信息界面制定该类商品报表。(8)查询商品信息界面将该类商品报表显示给统计分析员。)查询商品信息界面将该类商品报表显示给统计分析员。创建系统动态模型3.3.库存管理员处理商品入库库存管理员处理商品入库 工作流程如下:工作流程如下:(1)库存管理员希望通过库存管理子系统将购买的货物处理入库)库存管理员希望通过库存管理子系统将购买的货物处理入库(2)库存管理员通过库存管理子系统中的商品入库界面获取商品信息。)库存管理员通过库存管理子系统中的商品入库界面获取商品信息。(3)商品入库界面根据商品的编号将商品类实例化并请求该类商品信息。)商品入库界面根据商品的编号将商品类实例化并请求该类商品信息。(4)商品类实例化对象根据商品的编

温馨提示

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

评论

0/150

提交评论