zoukankan      html  css  js  c++  java
  • 团队沟通利器之UML—— 序列图

    一:用途

         对一个开发团队来说,序列图是非常重要的,因为序列图用于描述系统内部一群对象之间的交互情况,尤其在做爬虫这种

    业务复杂性的项目,序列图可以让我们更快的理清这些复杂流程。

    二:基本元素

       序列图中的uml元素还是相对比较少的,先截个图。

    1:生命线

    首先我们要知道序列图有一种动静结合的特点,以类图作为静态结构,用例图作为动态行为的过程。所以我们可以认为生命线

    就是一个类,比如下图中,customer:Customer ,前者是类的实例,后者是类名,图中的“X”是类的析构函数,也就是销毁。

    这里有一个注意的地方,我们将图中的”Actor“属性设为True是,该生命线就会变成参与者生命线。

    2:同步,异步

        说起同步或者异步,我想大家第一反应可能就是ajax或者Thread,既然序列图是描叙对象之间的交互就必然存在同步

    或者异步,在uml元素中,“同步”是具有来去箭头的,而”异步“就是单向箭头。

    从上面的序列图中,我们可以看出Customer向Order下订单,下单成功后同时异步请求email发送邮件,既然是异步,也就不

    存在影响主流程了。

    3:创建

       在交互段内如果要创建别的生命线(类对象),那么此时需要使用创建消息,不过在实际应用中用的还是比较少的,毕竟万事

    万物遵循”八二原则“的。

       在vs2010里面有支持序列图的”反向工程“,蛮有意思的,我们先看一下,我在Program里面实例化了一个Test类,看看在序列

    图中是否用Create来实现。

    4:组合片段

        现在我们也知道了,序列图中是一群对象在交互,那么交互必然存在着逻辑,比如if/else,for等等,在uml中有12中这样的业务

    逻辑的组合片段,同样八二原则,了解一些常用的即可。

    通过对比两张图,我想大家肯定清楚下面的那张序列图所表达的意思。

    最后上一张综合一点的图,有了上面的简述,我想这张图大家应该也能看得懂。

  • 相关阅读:
    RabbitMQ使用介绍及实例
    RabbitMQ与java、Spring结合实例详细讲解
    服务器搭建--Linux安装rabbitmq
    服务器搭建--Linux安装erlang
    solrCloud index search (图)
    What does "exceeded limit of maxWarmingSearchers=X" mean?
    Solr 自定义排序[1]
    solr Query[转]
    Lucene
    Solr[Q] -No live SolrServers available to handle this request, no servers hosting shard
  • 原文地址:https://www.cnblogs.com/huangxincheng/p/2726942.html
Copyright © 2011-2022 走看看