先来说说越来越庞大的UML2.0,但按照UML的那三位老大之一Ivan Jacobson的话来说,它还不足够大。的确是牛人,一句话把UML语言框架的精髓说了出来。MOF作为UML的语言核心是一个基本稳定的元元语言,所以UML的扩大就没有这么让人担心了。那些层出不穷的profile,也没有那么可怕了。就是这个在语言层次上位于最底层,可以自描述的MOF,让人心里面有了底--再怎么大,不也是俺定义出来的!:)
好了,继续说越来越丰满的UML2.0,对业务建模的支持增强了--企业应用系统开发的人笑了;对顺序图进行了大改,增加了时间机制--实时系统的人笑了;改进了构件图--搞软件体系结构的人笑了;扩展机制规范了--工具厂商笑了;UML没人用了--大家都笑了。的确,谁也不会拿来UML就用了,去其糟粕取其精华,就是现在UML的使用之道。对于不同的领域,都可以在UML基础上进行扩展,然后使用扩展后UML的子集,这样使得用户的使用会更加方便。有人可能会问:这不又回到原来各种百家争鸣的年代了吗?我对这个问题的看法是:用户当然需要各自最方便的语言来使用,而由于这些语言具有统一的基础,很多研究就可以在这个统一基础上去做,而实现更好的支持。虽然从表面上,语言又多了起来,但实质上与以前的百家争鸣有很大的区别。
UML2.0本身具有很多优点,但缺点也不少。首当其冲就是语义不精确(尽管OMG声称大大改进了,但我认为改进的力度还不够),这样的不精确让哪些做MDA的人怎么办?但这也没有办法,语义这个东西实在难改进,应该对OMG给予理解。另外,UML2.0对视图的定义显得非常苍白和无力,我想OMG这样做的原因最主要是认为视图的定义应该是开发方法的问题,而不是语言的问题。从这个方面去想想,OMG这样做也不是没有道理。其它缺点还有很多,在建模的时候都会逐渐显现出来。
懒得写了,下次再说.