但是,在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制定了描述各种元数据定义的统一标准,并要求跨行业和跨操作环境的用户使用一致的方法读取数据。
今年6月,包含OMG MDA标准,促进模型交互的UML基础库修改版已经正式提交讨论。参与讨论的包括用户熟悉的很多开发商,包括I-Logix, Oracle, Rational, Telelogic and Computer Associates等等。
UML2.0中还将包括对组件建模的改进。近几年来,随着J2EE和微软的.NET技术的出现,组件技术得到很大发展。这方面,UML2.0中将考虑如下内容:如何更好地描述组件描述的语意以及构建.NET和企业JavaBeans的专门模块。
Jim Duggan ,artner公司的副总裁和研发总监,认为UML2.0中要处理的首要问题就是保证标准的扩展性,他认为现行的标准中扩展机制定义得不够,导致各开发商使用了不同的扩展方法。另外,还必须提供对组件开发、面向服务的框架以及web services的支持。
有人提倡,UML的发展应该是向下兼容的,要保证过去基于UML1.x的用户和工具开发商所做的努力不会全部作废。UML2.0中应该提高精确度,可以选择加入少量的一些新特性,要避免导致“语言膨胀”的困境。而现在有一个不妙的苗头: UML将变得越来越大,而在最初,OMG声称的目标本来是简单化的。
Gartner公司的Duggan认为,“新的规约正在变得越来越复杂,变得非常大,难以管理、理解和实施。标准委员会曾经说过将要把物理模型和逻辑模型分开。但是,一旦规约复杂化了,要做到这一点就不大可能,而且规约本身也开始失去作用。”
Alistair Cockburn,Humans and Technology的顾问,在他的论文中表达了同样的意思。“在软件开发中把人也当成了非线性的、第一位的组件”,Cockburn认为那些重量级的开发方法中试图为一切建模,这是导致成功率不高的重要原因。他认为在软件开发中人是最重要的,在设计符号中把人当成一个组件,就是最大的失败之源。
文章来源于领测软件测试网 https://www.ltesting.net/