zoukankan      html  css  js  c++  java
  • UML——序列图案例总结

    序列图的主要目的:展示对象间交互的顺序。详细介绍可以参考上一篇文章,序列图是一个二维图。纵向是时间轴,时间沿着竖线向下延伸,横向轴代表了在协作中各个独立对象的类元角色,也称作生命线,当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。

    举例:

    1、生命线

    生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。

    2、同步消息

    发送人在它继续之前,将等待同步消息响应。

    3、异步消息

    在发送方继续之前,无需等待响应的消息。

    4、注释

    5、约束

    约束的符号很简单,中括号包括约束内容:[Boolean Test]

    6、组合片段

    组合片段用来解决交互执行的条件及方式,它允许在序列图中直接表示逻辑组件,用于通过制定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。

    <1>抉择(Alt)

    抉择用来指明在两个或更多的消息序列之间的互斥的选择,相当于经典的if...else...。

    抉择在任何场合下只发生一个序列。可以在每个片段中设置一个临界来指示该片段可以运行的条件。else的临界指示其他任何临界都不为true时应运行的片段。如果所有的临界都为false并且没有else,则不执行任何片段。

    <2>选项(Opt)

    包含一个可能发生或不能发生的序列

    <3>循环(Loop)

    片段重复一定次数。可以在临界中指示片段重复的条件。

    <4>并行(Par)

    一个生命线中持续操作的部分

    下面还有几种常见的组合片段:

    1、Opt(选项)

    包含一个可能发生或可能不发生的序列。可以在临界中指定序列发生的条件。相对于OR

    2、Alt(抉择)

    包含一个列表,这些片段中包含备选信息序列。在任何场合下只能发生一个序列。可以在每个片段中设置一个临界来指示该运行的条件。else的临界指示其他任何临界都不为True时运行的片段。如果所有的临界都为False并且没有else,则不执行任何片段。相当于swith...if..

    3、Loop(循环)

    片段重复一定次数。可以在临界中指示片段重复的条件。

    loop组合片段具有”Min“和”Max“属性,它们指示片段可以重复的最小和最大次数。默认值是无限制。相当于freach....for

    4、Break(中断)

    如果执行片段,则放弃序列的其余部分。可以使用临界来指示发生中断的条件。

    5、Par(并行)

    并行处理。片段中的事件可以交错。

    6、Critical(关键)

    用在par或Seq片段中。指示此片段中的消息不得与其他消息交错。

    7、Seq(弱顺序)

    有两个或更多操作数片段。涉及同一生命线的消息必须以片段的顺序发生。如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。

    8、Strict(强顺序)

    有两个或更多操作数片段。这些片段必须按给定顺序发生。

    解释序列的片段

    默认情况下,序列图表明可能发生的一系列消息。在运行的系统中,可能会出现您未选择显示在关系图上的其他消息。

    需要考虑更改此释义

    1、consider(考虑)

    指定此片段描述的消息列表。其他消息可发生在运行的系统中,但对此描述来说意义不大。

    可在”Message“属性中键入该列表

    2、Ignore(忽略)

    此片段描述的消息列表。这些消息可发生在运行的系统中,但对此描述来说意义不大。在”Message“属性中键入该列表。

    3、Assert(断言)

    操作数片段指定唯一有效的序列。通常在consider或Ignore片段中。

    4、Neg(否定)

    在此片段中显示的顺序不得发生。通常在Consider或Ignore片段中。

    源码下载

  • 相关阅读:
    Linux磁盘管理之创建磁盘分区05
    Linux磁盘管理之设备文件详解04
    Linux命令行上传文件到百度网盘
    Linux磁盘管理之元数据、文件和目录、链接文件03
    std..tr1如何传递引用类型给function
    如何判断一个点是否在矩形之内及C++的操作符重载
    C++11中部分新语法说明
    物理引擎中基于AABB碰撞盒的SAP碰撞检测
    c++动态库中对于字符类型变量的格式化处理
    从tr1中function使用看converting constructor
  • 原文地址:https://www.cnblogs.com/zhijianliutang/p/2368249.html
Copyright © 2011-2022 走看看