顺序图(Sequence Diagram)是强调消息时间顺序的交互图,它描述了对象之间传送消息的时间顺序,用于表示用例中行为的顺序。顺序图将交互关系表示为一个二维图,横向轴代表了在协作中各独立对象的类元角色,纵向轴是时间轴,时间沿竖线向下延伸。
顺序图主要用于按照交互发生的一系列顺序来显示对象之间的这些交互。开发者一般认为顺序图只对他们有意义,然而,组织中的业务人员会发现,顺序图显示不同的业务对象如何交互,这对于交流当前业务如何进行很有用。除记录组织的当前事件外,一个业务级的顺序图还能被当做需求文件使用,为实现未来系统传递需求。在项目的需求阶段,分析师能通过提供更加正式的层次表达,把用例带入下一层次。这种情况下,用例常常被细化为一个或者更多的顺序图。
组织中的技术人员会发现,顺序图在记录未来系统的行为应该如何表现时非常有用。在设计阶段,架构师和开发者能使用顺序图挖掘出系统对象之间的交互,这样可以了解整个系统设计。
顺序图的主要用途之一,是把用例表达的需求转化为更加正式的精细表达。用例常常被细化为一个或者多个顺序图。除了在设计新系统方面的用途外,顺序图还能用来记录存在系统(称为“遗产”)的对象如何交互。当把系统移交给另一个人或组织时,顺序图很有用。
Java应用程序由许多类构成,是Java实现面向对象应用程序的核心。类图主要描述Java应用程序中各种类之间的相互静态关系,如类的继承、抽象、接口及各种关联。在利用UML设计Java应用程序时,仅仅使用类图来描述这些静态关系,利用可视化工具,来实现Java应用程序的代码自动生成是远远不够的。我们还必须描述各种类相互之间的协作关系和动态关系,如时间序列上的交互行为。其中UML顺序图就是用来描述类与类之间的方法调用过程(或消息发送)是如何实现的。
在UML图中,顺序图与用例图和类图之间的关系如图6.1所示。