首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

AI驱动的PlantUML:快速生成专业级UML类图和用例图

编程知识
2024年08月29日 10:33

承接前文关于如何运用 AI 工具生成时序图的内容【1】,今天我们继续探讨 AI 驱动的 PlantUML:高效创建专业的 UML 类图与用例图。

【1】: https://juejin.cn/post/7407637717206728755

【2】: 案例参照开源项目ruoyi-cloud:https://gitee.com/y_project/RuoYi-Cloud

AI驱动分析类间关系并通过PlantUML生成类图

一、在Fitten Code中输入如下内容

@workspace 分析下com.ruoyi.system下岗位管理这功能各类之间的关系

得到的结果如下:
为了分析 com.ruoyi.system 下岗位管理功能各类之间的关系,我们需要查看相关的类和它们的方法。以下是基于提供的参考信息进行的分析:

1. 主要类和接口

1.1. SysPost 类

  • 描述: 岗位实体类,包含岗位的基本信息。

  • 属性:

    • postId: 岗位ID
    • postCode: 岗位编码
    • postName: 岗位名称
    • postSort: 显示顺序
    • status: 状态
    • createBy: 创建者
    • createTime: 创建时间
    • updateBy: 更新者
    • updateTime: 更新时间
    • remark: 备注

1.2. SysPostMapper 接口

  • 描述: MyBatis Mapper 接口,用于操作岗位数据。

  • 方法:

    • selectPostList: 查询岗位列表
    • selectPostAll: 查询所有岗位
    • selectPostById: 根据ID查询岗位
    • selectPostListByUserId: 根据用户ID查询岗位列表
    • selectPostsByUserName: 根据用户名查询岗位
    • checkPostNameUnique: 检查岗位名称是否唯一
    • checkPostCodeUnique: 检查岗位编码是否唯一
    • updatePost: 更新岗位信息
    • insertPost: 插入岗位信息
    • deletePostById: 根据ID删除岗位
    • deletePostByIds: 批量删除岗位

1.3. SysPostService 接口

  • 描述: 岗位服务接口,定义岗位管理的相关业务逻辑。

  • 方法:

    • selectPostList: 查询岗位列表
    • selectPostAll: 查询所有岗位
    • selectPostById: 根据ID查询岗位
    • selectPostListByUserId: 根据用户ID查询岗位列表
    • selectPostsByUserName: 根据用户名查询岗位
    • checkPostNameUnique: 检查岗位名称是否唯一
    • checkPostCodeUnique: 检查岗位编码是否唯一
    • insertPost: 插入岗位信息
    • updatePost: 更新岗位信息
    • deletePostByIds: 批量删除岗位
    • export: 导出岗位信息

1.4. SysPostServiceImpl 类

  • 描述SysPostService 接口的实现类,实现具体的业务逻辑。

  • 方法:

    • 实现 SysPostService 接口的所有方法

1.5. SysPostController 类

  • 描述: 岗位管理控制器,处理HTTP请求。

  • 方法:

    • list: 查询岗位列表
    • export: 导出岗位信息
    • getInfo: 根据ID查询岗位详细信息
    • add: 新增岗位
    • edit: 修改岗位
    • remove: 删除岗位

2. 类之间的关系

2.1. SysPost 和 SysPostMapper

  • SysPost 是岗位实体类,SysPostMapper 是操作 SysPost 数据的 MyBatis Mapper 接口。
  • SysPostMapper 通过 MyBatis 映射文件 (SysPostMapper.xml) 定义了与数据库交互的 SQL 语句。

2.2. SysPostMapper 和 SysPostService

  • SysPostService 接口定义了岗位管理的业务逻辑,SysPostServiceImpl 是其实现类。
  • SysPostServiceImpl 通过依赖注入 SysPostMapper 来访问数据库,实现业务逻辑。

2.3. SysPostService 和 SysPostController

  • SysPostController 是控制器类,处理HTTP请求,调用 SysPostService 的方法来完成业务逻辑。
  • SysPostController 通过依赖注入 SysPostService 来访问业务逻辑。

3. 总结

