《UML面向对象建模基础》

上传人:ldj****22 文档编号:51939847 上传时间:2018-08-17 格式:PPT 页数:30 大小:618.50KB
返回 下载 相关 举报
《UML面向对象建模基础》_第1页
第1页 / 共30页
《UML面向对象建模基础》_第2页
第2页 / 共30页
《UML面向对象建模基础》_第3页
第3页 / 共30页
《UML面向对象建模基础》_第4页
第4页 / 共30页
《UML面向对象建模基础》_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《UML面向对象建模基础》》由会员分享,可在线阅读,更多相关《《UML面向对象建模基础》(30页珍藏版)》请在金锄头文库上搜索。

1、UML面向对象建模基础类图知识图谱知识图谱AgendaAgenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结AgendaAgenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结面向对象思想面向对象思想面向对象思想面向对象思想每个对象都扮演了一个角色,并为其它成员提供特定的 服务或执行特定的行为。 在面向对象世界中,行为的启动是通过将“消息”传递给对此行为负责的对象来完成的;同时还将伴随着执行要求附上相关的信息(参数);而收到该消息的对象则会 执行相应的“方法”来实现需求 用类和对象表示现实世界,用消息和方法来模拟现实世 界的核心思想

2、 如何用如何用UMLUML表示一个类表示一个类名称:每个类都有一个惟一的名称,通常采用 CamelCase格式表示 属性:是已被命名的类的 特性,它描述该类实例中包含的信息 操作:是类所提供的服务,它可以由类的任何对象请求以影响其行为属性名和操作名也通常采用CamelCase格式表示,只不 过首字母通常为小写。 AgendaAgenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结示例类图示例类图先看清有哪些类,然 后看看类之间存在的 关系,并结合多重性 来理解类图的结构特 点以及各个属性和方 法的含义 读图过程读图过程 读出类:图中共有7个类,Order、Orde

3、rItem、 Customer、Consignee、DeliverOrder、Peddlery、 Prodcut 读出关系:从图中关系最复杂(也就是线最密集)的类 开始阅读,本图中最复杂的就是Order类。 1)OrderItem和Order之间是组合关系,根据箭头的方 向可知Order包含了OrderItem。 2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货 单是相关的。读图过程读图过程多重性:用来说明关联的两个类之间的数量关系 源类及 多 重 性目标类及 多重 性分析Custom er( 1)Order(0

4、 n)订单是属于某个客户的,网站的 客户可以有0个或多个订单Order( 1)Consignee (1)每个订单只能够有一个收货人Order( 1)OrderItem (1n )订单是由订单项组 成的,至少要 有一个订单项 ,最多可以有n 个 Order( 1)DeliverOr der(1 n)一个订单有一个或多个 送货单说明: 系 统 根 据 订 单 项 的 产 品 所 属 的 商 户 , 将 其 分 发 给 商 户 , 拆 成 了 多 个 送 货 单 !Deliver Or de r(1 )OrderItem (1n )一张送货单对应订单 中 的一到多个订单项Deliver Or de

5、r(1 )Consignee (1)每张送货单都对应着一 个收货人Peddler y( 1)DeliverOr der(0 n)每个商户可以有相关的0 个或多个送货单OrderIt e m( 1)Product(1)每个订单项 中都包含着 唯一的一个产品Peddler y( 1)Prodcut(0 n)产品是属于某个商户的 ,可以注册0到多个 产品读图过程读图过程理解方法与图理解方法与图Order类,有两个方法:dispatch()和close(),从名字中可以猜出它 们分别实现“分拆订单生成送货单”和“完成订单”。而在 DeliveOrder()类中则有一个Close()方法,同理它应该表示

6、“完成送 货”。而在OrderItem中有一个stateChange()方法和deliverState,不 难猜出它就是用来改变其“是否交给收货人”标志位的先调用Order的dispatch()方法,它将根据其包含的OrderItem中产 品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统 后就可以获取其DeliverOrder,并在执行完后调用close()方法。这 时,就将调用OrderItem的stateChange()方法来改为其状态。同时 再调用Order的close()方法,判断该Order的所有的OrderItem是否 都已经送到了,如果是就将其真正close

7、()掉 使用了更多辅助建模元素的类图使用了更多辅助建模元素的类图增强的辅助建模元素增强的辅助建模元素导航箭号:类的实例之间只能沿着导航箭头的方向传递 ,在Order中可以获取其相应的Consignee,而从 Consignee中是无法了解与其相关的Order的 角色名称:Customer端有一个“+Owner”字符串 ,这表 示Customer扮演的角色是Owner,也能对关联进行命名增强的辅助建模元素增强的辅助建模元素导出属性:是指可以根据其他值计算出来的特性,这种 属性应在其名称前加上一个“/”符号。限定符:在Order和OrderItem之间的组合关系中, OrderItem这端多了一个

8、方框,里面写着“ProductId”。 它在UML中称为限定符,存在限定符的关联称为受限关联。它用来表示某种限定关系。在本例中,它的用途是 说明:对于一张订单,每一种产品只能用一个订单项 约束:用来说明规则,xor 职责:在类的属性栏中添加注释行表示,或增加了一个 新的分栏AgendaAgenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结接口与抽象类接口与抽象类抽象类是一种不能够被直接实例化的类,也就是说不能 够创建一个属于抽象类的对象接口则是一种类似于抽象 类的机制,它是一个没有 具体实现的类 关联类关联类关联类即是关联也是类,它不仅像关联那样连接两个类 ,而

