自定义 UML 生成器
Custom UML generator
我在一个专有工业系统上工作已经有一段时间了,就在最近,我被要求为我所做的工作制作一个 UML 图。但是,我已经研究了数百个 类 和函数,不想手动创建此图。
这个系统是用非常奇特的语言(PLC/Structured文本)编写的,程序员不常用。有人告诉我,语法有点像 Pascal,所有文件都保存在 XML 的集合中。每个 XML 代表某种对象,如函数、"function blocks"(本质上是 类)、"programs"(有点像静态函数)、枚举或结构。
这些对象通常在 XML 中有一个声明和一个实现标记。
使用某些标准 XML-parser 解析这种类型的代码结构并不是一项艰巨的任务。使用一个简单的字符串匹配器,我可以对每个对象及其与其他对象的关系进行分类。目前,我使用 Python.
完成了此操作
我的问题是,假设我知道代码的结构(对象关系等),是否有可以为我生成 UML 图的工具或编程库?
我在想类似 NetworkX, however this does not seem to be able generate the format I need 的简单方式。
干杯!
可以使用这个网站制作,使用类似 dot
的格式(这是他们的特定格式)。
例如,此代码:
<img src='http://g.gravizo.com/g?
/**
*Structural Things
*@opt commentname
*@note Notes can
*be extended to
*span multiple lines
*/
class Structural{}
/**
*@opt all
*@note Class
*/
class Counter extends Structural {
static public int counter;
public int getCounter%28%29;
}
/**
*@opt shape activeclass
*@opt all
*@note Active Class
*/
class RunningCounter extends Counter{}
'>
给出了这个:
我可以推荐 Acceleo 吗?它实现了 UML2Text 规范,是一个从 UML 图构建生成器的工具,是一个 Eclipse 插件。
但是您的语言似乎很具体,应该很难找到现有的生成器。
我在一个专有工业系统上工作已经有一段时间了,就在最近,我被要求为我所做的工作制作一个 UML 图。但是,我已经研究了数百个 类 和函数,不想手动创建此图。
这个系统是用非常奇特的语言(PLC/Structured文本)编写的,程序员不常用。有人告诉我,语法有点像 Pascal,所有文件都保存在 XML 的集合中。每个 XML 代表某种对象,如函数、"function blocks"(本质上是 类)、"programs"(有点像静态函数)、枚举或结构。
这些对象通常在 XML 中有一个声明和一个实现标记。
使用某些标准 XML-parser 解析这种类型的代码结构并不是一项艰巨的任务。使用一个简单的字符串匹配器,我可以对每个对象及其与其他对象的关系进行分类。目前,我使用 Python.
完成了此操作我的问题是,假设我知道代码的结构(对象关系等),是否有可以为我生成 UML 图的工具或编程库?
我在想类似 NetworkX, however this does not seem to be able generate the format I need 的简单方式。
干杯!
可以使用这个网站制作,使用类似 dot
的格式(这是他们的特定格式)。
例如,此代码:
<img src='http://g.gravizo.com/g?
/**
*Structural Things
*@opt commentname
*@note Notes can
*be extended to
*span multiple lines
*/
class Structural{}
/**
*@opt all
*@note Class
*/
class Counter extends Structural {
static public int counter;
public int getCounter%28%29;
}
/**
*@opt shape activeclass
*@opt all
*@note Active Class
*/
class RunningCounter extends Counter{}
'>
给出了这个:
我可以推荐 Acceleo 吗?它实现了 UML2Text 规范,是一个从 UML 图构建生成器的工具,是一个 Eclipse 插件。
但是您的语言似乎很具体,应该很难找到现有的生成器。