ETJava Beta | Java    注册   登录
  • 搜索:
  • AI驱动的PlantUML:快速生成专业级UML类图和用例图

    发表于      阅读(1)     博客类别:Crawler     转自:https://www.cnblogs.com/budaos/p/18386334
    如有侵权 请联系我们删除  (页面底部联系我们)  

    承接前文关于如何运用 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,岗位用例图文件,复制生成的内容,岗位管理用例图就生成了,是不是很简单。

    大部分同学挺怀念IBM rose风格,其实plantUML默认也是支持的,可以统一在IDEA工具中统一设置,或者在@staruml下加上skin rose方法如下: