UML那些事儿:六类UML图.docx

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UML那些事儿:六类UML图来源:天极网  作者:邱郁惠 ?2.1?类图2.2?对象图2.3?包图2.4?活动图2.5?序列图2.6?用例图  本章介绍六类UML图的主要用途,以及常见的概念及图示,以便对这六类图有一个初步的认识。 2.1 类图 如果投票选最重要的UML图,我一定会把票投给类图( class diagram)。类图是一款结构图(structure diagram),如图2-1所示,我们可以用它来表达系统内部重要的组成结构。一个稳定且具弹性的内部结构可以同时支撑系统对外提供的各式服务,以及系统内部复杂的运作,所以我认为类图特别重要。 接下来的各小节会谈到类图中最常见的概念及图示。 2.1.1 类 一群对象(object)享有相同的结构、行为、约束和语义时,称它们是同类(class)的对象。换句话说,定义一个类就相当于描述了一群对象。在类中, 使用属性(attribute)表达对象的结构, 使用操作(operation)表达对象的行为。 如图2-2所示,定义员工(worker)类之后,便可以依据此类的描述产生一群对象。这些:Worker对象不仅可以共用类所定义的属性,拥有自己的属性值,还可以共用类所定义的操作,或者共用约束。  图2-1 类图  图2-2 类与对象 类采用三格的矩形图示,顶格放置类名称,中格放置属性名称,底格放置操作名称。不过,也可以将类的属性格或操作格隐藏起来,节省空间,如图2-3所示。 大多数的UML工具都有隐藏功能。以StarUML为例,点选任何一个类图示都可以选择是否隐藏属性或操作,如图2-4所示。  图2-3 类图示  图2-4 隐藏属性或操作 2.1.2 可见性 对象具有封装(encapsulation)属性,可以把数据结构和行为细节封装起来,外界无法随意存取。对应UML的类概念,我们会看到类中有属性和操作,同时可以设定这些成员是否能被外界存取的可见性(visibility)。以图2-5为例,单笔申购(purchase)封装了一个外界无法存取的私有属性—金额(amount),以及一个外界可以调用的公开操作—计算(calculate)。  图2-5 私有属性与公开操作 目前,UML预设了四种可见性,分别为公开(public)、私有(private)、保护(protected) 和包(package)。公开和私有可见性最常见,也最容易懂,如图2-5所示,减号(-)为私有可见性,加号(+)为公开可见性。 私有可见性滴水不漏,就连子类也无法看见超类的私有成员,这样,其实不利于继承机制。所以,UML设置保护等级的可见性,特别开放子类可以看见超类的保护等级的属性及操作,以便提供更方便的继承机制。保护可见性的符号是井号(#),如图2-6所示。  图2-6 保护等级的属性 最后来谈包可见性。顾名思义,它是为了包而设置的,它的符号是否定号(~),如图2-7所示。同包的类可以看见其他类内部的包属性及操作。所以,从图中可以得知,账户可以看见顾客类的姓名和地址,但是分行(branch)却无法看见,因为分行不是S包的成员。  图2-7 包等级的属性 2.1.3 关联 关联(association)是对象之间最常见的关系,用来连接有结构关系的对象。请看图2-8的例子,关联的图示为实线,实线两端可以连接两个不同的类,如图中的个人(person)类和公司(company)类。 不过,关联的两端也可以连接相同的类,如图2-8中的个人类。虽然,关联两端连接相同的类,但它的链接(link)其实是连接两个不同的实例(instance),只不过这两个实例诞生自相同的类。  图2-8 关联 关联不一定是二元关联(binary association),也可以是多元关联(n-ary association)。多元关联的图示是连接大菱形的实线,如图2-9所示为三元关联(ternary association)。  图2-9 三元关联 有时候会看到带箭头实线,那是在标示导航性(navigation),意味着可以由来源端(source end)导航到箭头所在处的目标端(target end)。如图2-10所示,:Member对象可以链接到:Password对象,但是反向则不成立,也就是说,无法从:Password对象链接到:Member对象,因为两者之间是单向的关联。  图2-10 导航性 特别注意,关联端的标记在UML 2中有所变动,与UML 1版略有不同,如图2-11所示。在 UML 2中,关联的箭头端代表具有导航性。打个小叉就是不可导航;单纯直线代表还未指定可导航或不可导航。所以,回到图2-11的例子中,可以看到 ? AB是双向关联。 ? CD两端都不具有导航性。 ? EF尚未指定两端是否具导航性。 ? GH为单向关联,可由G导航到

文档评论(0)

白领文档(原创) + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档