所在位置:UML新闻 - 内容 论坛精华    
UML2意味着“模型驱动”的架构

[2004/4/15]

软件架构师Shaun Forgie认为,UML的2.0版本是模型驱动开发时代到来的号角。

他说,抽象层次的增加将会导致编写代码,不管是Java还是C++,变得不再紧要,就像今天的汇编语言一样。

在和软件架构师协会的一个本地听众交流时,Forgie 认为,UML 2.0 增强了该建模语言的可扩展性(scalability)。在2.0版本中,各种图的描述功能更强,例如,形式化表示算法行为的“状态机”。在新版本中,过程和数据的各种形式化表示之间的关系也被定义得更加清晰。

Forgie 预言,将会有一个架构被定义来“执行”模型,而不需要创建一个可运行的程序。所有这些都会使得大多数开发工作可以更轻易地在模型层次上完成,然后自动生成代码。也就是说,手工书写代码将不再需要,甚至代码的检查也将几乎不再需要。 在基于组件开发(component-based development)方面,先前的UML1.x版本稍有落后。尤其是在面对实时系统时,导致了使用UML的困难,而且生成的代码也很凌乱。

组件,J2EE和 .Net这些流行的开发平台上的元素,在被提供时通常同时还提供有对每个组件行为的描述、提供的接口(port)以及用来和其他组件交流的协议。这些接口用来将这些服务组合在一起,以提供给组织中不同的组调用。这个概念加强了软件的可重用。

对模型而言,也需要被验证和执行,在手工编码和自动生成代码之前都需要检验模型的逻辑。模型同样也有归档和维护等操作。

现在,开发人员可以看到一个真正的模型驱动架构(MDA),过程以及数据库元素都可以从模型中生成得到。这一切和过去不再一样,过去,软件开发中存在着面向对象的应用设计和另外设计的关系数据库间的不吻合。

Forgie认为,UML现在已经更加优美地融入到了OMG的标准和框架之中了。UML现在已经被纳入最高层为元对象设施MOF的层次之中了(译者注:这里指的是OMG的四层元模型架构)。诸如UML、Corba以及OMG的组件仓库元模型都在这个系统中联系起来,它们都是MOF的实例。正如一个特定的UML模型是UML的一个实例,而一个现实世界的对象是这个模型的一个实例一样。

Forgie说,模型驱动架构已经“使我节省了50%的开发工作量,并有希望在未来五年内节省掉这剩下来的50%”。

模型驱动架构的结构仍在发展之中,将UML应用到不同领域的“profile”正在逐年增加,这些领域包括系统工程、应用集成及测试。

IBM(现在包括了Rational)奠基的Eclipse将成为全面实现这个复杂结构的第一个开发环境。作为吸引眼球的招数,各种图形标识的管理方法将会首先推出,然后将会是完成各种实际工作的底层结构支持,全面的实现还要再等几年。

(自 computerworld,UMLChina袁峰 摘译,不得转载用于商业用途)