9、且还可以定义一组属于关系本身的特性 模板类模板类可以根据占位符或参数来定义类,而不用说明属性、方 法返回值和方法参数的实际类型 AgendaAgenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结需求描述需求描述小王是一个爱书之人,家里各类书籍已过千册,而平时 又时常有朋友外借,因此需要一个个人图书管理系统。 该系统应该能够将书籍的基本信息按计算机类、非计算 机类分别建档,实现按书名、作者、类别、出版社等关 键字的组合查询功能。在使用该系统录入新书籍时系统 会自动按规则生成书号,可以修改信息,但一经创建就 不允许删除。该系统还应该能够对书籍的外借情况进行 记录,可

10、对外借情况列表打印。另外,还希望能够对书 籍的购买金额、册数按特定时间周期进行统计 发现类发现类小王是一个爱书之人,家里各类书籍已过千册,而平时 又时常有朋友外借,因此需要一个个人图书管理系统。 该系统应该能够将书籍的基本信息按计算机类、非计算 机类分别建档,实现按书名、作者、类别、出版社等关 键字的组合查询功能。在使用该系统录入新书籍时系统 会自动按规则生成书号,可以修改信息,但一经创建就 不允许删除。该系统还应该能够对书籍的外借情况进行 记录,可对外借情况列表打印。另外,还希望能够对书 籍的购买金额、册数按特定时间周期进行统计 筛选备选类筛选备选类“小王”、“人”、“家里”很明显是系统外的

11、概念,无须对其建模;而“个人图书管理系统”、“系统”指的就是将要开发的系统,即系统本身,也无须对其进行建模;很明显“书籍”是一个很重要的类,而“书名”、“作者”、“类别”、“出版社”、“书号”则都是用来描述书籍的基本信息的,因此应该作 为“书籍”类的属性处理,而“规则”是指书号的生成规则,而书号则 是书籍的一个属性,因此“规则”可以作为编写“书籍”类构造函数的指南。“基本信息”则是书名、作者、类别等描述书籍的基本信息统称,“ 关键字”则是代表其中之一,因此无需对其建模;“功能”、“新书籍”、“信息”、“记录”都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;筛选修

12、选类筛选修选类“计算机类”、“非计算机类”是该系统中图书的两大分类,因此应该 对其建模,并改名为“计算机类书籍”和“非计算机类书籍”,以减少歧义;“外借情况”则是用来表示一次借阅行为,应该成为一个候选类,多 个外借情况将组成“外借情况列表”,而外借情况中一个很重要的角 色是“朋友”借阅主体。虽然到本系统中并不需要建立“朋友”的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将 其列为候选类。为了能够更好地表述,将“外借情况”改名为“借阅 记录”,而将“外借情况列表”改名为“借阅记录列表”;“购买金额”、“册数”都是统计的结果,都是一个数字,因此不用将 其建模,而“特定时限”则是统计的

13、范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类 书籍列表,也就是执行统计的主体。得到候选类得到候选类在使用“名词动词法”寻找类的时候,很多团队会在此耗费大量的时间,特别是对于中大型项目,这样很容易迷 失方向。其实在此主要的目的是对问题领域建立概要的 了解,无需太过咬文嚼字 书籍 计算机类书籍 非计算机类书籍 借阅记录 借阅记录列表 书籍列表关联分析,建模,多重性分析,再建模关联分析,建模,多重性分析,再建模职责分析职责分析书籍类:从需求描述中,可找到书名、类别、作者、出版社;同时 从统计的需要中,可得知“定价”也是一个关键的成员变量。 书籍列表类:书籍列

14、表就是全部 的藏书列表,其主要的成员方法 是新增、修改、查询(按关键字 查询)、统计(按特定时限统计 册数与金额)。借阅记录类:借阅人(朋友)、借阅时间。借阅记录列表类:主要职责就是 添加记录(借出)、删除记录 (归还)以及打印借阅记录 限定与修改限定与修改导航性分析:Book与BookList之间、BorrowRecord和BorrowList 之间是组合关系均无需添加方向描述,而Book与BorrowRecord之间则是双方关联,也无需添加约束:Book对象创建后就不能够 被删除只能被修改,因此在Book类边上加上用自由文本写的约束 ; 一本书要么属于计算机类,要么 属于非计算机类,因此在ItBook 和OtherBook间加了 “Xor”约束 限定符:一本书只有一册,因此只 能够被借一次,因此对于一本Book 而言只能有一个RecordId与其对应 AgendaAgenda什么是类如何阅读类图其他高级概念如何绘制类图类图应用说明复合结构图本章小结本章小结本章小结首先,从一个现实生活中的例子开始引入面向对象思想 的本质,并且详细地说明了UML中类的表示法 接着讲述了阅读类图的方法、技巧和相关的知识:关系 、多重性、导航箭头、角色名称、导出属性、限定符、 约束;接口/抽象类、关联类、模板类、主动类、嵌套类 ;OCL 类图的绘制方法,类图的功能与作用 复合结构图的基础知识

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号