2004-8-2 21:19
carol
from: someok's blog<br /><a href='http://www.blogbus.com/blogbus/blog/diary.php?diaryid=274169' target='_blank'>http://www.blogbus.com/blogbus/blog/diary.php?diaryid=274169</a><br /><br /><!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->最近试用了一堆UML工具,留点痕迹吧<br /><br />最近疯狂试用了一堆的uml建模工具,如together、magicUML、VP-UML、Poseidon(最慢)、EA、argoUML已经以前用过的rose的新版XDE、现在还一直用着的Powerdesigner10,用后最大的感觉是老牌的到底是老牌啊,其中的together、pd以及rose功能果然强大,尤其是人机界面方面确是大家风范,而其它几款工具就颇有点搞技术的风格了:为技术而技术。<br />当然上面的些微感受只是小结(听了垂前辈的课,总是喜欢不由自主的去想想那些ui方面的东东,呵呵,被洗脑了<!--emo&^_^--><img src='style_emoticons/default/happy.gif' border='0' style='vertical-align:middle' alt='happy.gif' /><!--endemo-->),就功能来说,上面列举的那些工具对uml建模的支持都非常出色,而本人的uml水平怎么说也只是半瓶子咣铛的层次,所以就藏拙先。下面就看看在我最常用的类图方面这几款工具给我的感受。<br /><br />对我来说,最希望的是集成度高的建模工具,集成uml建模、数据库建模。<br /><br />对于纯正的分析人员来说,这样的集成意义也许并不太大,但是对于我们这些战斗在第一线的程序员来说,如果数据模型和类图能够互相转换,可以尽量少地调整,那当然是最完美的了。<br /><br />要知道,对于一般软件公司来说,最常见的系统开发流程也许是:数据库建模-框架代码-实际编程等。最常用的工具也许就是ERWin、PD搞数据库表结构,rose或其它工具建立类图结构,然后生成框架代码。很显然不同的工具之间整合是不存在的。<br /><br />对于现今炒的比较火爆的DAO模式来说,由于其pojos和实际的关系型数据库的表结构存在“几乎”一一对应的映射,所以如果能够从表结构直接生成那些pojo,或是从pojo得到表结构,那显然会节省很多的工作量。<br /><br />这方面那些工具的提供商们显然也是想在了我们前头。rose、pd就在这方面下了功夫,其中尤其以pd更加的出乎其类、拔乎其粹,它可以在pdm、oom以及cdm之间灵活切换,互相更新,当时尝试这个功能的时候,可以说是颇为激动的,然而遗憾的是,事事总有瑕疵,pd的代码同步实在让人难以忍受,它生成的代码不够完善无所谓,我可以用其它工具调整,然而将调整后的代码再次导入的之后,代码又会被它搞得面目全非,而且其同步功能用起来颇为费劲,开始时还颇让我花费了一番功夫来领会那个“同步”的概念,原来它的所为同步是将硬盘上的实际代码同步到类图中,而从类图中到物理代码的转换只能使用“代码生成”功能了,而且其生成的代码格式不是很合乎规范(当然,这些代码的格式是可以在pd中编辑脚本灵活控制的,可问题是,我不会编辑那些脚本),如果pd将上面说的那个功能再进一步增强的话,可真就距离完美不太远了:)另外还有一个诟病就是我没在pd中找到指定classpath的地方。<br /><br />至于rose,实在不想说啥了,在rose2003的年代,用起来还颇为顺手,而且配置后占用的资源也还能忍受,可到了xde,情况就全变了,虽然一直知道ibm的东西一直大而无当(难用),可没想到xde手感如此之差,而且本人512M内存的机器跑起来也是吱吱嘎嘎的。我必须承认的是,xde确实强大。但我也得承认的是,我没怎么用,所以也没什么发言权。<br />如果说pd的前述功能以及资源占用率小等优势加上together的代码同步功能的话,那UML的世界相信会更加美丽。together的代码同步功能是有口皆碑的,在这个优势之下我甚至忽略了它其它同样优秀的功能,除了资源占用率外(不过,同xde相比还是可以忍受的)。而且它画的图个人感觉最pp了:)应该说together是这么多工具中让人感觉手感最好的一个了。<br />所以我现在采取的手法是先用pd将数据库模型建好,然后再转成类图,生成框架代码,调整之后,导入together进行细化,用起来还是不错的,不过如果需要增加属性的话,只好手工在类图中和pd的数据库模型中增加了,这世界毕竟不是完美的啊!<br /><br />还有一个值得关注的工具是EA,只有15M,不过麻雀虽小,五脏据全,资源占用最小,图也pp,不过其使用习惯跟上面那些工具都稍有不同,需要适应一下,感觉就uml建模来说,也许分析人员会更喜欢这个工具的,当然,我就不考虑了,那个生成代码功能虽不是最差却也不远矣。最要命的是,一个英文软件,在中文操作系统上居然有乱码存在,无言了。<br /><br />注:现今的hibernate提倡的开发模式是直接使用pojo代码生成表结构,然而这种完全面向对象的开发模式还很难在一般软件公司中使用(开源项目可能会这么玩玩),但对于一些规模较大的系统,这么做的话,无异于给自己下套,而且数据库结构也是开发和验收中一个很重要的文档资料啊<!--QuoteEnd--></div><!--QuoteEEnd-->