使用StarUML画类图

时间:2023-03-10 07:08:50
使用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”这一项目。

使用StarUML画类图

5.保存工程

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

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

使用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 “。这将使我们能够看到接口所拥有的方法。

使用StarUML画类图

向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框。

现在的类图看起来应该是这样的:

使用StarUML画类图

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…”,可以将现有的代码逆向工程。