UML消息的条件控制

UML消息的条件控制,在UML中,消息可以包含条件以限制它们只在满足条件时才能被发送。这里的条件分为多种,如if类型的条件,if…else类型的条件,switch…case类型的条件。

在UML早期版本中使用条件和消息名来实现对满足条件消息的发送,在UML2中使用多种组合碎片来控制消息的发送,包含“变体”“选择项”和“循环”组合碎片等。这3个组合碎片是大多数人将会使用最多的。

如下图所示的选择项组合碎片option,这是最简单的条件控制消息,用户登录输入密码,验证过后,在密码有误的情况下重新登录。只存在消息产生的条件,不存在条件不发生时的消息,即只有一个if语句,没有else语句。
UML消息的条件控制

除了上图的例子外,还有多种其他条件限制。将组合碎片发生的每一种可能性定义为操作域,则option组合碎片只有一个操作域。

顺序图碎片矩形的左上角包含一个操作符,以指示该顺序图碎片的类型。组合碎片操作符及其详细说明如下表所示。
UML消息的条件控制

如下图所示的图书借阅系统,当读者手中已经借阅的图书超过5本时,将无法继续借阅;当读者有逾期图书尚未归还时,需要归还图书才能继续借阅;读者借阅书籍不超过5本并且没有逾期书籍时,将成功添加借阅信息。
UML消息的条件控制

对于某碎片而言,它并不需要额外的参数作为其规范的一部分。顺序图碎片矩形与顺序图中某部分交互重叠。

顺序图碎片中可以包含任意数目的交互,甚至包含嵌套碎片。组合碎片除了可以用来限制消息的调用,还可以分解复杂顺序图,如ref操作符。

ref类型的顺序图碎片从字面上理解为引用(reference),ref碎片实际表示该碎片是一张更大的顺序图的一部分。这意味着可以将一个庞大而复杂的顺序图分解为多个ref碎片,从而减轻了为复杂系统创建大型顺序图所带来的维护困难。

如下图所示,将考务系统的考生排序、分组、分考场以及考场安排封装为一个ref类型碎片。
UML消息的条件控制

顺序碎片使得创建与维护顺序图更加容易。然而,任何碎片都不是孤立的,顺序图中可以混合与匹配任意数目的碎片,精确地为顺序图上的交互建模。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!