StarUML使用说明-指导手册

 

1.综述html

StarUML是一种生成类图和其余类型的统一建模语言(UML)图表的工具。这是一个用Java语言描述的建立类图的简明手册。编辑器

StarUML(简称SU),是一种建立UML类图,并可以自动生成Java的“stub code”的工具。SU也能够作JAVA逆向工程,以产生相应的UML图表。函数

在本教程中,咱们将使用SU设计一个pizza饼。执行下列步骤,能够建立以下面所示的UML图。SU能够生成反映类结构的代码,而不是任何对象的具体行动。所以,在使用SU建立图表后,你会为此stub code添加剩余的功能性代码,填写每种方法原本应该作的事。工具

 

2.安装布局

首先,咱们必须先安装将要使用的软件。StarUML ,是一个开放源码软件, 遵循GPL协议许可(GNU公共许可证) ,并免费提供下载。测试

3.启动this

安装之后就能够启动该程序。spa

4.添加新工程翻译

而后,一个名叫:New Project By Approach的对话框会弹出。选择“Empty Project”而且按下"肯定"。这里建议你不要勾选"设置为默认的作法" 复选框。设计

5.选择模块

在右边的“Model Explorer”框中选定“Untitled”模块。

6.添加模块

经过“Model”主菜单,或右击选定的模型,能够" Add/Design Model "

7.添加类图

经过“Model”主菜单,或右击选定模型,能够“Add Diagram/Class Diagram”:

8.设置profile

经过“Model/Profile...”菜单去设置工程所需的profile。这决定了工程所使用的规则和约定。必定要包含"JAVA Porfile"这一项目。

9.保存工程

当即就保存工程,这样在出现问题的时候,您就不会丢失信息。

从“File ”菜单,选择“Save” ,并选择一个地方以保存工程。你的StarUML项目如今应该看起来的是这样的:

10.创造图表

如今,开始真正创造图表,从默认就在屏幕的左边的“Toolbox”选择“类”图标,而后左键单击diagram窗口的某处。这样就使用通用名字创造了一个新的类。双击,将类更名为Circle。

11.添加属性

右击图中的目标,在弹出菜单中选择“Add”中的“Attribute”(被标示为绿色),为其添加一个属性(或者域),填入指望的名字“_radius”。

l 具体的数据类型,在属性面板(右下侧的窗口) ,由双打字,在"类型"时段。在窗体右下边的Properties面板中,找到“Type”输入框,输入double做为_radius属性的类型。

l 类的内部数据(域/属性)都是私有的,由于他们是严格由类内部使用的。因此,在Properties面板中将_radius设置为“私有”。

12.继续进行设计

重复一样的过程,添加所谓的名字叫作Rectangle的类和double型的私有成员_width和_height。 (下面者段话是使用方面的主意事项,总感受翻译部太好,九原文搬上来了)You may notice using the "Model Explorer" on the right is faster to add these, but do however note that adding the classes and interfaces themselves in this toolbox (instead of using the toolbox on the left and clicking on the palette to create the object) will not create the objects in the diagram.

13.创造 IShape interface

l 从toolbox中,选择“Interface”,并点击图表的某处。将其更名为IShape。建立之后,选中它。

l 在顶部工具栏,选择 “Stereotype Display” 下拉按钮,将值改变为“None”。这将改变以往的圆形形状,使其变为成长方形。

仍是在顶部工具栏,取消选中" Suppress Operations "。这将使咱们可以看到接口所拥有的方法。

l 向IShape 接口添加返回值为double的getArea方法。

n 能够经过右击interface的图标,在弹出菜单中点击红色的“Operation”按钮,而后输入getArea。

n 设定返回值类型。在“Model Explorer”中展开IShape节点,右击你刚刚建立的getArea方法,并选择“Add Parameter”。在“Properties”框中,将参数的名子变为空,将“DirectionKind”变为“RETURN”,将“Type”变为dboule。

l 将IShape和getArea的IsAbstract属性框打上勾,他们在图标上的名字将变为斜体。这是UML的标准,表示这是接口或者其余纯虚实体。

14.添加类和接口的关系

l 能够经过从toolbox中选择表示“Realization”的箭头,并从Circle拖拽向IShape,使Circle实现接口IShape。重复一样的过程,为Rectangle添加实现关系。这是添加了Circle 和 Rectangle对于IShape接口的实现关系。

n 若是想使链接线表现为直角的方式,右击链接线,并选择" Format/Line Style/Rectilinear"菜单。你经过这种方式,使箭头重叠在一块儿,可使你的图看起来更整洁。

15.添加类基于接口的行为

l 因为Circle和Rectangle类都实现了IShape接口,就必须有一样的行为(方法)。

n 在“Model Explorer”面板中,复制getArea法(按Ctrl-C或者右键点击并选择Copy菜单),并粘贴到Circle和Rectangle类。

n 这些实现了的方法在Circle和Rectangle类中都不是抽象的,而是具体的。这是由于他们其实是执行一些特定行为(例如,为一个圆形和长方形分别计算面积) ,因此不要勾选IsAbstract框。

16.你的图如今应该是这样的:

17.添加Pizza

l 向Pizza添加double型的私有域_price。

l 添加返回double类型的共有操做getPrice。

18.Pizza类添加IShape 的引用

l 从toolbox中选择" DirectedAssociation "箭头,点击Pizza类,并向IShape拖拽 。

n 选中箭头,在右边的“Properties”框上,将name一栏改成“has-a”,“End1.Aggregation” 一栏改成“AGGREGATE”(这个图示说明Pizza和shape对象是“聚合“的关系)。

