使用简单的DSL创建UML图– PlantUML

从历史上看,我不喜欢创建设计UML图,因为为其制作工具通常需要绘制框并将其与直线或箭头连接。 我发现这种工作流程非常耗时又浪费。 这篇简短的博客文章将描述创建UML图表的更好方法。

但是首先,您可能会争辩说,UML在当今的敏捷软件开发世界中的重要性正在逐渐消失。 我会部分同意。

创建UML类图

从我的角度来看,很少需要UML类图。 我只能找到两个用例:

  • 分析现有代码库
  • 与团队沟通建议的设计

当您需要分析现有代码库时,IDE可以根据现有代码轻松生成类图。 IntelliJ idea提供此作为付费版本的一部分:

使用简单的DSL创建UML图– PlantUML

要了解如何创建这种图表,请阅读IntelliJ IDEA文档 使用Eclipse或它的口味(例如Spring Tool Suite)也很容易:

使用简单的DSL创建UML图– PlantUML

您只需要使用名为ObjectAid的插件即可

当我们需要先绘制类图以咨询团队设计时,我建议改为创建具有所需类结构的原型,然后根据实时代码生成类图(同样使用IDE)。 在创建原型时,您可能会发现一些有关设计的重要事实。 无需创建逻辑和测试,仅需要设计的API。

当然,当您不再需要生成的图表时,只需将其清除即可。 低级设计可能会轻易更改,并且您不希望保留过时的图表。 您可以轻松地从实时代码生成新图。

非类图

因此,当我们需要类图时,从实时代码生成它很聪明。 但是其他UML图呢

  • 结构图(类图除外)
  • 行为图
  • 交互图(特别有用的是此存储桶中的序列图)

在我的职业生涯中,我个人只创建了很少的用例和流程图。 但是序列图和组件图对于记录高级设计决策非常有用。 当然,您不想让它们非常详细,但是从总体上讲,设计师的意图和考虑有时很容易记录在案。

但是用于设计这些图表的工具必须非常易于使用和灵活。 对不起, VisioEnterprise Architect ,我没有将您包括在这个存储桶中(尽管我必须要管理,但我很长时间没有使用EA了)。

我选择的工具是PlantUML 我们可以使用非常简单的DSL定义设计。 因此,我们可以专注于设计本身,而不是将画布上的框和线连接起来。 它可以用作独立应用程序,但也具有令人印象深刻的集成列表 因此,您可以轻松地将它与IntelliJ IDEA,Eclipse或Spring Tool Suite结合使用。

对我来说,一个非常令人信服的事实是,定义图的DSL可以与项目代码库一起使用,并且还可以由源代码控制系统处理,这带来了很多好处。 这是IntelliJ的简单屏幕截图:

使用简单的DSL创建UML图– PlantUML

翻译自: https://www.javacodegeeks.com/2016/03/create-uml-diagrams-simple-dsl-plantuml.html