Java与与UML交互图交互图
前面我们主要讨论的是UML类图,下面我们要讨论的是另一种UML图——交互图(Interaction Diagram)。交互图描述的是一组对
象之间的交互过程,或者说,这里我们实际上要回答这样一个问题:“方法调用过程在UML中怎样表示?”
UML交互图交互图
本文将通过一个非常简单的交易系统来说明UML交互图。这个系统包含六个Java类。从前面几篇文章中,
我们已经知道UML类图是分析Java程序结构的有效方法,图一显示了这个交易和支付系统的类图。为了更
清楚地说明各个类的职能和角色,图一利用了前面介绍过的彩色类原型表示法。
图一:一个简单交易系统的UML类图
如果我们跟踪任意一个Java程序的执行过程,就会发现,这个过程包含了一个或者多个对类和对象的方法
调用。我们通过调用对象的方法来寻求特定问题的答案或执行一个特定的动作。很多时候,被调用的方法
还会调用其他方法——或者是同一对象的方法,或者是同一类的其他对象的方法,或者是其他类的对象的
方法。类似地,这些被调用的方法又会继续调用其他方法,直至问题得到了明确的答案或动作全部执行完
毕(或者出现异常,这时问题将没有答案或动作不能完成)。
UML交互图以图形的形式表示出方法调用过程,它有两种形式:序列图(Sequence Diagram)和协作图
(Collaboration Diagram)。
序列图序列图
要达到某个特定的目标,必然要执行一系列的方法调用。UML序列图的典型用途就是显示出方法调用过
程。图二显示了一个交易事务中计算累计金额的序列图,调用从Sale类的calcTotal()方法开始,相关的代
码片断在序列图之后给出。
术语说明术语说明:UML把操作(Operation)定义为方法的特征(Signature)。“方法”(Method)这一术语被保
留给实现操作的代码。但在Java环境中,“方法”这一术语的应用范围更广泛一些。在UML序列图中,调用
一个操作就叫做发送一个消息(Message)。序列图实际上阐述了操作的具体实现,所以下面我们会较多
地用到“方法”这个术语(偶尔也会用到“消息”这个术语)。