实验: 应用StarUML对C++工程进行UML双向

来源:互联网 发布:海信电视安装软件 编辑:程序博客网 时间:2024/06/08 01:00

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变化较大, 手工合并会很不便.