《《类图及对象图》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《类图及对象图》PPT课件.ppt(72页珍藏版)》请在三一办公上搜索。
1、类图及对象图,5.1 类的定义5.2 类的关系5.3 类图5.4 对象图5.5 几个特殊问题,第5章,类图及对象图,5.1.1 类的概念 类的属性 类的操作 类的类型,5.1 类的定义,5.1.1 类的概念,1.类的定义 类(class):具有相似结构、行为和关系的一组对象。2.类的表示,类名,属性,操作,3.类的其他几种表示形式,简化表示,缩略表示,实体类,界面类,控制类,4.类名,名词或名词短语(动词或动词短语表示控制类),尽可能用明确、简短,业务领域中事物的名称,避免使用抽象、无意义的名词,例如:人,桌子,图形,汇总,用英文,第1个字母大写,例如:Shape,Person,Checkin
2、gAccount,可分为简单类名,带路径类名,例如:CheckingAccount Banking:CheckingAccdount,例如:帐户,订单,事物,问题2:,1、指出下面命名有问题的的类。,?,5.1.2 类的属性,1.属性的含义 属性(attribute):描述类所表示事物的静态性质。2.属性的格式,可见性属性名:类型 多重性次序=初始值特性,5.1.2 类的属性,1.属性的含义 属性(attribute):描述类所表示事物的静态性质。2.属性的格式,第1个英文单词首字母小写,其它单词首字母大写 contactName credintLimit isPrepaid,可见性属性名:类
3、型 多重性次序=初始值特性,5.1.2 类的属性,1.属性的含义 属性(attribute):描述类所表示事物的静态性质。2.属性的格式,该属性对外部实体的显现程度.可见public:+受限protected:#私有private:-,可见性属性名:类型 多重性次序=初始值特性,5.1.2 类的属性,1.属性的含义 属性(attribute):描述类所表示事物的静态性质。2.属性的格式,属性的数据类型:字符串:String 日期:Date 布尔:Boolean 整型:int,可见性属性名:类型 多重性次序=初始值特性,5.1.2 类的属性,1.属性的含义 属性(attribute):描述类所表
4、示事物的静态性质。2.属性的格式,表示属性值的取值,及有序性:例如:name:String0.1 表示属性”name”可能无值,也可能仅有一个值.points:Point2.*ordered 表示有两个或多个值,有序,可见性属性名:类型 多重性次序=初始值特性,5.1.2 类的属性,1.属性的含义 属性(attribute):描述类所表示事物的静态性质。2.属性的格式,表示属性初始所取的值:例如:#visibility:Boolean=false 表示属性”visibility”初始取”false”,可见性属性名:类型 多重性次序=初始值特性,5.1.2 类的属性,1.属性的含义 属性(att
5、ribute):描述类所表示事物的静态性质。2.属性的格式,表示属性约束说明:例如:#visibility:Boolean=false读写 表示属性”visibility”可读,写,可见性属性名:类型 多重性次序=初始值特性,问题3:,1、指出下面属性名的含义。,?,+studentName:String=“黎明”#studentBirthDay:Date=1999-10-21-price:float=12.01R/W,5.1.3 类的操作,1.操作的含义 操作(operation):描述类所表示事物的动态性质。2.操作的格式,可见性操作名(参数列表):返回类型特性,5.1.3 类的操作,1.
6、操作的含义 操作(operation):描述类所表示事物的动态性质。2.操作的格式,可见性操作名(参数列表):返回类型特性,第1个英文单词首字母小写,其它单词首字母大写 close()creditRecording(),5.1.3 类的操作,1.操作的含义 操作(operation):描述类所表示事物的动态性质。2.操作的格式,该操作对外部实体的显现程度.可见public:+受限protected:#私有private:-,可见性操作名(参数列表):返回类型特性,5.1.3 类的操作,1.操作的含义 操作(operation):描述类所表示事物的动态性质。2.操作的格式,该操作的输入参数,可以
7、为空.例如:#create()+hide()-ttachXWindow(xwin:Xwindow),可见性操作名(参数列表):返回类型特性,5.1.3 类的操作,1.操作的含义 操作(operation):描述类所表示事物的动态性质。2.操作的格式,该操作的返回值的类型.例如:+display():Locatein,可见性操作名(参数列表):返回类型特性,问题4:,教学进程,1、指出下面操作名的含义。,?,+setName(String:name)+getName():String+creatBook(),5.1.4 类的类型,边界类位于系统与外界的交界处,承担系统与外界的信息交互功能.,1.
8、边界类,边界类处在用例图中,参与者与用例的关联处,可以根据用例图发现边界类。,实体类对应着现实中的客观实物,用来保存信息,一般对应着数据表、文件等。,2.实体类,实体类可以从现实中存在的客观事物,以及需要持久存放的信息两方面来发现。,控制类承担着事务处理,控制调控的控制作用。,3.控制类,一个用例中最少会有一个控制类,用来控制用例中的事件顺序,也可以在多个用例之间协调用例之间的联系。,一个例子:订货系统,类图及对象图,5.2.1 关联 聚集和组合 泛化 依赖,第5章,5.2 类之间的关系,5.2.1 关联,1.关联的定义 关联(association):模型元素之间的一种语义联系,它是对具有共
9、同的结构特性、行为特性、关系和语义的链的描述。关联可以分为单向关联,双向关联。,单向关联,双向关联,2.关联的特性,关联名,关联名,如果关联关系已经清楚,就无需关联名,2.关联的特性,关联的角色,如果关联名与角色名相同,则不标出角色名,关联的角色,2.关联的特性,关联的多重性,0,10:0或100.*:0到多个11.n:1到多*:0到多,关联的角色,关联的多重性,2.关联的特性,关联类,通过关联类描述关联的属性,操作,及其它信息。,关联类,2.关联的特性,关联的约束,通过约束加强关联的含义。例如,“帐户”不能同时与“人”和“公司”有关联。,约束,2.关联的特性,限定关联,通过限定符来规定关联的
10、限定关系。例如,“文件目录”通过“文件名”来与具体的文件对象进行关联。“银行”通过“帐户”与具体的“人”对象进行关联。,限定关联,3.关联的种类,一元(自返)关联,二元关联,3.关联的种类,多元关联,三元关联,问题5:,“教师”和“学生”两个类之间存在授课关系,一个教师可以教授多个学生,一个学生可以由多个教师授课,标出这两个类的关系。,?,问题6:,采购员从供货商处订货,双方需要签订订单,一个采购员可以订多个供货商的货品,一个供货商也可以给多个采购员供货。提取这个问题涉及的类,并确定各个类之间的关系。,?,5.2.2 聚集和组合,1.聚集 聚集(aggregation):表示类之间一种松散的整
11、体与部分的组成关系,是一种特殊的关联。,表示,例子,5.2.2 聚集和组合,2.组合 组合(composition):表示类之间一种紧密的整体与部分的组成关系,也是一种特殊的关联。,表示,例子,5.2.2 聚集和组合,3.聚集与组合的区别 聚集松散,组合紧密;,5.2.2 聚集和组合,3.聚集与组合的区别 聚集松散,组合紧密;一个部分事物对象可以属于多个聚集对象,但一个部分事物对象仅能属于一个组合对象;,5.2.2 聚集和组合,3.聚集与组合的区别 聚集松散,组合紧密;一个部分事物对象可以属于多个聚集对象,但一个部分事物对象仅能属于一个组合对象;聚集的对象生命周期可以不同,但组合对象则是同存同
12、亡。,问题7:,1、计算机由CPU、内存、硬盘、显示器、键盘、鼠标组成,用类图表示这种关系。2、举出一个具有聚合关系的类图的例子。,?,5.2.3 泛化,1.泛化的含义 泛化(generalization):表示事物之间的一般与特殊的关系。也可以称为继承关系。泛化关系除了表示类与类之间的关系之外,还可以表示参与者、用例、包、构件、接口等建模元素之间的关系。,5.2.3 泛化,2.泛化的表示,例子,表示,5.2.4 依赖,1.依赖的含义 依赖(dependency):表示两个元素X、Y,如果X的变化必然导致Y的变化,则称Y依赖X。依赖关系不仅限于类,用例、包、构件之间都可以存在依赖关系。,5.2
13、.4 依赖,2.依赖的表示,例子,表示,问题8:,下面几个模型图中,()能够正确地表示出“一个雇员最多有一个经理,经理可以管理多个雇员,也可以不管理一个雇员”这样的意思。,?,问题9:,下面对类之间关系的描述,()是正确的。A 聚集关系中的部分只能属于一个整体;B 组合关系中的部分可能属于整体;C 关联可用来表示角色之间的关系;D 泛化可用来表示类之间的关系。,?,类图及对象图,5.3.1 类图的概念 类图的抽象层次 建立类图,第5章,5.3 类图,5.3.1 类图的概念,类图(Class Diagram):是由类,相关建模元素,及其关系构成的图,用来描述类之间的静态关系。类图在系统中处在核心
14、位置。也是UML中最为重要的一种图。,5.3.2 类图的抽象层次,在系统的不同开发阶段,类图可以具有不同的抽象程度。随着开发的深入,类图应该越来越详细、具体。可以分为:概念层,逻辑层,实现层。,概念层,逻辑层,实现层,建立类图的一般步骤:,研究分析问题领域,确定系统需求;,5.3.3 建立类图,建立类图的一般步骤:,研究分析问题领域,确定系统需求;确定类,明确类的含义和职责,确定类的属性和操作;,5.3.3 建立类图,建立类图的一般步骤:,研究分析问题领域,确定系统需求;确定类,明确类的含义和职责,确定类的属性和操作;确定类之间的关系。关联,泛化,聚集,组合,依赖;,5.3.3 建立类图,建立
15、类图的一般步骤:,研究分析问题领域,确定系统需求;确定类,明确类的含义和职责,确定类的属性和操作;确定类之间的关系。关联,泛化,聚集,组合,依赖;调整和细化类及其关系,解决重复和冲突;,5.3.3 建立类图,建立类图的一般步骤:,研究分析问题领域,确定系统需求;确定类,明确类的含义和职责,确定类的属性和操作;确定类之间的关系。关联,泛化,聚集,组合,依赖;调整和细化类及其关系,解决重复和冲突;绘制类图,并增加相应说明。,5.3.3 建立类图,5.4 对象图,类图,对象图,类图及对象图,第5章,5.5 几个特殊问题,对象类 可以实例化为对象的类。我们前面所提的例子都属于对象类。抽象类 不能直接产
16、生实例的类。抽象类的类名一般被写成为斜体。,5.5.1 对象类和抽象类,派生属性和派生关联的概念 可以从其它属性或关联计算推演得到的属性和关联。在派生的名字前面加/,以示区别。派生容易产生不一致,应注意。,5.5.2 派生属性和派生关联,派生关联,派生属性,练习:,绘制图书馆图书借阅管理的类图。对于图书馆里的每一种图书,计算机管理目录中包括:书名、作者、ISBN号、出版社、单价。每一种图书馆都藏多册,每一册图书对应着一个唯一的图书编号。有许多注册读者,每一个读者拥有一个借书证,借书证包括读者编号、姓名、出生日期、职业、注册日期。读者每次可以凭借书证借图书,图书馆要对读者借书登记借书记录,借书记
17、录中登记读者、所借图书、借出日期、返还日期信息。,小结,5.1 类的定义 5.1.1 类的概念 5.1.2 类的属性 5.1.3 类的操作 类的类型 5.2 类之间的关系 5.2.1 关联 5.2.2 聚集和组合 5.2.3 泛化 5.2.4 依赖,第5章 类图和对象图,END,什么是类?什么是类图?写出类图的开发过程。创建由关联所链接的类(类有两个或三个)来表示如下情况。指出关联的多重性和名称。(1)有轮子的交通工具。(2)国家和首都。(3)在学校中学习的学生。(4)在体育馆注册进行锻练的人。类图和对象图有什么区别?分别说明聚集、组合的概念?两者有何区别?何时把关联标为聚集?,本章作业,6.下面3种对属性描述方式,哪种好?,7.类之间有哪4种关系?分别说明其含义。8.类图有哪3个描述层次?9.什么是抽象类?和对象类有何区别?,10.指出如下的分类关系是属于泛化、聚集或关联,画出类图,并做简要解释。注意:其中有n元关联,不要假定设计3个或更多类的每种关系都是泛化。一个国家有一个首都;哲学家使用餐叉;文件要么是普通文件,要么是目录文件;绘制的对象是文本、几何对象或分组;某人在某个项目里使用一门计算机语言;调制解调器和键盘都是输入/输出设备;类有多个属性;某人在某个年份为某队打球;路线连接了两个城市某学生选择了某教授的课。,