文章目录

  • 概述-工之利器
  • EA使用入门
    • 导入工程头文件
    • 打开工具箱
    • 工具箱操作符使用
    • 直接导入代码类
    • 工作视图设置
    • 类添加操作异常
    • 类元素显示包路径
  • Visio使用
    • 工具功能
    • 添加链接点
    • 拷贝-空白区域(解决办法1)
    • 关闭交叉线弯曲
    • 关闭自动链接
    • 水平/垂直线
    • 复制到Word时出现空白的原因
    • 泳道流程图
  • 工具比较
  • 设计图参考

概述-工之利器

该文的主要编写方向为,各种UML工具的使用方法笔记、使用问题解决办法记录,但是该文并不局限于UML图的绘制,也包含软件设计中用到其他的图表,如数据流图、程序流程图等。要告诉自己,设计文档如果不清晰优雅,那么你真正的实现必定高级不到哪里去。掌握相关工具的使用,是提升设计质量和设计工作效率的关键第一步…

EA使用入门

  • Enterprise Architect (企业架构师)软件介绍,能做的太大了,除了你关注的UML图,她能搞用户界面设计、能仿真业务流程、其他的你不知道的。

  • 软件下载地址EA14 安装过程可参考,基本流程如下:
    运行安装easetup.msi文件,并使用patch/EA.exe替换安装目录下的对应文件,重新打开后可用。
    考虑到自己的English Level 和 UML Level,最终放弃EA14这个非汉化版本,换上EA12.0版本,与办公电脑一致。

  • 学习指南
    参考1- EA7.0的入门教程 ! 参考2-Enterprise Architect 14用户指南 - 中文​

导入工程头文件

在老版本(EA12.0)中,选中一个classModle->右键->代码工程(code Engineering)->导入源文件目录->选择文件及语言格式即可。在14版本中,功能区里头多了一个Code项:

这里点击Code->File->C+±>选中相应的头文件即可执行.h导入操作。导入过程若遇非识别字符/宏定义等,按提示添加定义即可。complete后即可在包/类视图中看到导入结果。

打开工具箱

曾经在开始使用EA软件时候,想要自己构建一个类而不是导入操作,却找不到类元素的符号在哪里,简直泪奔啊。后来终于发现,它原来藏在下图红色圆圈标记的位置,点一下就可以啦!工作视图设置菜单中,没有显示/隐藏图的工具箱这一个条目哎!

工具箱操作符使用

工具箱中的”双目操作符“(Eg:Associate、Generalize、Compose)使用方法:
先点击该具体工具,然后去主视图中选中一个类,按住鼠标左键,然后滑动到另一个类上放开,则应用成功。

直接导入代码类

其实我们可以直接拖拽类的头文件到EA浏览器-包上,然后松开鼠标。这样就可以在资源树上添加了一个类,但是这里相对于工程导入方法,有个不太友好的地方:如果拖拽的头文件在类元素生成时存在异常,将无法生成且没有错误提示。最常遇见的无法生成的原因是,类中存在无法识别的宏定义,如用以到处类的宏定义;我的解决办法通常是,单独对这个头文件使用工程导入法,等到出现错误提示,添加相应的宏定义即可。

延申-Q_D指针类之于UML
Q_D在Qt的作用是动态库二进制兼容,意外发现基于这种模式下的类实现,在进行UML设计时,会让类图关系图变得简洁/美观很多,接口类上私有的方法与属性被隐藏,PrivateClass可以直接用对象替代。通俗的说,就是让一个绘制体积较大的类变的很小巧精致了。

工作视图设置

有时是手一哆嗦就把工作视图的布局给打乱或者关闭了,怎么再调出来是个小问题,但对于不熟悉的人却要费劲。

具体的做法是在菜单栏行,所在的位置,鼠标右键,弹出上图所示的上下文菜单,选择需要的条目即可。

类添加操作异常

什么异常呢?曾经遇到的变态一个异常是,想给一个类添加函数时,表格头里头却没有名称这一列,这可把我难为坏了,期初还以为是软件问题,进行了重新安装,无效,反反复复鼓捣了半天,意外发现了猫腻。在标题栏处右键-在弹出的菜单中选择-字段选择器,如下图所示,然后,选中名称这个字段,按住鼠标左键进行拖拽到标题栏的合适位置即可,不想要的列也可以拖进字段选择器进行隐藏。

类元素显示包路径

始于一个意外,某次在进行类图绘制时,使用的类是跨包的,结果类图中的类出现了如下图带包域::的类名称显示样子,这倒没什么奇怪的。奇怪的是,若直接向Class Model(由导航生成的图)图中拖拽PackageA中ClassInPA类元素,此时不附带显示包域。

我无法解释上述现象,当前只能无知的认为这是一个软件Bug,进一步的测试规律如下:
对于一个跨包的类图绘制,若类图是由向导初始化生成的,它其中的类元素在显示时不带包域名,若是后期添加的新图(右键-添加图)、或是后期添加包时生成的图(右键-添加包-同时创建新图),则它其中的类元素在显示时会自动附带包域名。

