sourceforge上的主页: http://sourceforge.net/projects/staruml/
sourceforge工程是用Delphi写的, 对非Delphi程序员来说, 编译不便,要下载一堆开发环境.
http://staruml.sourceforge.net/en/development-setting.php
sourceforge上的主页上只提供了源码工程下载, 没有安装版下载.
最新的安装版下载点是2006年的, http://sourceforge.net/projects/staruml/files/staruml/5.0/
http://cdnetworks-kr-2.dl.sourceforge.net/project/staruml/staruml/5.0/staruml-5.0-with-cm.exe
安装之后,实验了效果, 不是很漂亮, 和Rose差不多. 但是对c++工程的正向和反向支持的很好, 这才是用UML工具的真正目的.
startUML安装程序和帮助文件做的很好.
在进行双向工程前,需要设置c++插件.
UML双向操作的菜单:
正向后的代码:
选择设计模式, 对代码进行优化设计:
设计模式中包含经典设计模式:
感觉比rose2003好用, 主要还是免费的, 支持UML2.0(最新的标准是UML2.3).
现在需要拿一个实际工程来开刀, 按照正式开发中的需求来验证starUML的双向.
最理想的状态是避开IDE的差别, 只针对c++的实现文件.
要对遗留的工程写详细设计文档(或研究修改开源工程)时, 进行UML反向能极大的提高工作效率.
<2011_0315>
对一个实际的工程<基于xerces-c2.8操作的XML业务层DLL>进行初步逆向, 分析调整逆向结果, 再正向到实际工程中.
如果从头设计的话, 应该是:
* 确定软件需求
* 建立工程框架, 逆向成UML模型
* D1: 在UML中修改设计, 正向到工程
* D2: 在工程中修改设计, 逆向到UML模型
* 如此反复上面D1和D2, 完成详细设计.
先逆向此DLL的测试程序testLsXmlParserDll, 可以验证使用组件时, 隐藏组件信息的实用性。
对于调用者来说,只要组件是正确的(当作第三方的实现, 如果组件不正确,修改升级也是在组件内进行),
不关心组件实现,只关注自己负责的实现和组件提供的接口定义.
StartUML的UML正向反向实验结论:
* StarUML与c++编译器和IDE都无关, 逆向时只针对.h.
* 适合与反向, 任何的更改都从c++工程本身开始, 然后逆向到UML. 适用与补充设计文档和预研陌生的工程.
* 正向有问题, 更改后的UML生成文件时, 文件的目录可以指定到工程目录, 但是文件名称不能指定。导致生成的文件.h和.cpp与原工程的类文件不同名, 需要手工合并. 如果UML变化较大, 手工合并会很不便.