当前位置:  -> 首页 -> UML的现状与发展

上一篇 | 下一篇
UML的现状与发展
作者:洛羽叶  点击率:1543  发布时间:2006-04-12

UML应用

UML已经成为软件建模领域事实上的标准,它被成功地应用于许多领域,表达了众多不同的概念,例如:

  • 程序语言实现(Java、C++、Smalltalk、CORBA IDL等等)的可视化表示;
  • 直接可执行的模型(如xUML);
  • 与实现语言无关的软件规格说明
  • 高层架构和框架描述
  • 过程工程和重组
  • 网站结构
  • 工作流详述
  • 业务建模

等等。

由于UML在各种不同的业务类型领域中以各种不同的方式得到了广泛运用,人们经常发现无法用现有的UML定义来表达他们所期待的东西,因此纷纷为UML添加了许多新的概念,使得它超出了规范的范围。

UML 2.0的提出

于是,OMG于1999年8月发布了一份反馈征集书(RfI),以了解用户认为必要的UML改进内容和增强方面。有多达21位个人、公司或社团回应了该RfI,他们列举出了广泛的主题,其中最主要的改进方面包括:

  • 精确、无二义性的语言内核;
  • 位于内核之上的其他概念
  • 与元对象设施(MOF)的兼容性
  • 一级类(first-class)扩展机制
  • 对构件式开发的支持
  • 类元(classifier)/接口/类/类型/角色的内部结构
  • 根据语境限制关联
  • 使对象约束语言的元模型与UML元模型更好的集成
  • 状态机的一般化
  • 状态机的伸缩性和封装
  • 协作和序列图的伸缩性、封装和组织
  • 架构建模
  • 抽象数据流建模
  • 从表示法到抽象语法的严格映射

此外,500多个正式的使用和实现问题被提交给了UML修订任务组(RTF)。其中很多问题已经在UML 1.4中获得解决,也有不少问题推迟到UML 2.0。

UML 2.0路线图

为了响应 RFI、500 多个正式问题和来自大量用户的非正式反馈意见,OMG于2000年9月颁布了UML 2.0的建议征集书(RFP)。该RFP分为3个独立的部分。

1)UML基础结构RFP

该RFP要求对UML的内核进行重构,简化它的基本设施,从而使UML变为一种模块化的可扩展语言。

UML基础结构的调整对大部分建模者没有直接影响,它的改变将影响工具开发商和创建UML扩展的方法学家们。其主要任务包括:

架构整合与重组

UML元模型过于庞大,缺乏良好的封装,难于维护、实现和扩展。因此需要:

  • 通过定义一个内核语言来简化元模型;
  • 通过增加抽象以及去除编程语言(如C++)特定的结构来清理UML元模型;
  • 消除不一致性。

扩展性

UML现有的扩展机制有局限性,定义也太明确。UML 2.0将包含一个可在模型层(M1)使用的轻载机制和一个可在元模型层(M2)使用的重载机制。

2)UML上层结构RFP

UML的上层结构问题对UML建模者有直接的影响。UML 2.0将去除UML中含糊的部分,并根据用户的请求增加许多新的扩展。

结构建模

目前类型、类、接口与角色存在概念上的重叠,例如在协作图中的使用,这导致对前者的使用限制过多,而角色相比之下要灵活得多。

构件式开发

UML虽然包含了构件的概念,但过于简单。人们尝试用子系统和/或类来对软件构件建模,但结果不太令人满意。无法轻松地描述构件模型和架构框架(如EJB、CORBA构件模型和COM+等),例如:

  • 无法详述构件的可插拔、可替换性。
  • 接口的概念太弱。尤其缺少描述接口间交互的可能性和详述外出信号和消息的能力。
  • 无法详述构件对其环境的要求。
  • UML难于表达复杂的框架和模式。

运行时架构

UML活动图当前只在最低的粒度层次上支持对象/数据流。架构师应该能在更高的粒度层次上针对实体间的对象和数据流建模,比如包和子系统。

关系

几种类型的关系定义不明确。例如,包或状态机一般化(generalization)的含义没有被定义;“细化”和“追踪”依赖的定义也相当含糊。

活动图

活动图与其他图式的联系定义不明确,而且表达力过于受限。

交互

当前的交互图表示法既对利用序列图来组织规格说明帮助不大,也没有提供关于这些序列图如何相互关联的概览。问题包括:

序列图和协作图无法分解和组合。既需要对参与一次交互的角色的分解,也需要对序列本身的分解。

建模者无法从一个序列图引用另一个序列图。

表示法

UML的表示法存在一些不一致和缺点。表示法与元模型间的映射不正规,有些地方不明确、甚至有遗漏。

3)UML对象约束语言RFP

OCL既可用于定义针对UML元模型(以及OMG的其他元模型)的格式严整的规则,也可被UML用户用来表达UML模型中精确的约束。

OCL元模型

当前OCL的语义是建立在UML语义之上的,而两者的集成仅仅通过自然语言,OCL本身没有元模型,结果就导致OCL的语义和表示法之间没有明显的区分。这使精确地解释OCL出现了问题,例如UML模型中OCL表达式的语境没有完整的定义。没有一个OCL元模型,通过XMI来结构化地交换OCL约束是不可能的(尽管可将其视为未经解释的字符串),而且也很难保证OCL实现之间的一致性。因此OCL应该具有一个区别于其语法的元模型。

表达力和易用性

  • OCL需要增加额外的概念,以便提供更加完整的构件规格说明以及对行为约束的详述。
  • 需要定义OCL的扩展机制,从而可以一种明确的方式来扩展OCL并将其用于不同领域。
  • 明确规定把OCL作为一种通用的UML表达式语言(仅是一种约束语言)来使用。 

结束语

2002年9月U2 Partners已经公布了UML 2.0规范最新的建议草案[2],包含基础结构(UML: Infrastructure v. 2.0 R1 )和上层结构(UML: Superstructure v. 2.0 beta R1 )两个部分。

当前UML的演进方向正由用户群体引导,以确保它与软件工业的最新发展保持同步。UML 2.0将是漫漫长路上重要的下一步,只有不断地满足工业的需要,UML才能继续成为下一个十年的标准建模语言。

标签: 软件工程 网站设计 架构设计 UML
引用地址:http://www.google.com
   站点首页      技术人生      旅途足迹      我要留言      友情链接      关于站长   
[本站统计]
在线人数:0
今日访问:2
总访问量:1471110
Copyright 2006-2022 EasyWeb 1.6 订阅 All Rights Reserved
粤ICP备08028977号-1
www.luoriver.com
Created by WWH in 2006