一起来学UML(1)——UML建模工具Umbrello初体验

http://blog.csdn.net/donhao/article/details/5668499

一、UML

UML是统一建模语言,是一种可视化的语言。本系列内容拟通过Umbrello工具一起来学UML。正向逆向工程均以C++代码为例。

 (本文第一次上传图片时图片都在本地,所以读者们一直看不到图片,这里我重新整理了一下这篇文章)

二、UML工具对比

我所接触到的工具以及其各自的特性如下:

工具名称                       优点                                          缺点

Rational Rose             功能全,可以正向和逆向工程         收费,且其比较庞大

Visio                           简单                                          收费,无正向和逆向工程

VS2008                      可以逆向工程                              收费,逆向工程也不是很完美,所能表达的关系太少

                                                                                 (貌似只能表达泛化关系,即继承关系)

UML Start                   免费,可以正向工程                     无逆向工程

Umbrello                    免费,跨平台,可正向逆向工程      Windows下安装稍微有点复杂

 这里的“正向工程”是指通过UML图来生成代码,逆向工程是指通过代码生成UML图。

 

三、Umbrello的安装

在Linux安装应该是比较方便的,我在Fedora中用过。这里说说Windows下的安装。

1. 下载

http://windows.kde.org页面点击“Download Installer ”即可下载KDE。基于KDE可以在Windows下跑Linux应用。

2. 安装KDE

安装过程中步骤为:

    a. 选择"Install from Internet",如上图。

    b. 选择安装路径,如上图。

    c. 安装模式选择终端用户,编译器模式我选择的是MSVC2008,如上图。

d.选择临时现在的文件存储的路径,如上图。

e. 选择联网方式,我这里选择的是直接接入,如上图。

f. 选择一个站点来下载安装文件(我选的jp,速度还可以),如上图。点击下一步之后入进入下图,如果没有看到任何内容,可以返回这一步重新选择一个站点,如上图。

g. 我选择的stable latest,如上图。

h. 选择kdesdk,可以看到后边括弧中有umbrello,如上图。其实,在4.3版本中是单独的一个umbrello,大家可以根据自己选择的kde版本,在列表中找一下。之后点击下一步、下一步、完成、即可完成安装。

安装好之后可以在开始->程序中看到上图。

点击Umbrello,启动后窗口如上图,大功告成。 

四、Umbrello设置

点击Settings->Configure Umbrello.

a. 默认语言,General->Default Language中,即启动Umbrello之后默认的语言;

b. 支持的语言,Code Generation->Language中,若默认语言为C++,而你想生成Java,那么在这里选择。同时可以看到Umbrello支持的语言;

c. 生成代码的路径,Code Generation->Folders,这个很重要,如果是一个不存在的路路径,就如法生成代码。 

五、Umbrello初体验

a. 点击上图中的“类图”(第3行第6个图标),生成一个名为Base的类,然后再创建一个名为Derive的类。

b. 点击上图中的“实现关系”(第3行第14个图标),然后先点击Derive类,再点击Base类,可以看到如下图的UML类图:

  

该图表示类Derive集成了Base,Derive实现了Base。

c. 正向工程。点击工具栏Code->Code Generation Wizard,然后选择要生成代码的类。完成之后可以在Settings中设置的代码路径中看到四个文件,Base.h, Base.cpp, Derive.h, Derive.cpp。

如果点击工具栏Code->Generate All Code,则会直接生成所有类的代码。

d. 逆向工程。

删除左边UML Model中的Logical View中的Base和Derive,并且删除绘图区域中的图。

右击上图中的Logical View,选择Import Class,选择刚才生成了Base和Derive类的.h文件。这时又可以看到Logcal View中有了Base和Derive两个类,将这两个类分别拖动到绘图区。Umbrello自动帮我们生成了类图以及类之间的关系。 

六、小节

 认识了一款优秀的UML建模工具——Umbrello,后续将基于该工具来介绍UML。此外,学习使用Umbrello,有以下几个好处:

1. 他是开源免费的,可以让我们摆脱对收费软件的依赖

2. 本身出身与Linux平台,我们知道如何在Windows上跑Linux下的一些程序

3. 等于是学习了一款跨平台的工具,以后我们在Linux下可以很顺手的用Umbrello进行建模

一起来学UML(1)——UML建模工具Umbrello初体验

一起来学UML(2)——类图和泛化

一起来学UML(3)——类间的依赖、关联、聚合、组合关系

一起来学UML(4)——类图中的多重性(Multiplicity)

一起来学UML(5)——用例图


Umbrello UML Modeller Handbook(PDF手册,英文版),内容摘要:Umbrello UML Modeller helps the software development process by using the industry standard Unified Modelling Language (UML) to enable you to create diagrams for designing and documenting your systems. 目录:1 Introduction 7 2 UML Basics 8 2.1 About UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 UML Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.1 Use Case Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.1.1 Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.1.2 Actor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1.3 Use Case Description . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.2 Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.2.1 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2.1.1 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2.1.2 Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2.1.3 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2.2 Class Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2.2.1 Generalization . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.2.2.2 Associations . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.2.2.3 Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.2.2.4 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.2.3 Other Class Diagram Items . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.2.3.1 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.2.3.2 Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.2.3.3 Enums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.2.3.4 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.3 Sequence Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.4 Collaboration Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.5 State Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.5.1 State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.6 Activity Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.6.1 Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.7 Helper Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.8 Component Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Umbrello UML Modeller Handbook 2.2.9 Deployment Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.10 Entity Relationship Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.10.1 Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.10.1.1 Entity Attributes . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.10.1.2 Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.11 Extended Entity Relationship (EER) Diagram Concepts . . . . . . . . . . . . 19 2.2.11.1 Specialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.11.1.1 Disjoint Specialization . . . . . . . . . . . . . . . . . . . . 20 2.2.11.1.2 Overlapping Specialization . . . . . . . . . . . . . . . . . 20 2.2.11.1.3 Category . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3 Working with Umbrello UML Modeller 22 3.1 User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.1 Tree View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.1.2 Documentation and Command History Window . . . . . . . . . . . . . . . . 23 3.1.3 Work Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Creating, Loading and Saving Models . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.1 New Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.2 Save Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.3 Load Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 Editing Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 Adding and Removing Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4.1 Creating Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4.2 Removing Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4.3 Renaming Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5 Editing Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5.1 Insert Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5.2 Deleting Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5.3 Editing Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5.4 Editing Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.4.1 Class General Settings . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.4.2 Class Attribute Settings . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.4.3 Class Operations Settings . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.4.4 Class Template Settings . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.4.5 Class Associations Page . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.4.6 Class Display Page . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.4.7 Class Style Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5.5 Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5.5.1 Anchor Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5.6 Notes, Text and Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5.6.1 Anchors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4 Umbrello UML Modeller Handbook 4 Code Import and Code Generation 30 4.1 Code Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.1.1 Generating Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.1.1.1 Generation Options . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.1.1.1 Comment Verbosity . . . . . . . . . . . . . . . . . . . . . . 31 4.1.1.1.2 Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.1.1.3 Overwrite Policy . . . . . . . . . . . . . . . . . . . . . . . 32 4.1.1.1.4 Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1.1.2 Generation Wizard Generation . . . . . . . . . . . . . . . . . . . . . 32 4.2 Code Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5 Other Features 34 5.1 Other Umbrello UML Modeller Features . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.1 Copying objects as PNG images . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.2 Exporting to an Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.3 Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.4 Logical Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Reference: http://docsbay.net/handbook-umbrello-uml-modeller-handbook
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值