岗位管理功能涉及的主要类和它们之间的关系如下:

  • SysPost 是岗位实体类。
  • SysPostMapper 是操作 SysPost 数据的 MyBatis Mapper 接口。
  • SysPostService 是岗位服务接口,定义岗位管理的业务逻辑。
  • SysPostServiceImpl 是 SysPostService 的实现类,通过 SysPostMapper 访问数据库。
  • SysPostController 是控制器类,处理HTTP请求,调用 SysPostService 的方法来完成业务逻辑。

这些类和接口通过依赖注入和方法调用,共同实现了岗位管理功能。

二、在Fitten Code中继续输入如下内容

接着上再用plantuml把岗位管理功能相关的类形成类图

分析出的结果如下:

@startuml

class SysPost {
    +Long postId
    +String postCode
    +String postName
    +Integer postSort
    +String status
    +String createBy
    +Date createTime
    +String updateBy
    +Date updateTime
    +String remark
}

interface SysPostMapper {
    +List<SysPost> selectPostList(SysPost post)
    +List<SysPost> selectPostAll()
    +SysPost selectPostById(Long postId)
    +List<Long> selectPostListByUserId(Long userId)
    +List<SysPost> selectPostsByUserName(String userName)
    +SysPost checkPostNameUnique(String postName)
    +SysPost checkPostCodeUnique(String postCode)
    +int updatePost(SysPost post)
    +int insertPost(SysPost post)
    +int deletePostById(Long postId)
    +int deletePostByIds(Long[] postIds)
}

interface SysPostService {
    +List<SysPost> selectPostList(SysPost post)
    +List<SysPost> selectPostAll()
    +SysPost selectPostById(Long postId)
    +List<Long> selectPostListByUserId(Long userId)
    +List<SysPost> selectPostsByUserName(String userName)
    +SysPost checkPostNameUnique(String postName)
    +SysPost checkPostCodeUnique(String postCode)
    +int insertPost(SysPost post)
    +int updatePost(SysPost post)
    +int deletePostByIds(Long[] postIds)
    +void export(SysPost post)
}

class SysPostServiceImpl {
    -SysPostMapper sysPostMapper
    +List<SysPost> selectPostList(SysPost post)
    +List<SysPost> selectPostAll()
    +SysPost selectPostById(Long postId)
    +List<Long> selectPostListByUserId(Long userId)
    +List<SysPost> selectPostsByUserName(String userName)
    +SysPost checkPostNameUnique(String postName)
    +SysPost checkPostCodeUnique(String postCode)
    +int insertPost(SysPost post)
    +int updatePost(SysPost post)
    +int deletePostByIds(Long[] postIds)
    +void export(SysPost post)
}

class SysPostController {
    -SysPostService sysPostService
    +ResponseEntity<TableDataInfo> list(SysPost post)
    +ResponseEntity<AjaxResult> export(SysPost post)
    +ResponseEntity<AjaxResult> getInfo(Long postId)
    +ResponseEntity<AjaxResult> add(SysPost post)
    +ResponseEntity<AjaxResult> edit(SysPost post)
    +ResponseEntity<AjaxResult> remove(Long[] postIds)
}

SysPostMapper <|-- SysPostServiceImpl : 依赖
SysPostService <|-- SysPostServiceImpl : 实现
SysPostService <|-- SysPostController : 依赖

@enduml

三、新建plantUml文件并复制如上内容

类图说明

  • SysPost 类表示岗位实体,包含岗位的基本信息。
  • SysPostMapper 接口定义了操作岗位数据的 MyBatis Mapper 方法。
  • SysPostService 接口定义了岗位管理的业务逻辑。
  • SysPostServiceImpl 类实现了 SysPostService 接口,并通过依赖注入 SysPostMapper 来访问数据库。
  • SysPostController 类是控制器,处理HTTP请求,调用 SysPostService 的方法来完成业务逻辑。

通过这个类图,可以清晰地看到岗位管理功能中各个类之间的关系和依赖。
最终效果如下,可以导成图片文件。

四、在Fitten Code中继续输入如下内容

例如岗位管理主要划分为岗位新增、修改、删除和查询功能。通过plantuml生成用例图

与上同样新建一个plantUML,岗位用例图文件,复制生成的内容,岗位管理用例图就生成了,是不是很简单。

