StarUML

简介

史上最全的StarUML使用教程 - 简书 (jianshu.com)

  StarUML是一种创建UML类图,是一种生成类图和其他类型的统一建模语言(UML)图表的工具,是一个开源项目之一发展快、灵活、可扩展性强。StarUML免费版是一款开放源码的 UML 开发工具,可绘制9款UML图:用例图、类图、序列图、状态图、活动图、通信图、模块图、部署。

软件特色

  •   可绘制9款UML图:用例图、类图、序列图、状态图、活动图、通信图、构件图、部署图以及复合结构图等。

  •   完全免费:StarUML是一套开放源码的软件,不仅免费自由下载,连代码都免费开放。

  •   多种格式影像文件:可导出JPG、JPEG、BMP、EMF和WMF等格式的影像文件。

  •   语法检验:StarUML遵守UML的语法规则,不支持违反语法的动作。

  •   正反向工程:StarUML可以依据类图的内容生成Java、C++、C#代码,也能够读取Java、C++、C#代码反向生成类图。反向工程有两个主要用途,其一是旧有的源码反转成图之后,可以构建UML模型的方式继续将新的设计添加上去;另一项用途是想要解析源码时,可以通过反转的类图来理解,不再需要查看一行又一行的代码,这将节省大量的时间和精力。

  •   支持XMI:StarUML接受XMI 1.1、1.2和1.3版的导入导出。XMI是一种以XML为基础的交换格式,用以交换不同开发工具所生成的UML模型。

  •   导入Rose文件:StarUML可以读取Rational Rose生成的文件,让原先Rose的用户可以转而使用免费的StarUML。早期,Rational Rose是市场占有率最高的UML开发工具,同时也是相当昂贵的工具。由于Rational Rose非常闻名,后来让IBM给收购了。

  •   支持模式:支持23种GoF模式(Pattern),以及3种EJB模式。GoF模式出自于Erich Gamma等4人合著的Design Patterns:Elements of Reusable Object-Oriented Software一书,其内列出了23种软件模式,可解决软件设计上的特定问题。StarUML也支持3种常用的EJB模式,分别为EntityEJB、MessageDrivenEJB、SessionEJB。

  •   StarUML也结合了模式和自动生成代码的功能,方便落实设计。

image-20220311000259302

RationRose UML建模工具

介绍:

Rational Rose是基于UML的可视化建模工具。UML全称叫Unified Modeling Language,顾名思义,UML是一种语言,一种表示法,一种交流沟通的工具,特别适用于软件密集型系统的表示。

功能:

1、对业务进行建模(工作流);

2、建立对象模型(表达信息系统内有哪些对象,它们之间是如何协作完成系统功能的);

3、对数据库进行建模,并可以在对象模型和数据模型之间进行正、逆向工程,相互同步;

4、建立构件模型(表达信息系统的物理组成,如有什么文件、进程、线程、分布如何等等);

5、生成目标语言的框架代码,如VB、JAVA、DELPHI等。

特点:

1.保证模型和代码高度一致。

2.支持多种语言。

3.为团队开发提供强有力的支持。

4.支持模型的Internet发布。

5.生成使用简单且定制灵活的文档。

6.支持关系型数据库的建模。

EA:

nterprise Architect 是[Sparx Systems](https://baike.baidu.com/item/Sparx Systems) 公司的旗舰产品。它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。

它支持模型驱动的软件开发全生命周期工作。适合项目经理:有效地管理项目、业务分析师:业务需求战略分析、开发人员:建立和开发系统和测试人员:测试和调查使用。

它主要功能包括:UML建模、SysML 建模、BPMN建模、模型仿真、应用程序执行与调试、双向代码工程、需求管理、项目管理、版本管理、测试点管理等等,并且能够生成 PDF格式、 RTF格式和HTML格式的文档报告。

img

StarUML使用

1.创建一个类简略图。

创建一个简单类图并保存
 (1)创建一个简单类图如下所示:

在这里插入图片描述

 (2)修改简单类图名称如下所示:

在这里插入图片描述

(2)保存简单类图,通过快捷键ctrl+s即可保存,保存后的文件如下图所示:
在这里插入图片描述

二、类与类之间的关系。

 在使用starUML创建类图之前咱们先要搞清楚类和类之间的6种关系。

继承关系(泛化关系 Generalization)

a) 语义:

i. 类和子类的关系,接口和子接口的关系;

ii. 一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能

b) 语法:extends

c) 符号:

i. 一条带空心三角箭头的实线,从子类指向父类,或者子接口指向父接口。

在这里插入图片描述

实现关系(Realization)

a) 语义:

i. 类和接口之间的关系;

ii. 一个类可以实现多个接口,实现所有接口的功能;体现了规范和实现分离的原则

b) 语法: implements

c) 符号

i. 实现用一条带空心三角箭头的虚线表示,从类指向实现的接口
在这里插入图片描述

依赖关系(Dependency)

a) 语义:一个类A使用到了另一个类B,但是这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A

b) 语法:类B作为类A的方法的参数(或者局部变量)存在

c) 符号:

i. 由类A指向类B的带箭头虚线表示

在这里插入图片描述

关联关系(Association)

a) 语义:

i. 比依赖关系强,必然的,长期的,强烈的;

ii. 分为单向关联(只是班级中增加了学生)、双向关联(在学生中也添加班级属性)

iii. 分为一对一(学生和学生证)、一对多(班级和学生)、多对多关联(学生和课程)

iv. 有两个类的关联(客户和订单、订单和商品)、还有一个类和自身关联(领导也是员工)

b) 语法:类B作为成员变量形成存在于类A中

c) 符号:

i. 由类A指向类B的带箭头虚线表示;双向关联可以取消两个箭头

ii.

iii. 在关联的两端可以标注关联双方的角色和多重性标记

在这里插入图片描述

聚合关系(Aggregation)

a) 语义:

i. 关联关系的一种特例

ii. 整体和部分的关系

iii. 整体部分可分离,整体的生命周期和部分的生命周期不同,has-a的关系

iv. 计算机与CPU、公司与员工的关系、班级和学生的关系

b) 语法:同关联关系

c) 符号:空心菱形加实线箭头

在这里插入图片描述

组合关系(Composition)

a) 语义:

i. 关联关系的一种特例

ii. 整体和部分关系、整体部分不可分离、比聚合更强 ,contains-a的关系

iii. 整体的生命周期和部分的生命周期相同

iv. 人和四肢的关系

b) 语法:同关联关系

c) 符号:实心菱形加实线箭头
在这里插入图片描述

交互图

1.概述
交互图描述一组对象合作完成一项工作时,相互之间的消息交互关系。交互图反映系统运行过程中对象之间的动态联系活动,以帮助人们理解和把握系统内部各对象之间的动态协作关系。
交互图分为顺序图、通信图、交互概览图和时序图四种尖型.
顺序图反映各对象之间消息传送的时序关系。顺序图由对象、对象生命线、对象激活期和对象之间传输的消息等图形要素构成。图4.38是一个描述订货管理工作的顺序图。

image-20220311150147413

image-20220311152611368

image-20220311153506334

image-20220311162936336