在写一份升级方案的时候,发现文字描述半天,好多句子,依然不容易被人看明白,使用visio画了个流程图,后来觉得画个时序图是最清晰得了。

  于是在找了一个工具: startUML,当然,做时序图,建模之类的工具还是比较多的,比如:

  PowerDesigner:http://www.sybase.com/products/modelingdevelopment/powerdesigner

  StartUML:http://staruml.sourceforge.net/en/  现在跳转至 http://staruml.io/

  下载安装之后,我用它简要画了几个简单的图:

  1.基本用例图:

  

  2.场景一:基本时序图:

  

  3.场景二:简要的另一份时序图:

  

  4.场景3:另外一种场景简要描述

  

  这里主要说一下关于竖线的问题,很多人不知道这个竖线怎么来的。其实在用例图上面,右键,选择 Add Diagram --> Sequence Diagram ,然后在新的标签下,建立相应的 Object 之类的,就可以了

  

  也就是你要注意下面这两副图片的区别:

  

  在用例图模式下,和序列分布模式左侧的是不同的。

  当然,如果你想了解更多的关于 StarUML 应用的东西,可以参考:http://wenku.baidu.com/view/196c5a4c69eae009581bec69.html

  另外,这位大神在6年前写的文章更为实用: http://www.cnblogs.com/daizhj/archive/2008/04/14/1153121.html

  还有这份文档,步骤写得比较详细:http://wenku.baidu.com/view/2a67901efc4ffe473368ab08.html

  工具都简单,基本简单点两下鼠标,摸索一下大家就都明白了,主要是要能够通过图把业务表达清楚,这才是重点和关键!

  当然,这工具还有很多好用的东西,我简单尝试了一下,发现还真是好用。有兴趣的同学,可以再去摸索。

  另外,废话一句,业务想明白了,使用任何工具,甚至不实用工具,直接手画,其实都无所谓。

  工具只是工具。人和动物的最大区别,在于会使用工具。但同样记得,不要受制于工具,不要成为工具的奴隶。

  So,Enjoy it.

  2014年9月17日14:43:41


  在后面,我们补充一下时序图相关的基本概念:

  时序图(Sequence Diagram),亦称为序列图或循序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。
时序图中包括如下元素:角色,对象,生命线,激活期和消息。
1、角色(Actor)
    系统角色,可以是人或者其他系统,子系统。
2、对象(Object)
    对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表。

对象一般包含以下三种命名方式:
    第一种方式包含对象名和类名。
    第二种方式只显示类名不显示对象名,即为一个匿名对象。
    第三种方式只显示对象名不显示类名。
3、生命线(Lifeline)
    生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间 的消息存在于两条虚线间。
4、激活期(Activation)
    激活期代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。它可以被理解成C语言语义中一对花括号“{}”中的内容。
5、消息(Message)
    消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。

【原】使用StarUML画用例图的更多相关文章

  1. 手把手教你使用startuml画用例图

    转自:http://www.2cto.com/os/201502/377091.html 最近准备研究下volley的源码,但看了网上一些大牛的博客都是配合图这样看起来更直观,分析起来逻辑也很好,什么 ...

  2. Pownerdesigner画用例图_类图_时序图

    1. 问题描述 软件过程中,设计阶段有几个常用的工具:Rational Rose.Visio.Pownerdesigner,一般用Rose用例图/类图/时序图,Visio画流程图,Pownerdesi ...

  3. 使用Visio 2007画用例图没有include(包含)关系且包含关系使用的线不是虚线的解决办法

    使用Visio 2007画用例图没有include(包含)关系且包含关系使用的线不是虚线的解决办法 1 在工具栏选择UML------>选择构造型 如下操作 2 拖动 "扩展" ...

  4. 软件文档写作-plantuml画用例图和时序图

    背景 当下的软件开发人员,不可避免的需要输出一些软件设计文档,作为一个软件工程专业毕业的工程师,最常用的设计工具就是UML,使用UML工具绘制一些软件相关的图,是必备技能,也是输出的技术文档中的重要组 ...

  5. 使用StarUML画类图

    1.综述(What) StarUML是一种生成类图和其他类型的UML图表的工具. StarUML(简称SU),是一种创建UML类图,并能够自动生成Java的“stub code” 的工具.SU也可以做 ...

  6. 【StarUML】用例图

    用例图是在项目初期确认需求的时候,需要明确各个参与者之间的关系以及对应的功能,它可视化地展示了整个系统的功能以及功能之间.功能与参与者之间的关系. 1.元素 1.1 角色(actor) 角色不一定是人 ...

  7. 使用starUML画顺序图

    https://blog.csdn.net/gary0917/article/details/79968762

  8. UML 中的用例图解析以及starUML详细介绍

    UML中的用例(Use Case)概念分析及StarUML实例 在UML 中use case 似 乎最簡單的,用例建模的最主要功能就是用来表达系统的功能性需求或行为,依我的理解用例建模可分为用例图和用 ...

  9. visio画UML用例图没有include关系的解决方法

    今天用Microsoft Visio画用例图时,发现visio UML用例里面找不到include关系,即“箭头”+“<>” 这个组件,后来终于发现一个可行的解决办法: 首先:打开Micr ...

随机推荐

  1. javascript中a标签把href属性设置为“javascript:void(0)”还是会打开空白页面的问题

    在项目中有个位置的点击a标签这里要加一个权限判断,但是之前使用的是js动态添加a标签,href的属性值是一个url,但是我要做权限判断之后,我的url就不能设置在href属性中了,这样的话我可以在a标 ...

  2. Python 进阶 之 map()函数

    map()函数主要功能是对批量的元素进行相同的操作时可以大幅度的缩减代码. map函数参数详解: map(param1,param2,***) param1:函数名 ,要对批量元素进行处理的funct ...

  3. 解决使用base64解码太慢的问题,原因是根本就不应该使用此方法解决。

    /* 功能:将中文内容的斜杠和双引号转了,方便保存到lua+ssdb中,从SSDB提取出来组装JSON时就不会出错. 作者:黄海 时间:2015-01-31 */ function jsonencod ...

  4. ionic3 学习记录

    1生命周期 ionViewDidLoad(){ console.log("1.0 ionViewDidLoad 当页面加载的时候触发,仅在页面创建的时候触发一次,如果被缓存了,那么下次再打开 ...

  5. AC日记——逃离僵尸岛 洛谷 P3393

    逃离僵尸岛 思路: spfa: 代码: #include <cstdio> #include <cstring> #include <iostream> #incl ...

  6. React Native - 0序言

    1. 什么是React Native? React Native是Facebook在React.js Conf 2015大会上推出的一个用于开发Android t iOS App的一个框架.主要编程语 ...

  7. 使用Bot Service创建Bot Framework

    创建Bot Service:进入至Azure控制台中,新建Bot Service,如不知道Bot Service在哪个选项中,可以先查找Bot Service再创建 在弹出的查询结果中,选择Bot S ...

  8. scrapy xpath 从response中获取li,然后再获取li中img的src

    lis = response.xpath("//ul/li") for li in lis: src = li.xpath("img/@src") # 如果xp ...

  9. luogu P1359会议

    //以一号节点为根节点,求出所有节点到根结点的距离,以及所有点的子节点的个数 //然后计算根据已知信息计算所有节点到当前结点的距离 //然后扫描n个点,O(n)求解 #include<bits/ ...

  10. csu1216( Trie )

    csu1216 题意 给定一些数,求这些数中两个数的异或值最大的那个值. 分析 转化成二进制数存入字典树,比如说要查询 \(0011\) ,显然和 \(1100\) 结合最优,所以我们直接在字典树上寻 ...