使用简单的DSL创建UML图– PlantUML
从历史上看,我不喜欢创建设计UML图,因为为其制作工具通常需要绘制框并将其与直线或箭头连接。 我发现这种工作流程非常耗时又浪费。 这篇简短的博客文章将描述创建UML图表的更好方法。
但是首先,您可能会争辩说,UML在当今的敏捷软件开发世界中的重要性正在逐渐消失。 我会部分同意。
创建UML类图
从我的角度来看,很少需要UML类图。 我只能找到两个用例:
- 分析现有代码库
- 与团队沟通建议的设计
当您需要分析现有代码库时,IDE可以根据现有代码轻松生成类图。 IntelliJ idea提供此作为付费版本的一部分:
要了解如何创建这种图表,请阅读IntelliJ IDEA文档 。 使用Eclipse或它的口味(例如Spring Tool Suite)也很容易:
您只需要使用名为ObjectAid的插件即可 。
当我们需要先绘制类图以咨询团队设计时,我建议改为创建具有所需类结构的原型,然后根据实时代码生成类图(同样使用IDE)。 在创建原型时,您可能会发现一些有关设计的重要事实。 无需创建逻辑和测试,仅需要设计的API。
当然,当您不再需要生成的图表时,只需将其清除即可。 低级设计可能会轻易更改,并且您不希望保留过时的图表。 您可以轻松地从实时代码生成新图。
非类图
因此,当我们需要类图时,从实时代码生成它很聪明。 但是其他UML图呢 ?
- 结构图(类图除外)
- 行为图
- 交互图(特别有用的是此存储桶中的序列图)
在我的职业生涯中,我个人只创建了很少的用例和流程图。 但是序列图和组件图对于记录高级设计决策非常有用。 当然,您不想让它们非常详细,但是从总体上讲,设计师的意图和考虑有时很容易记录在案。
但是用于设计这些图表的工具必须非常易于使用和灵活。 对不起, Visio或Enterprise Architect ,我没有将您包括在这个存储桶中(尽管我必须要管理,但我很长时间没有使用EA了)。
我选择的工具是PlantUML 。 我们可以使用非常简单的DSL定义设计。 因此,我们可以专注于设计本身,而不是将画布上的框和线连接起来。 它可以用作独立应用程序,但也具有令人印象深刻的集成列表 。 因此,您可以轻松地将它与IntelliJ IDEA,Eclipse或Spring Tool Suite结合使用。
对我来说,一个非常令人信服的事实是,定义图的DSL可以与项目代码库一起使用,并且还可以由源代码控制系统处理,这带来了很多好处。 这是IntelliJ的简单屏幕截图:
翻译自: https://www.javacodegeeks.com/2016/03/create-uml-diagrams-simple-dsl-plantuml.html