免费开源的UML工具

以下网页中列举了一些免费开源的UML工具:




http://www.devcurry.com/2010/06/free-open-source-uml-tools.html





单介绍下,我记得07年,我大三,当时用的是破解的Rational
Rose,后来觉得不爽,就用了StarUML,想不到这么多年过去了,StarUML仍然是很多人推荐的第一,但是它最新一个版本是05年的。。。然后
在上面引用的网页中,逐个测试,Violet感觉不错,体积最小,最容易上手,最友好,当然缺点就是不够系统,不够全,考虑到我做的项目本来就不大,就用
它了,它还有一个缺点,最新版本是07年的。Astah的特点是很系统,更新也勤快,很全,它以前叫jude,有印象了吧,缺点就是对于新手可能会有点摸
不着头脑,太系统了。不推荐BOuml,很有趣的事情,2010年12月26日,是它最新的一个版本,就是昨天的事,但是下载安装运行,一个对话框,作者
称“wikipedia上有人攻击辱骂他的工作,他还列举了骂他的人,然后决定不再升级BOuml”,当然我是刚接触这个软件,不知其中缘由,而且用下来
感觉也不好,至少,我漫无目的地捣鼓了10分钟,愣是没找到出一个新布局和新图的按钮。。。我承认我很蠢,可是同样是Violet,上手一分钟,任何乱点
鼠标的人都可以完成一张有模有样的UML图。同样也不推荐UMLlet,感觉界面不友好,而且出图的自动连接不够,同样是transaction,人家
Violet和Astah都有自动补充节点,在UMLlet里居然要自己一个一个画。。。还有ArgoUML,也太老了,只支持UML标准1.4版本,至
少应该支持UML 2吧。




实际上硬要评个综合第一,绝对是Astah(前jude)第一,支持的标准很新,UML
2.x版本,但我感觉目前无法驾驭,毕竟我没学过UML。拿来就用的同学,建议试试Violet。Violet太友好了。




注意,Astah有多个不同版本,什么pro版云云的,免费的是astah*
community
版本。




目前先用Violet UML
Editor,注意是jar包(http://alexdp.free.fr/violetumleditor/page.php)。Violet同时也是Eclipse的一个plugin。同样,有Netbeans的同学,注意Netbeans里也有UML出图功能,用不着再去找UML软件。

JUDE Community离我们远去

JUDE改名为”astah*” ,见新闻“JUDE
is now called “astah*””。


JUDE/Community 5.5.2
是JUDE的最后一个版本的免费UML工具。以后的产品都以“astah*”命名!

   JUDE, astah* Edition table

(Before) JUDE New astah* products  
JUDE/Professional astah* professional Full featured edition
astah* UML UML edition (Mind Map included)
JUDE/Community astah* community Free edition
JUDE/Share astah* share share astah* diagrams

虽然astah* 增加很多的特性(Mind,java,c/c++,c# 代码导入导出等),以前JUDE
community5.5的重要功能在astah* community6.0却没有了,仅仅在astah*
community6.0中保留了菜单,也就是说astah*
community6.0仅仅是一个试用的广告产品(以前JUDE中基本的免费的功能也没有了),你要想使用astah*
的新增特性就必须花银子上级到astah* UML或者astah*
professional。最让我恼火的是它的JAVA导出代码和逆向工程的功能没有了,此功能竟然转移到了astah* UML工具中了,
但是astah* UML、professional不是免费的。郁闷啊!

JUDE的免费时代终止在2009年12月31日的JUDE/Community
5.5.2
,下载地址:http://jude.change-vision.com/jude-web/download/update.html#community

设计模式的UML图(转)

1.抽象工厂(Abstract Factory)模式
设计模式的UML图(转)

意图:为特定的客户(或情况)提供特定系列的对象。

2.类的适配器(Adapter)模式
设计模式的UML图(转)

意图:将一个类的接口转换成客户希望的另外一个接口。

3.对象的适配器(Adapter)模式
设计模式的UML图(转)

意图:将一个类的接口转换成客户希望的另外一个接口。

4.桥梁(Bridge)/柄体(Handle and Body)模式
设计模式的UML图(转)

意图:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

5.建造(Builder)模式
设计模式的UML图(转)

意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

11.门面(Facade)模式
设计模式的UML图(转)

意图:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

12.工厂方法(Factory Method)/虚拟构造子(virtual
Constructor)/多态性工厂(Polymorphic Factory)模式
设计模式的UML图(转)

意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。

13.享元(Flyweight)模式
设计模式的UML图(转)

意图:运用共享技术有效地支持大量细粒度的对象。

14.解释器(Interpreter)模式
设计模式的UML图(转)

意图:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

15.迭代子(Iterator)/游标(Cursor)模式
设计模式的UML图(转)

意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。

16.调停者(Mediator)模式
设计模式的UML图(转)
意图:用一个中介对象来封装一系列的对象交互。

17.备忘录(Memento)模式
设计模式的UML图(转)

意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。

18.观察者(Observer)模式
设计模式的UML图(转)

意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。

19.原型(Prototype)模式
设计模式的UML图(转)

意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

20.代理(Proxy)模式
设计模式的UML图(转)

意图:为其他对象提供一种代理以控制对这个对象的访问。

21.单例(Singleton)模式
设计模式的UML图(转)

意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

22.状态(State)模式
设计模式的UML图(转)

意图:允许一个对象在其内部状态改变时改变它的行为。

23.策略(Strategy)模式
设计模式的UML图(转)

意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。

24.模版方法(Template Method)模式
设计模式的UML图(转)

意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。

25.访问者(Visitor)模式
设计模式的UML图(转)

意图:表示一个作用于某对象结构中的各元素的操作。

==========================================================

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)

设计模式的UML图(转)