(转)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 的工作并提出了一些有益的建议,但是这些建议的最终成型是集体智慧的结晶。