UML图绘制 -- 类图

本文章已经生成可运行项目,

 总结

1.类图的画法

整体是个矩形,第一层类名,第二层属性,第三层方法。

  • +  :public
  • -   :  private
  • #  :  protected
  • 空格: 默认的default

 对应的类写法。

public class Student {
    public String name;
    public Integer age;
    protected Integer cardId;
    Integer mark;


    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

抽象类

对比类,就是第1层类名第3层 方法名斜体表示。

接口

顶层多了<<interface>>字段,其余好像没啥区别了。

 包

里面就是对应包的名字。

对应java写法。

package com.zgxt.demo.domain;

public class Student {
  
}

 2.类图的关系

如果说,类图为了表现java中的类、接口等属性方法,那么类图的关系就代表java中中类、接口之间的关系。

 泛化关系

泛化就是Java中的继承

表示图形:实线 + 空心三角

 对应的类关系图。

 

 实现关系

实现就是java中的实现。

 表示图形:虚线 + 空心三角

 依赖关系

如果一个类失去一个类代码无法编译,那么说这个类依赖于这个类。

具体表现为:成员变量、局部变量、方法形参,方法返回值

 表示图形:虚线箭头

 对应的类关系。

// 小孩
class Child{
    private Hand hand; // 依赖关系:成员变量也成为关联

    public void riding(Foot foot){ // 方法形参
        Bike bike = new Bike(hand,foot); // 局部变量
    }
}

关联关系

2个类依赖关系,并且是依赖中的成员变量,则存在关联关系。

而且再细分,感觉跟MySQL中的外键约束,表设计有异曲同工之妙。

MySQL FOREIGN KEY 外键约束 (w3schools.cn)

 表示图形:实线箭头、横线箭头。

单向关联

 双向关联

 聚合

是在依赖的及基础上(成员变量),但是和关联表现的层级不同,关联表示同层级之间,而聚合表示整体和部分层级之间。

另外: 整体和部分之间可以相互独立存在。

如: 一个公司由老板和员工组成。那么公司和员工关系就是聚合。而老板和员工的关系就是关联。

 表示图形:空心菱形 + 箭头。

代码:一个Computer类需要Boss类和Employee类,聚合。

而Employee类中的businessTrip[出差]() 方法需要Boss的同意,这就是关联。

// 聚合和关联
class Computer{
    private Boss boss; // 聚合
    private Employee employee; // 聚合
}

class Boss{

}

class Employee{
    private Boss boss; // 关联
    public boolean businessTrip(){
        // boss同意 return true
        // boss不同意 return false
    }
}

对应的图形 

组合

区别与聚合,组合的整体和部分之间不能独立存在。

如: 人由手、脚、头等身体部位组成,但是手离开人、人离开手都不能做相应的方法。

表示图形: 实心菱形 + 实线箭头。

这个我就不画了。

本文章已经生成可运行项目
### UML绘制工具推荐 在软件开发领域,UML是一种重要的建模工具,用于描述系统中的静态结构和对象之间的关系。为了高效地创建高质量的UML,可以选择多种专业的绘工具或软件。 以下是几种常用的UML绘制工具: #### 1. **ProcessOn** ProcessOn 是一款功能强大的在线绘平台,支持多种型的表制作,包括但不限于流程、思维导以及 UML 表[^2]。 用户可以通过简单的拖拽操作完成复杂的设计,并且该平台提供了丰富的模板供初学者学习使用。 此外,它还具备团队协作的功能,方便多人共同编辑同一个项目文件。 #### 2. **Lucidchart** 作为另一款流行的云端可视化应用解决方案,Lucidchart 提供了直观易用界面来构建各种业务和技术模型,其中包括详细的 UML 支持选项[^3]。 它允许用户自定义形状属性并调整样式设置以满足特定需求; 同时也集成了许多第三方服务如 Google Drive 和 Microsoft Office Online ,从而增强了数据共享能力. #### 3. **StarUML** 专为软件工程师打造的 StarUML 则专注于提供全面而精确的支持给所有的 OMG 标准化建模语言(OMG Standard Modeling Languages),特别是对于那些希望严格按照官方规范来进行复杂应用程序架构规划的人来说非常合适[^4]. 这种桌面版程序拥有强大灵活定制可能性的同时保持相对轻量级安装包大小以便于快速部署到不同操作系统环境当中去执行任务. ```python # 示例 Python 脚本调用外部 API 获取星型模式 (Star Schema) 数据仓库设计方案片段 import requests def fetch_star_schema_example(): url = "http://example.com/api/star-schema" response = requests.get(url) if response.status_code == 200: return response.json() else: raise Exception("Failed to load star schema example") data = fetch_star_schema_example() print(data['description']) ``` #### 4. **Visual Paradigm** 最后提到的是 Visual Paradigm ,这是一款综合性的 ALM(Application Lifecycle Management 应用生命周期管理 )套件之一,在其中包含了完整的 UML 建模特性集合[^5] 。 不仅如此,其社区版本免费向个人用户提供基本级别的访问权限,足以应对大多数教育目的或者小型企业内部的需求分析工作流场景下的挑战。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来自马达加斯加的黑猫杰克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值