StarUML学习
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也结合了模式和自动生成代码的功能,方便落实设计。
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格式的文档报告。
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是一个描述订货管理工作的顺序图。