UML序列图

在UML中,仅凭用例和类无法描述系统实际的运作形式。为了满足这方面的要求,就需要使用交互图类型中的序列图

序列图是一种动态建模方法,主要描述系统各组成部分之间的交互次序。使用序列图描述系统特定用例时,会涉及该用例所需要的对象,以及对象之间的交互和交互发生的次序。

序列图描述了对象之间传递消息的时间顺序,用来表示用例中的行为顺序。当执行一个用例行为时,序列图中的每条消息都对应了一个类操作或状态机中引起转换的触发事件。它着重显示了参与相互作用的对象和交换消息的顺序。序列图和通信图均显示了交互,但它们强调了交互的不同方面。序列图显示了时间顺序,但角色间的关系是隐式的。通信图表现了角色间的关系,并将消息关联至关系,但时间顺序由顺序号表达,并不十分明显。每种图都应根据主要的关注焦点而使用。

什么是序列图

序列图代表了一个相互作用、以时间为次序的对象之间的通信集合。

序列图的主要用途之一是为用例进行逻辑建模,即前面设计和建模的任何用例都可以使用序列图进一步阐明和实现。实际上,序列图的主要用途之一是用来为某个用例的泛化功能提供其所缺乏的解释,即把用例表达的需求转化为进一步、更加正式的精细表达。用例常常被细化为一个或者更多的序列图。序列图除了具有在设计新系统方面的用途外,还能用来记录一个已存在系统的对象如何交互。例如,“查询借阅信息”是图书管理系统模型中的一个用例,它是对其功能非常泛化的描述。尽管以这种形式建模的业务的所有需求,从最高层次理解系统的作用看是必要的,但对于进入设计阶段毫无帮助。需要在这个用例上进行更多的分析,才能为设计阶段提供足够的信息。

序列图可以用来演示某个用例最终产生的所有路径。以“查询借阅信息”用例为例,建模序列图来演示查询借阅信息时所有可能的结果。考虑一下该用例的所有可能的工作流,除了比较重要的操作流——查询成功外,它至少包含如下的工作流。

  • 输入学生信息,显示该学生的所有借阅信息。
  • 输入的学生信息在系统中不存在。

上述的每一种情况都需要完成一个独立的序列图,以便能够处理在查询借阅信息时遇到的每一种情况,使系统具有一定的健壮性。同时,在最后转向实现时,必须用具体的结构和行为去实现这些用例。更确切地说,尽管建模人员通过用例模型描述了系统功能,但在系统实现时必须得到一个类模型,才能用面向对象的程序设计语言实现软件系统。序列图在对用例进行细化描述时可以指定类的操作。在这些操作和属性的基础上,就可以导出完整的类模型结构。

序列图的元素

序列图主要包括对象、生命线、消息和激活期4个标记符。在UML中,序列图以二维图表的形式描述对象间的交互。其中,纵向是时间轴,时间沿竖线向下延伸。横向轴代表了协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象处于激活状态时,生命线是一个双道线。

序列图的元素

生命线有两种状态:休眠状态和激活状态。其中,激活状态下对象就处在激活期,休眠和激活都用来表示对象所处的状态。消息用从一个对象到另一个对象生命线的箭头表示,箭头以时间顺序在图中从上到下排列,如上图所示。从该图容易看出,序列图清楚地描述了随时间顺序推移的控制流轨迹。

赞(1)
未经允许不得转载:极客笔记 » UML序列图
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址