From:https://www.cnblogs.com/budaos/p/18386334
本文地址: http://shuzixingkong.net/article/1550
0评论
提交 加载更多评论
其他文章 Python 项目及依赖管理工具技术选型
Python 项目及依赖管理工具,类似于 Java 中的 Maven 与 Node 中的 npm + webpack,在开发和维护项目时起着重要的作用。使用适当的依赖管理工具可以显著提高开发效率,减少依赖冲突,确保项目的稳定性、可靠性和安全性。 一、常见项目及依赖管理工具需具备的功能 1. 依赖管理
MySQL的GROUP_CONCAT函数轻松解决多表联查的聚合问题
大家好呀,我是summo,最近遇到了一个功能需求,虽然也是CURD,但属于那种比较复杂一点的CURD,话不多说,我们先看一下需求。 需求如下: 有三张表,学生表、课程表、学生课程关联表,关联关系如下图: 要求实现的功能: 支持输入名称模糊查询,可以是学生名称也可以是课程名称,但只有一个输入框; 要求
MySQL的GROUP_CONCAT函数轻松解决多表联查的聚合问题 MySQL的GROUP_CONCAT函数轻松解决多表联查的聚合问题 MySQL的GROUP_CONCAT函数轻松解决多表联查的聚合问题
TimeWheel算法介绍及在应用上的探索
作者:来自 vivo 互联网服务器团队- Li Fan 本文从追溯时间轮算法的出现,介绍了时间轮算法未出现前,基于队列的定时任务实现,以及基于队列的定时任务实现所存在的缺陷。接着我们介绍了时间轮算法的算法思想及其数据结构,详细阐述了三种时间轮模型的数据结构和优劣性。 再次,我们介绍时间轮算法在 Du
TimeWheel算法介绍及在应用上的探索 TimeWheel算法介绍及在应用上的探索 TimeWheel算法介绍及在应用上的探索
Oracle同一台服务器创建多个数据库
有时候我们需要再同一台机器上创建多个数据库服务(不是单纯的数据库实例),每一个数据库可以有单独的服务运行,只是在一个机器环境而已。可以在不同的端口上监听,也可以在相同端口监听 创建多个数据库步骤 安装完Oracle数据库后,会自动安装很多工具,这里我们使用Database Configuration
Oracle同一台服务器创建多个数据库 Oracle同一台服务器创建多个数据库 Oracle同一台服务器创建多个数据库
ArgoWorkflow教程(三)---使用 Artifacts 实现步骤间文件共享
上一篇我们分析了 Workflow、WorkflowTemplate、template 之间的关系。本篇主要分析如何在 argo-workflow 中使用 S3 存储 artifact 实现步骤之间的文件共享。
ArgoWorkflow教程(三)---使用 Artifacts 实现步骤间文件共享 ArgoWorkflow教程(三)---使用 Artifacts 实现步骤间文件共享 ArgoWorkflow教程(三)---使用 Artifacts 实现步骤间文件共享
架构实战
所谓架构,意即系统架构,广义上它涵盖业务架构、运维架构、组织架构等所有系统构建场景,本文特指一般开发人员主要关注的开发架构。 关于架构的理论有很多,每个人也都有各自的理解,笔者相信很多人在实际运用中也会遇到各种各样的问题和困惑,本文抛开教条,从一个实际项目的演化看何为架构。 项目背景 开始之前,先了
架构实战 架构实战 架构实战
使用 nuxi analyze 命令分析 Nuxt 应用的生产包
title: 使用 nuxi analyze 命令分析 Nuxt 应用的生产包 date: 2024/8/29 updated: 2024/8/29 author: cmdragon excerpt: 使用 nuxi analyze 命令可以帮助你深入了解生产包的结构和大小,从而做出针对性的优化。通
使用 nuxi analyze 命令分析 Nuxt 应用的生产包 使用 nuxi analyze 命令分析 Nuxt 应用的生产包
Mac上HomeBrew安装及换源教程
Mac上HomeBrew安装及换源教程 Mac的Mac OS系统来源于Unix系统,得益于此Mac系统的使用类似于Linux,因此Linux系统中的包管理概念也适用于Mac,而HomeBrew便是其中的一个优秀的包管理工具,而包管理工具是什么呢?软件包管理工具,拥有安装、卸载、更新、查看、搜索等功能