UML释义(一)
Error.cao
(本文转载自软件工程专家网www.21cmm.com)
作为众多公司软件发展的战略相关因素,都在试图去寻找可以自动提高软件产品质量、减少成本和缩短市场更新周期的技术。这些技术包含有组件技术、可视化程序设计设计、模型化技术和结构化技术,与此同时,各公司的商务方面也在寻找可以管理增长市场占有率和销售额复杂系统的技术。
在细节上,人们共识是需要解决重复建模的问题。比如:物理分割(可分割性)、协同性、可复用性、安全性、鲁棒性和容错性。又,为之3W(WWW)的发展,一些简单产品的定制就会恶化这些建模问题,UML为之设计并产生。
UML(统一建模语言)是为软件系统的制品进行详述(specifying)、形象化(visualizing)、构建(constructing)、文档化(documenting)的一种语言。同样,对于商业模块和其他非软件系统,UML描述也是一个优秀的成功地提供大而复杂模板的工程实施的集合。
其实,对UML的定义仅仅是个对UML理解的范畴,在“栏目的致辞”我采用是对UML的创建的几家公司的定义和说明,对定义的译文在国内是不一致,这个没关系,大家先来理解,理解完了再具体地谈谈定义。
针对中国汉语的复杂性,我在此处作些强调,“Modeling”是名词来动作的,表示建模的这一个过程,我为什么要此说明这问题呢?因为这词性的使用也可以表示一定的意义。我在“栏目的致辞”中已经述说了UML的三个实质:System,Mothods and Processes,而“Modeling”一词是针对该三个实质进行描述的。
UML是Rational软件公司及其合作伙伴发展而来的,是被创建在Booch, OOSE/Jacobson, OMT和其他一些方法的基础上,大量的公司在他们开发程序和产品时也以此UML为标准,包含了一些如:商业模板(原始需求描述)、需求管理、分析和设计、编码和测试的标准。
模板实施的重要性
为了工业软件系统地发展而提前构建和革新一个模板,其实质性类似有一个建筑蓝图。好的模板实质是为连接众多的项目团队和稳固构件(已有的或以实施的模板和构件)。针对系统增长的复杂化,固然是需要好的模板技术。如此便有了附加的项目成功因素,但本质却是一个严格模板语言标准。
一个模板语言必须包括:
1.模板元素:基本的模板观念和语义。
2.符号:模板元素的可视化描述。
3.指导思想(设计原则):内部交流的惯用词。
面对日益增长地复杂化的系统,清晰性和模型已经成为其本质,UML是完美被定义的和广泛被响应的所需接受的标准。如此而被选为组建OO系统和基于组件的系统。
UML目标
从UML设计之初,我们就没有把它当着一种设计语言,在本质上它就是把所有的人分开关在各个阁楼里,人们都使用UML进行对话,或许大家在做一件事而采用不同的程序设计语言,好象我自己都晕了,UML就是在程序设计阶段的国际通用语言。
UML是一个标准,标准不会做任何事情,但人们可以根据标准来定做很多具有良好规格的产品,OMG正是致力发展这个标准而为软件设计领域建立一个通用的模板。
关于目前世上"流行"的XML,其实也是被定义的一个标准,但XML更细节地说明于软件行业的程序设计,而UML却为程序设计语言提供设计标准。
最基本UML设计目标如下:
1. 提供待用和深度的可视化建模语言给用户,以让他们能够发展和改变那些有意义的模型。
2. 提供可扩展性和专门化机制来扩展软件(或软件模型)核心概念。
3. 依赖于详尽程序设计语言和发展程序(通常含有操作系统和工具软件)。
4. 提供合理基础去理解标准。
5. 激励日益发展的OO工具市场。
6. 支持高水准开发观念如:协作、构建、模板和组件。
7. 结合最优的练习
OMG-UML的发展空间
OMG:为对象管理组织,认识UML所必须提及的一个组织。本文的原叙述就从其对UML的定义中挖掘并翻译整理的,我不会照抄别人的东西,故加入我的叙述太多,当然我的叙述没有OMG他们该方面的学术泰斗们简洁而到位。我仅仅提供一种思想,一种对UML认识的思想。
统一建模语言(UML)首先是溶合Booch, OMT 和 OOSE观念。其结果是单一化,通用性和可为这些用户广泛使用建模语言和方法。
第二,UML推出能够处理现有模型的包装,举个例子:UML的学者们是以协作性和分布性系统模板为目标的,以致UML能充分利用该领域。
第三,UML致力于标准的模板语言,而非一个标准的程序,尽管UML必须被应用于程序的描述,经验也显示了不同组织和不同问题范围需要不同的程序。然而,浓缩的因素第一为通用的模板元素(统一语义)和第二为通用符号(提供给人们这些语义直观的表示)。UML学者们促进一个发展的使用Case为驱动,建模为中心和复用与增加的程序。
UML范围之外
UML目标是一个简单化和标准模板而不是万能语言。这给出了易于使用去设计一个多样化系统而能涵盖多行业的工业.一些UML范围之外的主要地区包括:
1.程序设计语言
UML是一个可视化建模语言,而不是扩展可视化程序设计语言,在感觉上好似都有必要可视化和语义支持以代替程序设计语言,但它并不能如你改变代码而画一条线。 UML仅仅映射于OO语言家族,如此你能够得到最好两个世界(语言的表述和设施)。
2.工具
作为工具和程序的基础,建立一种语言标准化是必要的。OMG REP最初的目标是使得工具使用的协调性,然而工具和他们的协调性切切是依靠固定的语义和符号定义,正如UML提供的。UML定义的是语义的元素模型,而不是工具接口、存储或运行期的模型,尽管这些可以同样被另一个关闭(仅仅是语义上的问题)。
3.程序
很多公司将为了它们的工程产品而采用UML作为通用语言,他们会在不同程序的中使用同样的UML图表类型,因UML具有任意程序的独立性,定义一个标准程序不是一个UML或OMG的REP的目标。
如何使UML成为OMG标准
确认性的面向对象(OO)模板语言起始出现70年代中期,在80年代末已有不同的方法论学者采用不同逼近算法去测试OO的分析和设计.产生大量的标记模板语言,在先前的1989-1994年,从至少10增加到50种。在众多的OO 方法的使用者已经很难在一种模板语言中找到100%的满意。为此开始了“方法战”,但到了90年代中期,由于这些方法的反复使用而出现技术上的合并,其中一些有明显优势的方法也绽露头角。
UML的发展开始于1994,当Rational 软件公司的Grady Booch 和 Jim Rumbaugh开始致力于统一Booch 和OMT(对象模板技术)方法。于1995末, Ivar Jacobson和他的Objectory公司加入Rational公司和他们的统一的工作并融合和OOSE(面向对象的软件工程)方法。
作为Booch、 OMT 和 OOSE 方法的基本的学者 Grady Booch、 Jim Rumbaugh 和 Ivar Jacobson被激发而创造统一模板语言,基于以下三个原因:
第一,这些方法被展开而又独立自主,创造一种在一起发展而胜过分离发展,排除一些没必要和无理由的差异而使用户糊涂的氛围。
第二,通过定义语义和符号,他们能够带来一些稳定OO市场空间,允许工程去设置成熟模型语言和使的工具可以构建更多的基于继承的有用的方法。
第三,他们希望他们的协作可以改进上述三种早期的方法,帮助他们在先前没有掌握的很好的情况下去捕获有价值的经验和问题所在。
在他们开始统一之期,他们确定了四个发展目标:
1. 能够建模的系统(并不是软件)使用OO观念。
2. 设立一个外在的耦合和执行一个制作一样的观念。
3. 专家系统,在复杂度上深度继承的确信的位置。
4. 创建一种建模语言使得机器和人都能认识。
Booch, Rumbaugh 和Jacobson努力的结果是1996 /6和1990/10 发布了UML0.9版和0.91 版,在1996年,UML的学者引入和接受从大众的反馈。
当Rational公司带来UML集合,以至致力使它达到工业标准模板语言的目的。早在1995年, Ivar Jacobson 和Richard Soley决定强制以自达到市场的标准化。在1995/6,OMG主持了所有高层的方法论学者的会议。结果是在OMG支持下第一次在世界范围内去寻找一种方法标准。
在1996年期间,有几家组织已经很清晰把UML作为他们的商业战略,RFP确信通过OMG提供了对这些组织加入RFP产生的响应力量催化剂。Rational公司确定了UML合作伙伴,将通过与之合作而加强UML1.0版。
对UML1.0版贡献有: Digital Equipment Corp、HP、 i-Logix、 IntelliCorp、 IBM、 ICON Computing、 MCI Systemhouse、 Microsoft、 Oracle、 Rational Software、 TI 和 Unisys。
这次协作的产品1.0版是有良好定义的、有表现了强大的和具有通用性的模板语言。同样,在1997/1 IBM、 ObjecTime、 Platinum Technology、 Ptech、 Taskon、 Reich Technologies 和Softeam也单独地对RFP以响应OMG。这些公司加入UML合作组织,以贡献自己的才智,并合作将其合作产品校订为UML1.1版,以提高1.0版本语义和来自新伙伴合作贡献的透明性。
UML的现状和将来
UML没有版权并对所有人开放,它从事于个人、科学团体的需求,确定基于它的优先方法的的经验。许多方法论学者、组织和工具供应商已经致力发展和使用它。UML从 Booch、 OMT、 OOSE和其他一些先进的方法中建立一套简单的语义和符号,并且把来自公众和普遍的意见的反馈中溶于UML而变得简易。
UML的两个表述"统一"的方面:第一,有效的解决的很多分歧,经常性不合乎逻辑,和在建模语言之前的方法。第二,(或许更重要)这个统一了很多不同系统(相对于商业软件)的观点,发展阶段(要求分析,设计和执行)和内部观点。
尽管UML定义了一个精确的语言,但是它并不是建模观念将来发展的障碍,我们已经定位了很多有阶段性领导的技术,但是期望外在的技术来影响UML将来的版本,很多高级技术基于使用UML进行定义,UML也可以扩展UML中现在没有定义的东西。
就当前形式的UML是基于很多工具,包括一些可视化的建模,仿真和发展的环境进行扩展的。作为一个有趣的工具性的综合被发展,执行的标准将基于UML日夜增加其可用性
便捷的组件技术
OMG MOF的主要的目的是提高CORBA能够使用去定义和操纵的共同使用的组件模型的集合的接口,MOF是草拟基于CORBA的分布式发展环境的结构的关键。
组件对象工具轻易地描绘出于起步于OMG在对象领域的智囊团,对象建模工具和在分布式对象环境的数据管理的成员工作.MOF指定使用统一建模语言符号.其简易的接口和语义合并一些高级组件数据管理观念并把它应用于商业对象的智囊团,对象建模工具和对象结构的产品并协同发展。
详述增强性组件数据管理和在分布式对象环境中的组件数据的协同在总体上和在分布发展环境.当初始化工作定位组件数据在对象分析和设计区的协同性.MOF将有足够支持额外的区域的希望。
例如包括覆盖应用发展的生活周期如同额外的区域(例如仓库管理和商务对象管理)的组件模型。
模板定义额外的叙述
现在的*ML的东西太多了,但UML的作用会如何了,我前些日子见有人总结关于*ML(语言模板化或多或少建模语言),在3W上文明于世的XML和古人创建现在并使用着的HTML等。
听了有点伤感,但UML的统一性在何处呢?当你苦思冥想之时,发现自己错了,UML语言并不涉及程序设计语言,或者说不愿意涉及,我是一个C++的使用者,知道模板的重要性,或许各位编程的兄弟姐妹也有同感,我们就不一把鼻涕一把泪的来说过去的伤心的历史了,展望未来吧。