UML软件工程组织

UML一统天下 ——统一的不是建模过程而是建模语言
作者:不详
UML(Unified Modeling Language)中的U有两个方面的含义:一是它有效地消除了原有建模语言间的差异;二是它统一了存在于不同类型系统中的需求分析、设计、实现,以及内部概念中的观点和认识。因此,UML是近年来推出的一种基于面向对象(OO)的可视化图形建模语言,用于对软件系统进行说明、构造和文档建立。

背 景

OO建模语言的发展始于20世纪70年代中和80年代末。从1989年到1994年,其数量由不到10种猛增加到50余种。但使用OO方法的用户却很难找到一种完全满意的语言。

90年代中期,出现了一批较好的方法。其中令人关注的有Booch 1993(适用于工业设计和构造);Rumbaugh的OMT-2(特别适用于以数据为中心的信息系统的分析和描述中的应用);Jacobson的OOSE,即use-case方法(支持商业工程和需求分析)。它们都是完整的方法,但各有其特色。

UML开始于1994年10月。先由Rational Software公司的G.Booch和J.Rumbaugh将Booch和OMT(这两种方法被公认为是世界OO方法的先驱)统一起来,并于1995年10月推出了UM(Unified Method)草案0.8版;1995年秋,Jacobson参加,把OOSE也合并进来,这才称为UML。

UML的主要目标是:
 

  • 使用OO概念为系统(不仅是软件)建模;
     
  • 为概念产品与可执行产品之间建立一个清晰的耦合;
     
  • 创建一种人和机器都可以使用的语言。

    设计一种用于OO分析和设计的符号表示不同于设计一种程序设计语言,主要要求有:
     

  • 符号表示应包括需求规格说明,还应开发为可视化(Visual)程序设计语言;
     
  • 必须在强大的表达能力与简单性之间找到一种折衷;
     
  • 对目前已经使用的符号表示改动要尽量的少。

    经过Booch、Rumbaugh和Jacohson三人的努力,于1996年6月和10月分别推出了UML 0.9和UML 0.91版本,1997年1月公布了UML 1.0。

    1996年,一些机构要将UML作为商业策略,于是成立了完善和加强UML定义的机构,即UML成员协会,成员包括DEC、HP、i-Logix、Itellicorp、IBM、ICON Computing、MCI Systemhouse、Microsoft、Oracle、Rational Software、TI以及Unisys等。它们为UML开发提供了大量的有价值的技术,结果于1997年9月推出了UML 1.1。1997年11月17日其被OMG(Object Management Group)接纳为标准。

    特 点

    UML的主要特点有:

    (1) UML最重要的是将Booch、OMT和OOSE的概念融合在一起。

    (2) UML吸收了现有方法中能够提供的功能,特别是关于并发(concurrent)、分布式(distribution)系统描述元素。

    (3) UML致力于一种标准的建模语言,而不是标准的建模过程。尽管UML必须应用于过程,但实践证明,不同的开发机构和不同的问题域,其建模过程不完全相同。因此,UML首先把重点放在通用的元模型(用带有文字说明的UML符号表示),用来统一语义;然后才是通用的符号表示,用以表示语义提供的表示方法。

    元模型是用于定义对象模型的语言。元模型为UML的所有元素在语法上和语义上提供了单一的、通用的和确定的描述。元模型使开发者在语义上取得了一致,不仅消除了由于人为因素对语义表示所造成的影响,而且可使工具间的信息交换和复杂系统的设计在语义上保持了高度的一致。

    (4) UML使用图形符号和正文语法为系统建模,用来描述用户的层次模型,在语义上是UML元模型的实例。

    从应用的角度看,当采用OO技术设计系统时,首先是描述需求;其次是根据需求建立系统的静态模型,以构造系统的结构;第三步则是描述系统的行为。

    其中,一、二步包括用例图、类图、对象图、包图、构件图和配置图,这些是UML的静态建模机制;第三步包括状态图、活动图、顺序图和合作图,是UML的动态建模机制,其所建立的模型有的是可执行的,有的是表示执行时的时序状态或交互关系。

    由此可见,这些图形符号为系统分析、开发提供了多种图形表示,其有机的结合使得分析、构造一致的系统成为可能。

    新概念

    UML中增加了许多新概念,主要有:
     

  • 模板(stereotypes);
     
  • 职责(responsibilities);
     
  • 扩展机制(extensibility mechanisms),有模板、附加值(tagged value)、约束(constraints)三类;
     
  • 线程(threads)和过程(processes);
     
  • 分布式(distribution)和并发(concurrency);
     
  • 模式(patterns)和合作(collaborations);
     
  • 活动图(用于商业过程);
     
  • 清晰地区分类型(type)、类(class)和实例(instance);
     
  • 细化(refinement);
     
  • 接口(interfaces)和构件(components)。

    新发展

    由于开发过程和开发工具所关心的内容与UML不尽相同,所以UML 1.0没有给它们提供标准,然而UML是开发过程和开发工具的基础。

    UML虽然没有把开发过程标准化,但却仍致力于以用例驱动、体系结构为中心,并且用可迭代的和易于增量的过程来完善。

    尽管UML定义的是基于语义的元模型,而不是开发工具的元模型,但两者几乎没有什么区别,而且工具间的信息交换可由定义语义和符号表示的方法表示,从而保持了一致性的语义和符号表示。为了使工具与UML保持一致,UML成员协会已向OMG提交了一套遵循UML的工具接口定义。

    由上可见,UML是在多种OO方法基础上发展起来的。UML一经推出,立即得到科技界、工业界和用户的广泛欢迎和接受,并被OMG接纳为标准。

    任何一项新技术、新方法或新标准,都需要经过不断地改进和完善。因此在UML 1.1之后,又有UML 1.2、UML 1.3和UML 1.4版本,它们改进了UML 1.1版本中的一些遗留问题及此后发现的诸多问题。目前UML 2.0版本正在起草,相信今后还将看到ISO的UML版本。

  •  
     

    版权所有:UML软件工程组织