面向对象的建模方法始于20世纪80年代初期,大量有决定意义的思想形成于20世纪90年代中期,这期间涌现出一些重要方法,包括Booch、OMT、Shlaer-Mellor、Fusion、OOSE和Coad-Yourdon等。
1994年10月,Jim Rumbaugh和Grady Booch开始共同合作,于1995年10月提出"统一方法(Unified
Method)"0.8版本。随后,Ivar Jacobson也加入其中,同时将OOSE思想融合进来,于1996年6月发布"统一建模语言(Unified
Modeling Language,UML)"0.9版本。
1997年1月,UML1.0版本被提交给OMG组织,申请作为一种标准建模语言。在此期间,一些重要的软件开发商和系统集成商成立了一个UML伙伴组织,如Digital
Equipment Corporation、HP、IBM、Microsoft、Oracle、Rational等,它们积极地使用UML并提出反馈意见,于1997年7月将UML的修改版(1.1版本)再次提交OMG,1997年11月,UML1.1版本正式被OMG采纳作为业界标准。
目前,UML已经提交国际标准化组织(ISO)进行国际标准化。

图4.4 UML的发展历史
UML是Booch 、OOSE和OMT方法的结合,同时吸收了其他方法的思想,包括Wirfs-Brock、Ward、Cunningham、Rubin、Harel、Gamma、Meyer、Odell、Embley、Coad、Yourdon、Shlaer和Mellor等,通过统一这些先进的面向对象思想,UML成为一种定义明确的、富有表现力的、强大的、可应用于广泛的问题域的建模语言。
统一建模语言(Unified Modeling Language,UML)是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言,从企业信息系统到基于Web的分布式应用,甚至严格的实时嵌入式系统都适合于用UML来建模。它是一种富有表达力的语言,可以描述开发所需要的各种视图,并以此为基础组建系统。
(1) UML是一种语言
像任何语言一样,UML提供了用于交流的词汇表及其组词规则,说明如何创建或理解结构良好的模型,但它并没有说明在什么时候创建什么样的模型。
(2) UML是一种可视化的建模语言
软件开发的难点在于项目参与人员之间的沟通和交流,领域专家、软件设计开发人员、客户等各自使用不同的语言交流,对系统的概念模型容易产生错误的理解。另外,阅读程序代码虽然可以推断其含义,但无法正确地理解它,当接手别人的开发工作时,你往往由于难以理解而不得不重新实现部分程序。
UML提供一组具有明确语义的图形符号,可以建立清晰的模型便于交流,同时所有开发人员都可以无歧义地解释这个模型。
(3) UML是一种可用于详细描述的语言
UML为所有重要的分析、设计和实现决策提供了精确的、无歧义的和完整的描述。
(4) UML是一种构造语言
UML不是一种可视化的编程语言,但它所描述的模型可以映射成不同的编程语言,如JAVA、C++和Visual Basic等。这种映射可以进行正向工程--从UML模型到编程语言的代码生成,也可以进行逆向工程--由编程语言代码重新构造UML模型。
(5) UML是一种文档化语言
UML不是过程,也不是方法,但允许任何一种过程和方法使用它。它可以建立系统体系结构及其详细文档,提供描述需求和用于测试的语言,同时可以对项目计划和发布管理的活动进行建模。
|