
UML的历史.doc
4页UMLUML 的历史的历史UML 是为了简化和强化现有的大量面向对象开发方法这一目的而开发的一、面向对象的开发方法一、面向对象的开发方法利用传统程序设计语言(如 Cobol 和 Fortran 语言)的软件开发方法出现于 20 世纪 70 年代,在 80 年代被广泛采用,其中最重要的是结构化分析和结构化设 计方法[Yourdon-79] 和它的变体,如实时结构化设计方法[Ward-85]等这些 方法最初由 Constantine、Demarco、Mellor、Ward、 Yourdon 和其他一些人发 明和推广,在一些大型系统,特别是和政府签约的航空和国防领域的系统中取 得了一定突破,在这些系统中,主持项目的政府官员强 调开发过程的有组织性 和开发设计文档的完备和充分结果不总是像预料的那么好—许多计算机辅助 软件工程系统(CASE)只是摘录一些已实现的系统设计的报 表生成器—尽管如 此,这些方法中仍包含一些好的思想,有时在一些大系统中是很有效的商业 应用软件更不愿采用大型的 CASE 系统和开发方法大部分商业企 业都独立开 发本企业内部使用的软件,客户和缔约人之间没有对立关系,而这种关系正是 大型政府工程的特征。
一般都认为商用系统比较简单,不论这种看法是否正 确, 反正它不需要经过外界组织的检查普遍认为,诞生于 1967 年的 Simula-67 是第一个面向对象的语言尽管这个语 言对后来的许多面向对象语言的设计产生了很大的影响,但是它没 有后继版本 80 年代初 Smalltalk,语言的广泛使用掀起了一场“面向对象运动”,随之诞 生了面向对象的 C、C++、Eiffel 和 CLOS 等语 言起初,尽管面向对象编程语 言在实际使用中有一定的局限性,但它仍然吸引了广泛的注意力在 smalltalk 语言成名约 5 年后,第一批介绍面向对象软件开发方法的书籍出现 了包括 Shlaer/Mellor [Shlaer-88]和 Coad/Yourdon [Coad-91],紧接着又 有 Booch 的[Booch-91]、Rumbaugh/Blaha/Premerlani/Eddy/Lorensen 的 [Rumbaugh-91]和 Wirfs-Brock/Wilkerson/Wiener [Wirfs-Brock-90](注意: 图书版权年代往往包括了上一年度 7 月份以后出版的书)这些著作再加上 Goldberg/Robson[Goldberg-83] Cox[Cox-86]和 Meyer[Meyer-88] 等有关程序 语言设计的著作,开创了面向对象方法的先河。
第一阶段在 1990 年末完成稍 晚[Jacobson-92]出版了,它建立在以前的成果的基础 上,介绍了一种稍微不 同的方法,即以用例和开发过程为中心在以后的 5 年中,大批关于面向对象方法的书籍问世,各有自己的一套概念、 定义、表示法、术语和适用的开发过程有些书提出了一些新概念,但总的来 说 各个作者所使用的概念大同小异许多后继出版的书都照搬前人,自己再做 一些小的扩充或修改最早的著作者也没闲着,他们大部分人都更新了自己前 期的著作, 采纳了其他人一些好的思想总之,出现了一些被广泛使用的核心 概念,另外还有一大批被个别人采纳的概念即使在被广泛接受的核心概念里, 在各个面向对象方 法中也有一些小的差异这些面向对象方法之间的细微比较 常使人觉得这些概念不知依据哪个为好,特别是非专业的读者二、统一工作二、统一工作在 UML 之前,已经有一些试图将各种方法中使用的概念进行统一的初期尝试, 比较有名的一次是 Coleman 和他的同事们[Coleman-94]对 OMT[Rumbaugh-91]、 Booch[Booch-91]、CRC[Wirfs-Brock-90]方法使用的概念进行融合由于这项 工作没有 这些方法的原作者参与,实际上仅仅形成了一种新方法,而不能替换 现存的各种方法。
第一次成功合并和替换现存的各种方法的尝试始于 1994 年 在 Rational 软件公司 Rumbaugh 与 Booch 合作他们开始合并 OMT 和 Booch 方法中使用的概念,于 1995 年提出了第一个建议此时,Jacobson 也加入了 Rational 公司开始与 Rumbaugh 和 Booch 一同工作他们共同致力于设计统一 建模语言三位最优秀的面向对象方法学的创始人共同合 作,为这项工作注入 了强大的动力,打破了面向对象软件开发领域内原有的平衡而在此之前,各 种方法的拥护者觉得没有必要放弃自己已经采用的概念而接受这种 统一的思想1996 年,OMG 发布了征集向外界关于面向对象建模标准方法的消息UML 的三 位创始人开始与来自其他公司的软件工程方法专家和开发人员一道制订 一套使 OMG 感兴趣的方法,并设计一种能被软件开发工具提供者、软件开发方法学家 和开发人员这些最终用户所接受的建模语言与此同时,其他一些人也在做这 项富有竞争性的工作1997 年 9 月,所有建议终于被合并成一套 UML 方法提交 到 OMG 最后的成果是许多人共同努力的结果我们发起了创建 UML 的工作并 提出了一些有益的建议,但是这些建议的最终成型是集体智慧的结晶。
三、标准化三、标准化1997 年 11 月,UML 被 OMG 全体成员一致通过,并被采纳为标准OMG 承担了进 一步完善 UML 标准的工作在 UML 标准通过前,就已经有许多 概括 UML 精华的 书出版发行许多软件开发工具供应商声称他们的产品支持或计划支持 UML, 若干软件工程方法学家宣布他们将使用 UML 的表示法进行以后的 研究工作 UML 的出现似乎深受计算机界欢迎,因为它是由官方出面集中了许多专家的经 验而形成的,减少了各种软件开发工具之间无谓的分歧我们希望建模语 言的 标准化既能促进软件开发人员广泛使用面向对象建模技术,同时也能带来 UML 支持工具和培训市场的繁荣,因为不论是用户还是供应商都不用再考虑到底应 该 采用哪一种开发方法四、核心组员四、核心组员提出 UML 建议或进行 UML 标准修订工作的核心组员有下列人员:数据存取公司:Tom DigreDHR 技术公司:Ed SeidewitzHP 公司:Martin GrissIBM 公司:Steve Brodsky, Steve Cook, Jos WarmerI—Lgix 公司:Eran Gery, David HarelICON Computing 公司:Desmond D’SouzaIntelliCorp and James Martin 公司:Conrad Bock, James OdellMCI 系统企业:Cris Kobryn, Joaquin MillerObjecTime 公司:John Hogg, Bran SelicOracle 公司:Guus Ramackers铂技术公司:Dilhar DesilvaRational 软件公司:Grady Booch, Ed Eykholt, Ivar Jacobson, Gunnar Overgaard, Karin Palmkvist, James RumbaughSAP 公司:Oliver WiegertSOFTEAM:Philippe DesfraySterling 软件公司:John Cheesman, Keith ShortTaskon 公司:Trygve Reenskaug五、统一的意义五、统一的意义“统一”这个词在 UML 中有下列一些相互关联的含义:在以往出现的方法和表示法方面。
UML 合并了许多面向对象方法中被普遍接受 的概念,对每一种概念,UML 都给出了清晰的定义、表示法和有关术语使用 UML 可以对已有的用各种方法建立的模型进行描述,并比原来的方法描述得更 好在软件开发的生命期方面UML 对于开发的要求具有无缝性开发过程的不同 阶段可以采用相同的一套概念和表示法,在同一个模型中它们可以混合使用 在开发的不同阶段,不必转换概念和表示这种无缝性对迭代式的、增量式软 件开发是至关重要的在应用领域方面UML 适用于各种应用领域的建模,包括大型的、复杂的、实 时的、分布式的、集中式数据或计算的、嵌入式的系统也许用某种专用语言来描述一些专门领域更有用,但在大部分应用领域中,UML 不但不比其他的通 用语言逊色并且更好在实现的编程语言和开发平台方面 UML 可应用于运行各种不同的编程实现语 言和开发平台的系统其中包括程序设计语言、数据库、4GL、组织文档及固件 等在各种情况下,前部分工作应当相同或相似,后部分工作因各种开发媒介 的不同而有某种程度上的不同在开发全过程方面UML 是一个建模型语言,不是对开发过程的细节进行描述 的工具就像通用程序设计语言可以用于许多风格的程序设计一样,UML 适用 于大部分现有的或新出现的开发过程。
尤其适用于我们所推荐的迭代式增量开 发过程在内部概念方面在构建 UML 元模型的过程中,我们特别注意揭示和表达各种 概念之间的内在联系并试图用多种适用于已知和未知情况的办法去把握建模中 的概念这个过程会增强对概念及其适用性的理解这不是统一各种标准的初 衷,但却是统一各种标准最重要的结果之一。