n 将“End2.Name”一栏改成_shape 。这样就自动为Pizza添加一个名字为_shape,使用IShape接口的私有域,的所谓_shape型ishape以pizza饼。

n 将“End2.Visibility”改成私有。

l 为_shape建立一个“得到者”方法,名字叫作getShape,返回IShape 。这就是建立一个行为,名字是getShape,返回IShape。

19.pizza类添加构造函数

l 为Pizza添加构造函数,右击,在弹出的“Add” 菜单中选择“Operation”。从这里,增长一个普通的带有dboule型price参数和IShape类型shape参数的操做

l 增长一个输入参数,就像以前增长了一个返回型的输出参数同样,你指定的参数的名称,如价格和形状等,以及适当的数据类型。

l 为Circle增长一个带有double型的radius参数的构造函数。

l 为Rectangle增长一个带有double型width和height参数的构造函数。

20.你的图如今应该是这样的:

 

 

21.添加Test_Pizza

为了说明UML类图更多的功能,又增长了一个叫作“Test_Pizza”的类,它用做测试目的,并使用到Pizza和IShape类。

l 两个类之间的关系有多种形式。举例来讲,一个类能够实例化另外一个类,而不是将其做为一个成员。又或,一类的方法可能须要另外一个类做为输入参数,保留一个引用仅仅是为这个方法的执行。

l 经过从toolbox中选择“Dependency”箭头,从一个类拖向他因此来的类,来添加不通类之间的依赖关系。在这个例子中,Test_Pizza 依赖于Pizza,Circle和Rectangle类,由于它实例化了它们。

l 从Properties box选择name属性,或者双击图表上的“依赖线”,能够为依赖关系添加标签。特别的是,当一类实例化另外一个类,咱们会把依赖线叫作“instantiates”。

l 你能够选中并拖动依赖线的标签,以达到更美观的效果。

l 依赖关系不会影响代码生成。

22.你的图如今应该像本文最开始所示。

23.对你的图随意作些修改。

你还能够拖动你的类图,而且使箭头以不通的方式展现(使箭头显示为直线,选择一个箭头,右击它,弹出菜单中选择“Line Style”,并选择“Rectilinear” )。你必定要体验这个工具,并去了解它。

24.保存项目

在“File”菜单中,选择“Save”。 SU的全部资料只有一个单一的项目文件,因此你目前应该只有一个文件生成。

25.导出

将图表导出为其余格式,例如图片等,是很是有用的。您能够经过选择“File”菜单的“Export Diagram” ,而且选择合适的文件类型来执行改操做。

26.生成Java stub代码:

l 点击主菜单的“Tools->Java”菜单,选择“Generate Code”。

l 从对话框中选择你的模块(这里可能Model1),点击“Next”。

l 为了使你的模块或者图标的全部类都生成stub code,选择“Select All”而后按“Next”。

l 选择一个有效的输出目录,“Next”。

l In the "Options Setup", be sure to check both "Generate the Documentation by JavaDoc" and "Generate empty JavaDoc". All other checkboxes should be unchecked. Then press "Next".在“Options Setup” ,请务必选中“Generate the Documentation by JavaDoc”,“Generate empty JavaDoc”,全部其余复选框不选中,“Next”。

l 如今StarUML将从你的图产生代码,点击“Finish”退出对话框。

l 如今,您能够编辑生成的代码,以增长应用。

27.添加实现代码

如今就开始定义程序实际作的事情,例如,为你图标中的类描述添加实现代码。

l 使用DrJava添加代码,为相关的类,.Java文件添加代码。代码会和你使用HW02是同样的。(注意:为Test_Pizza些代码,最好由DrJava自动生成,而非手工在StarUML里面建立。咱们这里只是为了说明。)

l 记得那IShape的getArea()方法是抽象的,所以没有代码。

l 请您像代码范例同样添加注释。这种注释是“JavaDoc”风格的。 关于JavaDoc您将会在随后学到更多。

28.逆向工程

StarUML还能够从现有的Java代码建立一个类图,这被称为“reverse engineering”,当你想从现有的代码生成图表,或者你修改了SU生成的代码,而且想在图表中反应出来的时候,逆向工程功能就很是有用了。经过图表或者DrJava这样的文本编辑器去反复工做的过程,称做“round-trip engineering”。这也是面向对象变成中的一个基本过程。

l 到主菜单栏中选择“Tools/Java/Reverse Engineer...”,能够将现有的代码逆向工程。

l 选择Java代码所在的目录,并点击“Add”或“Add All”按钮,将它们包括在逆向工程过程当中,而后单击“Next” 。

l 选择你想将类加入的模块,这里多是“Model1”,而后“Next”。

l 在Option Setup里面:

n 确认“public”,“package”,“protected”和“private”是选中的(这是默认设置)。

n 一样,在默认状况下,单选按钮“Create the field to the Attribute”也是选中的。

n 除非你想SU建立其余东西,例如布局很糟糕的包含全部类的图表,不要选中“Create Overview Diagram”框。

n 当你对选项作了检查后,点击“Run”。

n SU will now import the classes in the selected files into your model. Click "Finish" to exit the dialog when it is complete.苏如今进口班,在被选定的文件到你须要的产品型号,点击"完成"退出对话框时,就完成了。

l SU会向你的模块添加导入的类,但不是你的图表。为了将它添加到您的图,只须要简单地从Model Explorer拖动它们便可。

相关文章
相关标签/搜索