当前位置:网站首页>如何使用StarUML画类图[通俗易懂]
如何使用StarUML画类图[通俗易懂]
2022-07-31 12:49:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
此篇文档旨在介绍类图以及如何通过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”。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128626.html原文链接:https://javaforall.cn
边栏推荐
- FastAPI 封装一个通用的response
- Using SQL Server FOR XML and FOR JSON syntax on other RDBMSs with jOOQ
- Build a Valentine's Day confession website (super detailed process, package teaching package)
- golang八股文整理(持续搬运)
- go中select语句
- 跨境电商小知识之跨境电商物流定义以及方式讲解
- ipv4和ipv6对比(IPV4)
- Character Functions and String Functions
- dosbox基础使用[通俗易懂]
- golang中使用泛型
猜你喜欢

Markdown编辑器语法

【CPU设计实战】简单流水线CPU设计

硬盘分区,拓展C盘,不重装系统,不重装D盘软件的全教程。

Architecture Camp | Module 8

ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法

CWE4.8 -- 2022年危害最大的25种软件安全问题

Introduction to using NPM

PyQt5 rapid development and actual combat 9.7 Automated testing of UI layer

centos7安装mysql5.7步骤(图解版)

手撕Verilog PWM呼吸灯
随机推荐
Hybrid brain-computer interface system based on steady-state visual evoked potentials and attentional EEG
基于verilog的CRC校验(汇总)
MySQL面试八股文(2022最新整理)
Basic use of dosbox [easy to understand]
Flutter键盘可见性
NameNode (NN) 和SecondaryNameNode (2NN)工作机制
Centos7 install mysql5.7 steps (graphical version)
ipv4和ipv6对比(IPV4)
基于姿态估计的护具佩戴检测与动作识别
这款悄然崛起的国产API接口管理工具,你一定要晓得
Introduction to using NPM
ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that corresponds to your
电商rpa是什么意思?跟电商rpi是一个意思吗?
Encapsulation of conversion between Json and objects (Gson)
Fully Dynamically Constrained Robot Efficient Time-Optimal Trajectory Planning
centos7安装mysql5.7步骤(图解版)
查看Mysql数据库版本
集群中增加数据节点与退役数据节点
PHP序列化:eval
立一个flag