此处简单介绍一下运用免费的UML工具Bouml生成C++代码。
在BoUML中的各个视图和组件基本有以下的结构:
Project
-> View
-> Diagrams
-> Components
每一个组件,比如类,在其设定对话框中都有一个语言属性。代码生成工具就是按其中的设定来生成代码。
在BoUML中生成代码主要需要Class和Artifact的定义,其中一个Artifact代表了一组头文件和源代码文件,它可以包含一个或多个Class的定义。所以使用BoUML生成代码,主要注意以下几点:
1. Class中的语言声明。->和类的定义有关
2. Artifact的语言声明。->和头文件及源码文件有关
3. 在Project的Generation Settings中的各类缺省声明及输出目录设定。
在开始之前,应当先确定:
1.语言是否已选择正确?
检查一下Languages菜单就可以了。建议将"Verbose code generation"选上,以便在代码生成过程得到更多的信息。
2.输出目录是否已设置?
检查一下Project->Edit generation settings最后一个页签的第一项就可以了。
一般在建立工程时要选定一个语言的,如果这时才选定语言也没有关系,只是要注意查看一下每个类的定义中,是否有相关语言的声明定义,如果没有就点一下"Default declaration"就可以了。
在已经设计好的UML工程中,添加Deployment View及一个Deployment Diagram, 然后在Deployment View下添加一个Artifact(小物件),类似如下的结构:
*其中将Artifact命名为Animals,并将Stereotype选定为source,毕竟我们是要生成源代码嘛。
编辑Animals artifact,将已定义的两个类添加到"Associated classes"中, 两个类就会被生成到一组源码文件中。如下所示:
如果有标准的编码规范,比如需要在文件头加一些声明,就可以通过Project->Edit generation settings来修改缺少设置:
因为Artfiact中已经保存了之前的设置,这样的改动并不会自动应用到已存在的Artifact上,所以需要手动在Artifact编辑对话框,重新点一下"Default definition"以加载新的缺省设置。
在处理C++ Source的声明中,${NAME}没有起作用,这是BoUML的一个BUG。
*BoUML是难得的一款支持UML 2.x的免费工具,功能也是相当不错。