使用StarUML画类图
1、综述(What)
StarUML是一种生成类图和其他类型的UML图表的工具。
StarUML(简称SU),是一种创建UML类图,并能够自动生成Java的“stub code” 的工具。SU也可以做JAVA逆向工程,以产生相应的UML图表。
在本教程中,我们将使用SU设计一个pizza饼。执行后续步骤,可以创建如下面所示的UML图。SU可以生成反映类结构的代码,而不是任何对象的具体实现。因此,在使用SU创建图表后,你还应该为此stub code添加剩余的功能性代码,填写每种方法本来应该做的事。
2、新建“画布”
1.添加新工程
启动StarUML,然后一个名叫“New Project By Approach”的对话框会弹出(也可以通过File-->New Project By Approach出现),选择“Empty Project”,在右边的“Model Explorer”面板中可以看到新建的“Untitled”工程,工程的属性可以在下方的Properties面板中修改(工程名、作者等)。
2.添加模型
通过“Model”主菜单,或者在Model Explorer面板的工程上右击,依次” Add — Model ”
3.添加类图
通过“Model”主菜单,或右击选定模型,依次“Add Diagram — Class Diagram”。
4.设置profile(UML轮廓)
通过“Model — Profile…”菜单去设置工程所需的profile。这决定了工程所使用的规则和约定。一定要包含”JAVA Porfile”这一项目。
5.保存工程
立即保存工程,这样在出现问题的时候,您就不会丢失信息。
从“File ”菜单,选择“Save” ,并选择一个地方以保存工程。你的StarUML项目现在应该看起来的是这样的:
3.开始“作画”(How)
1.创造图表
现在,开始真正创造图表,从默认就在屏幕的左边的“Toolbox”面板选择“类”图标,然后左键单击diagram窗口的某处。这样就使用通用名字创造了一个新的类。双击,将类改名为Circle。
2.添加属性
右击图中的目标,在弹出菜单中选择“Add”中的“Attribute”(被标示为绿色),为其添加一个属性(或者域),填入期望的名字“_radius”,私有,类型double。
3.继续进行设计
重复同样的过程,添加名为Rectangle的类和double型的私有成员_width和_height。
4.创造 IShape interface
从toolbox中,选择“Interface”,并点击图表的某处。将其改名为IShape。创建以后,选中它。
- 在顶部工具栏,选择 “Stereotype Display” 下拉按钮,将值改变为“None”。这将改变默认的圆形形状,使其变为成长方形。
- 还是在顶部工具栏,取消选中” Suppress Operations “。这将使我们能够看到接口所拥有的方法。
向IShape 接口添加返回值为double的getArea方法。
- 设定返回值类型(☆)。在“Model Explorer”中展开IShape节点,右击你刚刚创建的getArea方法,并选择“Add Parameter”。在“Properties”框中,将参数的名子变为空,将“DirectionKind”变为“RETURN”,将“Type”变为double。
- 将IShape和getArea的IsAbstract属性框打上勾,他们在图标上的名字将变为斜体。这是UML的标准,表示这是接口或者其他抽象实体。
5.添加类和接口的关系
可以通过从toolbox中选择表示“Realization”的箭头,并从Circle拖拽向IShape,使Circle实现接口IShape。重复同样的过程,为Rectangle添加实现关系。这是添加了Circle 和 Rectangle对于IShape接口的实现关系。
小技巧:如果想使连接线表现为直角的方式,右击连接线,并选择” Format — Line Style — Rectilinear”菜单。你通过这种方式,使箭头重叠在一起,可以使你的图看起来更整洁。
6.添加类基于接口的行为
由于Circle和Rectangle类都实现了IShape接口,就必须有同样的行为(方法)。在“Model Explorer”面板中,复制getArea方法(按Ctrl-C或者右键点击并选择Copy菜单),并粘贴到Circle和Rectangle类。
注意:这些实现了的方法在Circle和Rectangle类中都不是抽象的,而是具体的,所以取消勾选IsAbstract框。
现在的类图看起来应该是这样的:
7.保存&导出项目
保存:在“File”菜单中,选择“Save”。 SU的所有资料只有一个单一的项目文件,所以你目前应该只有一个文件生成。
导出:将图表导出为其他格式,例如图片等,是非常有用的。您可以通过选择“File”菜单的“Export Diagram” ,并且选择合适的文件类型来执行改操作。
4、StarUML高级应用
1.生成Java stub代码:
在菜单中依次选择“Tools — Java — Generate Code”。
- 从对话框中选择你的模块(这里可能Model1),点击“Next”。
- 为了使你的模块或者图标的所有类都生成stub code,选择“Select All”然后按“Next”。
- 选择一个有效的输出目录,“Next”。
- 在“Options Setup” ,请务必选中“Generate the Documentation by JavaDoc”,“Generate empty JavaDoc”,所有其他复选框不选中,“Next”。
- 现在StarUML将从你的图产生代码,点击“Finish”退出对话框。
- 现在,您可以编辑生成的代码,以增加应用。
2.添加实现代码
正如开头所说的:SU可以生成反映类结构的代码,而不是任何对象的具体行动。因此,在使用SU创建图表后,你还应该为此stub code添加剩余的功能性代码,填写每种方法本来应该做的事。
3.逆向工程
StarUML还可以从现有的Java代码创建一个类图,这被称为“reverse engineering”。当你想从现有的代码生成图表,或者你修改了SU生成的代码,并且想在图表中反应出来的时候,逆向工程功能就非常有用了。
- 到主菜单栏中选择“Tools — Java — Reverse Engineer…”,可以将现有的代码逆向工程。
使用StarUML画类图的更多相关文章
- 使用StarUML创建类图
使用StarUML创建类图 http://www.flyne.org/article/379 1.综述(What) StarUML是一种生成类图和其他类型的UML图表的工具.本文是一个使用StarUM ...
- vscode用yuml画类图
vscode用yuml画类图 最近在找画类图的工具,发现vscode一款插件很好用,还支持markdown.vscode插件中直接搜索yuml安装即可. 文件后缀.yuml. 文件开头第一行这样写// ...
- 在eclipse中画类图
学习设计模式的时候,希望能够画出类图,理清关系.但是StarUML还有重新去写类名.属性.方法等,不是很方便.网上给出了安装插件的方法额,就可以直接在eclipse中拖拽类,很方便.但是网上给出的插件 ...
- 使用Visio—UML画类图
在一个VS工程中,由于类的个数较多,而参数描述不是特别清晰.若此工程的生命周期较长,则有必要对工程进行完整分析,给出完整的文档.需要画出类图,并对每个成员进行详细描述. 一.画出类图 在VIsio中, ...
- 还能这么玩?用VsCode画类图、流程图、时序图、状态图...不要太爽!
文章每周持续更新,各位的「三连」是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) 软件设计中,有好几种图需要画,比如流程图.类图.组件图等,我知道大部分 ...
- 20170908工作日记--UML画类图、HTTP协议、Volley源码走读
随手搜了一下,Android studio居然能够自动帮追我们生成UML的类图,简直太棒了http://www.gcssloop.com/course/UsePlantUMLInAS(Win),具体做 ...
- idea使用PlantUML画类图教程
嗯,在学设计模式时,画类图画的麻烦,就查了一下,发现idea可以通过插件实现.查了一下,学习,整理笔记和大家交流. 2019.9.11 安装可以百度,网上有好多. PlantUML 官网.如果时间多 ...
- 使用staruml学习画类图
//这是startuml 把uml 转换成的java代码: public class Circle implements Ishape { private double _radius; public ...
- 在idea中使用plantUML画类图
1.下载插件,搜uml找找就有了,安装重启idea. 2.会提示你找不到graphviz,下载msi安装. 3.提示not executable,需要配置环境变量,不是配置path,配置GRAPHVI ...
随机推荐
- JAVA内部类(转)
源出处:JAVA内部类 在java语言中,有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其他类的内部.内部类作为其外部类的一个成员,与其他成员一样, ...
- 20145120 《Java程序设计》第10周学习总结
20145120 <Java程序设计>第10周学习总结 教材学习内容总结 转自:http://www.cnblogs.com/springcsc/archive/2009/12/03/16 ...
- quartz2D简单使用
quartz2D绘图 1:上下文:context,这个翻译不好理解,其实翻译环境更好一点,就是给了你一个画板,你看不到而已 在: CGContextRef ctx = UIGraphicsGetCur ...
- JFinal 源码分析 [DB+ActiveRecord]
我记得以前有人跟我说,“面试的时候要看spring的源码,要看ioc.aop的源码"那为什么要看这些开源框架的源码呢,其实很多人都是"应急式"的去读,就像读一篇文章一下, ...
- FushionCharts Free 的运用[2D/3D图表处理]
由于先前在一些论坛中谈论到这个插件的运用,留了一些QQ联系方式,最近老是被一些程序员“骚扰”,说是请教一些关于FushionChart Free图表的处理技术,先前还是比较乐意接受的,但发现后来一些完 ...
- PowerDesigner使用技巧
1.PowerDesigner 批量修改索引或主键对应的表空间 http://blog.sina.com.cn/s/blog_701218960100l0h4.html 2.去掉Oracle生成的 ...
- phonegap/cordova常用命令
创建项目 cordova create foldername com.wps.test projectName cd foldername 基本设备信息 设备 API: cordova plugin ...
- On Explainability of Deep Neural Networks
On Explainability of Deep Neural Networks « Learning F# Functional Data Structures and Algorithms is ...
- HDOJ1050
Moving Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- Grid行编辑插件
//操作列不显示应该就是autoLoad的问题. Ext.onReady(function () { Ext.BLANK_IMAGE_URL = "E ...