`

StartUML 类图

阅读更多

1.   综述:

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

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

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

2.   安装:

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

3.   启动

安装以后就可以启动该程序。

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”。这将改变以往的圆形形状,使其变为成长方形。

l            还是在顶部工具栏,取消选中" Suppress Operations "。这将使我们能够看到接口所拥有的方法。

l            IShape 接口添加返回值为doublegetArea方法。

n      可以通过右击interface的图标,在弹出菜单中点击红色的“Operation”按钮,然后输入getArea

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

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

14.          添加类和接口的关系

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

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

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

l        由于CircleRectangle类都实现了IShape接口,就必须有同样的行为(方法)

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

n        这些实现了的方法在CircleRectangle类中都不是抽象的,而是具体的。这是因为他们实际上是执行一些特定行为(例如,为一个圆形和长方形分别计算面积) ,所以不要勾选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(这个图示说明Pizzashape对象是“聚合“的关系)

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

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

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

19.          pizza类添加构造函数

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

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

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

l        Rectangle增加一个带有doublewidthheight参数的构造函数。

20.          你的图现在应该是这样的:

21.          添加Test_Pizza

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

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

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

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        记得那IShapegetArea()方法是抽象的,因此没有代码。

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拖动它们即可

分享到:
评论

相关推荐

    使用StartUML绘制类图

    使用StartUML绘制类图 在软件开发过程中,类图是UML(Unified Modeling Language)中最重要的一种图表,用于描述系统中类之间的关系和结构。StartUML是一个功能强大且易用的UML建模工具,适合用于绘制类图。下面将...

    UML参考手册+面向对象设计UML实践(第2版)+UML图例子+23种经典设计模式UML类图汇总

    UML类图汇总.chm文件很可能是对这些设计模式的可视化表示,如工厂模式、单例模式、观察者模式、装饰器模式、策略模式、适配器模式等。每种模式都有其特定的UML类图结构,帮助开发者理解模式的工作原理和实现方式。 ...

    startuml.zip

    这意味着你可以从已有的源代码自动生成UML类图,或者反过来,根据UML图生成代码。这对于理解和维护复杂的代码结构非常有帮助。例如,通过导入".java"或".cpp"文件,StartUML能自动解析并显示相应的类图。 此外,...

    startUml工程师必备

    【startUML工程师必备】 startUML是一款强大的建模工具,尤其对于软件工程师而言,它是进行系统分析和设计的重要辅助工具。它支持多种统一建模语言(UML)图的绘制,包括用例图、类图、序列图、状态图、活动图、...

    startUML使用手册

    **startUML使用手册** startUML是一款广受欢迎的免费且开源的统一建模语言(UML)设计工具。它提供了丰富的功能,帮助用户快速、高效地创建各种UML图表,包括类图、序列图、用例图、状态图等。这款工具特别适合初学...

    StartUML学习资料

    StartUML是一款强大的建模工具,它主要用于绘制各种UML(统一建模语言)图表,如用例图、类图、序列图、状态图等。本压缩包包含的"StartUML学习资料"是一份全面的教程,旨在帮助用户从零开始掌握这款工具的使用方法...

    startUML建模工具

    startUML是一款强大的建模工具,专用于创建统一建模语言(UML)模型。UML是一种标准化的图形表示法,被广泛应用于软件工程中,用于设计和文档化软件系统。startUML使得非专业和专业用户都能方便地创建、理解和交流...

    StartUML 5.0.exe.zip

    StartUML是一款强大的建模工具,专为设计和绘制统一建模语言(UML)模型而设计。在软件开发过程中,UML是一种通用的、直观的图形化表示方法,用于描述系统的行为、结构和组件。StartUML 5.0.exe.zip 文件是一个...

    画图工具StartUML软件官网

    首先,StartUML支持多种UML图的绘制,包括类图、对象图、序列图、通信图、状态图、活动图、用例图、组件图和部署图等。这些图在软件开发的不同阶段都有其独特的用途,例如,类图用于描述系统的静态结构,序列图则...

    startUML画图工具

    startUML是一款强大的建模工具,专为软件开发人员、系统架构师以及业务分析师设计,用于绘制各种UML(统一建模语言)图表。这款工具以其简洁的界面和丰富的功能,使得用户能够轻松创建和管理复杂的系统模型。 1. **...

    startUML工具包

    **startUML工具包**是专为Web开发人员设计的一款高效工具,用于绘制流程图、用例图、类图等多种UML(统一建模语言)图表。作为一个强大的建模工具,startUML使得复杂的系统设计过程变得更加直观和简单,极大地提高了...

    startuml 最全的使用手册 不过是英文版的

    StartUML 是一款强大的开源建模工具,主要用于绘制系统架构、用例图、类图、序列图、状态图等多种类型的UML(统一建模语言)图表。它以其简洁的界面、丰富的功能和易用性受到了众多IT专业人士的喜爱。本手册将详细...

    StartUML安装

    StartUML是一款强大的开源UML建模工具,它支持创建多种UML图,如用例图、类图、序列图、状态图等,是软件开发人员进行需求分析和系统设计的重要辅助工具。在本文中,我们将详细介绍如何安装StartUML,以便您能充分...

    StartUml使用简介

    由于篇幅限制,以下内容将重点介绍StartUML的基本概念和关键功能,以及如何通过StartUML创建一个简单的UML类图。 首先,了解StartUML的界面布局是非常重要的。StartUML的用户界面主要分为几个部分:菜单栏、工具栏...

    关于startUML资源配置文件.rar

    startUML是一款强大的建模工具,它支持UML(统一建模语言)的各种图表,包括用例图、类图、序列图等,是软件开发者进行系统设计和文档编写的重要工具。资源配置文件在任何应用程序中都起着至关重要的作用,它们通常...

    StartUml使用教程

    ### StartUml使用教程 #### 一、综述与背景介绍 StarUML(以下简称SU)是一款用于生成统一建模语言(Unified Modeling Language, UML)图表的强大工具,特别是类图和其他类型的图表。UML是一种广泛应用于软件工程...

    startUML2破解版下载

    startUML一款程序开发原型设计工具,可以设计用例图,类图等......

    StartUML v3.2.2 无限制学习版本

    **StartUML v3.2.2 无限制学习版本** StartUML 是一款功能强大的UML(统一建模语言)工具,适用于软件设计、系统分析以及项目管理等多个领域。这款软件提供了用户友好的界面,使得非专业程序员也能轻松创建各种UML...

    startuml uml建模工具

    **startuml UML建模工具** startuml 是一个强大的开源UML建模工具,它允许用户无需复杂的图形界面即可创建各种UML模型。这个工具以其简洁的语法和灵活性深受开发者和软件工程师的喜爱,尤其适合敏捷开发环境。在...

    StartUML工具

    StartUML是一款强大的建模工具,专为软件开发人员和系统架构师设计,它提供了一种高效、免费的方式来创建各种UML(统一建模语言)图表,包括用例图、类图、序列图、状态图等。通过这款工具,用户可以轻松地进行系统...

Global site tag (gtag.js) - Google Analytics