如何使用StarUML画类图[通俗易懂]

此篇文档旨在介绍类图以及如何通过StarUML工具画类图。StarUML官网下载地址:http://staruml.io/download**什么是类图** 类图用于描述系统中所包含的类以及它们之间的相互关系,帮助简化对系统的理解。**类与接口的表现形式**矩形框:它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性…

大家好,又见面了,我是你们的朋友全栈君。



此篇文档旨在介绍类图以及如何通过StarUML工具画类图。
StarUML官网下载地址:http://staruml.io/download
**什么是类图**
  类图用于描述系统中所包含的类以及它们之间的相互关系,帮助简化对系统的理解。
**类与接口的表现形式**
矩形框: 它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。前面的符号,+ 表示public,- 表示private,# 表示protected。
接口图:与类图的区别主要是顶端的<>显示。第一行是接口名称,第二行是接口方法。
在系统分析与设计阶段,类通常分为三种:实体类、控制类、边界类。
实体类:实体类来源于需求说明中的名词,如学生、商品等。
控制类:控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类。
边界类:主要包括界面类,如对话框、窗口、菜单等。

**类与类,类与接口之间常用的关系及UML中的表示法**
1、继承关系
是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为。
表示is-a的关系,用空心三角形 + 实线来表示, 箭头从子类指向父类。

2、实现接口
一种类与接口的关系, 表示类是接口所有特征和行为的实现。
用空心三角形 + 虚线来表示,箭头从实现类指向接口。
3、依赖关系(弱依赖)
在 Java 中体现为对局部变量、方法的参数或静态方法的调用。即一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。例如人买车:
Class Person
{

//人买车。对象“车”,与人之间的关系为依赖关系
Public void buy_car(Car mycar)
{

  …..
}
}
依赖关系在UML类图中用虚线箭头来表示。由依赖的一方指向被依赖的一方

4、关联关系(强依赖)
在Java中,关联关系是通过使用成员变量来实现的,它使一个类知道另一个类的属性和方法。
关联又分为一般关联、聚合关联与组合关联;关联可以是单向/双向。(注:双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头)
例如老师与学生的关系,一个老师可能有多个学生,一个学生也可能有多个老师,”多对多的关系”;员工与老板的关系(只有一个老板)”一对多的关系”。在类图用实线箭头来表示,箭头从使用类指向被关联的类。

5、聚合关系
表示has-a的关系,较强于一般关联。有整体与局部的关系,并且没有了整体,局部也可单独存在。
例如公司和员工的关系,公司包含员工,但如果公司倒闭,员工可以依然活着。
在类图用空心的菱形 + 实线箭头来表示,菱形从局部指向整体。

6、组合关系
表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。
例如公司和部门的关系,没有了公司,部门也不能存在了。
   在类图中用实心菱形 + 实线箭头来表示,菱形从局部指向整体:

说明:
安装好StarUML之后,在新建的file中画UML步骤如下:
(1)单击左侧“Toolbox”中的选项(非表示关系的线条);然后在中间的画布中单击就可以完成初步的显示。
(2)选中所需要编辑的类/接口,在starUML界面的右下角“Edit”中可以改变字体大小、颜色等。在右上的“Model Exploer”选中的类/接口,可以声明对应的编辑类名、属性、接口名等。
(3)最后一步即需要表示类与接口的间的关系,通过拖拽左侧栏中的关系表示,注意,拖拽的过程中可能会出现“Invailed Connection”
的错误,原因可能是它们之间不属于此类关系or放置的位置不正确。

总:通过以上三步骤基本上能完成一个简单的UML类图了。还需要最后一点说明就是上图中的“接口名处”。最开始添加一个接口Interface的时候,StarUML默认是以一个圆圈表示,即“棒棒糖表示法”。一般通过两层矩形框表示更形象点。所以可以通过以下两步骤去设置即可:
(1)选中需要修改的接口图,右键“Format”→“Stereotype Display”→“None”
(2)“Format”去掉“Suppress Attributes”和“Suppress Operations”。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128626.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 手机号码归属地 mysql_最新全国手机号码归属地信息SQLite数据库2019年2月更新

    手机号码归属地 mysql_最新全国手机号码归属地信息SQLite数据库2019年2月更新安装pipinstallphone-db使用:查询数据库中手机号段总条数>>>fromphone_dbimportSession,Phone,Region>>>session=Session()>>>session.query(Phone).count()415284查询北京市联通手机号段总条数>>>…

  • ip addr del 操作ip时的注意事项[通俗易懂]

    ip addr del 操作ip时的注意事项[通俗易懂]在高可用,多线路及系统维护的特殊情况下,我们通常会通过”ipaddr”这一命令来添加一个隐形IP在相应的设备上,但是当我们在一个设备上添加多个ip的时候,删除某个IP的时候尤其要注意,下面通过几个实例来说明,如下:root@localhost~]#ipaddradd10.1.1.230/24deveth0[root@localhost~]#ipaddradd1…

  • CentOS7离线安装gcc

    CentOS7离线安装gcc安装Redis时,需要使用gcc。如果系统是联网的,那么直接使用如下命令联网安装。yum-yinstallgcc但是如果系统不可联网,那么就需要一种离线安装的方式了。步骤如下:1.从CentOS7的系统安装镜像中取出需要的rpm包(也可以通过别的方式获取):解压镜像文件,进入"Packages"目录,里面很多rpm包,取出如下几个:mpfr-3.1.1-4.el7….

  • 大数据开源舆情分析系统-数据采集技术架构浅析

    大数据开源舆情分析系统-数据采集技术架构浅析舆情系统中数据采集是一个关键部分,此部分核心技术虽然由爬虫技术框架构建,但抓取海量的互联网数据绝不是靠一两个爬虫程序能搞定,特别是抓取大量网站的情况下,每天有大量网站的状态和样式发生变化以后,爬虫程序能快速的反应和维护。一旦分布式的爬虫规模大了以后会出现很多问题,都是种种技术挑战,会有很多门槛,例如:1.检测出你是爬虫,拉黑你IP(人家究竟是通过你的ua、行为特则还是别的检测出你是爬虫的?你怎么规避?)2人家给你返回脏数据,你怎么辨认?3对方被你爬死,你怎么设计调度规则?4要求你一天爬.

  • 查看数据库里阻塞和死锁情况.sql

    查看数据库里阻塞和死锁情况.sql

  • 一种导致AbstractMethodError问题的原因

    一种导致AbstractMethodError问题的原因1)App和B-lib依赖于A-lib的不同版本,并且都实现了A-lib中定义的一个接口IFunc,运行时A-lib会调用各IFunc实现;2)B-lib仅在编译阶段依赖A-lib,实际运行的是APP中集成的A-lib;3)APP端升级了A-lib,在IFunc中新增了一个方法aNewMethod()。由于B-lib并未针对v2版本的A-lib进行适配,因此运行时当A-lib调用B-l…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号