第3章 统一建模语言(UML)
学习目标
•了解UML 基本概念。
•熟练掌握用例图、静态图(类图、对象图、包图)、行为图(状态图、活动图)、交互图(顺序图、协作图) 和实现图(组件图、配置图) 的组成、建立的步骤等。
知识导入
UML (Unified Modeling Language, 统一建模语言), 又称标准建模语言, 是用来对软件密集系统进行可视化建模的一种语言。UML 以面向对象图的方式来描述任何类型的系统, 具有很宽的应用领域。其中最常用的是建立软件系统的模型, 但它同样可以用于描述非软件领域的系统。总之, UML 是一种通用的标准建模语言, 可以对任何具有静态结构和动态行为的系统进行建模, 而且适用于系统开发的不同阶段, 从需求规格描述直至系统完成后的测试和维护。
案例导入
要理解UML 首先要理解它的起源。公认的面向对象建模语言出现于20世纪70年代中期。从1989年到1994年, 其数量从不到10种增加到了50多种。在众多的建模语言中, 语言的创造者努力推崇自己的产品, 并在实践中不断完善。但是, 面向对象方法的用户并不了解不同建模语言的优缺点及相互之间的差异, 因而很难根据应用特点选择合适的建模语言, 于是爆发了一场“方法大战”。20世纪90年代中期, 一批新方法出现了, 其中最引人注目的是Booch 1993、OOSE 和OMT-2等。Booch 是面向对象方法最早的倡导者之一, 他提出了面向对象软件工程的概念。1991年, 他将以前面向Ada 的工作扩展到整个面向对象设计领域。Booch 1993比较适合于系统的设计和构造。Rumbaugh 等人提出了面向对象的建模技术(Object Modeling Technology,OMT) 方法, 采用了面向对象的概念, 并引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模型, 共同完成对整个系统的建模, 所定义的概念和符号可用于软件开发的分析、设计和实现的全过程, 软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2特别适用于分析和描述以数据为中心的信息系统。
Jacobson 于1994年提出了OOSE (面向对象的软件工程) 方法, 其最大的特点是面向用例(Use-Case), 并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器, 但用例贯穿于整个开发过程, 包括对系统的测试和验证。OOSE 比较适合支持商业工程和需求分析。此外, 还有Coad/Yourdon 方法, 即著名的OOA/OOD (面向对象分析/面向对象设计), 它是最早的面向对象的分析和设计方法之一。该方法简单、易学, 适合于面向对象技术的初学者使用, 但由于该方法在处理能力方面的局限, 目前已很少使用。
总的来说, 首先, 面对众多的建模语言, 用户由于没有能力区别不同语言之间的差别, 所以很难找到一种比较适合其应用特点的语言; 其次, 众多的建模语言实际上各有千秋; 最后, 虽然不同的建模语言大多类同, 但仍存在某些细微的差别, 极大地妨碍了用户之间的交流。因此在客观上, 极有必要在精心比较不同的建模语言优缺点及总结面向对象技术应用实践的基础上, 组织联合设计小组, 根据应用需求, 取其精华, 去其糟粕, 求同存异, 统一建模语言。1994年10月, Grady Booch 和Jim Rumbaugh 开始致力于这一工作。他们首先将Booch 1993和OMT-2 统一起来, 并于1995年10月发布了第一个公开版本, 称之为统一方法UM 0.8 (Unified Method)。1995年秋, OOSE 的创始人Ivar Jacobson 加入这一工作中。经过Booch、Rumbaugh 和Jacobson 三人的共同努力, 于1996年6月和10月分别发布了两个新的版本, 即UML 0.9和UML 0.91, 并将UM 重新命名为UML。
1996年, 一些机构将UML 作为其商业策略已日趋明显。UML 的开发者得到了来自公众的正面反应, 并倡议成立了UML 成员协会, 以完善、加强和促进UML 的定义工作。当时的成员有DEC、HP、I-Logix、Itellicorp、IBM、ICON Computing、MCI Systemhouse、Microsoft、Oracle、Rational Software、TI 以及Unisys。协会对UML 1.0 (1997年1月) 及UML 1.1 (1997年11月17日) 的定义和发布起到了重要的促进作用。
在美国, 截至1996年10月, UML 获得了工业界、科技界和应用界的广泛支持, 已有700多个公司表示支持采用UML 作为建模语言。1996年年底, UML 已稳占面向对象技术市场85%的份额, 成为可视化建模语言事实上的工业标准。1997年11月17日, OMG采纳UML 1.1作为基于面向对象技术的标准建模语言。UML 代表了面向对象方法的软件开发技术的发展方向, 具有巨大的市场前景, 也具有重大的经济价值和国防价值。
(编者整理, 资料来源http: / /www.360doc.com/content/21/1117/11/75489038—
1004533482.shtml)
思考: 通过以上案例材料, UML 在软件及开发中的作用是什么?