你如何保持UML图最新?

 天狼飞虎神印 发布于 2023-01-07 10:49

我来自物理背景,而不是计算机科学背景,从未在大学课程/组件图等任何课程,我从未发现需要在工作中使用它们.

我不明白的主要问题是,如果代码仍在开发或维护,您如何更新它们?

什么阻止我重构几个方法或类并使类图过时?

您是否必须不断手动更新图表?

我已经看到了从代码中生成UML的工具,这些工具可以让它保持最新我想但是从我看到的情况来看,自动生成的图表似乎不够用.

是否可能在开始时创建项目的UML,然后将其保留在文档文件夹中,并逐渐变得越来越过时?

1 个回答
  • 我在一个规模适中的政府机构工作,所以我们的大多数主要项目属于"企业Java"类别.这对我们有用:

    架构师使用UML图对我们的公司数据模型的任何更改和扩展进行建模.通常会有一个概念模型类图,加上一些序列图,说明系统的各个部分将如何相互作用,可能还有几个组件图.

    我们与业务分析师,DBA和主要开发人员进行了一次演练.这种想法是挑战新模型,并就变化达成一致(在这些会议上有很多"强有力"的讨论).拥有优秀的架构师,变化微乎其微.

    高级开发人员创建一个技术规范,通常包括基于体系结构模型的物理数据库ER图.从物理模型中,我们自动生成数据库创建脚本.

    DBA升级创建脚本(例如,添加表空间和索引空间信息)并创建/扩展数据库.

    代码被写入.开发人员可以创建自己的迷你类层次结构(例如,POJO来携带数据).我们不打算在UML中对这些进行建模,因为代码应该是自我记录的,并且随着代码的发展,变化是不可避免的.

    在开发阶段经常会发生变化,特别是在使用敏捷方法的情况下.如果这些影响企业数据模型,那么UML和ER图将会更新.

    在项目结束时,文档会更新以反映"已建立"状态.

    回到你的问题的要点,我不是自动UML < - >代码生成的坚定信徒.通常,有些数据是UML图(注释,关系基数,序列图等)的个人数据,这些数据没有出现在代码中或者很难提取.相反,代码包含不一定在逻辑UML模型中显示的东西(例如行为方法工作逻辑,数据结构和缓存).那么整个问题就是如何将逻辑模型类层次结构映射到数据库表...

    总结一下,我建议:

    预先设计正确.对逻辑模型的更改既昂贵又难以实现.

    使用建模工具,该工具将支持来自同一数据源的所有工件.也就是说,最初的UML逻辑模型,数据库ER图和数据库创建SQL DDL.我们使用Enterprise Architect,但是还有很多其他工具可以做到这一点.

    使用UML来模拟"大图"并忘记它来描述详细的编码.一个好的经验法则是,如果对模型的任何更改不仅影响您的团队,则需要UML.(例如,新的数据库字段可能需要更改数据库,更改Web服务,更改GUI以及更改大型机批处理过程.UML可以用多个团队可以的方式定义数据更改了解)

    2023-01-07 10:51 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有