Rational公司新加坡分部的高级软件工程专家,Mark Hermeling认为:UML2.0根据工业界使用UML1.x的经验作了相应改进,目的就是为了帮助简化模型驱动的开发。
UML的目前版本是1.4,它提供了方便开发团队在分析设计、需求管理等活动中进行交流的整套工具,以及一个软件开发生命周期模型。
有人将UML描述为交流的符号集,这意味着可以直接写在纸上或者画在白板上。但大多数用户还是选择使用工具,目前业界的领导是Rational,它和其它的工具提供商一起提供各种UML产品。
1996年,UML刚诞生的时候,广受欢迎。在UML之前,建模方法非常多,这大大阻碍了基于模型的设计,而UML实现了建模语言一定程度上的统一。
进行面向对象设计的时候,第一步就要对现实世界进行建模,UML正是为之定义的一套标准符号,它由三种面向对象的分析设计方法发展并整合而来:Grady Booch 描述对象及其相互关系的方法、James Rumbaugh的对象建模技术(OMT) 以及 Ivar Jacobson的方法,在Ivar Jacobson的方法中引入了use case方法的使用。
经过多年的发展,在Rational 公司的Booch、Rumbaugh、Jacobson 三友以及其它专家的努力下,UML中还融入了很多其它的思想,现在,UML已经成为OMG认可的标准。
尽管UML只是帮助参与开发的所有人员对模型进行交流的一套符号系统。但Martin Fowler在其著作《UML Distilled》中指出,UML是由描述开发过程和有关模型的使用的方法论发展而来的。尽管目前没有被广泛接受的统一过程,UML的使用者使用的方法实际上都非常相似。UML规约中有关建模的概念是对象、类、关联、职责、活动、接口、use case、包、顺序、协作和状态。
在使用当前版本进行UML模型驱动的架构时,使用者发现还缺少一些支持,如bug修复等,UML2.0中将增加这部分内容,它将成为适用于企业建模和数据建模的庞大而灵活的符号语言。在UML2.0中,将对语意部分进行增强,这一点可以帮助UML模型更好地生成代码,以得到更加实用的模型。在即将推出的版本中,还将包括增强的组件处理、对商业过程模型的支持,并更好地支持元数据交换。这些努力都是为了使UML作为一种胜过大多数文本语言的高层次的语言,能够生成代码和进行反工程,甚至直接生成某些可执行的UML模型。
目前,在各种工具之间进行模型交换时,只能保存非图形化的信息,而象绘制的各种图、尺寸、坐标这样的内容都会丢失。在UML2.0中,将提供保留图形信息的能力。
来自Rational公司的Hermeling认为,工程师与开发人员将越来越多地看到对建模的需求。他认为,对于一个较大的开发团队来说,需要有一个可视化的模型以保证所有人员都能理解总体的设计思路,建模的需求是显而易见的。
利用业务过程建模,应用UML可以得到业务的可视化模型,其作用类似于建筑工程中的结构图。这个可视化模型可以使你在构造整个软件系统之前,就可以理解并预知设计的一些关键特性,判断设计是否可行。事实上,除了软件工程,在众多工程领域中,建模都是非常关键的规避风险的技术。
但是,在Fowler眼里,软件工程和其它工程是不同的。
首先,对建筑工程来说,工程师一般都有多年的经验并且对所用的各种工程符号了如指掌,而UML的设计可能在纸上画出来看着很好,真正编程时却会发现很多问题。另外,在建筑工程上,关键设计都是可以经过数学分析进行验证的;而在UML设计中,类似的手段只有同行评审,虽然有一定作用,却并不能避免错误的发生。
另外,在成本比例方面,软件设计和其它领域的工程也是截然不同的。举修桥的例子来说吧,设计成本可能也就占全部成本的 10%,而在软件设计中,这个比率是50%。
UML 最早是由Rational公司提出的,但已经被很多公司使用,这里面最重要的就是OMG。公众对UML的接受刺激了以模型为中心的开发,OMG提供了支持这种开发的一系列标准的框架MDA(Model-Driven Architecture)。MDA的关键特点就是软件开发的重点和输出不再是程序,而是各种模型,开发人员的工作是不断拓展模型,只有到了最后阶段才会考虑将其实现。
OMG认为,利用MDA可以得到更好的“高层抽象”设计框架,更好地得到针对今天各种语言的“通用化”代码。和正在酝酿之中的基于XMI的数据交换一样,基于MDA的数据交换方法将给开发商和用户双方带来好处。
XMI (XML Metadata Interchange)试图通过XML语言为程序员和其它用户提供一种交换元数据信息的标准途径。XMI希望能够帮助使用各种语言和开发工具的UML开发人员自由地交换数据模型,另外,XML也可以用于数据仓库信息的交互;最重要的是,XMI制定了描述各种元数据定义的统一标准,并要求跨行业和跨操作环境的用户使用一致的方法读取数据。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/