模型向导 新建图
类图-跨包的类元素不显示包域信息
新建项目、在Model树根上右键-增加-
使用向导添加新模型,都会弹出这厮
类图-跨包的类元素自动显示包域信息

Visio使用

Microsoft Office 帮助中心,Visio 可将信息转换为图形关系图,帮助你直观地进行工作。Visio提供数百个模板(包括流程图、时间线、平面布置图等)创建图表。 添加形状、文本和图片,并将它们连接起来,以显示数据中的关系。可在绘图中连接来自 Excel​​、Access 或 SharePoint 等其他来源的数据。其实若用Visual Studio作开发工具,可以直接用其生成UML类图。

工具功能

  • Visio2007/2010中有UML类图-属性设置弹出窗口,从2013开始木有啦?
    官方的解释在这里,UML静态结构图在Visio2013和更高的版本中不可用。没有找到据据的原因解释,就当这是战略规划吧,visio只支持简单的类关系描述(甚至不支持添加方法)!
VISIO2013 VISIO2007
visio2007使用方法-类图及属性设置

添加链接点

  • 关系链接点不够用,如何添加新链接点?
    Viso2013 增加连接点:主要步骤,选择工具-连接点,按住CTRL键,同时用鼠标指向所要建立的连接点的位置。

拷贝-空白区域(解决办法1)

  • 向word中复制时,出现大空白区域?
    解决办法:word右击图片-“VISIO”对象-打开,在visio中按住ctrl键,将鼠标放置到画布四角处,拖动-调整画布边缘大小,保存即可。空白现象也不是每次都出现,特别是如果visio画的比较整齐的时候基本不会出现,具体规律没有找到。 在2013中没有找到相关设置项,有博主认为该现象可能是Visio的bug,此处不再深究。

关闭交叉线弯曲

使用visio作图时,经常会遇到交叉线在相交时会形成一个弯曲弓形,这有时十分影响视图效果。可以采用下面的方法消除弓形,以Visio2013为例。

修改方案:(不用选择要修改的线)导航栏 => 设计 => 连接线 => 去掉 显示跨线 勾选

关闭自动链接

在进行连接操作时,可能不想使用自动连接,怎么关闭呢?

修改方案:导航栏 =>视图->视觉帮助->常规->对齐、粘附去掉勾选。这个自动连接功能,大部分情况下还是比较有用的,特殊操作结束后,记得恢复设置哦!

水平/垂直线

场景:如下图所示。

问题场景 拖为垂直线 拖为左45° 拖为右45°
  1. 当连接线长度够、超长、倾斜
  2. 某个链接线曾经被Shift+方向键进行过微调,再次对它进行长度伸缩时,由于网格节点的自动捕获,讲不能调到垂直。

解决办法:
选中要操作的线段,然后按住Shift键,同时用鼠标拖拽线段的端点(如图1),只要鼠标位置不超过垂直方向45°角,这条线段将会被修正到完全垂直的状态,若在45°左右,则线段被修正为精确的45度,若鼠标位置更偏水平方向,则线段被修正为完全水平。(该方法,无关链接线的类型是直线还是折线,但最好是直线类型属性)。

复制到Word时出现空白的原因

在Word中现象-

更多形状->软件和数据库->软件->内存和对象->[堆栈或堆]控件,发现只要使用了各玩意,就会出现“复制到word中的VISIO图表底部莫名其妙有空白的情况”如上右图。更多形状->软件和数据库->软件->COM和OLE->[Vtable]控件,在使用过程中有同样的现象。

新建VISIO图时,最好不要基于空模块来创建,一般的可以选择基本流程图模板,因为空模板中绘制的连接线甚至都没有箭头!


有时候,我们想从图1的样子变成图3的样子,如果不接触连接线两端的连接,就会出现图2的样子,着实烦人!我们可以采用这样的方法,选中图1中的连接线,不要动鼠标,然后执行CtrlX和CtrlV操作,然后选中连接线和底部的控件一起移动就好!

泳道流程图

这里讲的不是UML活动图,而是流程图范畴的泳道图,使用VISIO绘制,此处记录些使用技巧。下边以垂直泳道的绘制进行说明,在VISIO中,泳道是可以自动拼接的。

上图。

工具比较

比较下两种绘图工具
https://www.edrawsoft.cn/uml-collaboration-symbols/

在EA中也可以绘制 但是不如这个俊呢感觉–
https://www.onlinedown.net/soft/56007.htm 软件下载
https://www.edrawsoft.cn/order/max_buy.html

Enterprise Architect优点与主要用途总结,它是建模,可视化,构建和管理企业,业务,工程和技术解决方案的终极协作平台。利用这一领先工具的强大功能,简化您的工作方式,统一跨学科团队,创建执行工作的模型,跨程序和项目利用和重用资产等等。

设计图参考

状态图绘制
https://blog.csdn.net/craftsman1970/article/details/78276479

常见的UML图
https://www.cnblogs.com/jiangds/p/6596595.html
另外,该博文还应该记录那些典型的UML图或其他的设计视图,这些图具有较高的参考价值。

软件设计-UML/数据流图/流程图绘制工具相关推荐

  1. draw.io---一款免费、开源的流程图绘制工具

    draw.io 是一款非常强大实用的免费.开源流程图绘制工具,功能众多,例如通过流程图来可视化您的工作流程.创建组织结构图来来显示人员结构.创建网络图来可视化网络等等,适用于商务.工程.电气.网络设计 ...

  2. er图转为数据流程图_draw.io for Mac(流程图绘制工具)

    http://draw.io Mac版是Mac平台上的一款流程图绘制工具.http://draw.io Mac版是一款非常好用的绘制流程图的工具,提供了流程图,UML图等丰富的接口.它还支持第三方云存 ...

  3. 绘制业务流程图:流程图绘制工具

    文章描述:什么是流程图?流程图和其他图表(如线框图,概念图,架构图,用例图)有什么不同? 图1:用即时贴与白板做的简单流程图 转载请注明来处,关注我请点击:http://weibo.com/heidi ...

  4. 原型和流程图绘制工具 OmniGraffle [for Mac]

    在 Mac 上制作原型和流程图绘制工具很多人都会选择  OmniGraffl , Felix 这里有一篇关于它的说明,  推荐阅读 . 另外下面这些信息也许对你有所帮助( 来自这里 ): OmniGr ...

  5. 【PC工具】更新在线流程图绘制工具bullmind,免费云存储流程图绘制,可直接粘贴图片...

    上次推荐了bullmind,今天谈谈使用感受,再推荐一款类似的软件. 先发个bullmind快捷键: 每次进入都会提示上边的快捷键,为什么我要发呢?因为"创建标签"(快捷键t)和双 ...

  6. android邮件系统uml建模,软件设计UML分析--邮件管理系统.ppt

    软件设计UML分析--邮件管理系统 邮件管理系统 小组成员 需求分析 1.系统的功能:邮件管理系统起着"邮局"的作用,通过电子邮件系统,用户可以与世界上任何一个角落的网络用户联系, ...

  7. sketch 流程图_眼前一亮!2款免费手绘风流程图绘制工具

    我在另外一篇文章:[一款让Python开发效率提升50%的工具包]画了几张手绘风格的流程图,文章发表之后有读者私信我: "这种风格的流程图好漂亮啊,请问是用什么工具画的啊?" 的确 ...

  8. jquery实现流程图绘制工具——展现红警三建造出兵操作 ——一 简介

    作为一名红警三玩家,为了提高自己的技术,我会时不时的看一些别人的录像来学习,所以想要对录像的信息进行一定的记录. 单纯用文字是很麻烦的,且不够直观,容易啰嗦. 故而我有这样一个想法: 能否用图表比较详 ...

  9. jquery实现流程图绘制工具——展现红警三建造出兵操作 ——二、代码初步介绍,项目结构与文件介绍

    目录 一.简介 二.代码初步介绍 拓展.实现红警三录像文件读取与自动分析生成流程图信息 ======================= 大爽歌作,made by big shuang ======== ...

最新文章

  1. 科大星云诗社动态20210826
  2. python 3.8.2 / 内置的数据结构 / list (类似于 STL 中的 vector)
  3. 一天学完spark的Scala基础语法教程十、类和对象(idea版本)
  4. Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.ClassVisitor
  5. c语言中系统函数设定像素,在imag中对每个像素应用自定义函数的快速方法
  6. 介绍一个不错的jquery插件-cluetip
  7. cocos2d之json使用实例
  8. JavaScript(3):基础部分之异常处理
  9. 结构体与对象的联系与区别
  10. ArcGIS学习总结(11)——创建点要素并计算对应经纬度
  11. 计算机组成原理疑难知识点
  12. C++写OpenCV图像灰度化
  13. 字节跳动python面试题校招_字节跳动校招----编程题(Python)
  14. jQuery实现下拉菜单[代码+详细讲解+效果图]
  15. 计算机程序停止工作怎么办,如何将“某某程序已正常停止工作,请关闭程序”这个提示自动关闭...
  16. 计算机网络验证性实践
  17. 渐进式 Web 应用程序介绍
  18. Keil4工程转keil5工程方法
  19. js根据生日计算出年龄
  20. CSS3居中的几种方法

热门文章

  1. 【C语言】那些优秀代码里的骚操作(持续更新…)
  2. 一个简单的滑动门效果代码
  3. tf2.0没有fully_connected()
  4. 人工智能之数学基础篇—高等数学基础(下篇)
  5. 引用类型传参问题的深入分析
  6. 离散数学 02.01 命题以及逻辑联结词
  7. matlab画概率密度函数
  8. 计算机及应用自考顺序,自考计算机应用专业科目学习次序
  9. 七月在线 《图像识别与检测》
  10. 【答学员问】 面试前加了HR的微信,可以问一些东西吗?