《[计算机软件及应用]第5章类图及对象图课件.ppt》由会员分享,可在线阅读,更多相关《[计算机软件及应用]第5章类图及对象图课件.ppt(109页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、问题:问题:问题:问题:教学进程教学进程教学进程教学进程1、谈谈用例图的作用。、谈谈用例图的作用。2、用例之间存在着、用例之间存在着(),(),(),()关系?关系?问题:问题:问题:问题:教学进程教学进程教学进程教学进程3、下面几种用什么符号表示、下面几种用什么符号表示:用例用例,关联关联,扩展扩展,包含包含?问题:问题:问题:问题:教学进程教学进程教学进程教学进程4、下面说法错误的是、下面说法错误的是:A 泛化表示一般和特殊的关系泛化表示一般和特殊的关系 B 用例之间存在泛化关系用例之间存在泛化关系 C 参与者之间存在泛化关系参与者之间存在泛化关系 D 参与者和用例之间存在泛化关系参与者和
2、用例之间存在泛化关系?问题:问题:问题:问题:教学进程教学进程教学进程教学进程5、下面说法错误的是、下面说法错误的是:A 参与者是与所建立系统交互的人或物参与者是与所建立系统交互的人或物 B 参与者可以是人参与者可以是人,也可以是其他系统也可以是其他系统 C 参与者是系统的一部分参与者是系统的一部分,是用例图的重是用例图的重要组成部分要组成部分 D 参与者之间存在泛化关系参与者之间存在泛化关系?类图及对象图类图及对象图5.15.1 类的定义类的定义类的定义类的定义5.25.2 类的关系类的关系类的关系类的关系5.35.3 类图类图类图类图5.45.4 几个特殊问题几个特殊问题几个特殊问题几个特
3、殊问题5.55.5 对象图对象图对象图对象图5.65.6 包图包图包图包图第第5章章类图及对象图类图及对象图5.1.1 5.1.1 类的概念类的概念类的概念类的概念5.1.25.1.2 类的属性类的属性类的属性类的属性5.1.35.1.3 类的操作类的操作类的操作类的操作5.1.45.1.4 类的类型类的类型类的类型类的类型第第5章章5.1 类的定义类的定义5.1.1 类的概念类的概念 1.类的定义类的定义 类类(class):(class):具有相似结构、行为和关系的一组对象。具有相似结构、行为和关系的一组对象。2.2.类的表示类的表示 类名类名属性属性操作操作 3.类的其他几种表示形式类的
4、其他几种表示形式 简化表示简化表示 缩略表示缩略表示实体类实体类界面类界面类控制类控制类 4.类名类名 名词或名词短语名词或名词短语(动词或动词短语表示控制类动词或动词短语表示控制类)尽可能用明确、简短,业务领域中事物的名称尽可能用明确、简短,业务领域中事物的名称,避免使用抽象、无意义的名词避免使用抽象、无意义的名词例如:人,桌子,图形,汇总例如:人,桌子,图形,汇总 用英文,第用英文,第1 1个字母大写个字母大写例如:例如:Shape,Person 可分为简单类名,带路径类名可分为简单类名,带路径类名例如:例如:Item Business:Item例如:帐户,订单,例如:帐户,订单,事物事物
5、问题:问题:问题:问题:教学进程教学进程教学进程教学进程1、指出下面命名有问题的的类。、指出下面命名有问题的的类。?5.1.2 类的属性类的属性 1.属性的含义属性的含义 属性属性(attribute):描述类所表示事物的静态性质。描述类所表示事物的静态性质。2.2.属性的格式属性的格式 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序=初始值初始值 特性特性5.1.2 类的属性类的属性 1.属性的含义属性的含义 属性属性(attribute):描述类所表示事物的静态性质。描述类所表示事物的静态性质。2.2.属性的格式属性的格式 第第第第1 1个英文单词首字母小写个英文单词首字母小
6、写个英文单词首字母小写个英文单词首字母小写,其它单其它单其它单其它单词首字母大写词首字母大写词首字母大写词首字母大写 contactNamecontactName credintLimitcredintLimit isPrepaidisPrepaid 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序=初始值初始值 特性特性5.1.2 类的属性类的属性 1.属性的含义属性的含义 属性属性(attribute):描述类所表示事物的静态性质。描述类所表示事物的静态性质。2.2.属性的格式属性的格式 该属性对外部实体的显现程度该属性对外部实体的显现程度该属性对外部实体的显现程度该属性对外部
7、实体的显现程度.可见可见可见可见public :+public :+受限受限受限受限protected:#protected:#私有私有私有私有private :-private :-可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序=初始值初始值 特性特性5.1.2 类的属性类的属性 1.属性的含义属性的含义 属性属性(attribute):描述类所表示事物的静态性质。描述类所表示事物的静态性质。2.2.属性的格式属性的格式 属性的数据类型属性的数据类型属性的数据类型属性的数据类型:字符串字符串字符串字符串:String:String 日期日期日期日期:Date:Date 布尔布尔
8、布尔布尔:Boolean:Boolean 整型整型整型整型:Int:Int 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序=初始值初始值 特性特性5.1.2 类的属性类的属性 1.属性的含义属性的含义 属性属性(attribute):描述类所表示事物的静态性质。描述类所表示事物的静态性质。2.2.属性的格式属性的格式 表示属性值的取值的多寡表示属性值的取值的多寡表示属性值的取值的多寡表示属性值的取值的多寡,以及有序性以及有序性以及有序性以及有序性:例如例如例如例如:name:String0.1:name:String0.1 表示属性表示属性表示属性表示属性”name”name”可
9、能无值可能无值可能无值可能无值,也可能也可能也可能也可能仅有一个值仅有一个值仅有一个值仅有一个值.points:Point2.*ordered points:Point2.*ordered 表示有两个或多个值表示有两个或多个值表示有两个或多个值表示有两个或多个值,有序有序有序有序 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序=初始值初始值 特性特性5.1.2 类的属性类的属性 1.属性的含义属性的含义 属性属性(attribute):描述类所表示事物的静态性质。描述类所表示事物的静态性质。2.2.属性的格式属性的格式 表示属性初始所取的值表示属性初始所取的值表示属性初始所取的值
10、表示属性初始所取的值:例如例如例如例如:#:#visibility:Booleanvisibility:Boolean=false=false 表示属性表示属性表示属性表示属性”visibility”visibility”初始取初始取初始取初始取”false”false”可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序=初始值初始值 特性特性5.1.2 类的属性类的属性 1.属性的含义属性的含义 属性属性(attribute):描述类所表示事物的静态性质。描述类所表示事物的静态性质。2.2.属性的格式属性的格式 表示属性约束说明表示属性约束说明表示属性约束说明表示属性约束说明:例如
11、例如例如例如:#:#visibility:Booleanvisibility:Boolean=false=false读写读写读写读写 表示属性表示属性表示属性表示属性”visibility”visibility”可读可读可读可读,写写写写任何希望添加在属性定义字符串值但又没有合任何希望添加在属性定义字符串值但又没有合任何希望添加在属性定义字符串值但又没有合任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符适地方可以加入的规则,都可以放在属性字符适地方可以加入的规则,都可以放在属性字符适地方可以加入的规则,都可以放在属性字符串里。串里。串里。串里。可见性可见性 属性
12、名属性名:类型类型 多重性多重性 次序次序=初始值初始值 特性特性问题:问题:问题:问题:教学进程教学进程教学进程教学进程1、指出下面属性名的含义。、指出下面属性名的含义。?+studentName:String=“黎明黎明”#studentBirthDay:Date=1999-10-21-price:float=12.01R/W5.1.3 类的操作类的操作 1.操作的含义操作的含义 操作操作(operation):描述类所表示事物的动态性质。描述类所表示事物的动态性质。2.2.操作的格式操作的格式 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性5.1.3 类的操
13、作类的操作 1.操作的含义操作的含义 操作操作(operation):描述类所表示事物的动态性质。描述类所表示事物的动态性质。2.2.操作的格式操作的格式 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性第第第第1 1个英文单词首字母小写个英文单词首字母小写个英文单词首字母小写个英文单词首字母小写,其它单其它单其它单其它单词首字母大写词首字母大写词首字母大写词首字母大写 close()close()creditRecordingcreditRecording()()5.1.3 类的操作类的操作 1.操作的含义操作的含义 操作操作(operation):描述类所表示事
14、物的动态性质。描述类所表示事物的动态性质。2.2.操作的格式操作的格式 该操作对外部实体的显现程度该操作对外部实体的显现程度该操作对外部实体的显现程度该操作对外部实体的显现程度.可见可见可见可见public :+public :+受限受限受限受限protected:#protected:#私有私有私有私有private :-private :-可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性5.1.3 类的操作类的操作 1.操作的含义操作的含义 操作操作(operation):描述类所表示事物的动态性质。描述类所表示事物的动态性质。2.2.操作的格式操作的格式 该操
15、作的输入参数该操作的输入参数该操作的输入参数该操作的输入参数,可以为空可以为空可以为空可以为空.例如例如例如例如:#create():#create()+hide()+hide()-ttachXWindow(xwin:XwindowttachXWindow(xwin:Xwindow)可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性5.1.3 类的操作类的操作 1.操作的含义操作的含义 操作操作(operation):描述类所表示事物的动态性质。描述类所表示事物的动态性质。2.2.操作的格式操作的格式 该操作的返回值的类型该操作的返回值的类型该操作的返回值的类型该操作
16、的返回值的类型.例如例如例如例如:+:+display():Locationdisplay():Location 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性问题:问题:问题:问题:教学进程教学进程教学进程教学进程1、指出下面操作名的含义。、指出下面操作名的含义。?+setName(String:name)+getName():String+creatbook()5.1.4 类的类型类的类型 边界类位于系统与外界的交界处边界类位于系统与外界的交界处,承担系统与承担系统与外界的信息功能外界的信息功能.1.1.边界类边界类 边界类处在用例图中边界类处在用例图中,参与
17、者与用例的关联处参与者与用例的关联处,可以根据用例图发现边界类。可以根据用例图发现边界类。说明:说明:通过通过use caseuse case图可以确定需要的边界类。图可以确定需要的边界类。每个每个actor/use caseactor/use case交互至少要有一个边界类。交互至少要有一个边界类。但并非每个但并非每个actor/use caseactor/use case对要生成唯一边界对要生成唯一边界类,多个类,多个actoractor启动同一启动同一use caseuse case时,可以用时,可以用同一个边界类与系统通信。例如:同一个边界类与系统通信。例如:实体类对应着现实中的客观实
18、物,用来保存信实体类对应着现实中的客观实物,用来保存信息,一般对应着数据表、文件等。息,一般对应着数据表、文件等。2.2.实体类实体类 实体类可以从现实中存在的客观事物,以及实体类可以从现实中存在的客观事物,以及需要持久存放的信息两方面来发现。需要持久存放的信息两方面来发现。说明:说明:通常,每个实体类在数据库中有相应的表,实通常,每个实体类在数据库中有相应的表,实体类中的属性对应数据库中表的字段。体类中的属性对应数据库中表的字段。实体类可以通过事件流和交互图发现。实体类实体类可以通过事件流和交互图发现。实体类通常用领域术语命名。通常用领域术语命名。控制类承担着事务处理,控制调控的控制作用。控
19、制类承担着事务处理,控制调控的控制作用。3.3.控制类控制类 一个用例中最少会有一个控制类,用来控制一个用例中最少会有一个控制类,用来控制用例中的事件顺序,也可以在多个用例之间协用例中的事件顺序,也可以在多个用例之间协调用例之间的联系。调用例之间的联系。一个例子:订货系统一个例子:订货系统类图及对象图类图及对象图5.2.1 5.2.1 关联关联关联关联5.2.25.2.2 聚集和组合聚集和组合聚集和组合聚集和组合5.2.35.2.3 泛化泛化泛化泛化5.2.45.2.4 依赖依赖依赖依赖第第5章章5.2 类之间的关系类之间的关系5.2.1 关联关联 1.关联的定义关联的定义 关联的通俗含义关联
20、的通俗含义 表示事物之间的一种牵连式的固有联系。表示事物之间的一种牵连式的固有联系。例如:例如:关联关联5.2.1 关联关联 1.关联的定义关联的定义 关联的本质含义关联的本质含义 关联关联(association):表示两个类之间存在某种语义表示两个类之间存在某种语义上的联系,它是一种结构关系,规定了一种事物的对象上的联系,它是一种结构关系,规定了一种事物的对象可以和另一种事物的对象相联系。可以和另一种事物的对象相联系。关联可以分为单向关联,双向关联。关联可以分为单向关联,双向关联。单向关联单向关联双向关联双向关联例:单向关联所生成的例:单向关联所生成的JavaJava代码:代码:(可以选择
21、可以选择是否生成类的缺省构造方法是否生成类的缺省构造方法)public class B /*roseuid 3DAFBF0F01A2 */public B()public class A public class A public B public B theBtheB;/*/*roseuidroseuid 3DAFBF0F01FC 3DAFBF0F01FC */*/public A()public A()2.关联的特性关联的特性 关联名关联名关联名关联名如果关联关系已经清楚,就无需关联名如果关联关系已经清楚,就无需关联名 2.关联的特性关联的特性 关联的角色关联的角色如果关联名与角色名相同,
22、则不标出角色名如果关联名与角色名相同,则不标出角色名关联的角色关联的角色 2.关联的特性关联的特性 关联的多重性关联的多重性0.1:0或或10.n,0.*:0或多或多11.n:1到多到多*:0到多到多关联的角色关联的角色关联的多重性关联的多重性 2.关联的特性关联的特性 关联类关联类通过关联类描述关联的属性,操作,及其它信息。通过关联类描述关联的属性,操作,及其它信息。关联类关联类 2.关联的特性关联的特性 关联的约束关联的约束通过约束加强关联的含义。通过约束加强关联的含义。例如,例如,“帐户帐户”不能同时与不能同时与“人人”和和“公公司司”有关联。有关联。约束约束 2.关联的特性关联的特性
23、限定限定关联关联通过限定符来规定关联的限定关系。通过限定符来规定关联的限定关系。例如,例如,“文件目录文件目录”通过通过“文件名文件名”来与具体的来与具体的文件对象进行关联。文件对象进行关联。“银行银行”通过通过“帐户帐户”与具体的与具体的“人人”对象进行对象进行关联。关联。限定关联限定关联 3.关联的种类关联的种类 一元一元(自返自返)关联关联 二元关联二元关联 3.关联的种类关联的种类 多元关联多元关联三元关联三元关联 4.对关联须注意的一个问题对关联须注意的一个问题 关联一定指的是类中对象与类中的对象之关联一定指的是类中对象与类中的对象之间的连接对应关系。间的连接对应关系。类图类图对象图
24、对象图问题:问题:问题:问题:教学进程教学进程教学进程教学进程 “教师教师”和和“学生学生”两个类之间存在授课关两个类之间存在授课关系,一个教师可以教授多个学生,一个学生可以系,一个教师可以教授多个学生,一个学生可以由多个教师授课,标出这两个类的关系。由多个教师授课,标出这两个类的关系。?问题:问题:问题:问题:教学进程教学进程教学进程教学进程 采购员从供货商处订货,双方需要签订订单,采购员从供货商处订货,双方需要签订订单,一个采购员可以订多个供货商的货品,一个供货一个采购员可以订多个供货商的货品,一个供货商也可以给多个采购员供货。商也可以给多个采购员供货。要求:要求:1.提取这个问题涉及的类
25、提取这个问题涉及的类;2.定义各个类之间的关系,并画出类图。定义各个类之间的关系,并画出类图。?1.提取本问题的类提取本问题的类?类是否提取完全了,还有没有隐藏的类是否提取完全了,还有没有隐藏的没有提取的类?没有提取的类?1.提取本问题的类提取本问题的类2.确定类之间的关系确定类之间的关系2.确定类之间的关系确定类之间的关系?货品是由供应商提供,但订单所订的货品是由供应商提供,但订单所订的货品怎么样反映出来?货品怎么样反映出来?2.确定类之间的关系确定类之间的关系5.2.2 聚集和组合聚集和组合 1.聚集聚集 聚集聚集(aggregation):表示类之间一种松散的表示类之间一种松散的整体与部
26、分的组成关系,是一种特殊的关联。整体与部分的组成关系,是一种特殊的关联。表示表示例子例子5.2.2 聚集和组合聚集和组合 2.组合组合 组合组合(composition):表示类之间一种紧密的表示类之间一种紧密的整体与部分的组成关系,也是一种特殊的关联。整体与部分的组成关系,也是一种特殊的关联。表示表示例子例子5.2.2 聚集和组合聚集和组合 3.聚集与组合的区别聚集与组合的区别 聚集松散聚集松散,组合紧密组合紧密;5.2.2 聚集和组合聚集和组合 3.聚集与组合的区别聚集与组合的区别 聚集松散聚集松散,组合紧密组合紧密;一个部分事物对象可以属于多个聚集对象一个部分事物对象可以属于多个聚集对象
27、,但一个部分事物对象仅能属于一个组合对象但一个部分事物对象仅能属于一个组合对象;5.2.2 聚集和组合聚集和组合 3.聚集与组合的区别聚集与组合的区别 聚集松散聚集松散,组合紧密组合紧密;一个部分事物对象可以属于多个聚集对象一个部分事物对象可以属于多个聚集对象,但一个部分事物对象仅能属于一个组合对象但一个部分事物对象仅能属于一个组合对象;聚集的对象生命周期可以不同聚集的对象生命周期可以不同,但组合对象但组合对象则是同存同亡。则是同存同亡。问题:问题:问题:问题:教学进程教学进程教学进程教学进程举出一个具有聚合关系的类图的例子。举出一个具有聚合关系的类图的例子。?5.2.3 泛化泛化 1.泛化的
28、含义泛化的含义 泛化泛化(generalization):表示事物之间的一表示事物之间的一般与特殊的关系。也可以称为继承关系。般与特殊的关系。也可以称为继承关系。泛化关系除了表示类与类之间的关系之外,泛化关系除了表示类与类之间的关系之外,还可以表示参与者、用例、包、构件、接口等还可以表示参与者、用例、包、构件、接口等建模元素之间的关系。建模元素之间的关系。5.2.3 泛化泛化 2.泛化的表示泛化的表示例子例子表示表示例子:例子:例子:例子:5.2.4 依赖依赖 1.依赖的含义依赖的含义 依赖依赖(dependency):表示两个元素表示两个元素X、Y,如,如果果X的变化必然导致的变化必然导致Y
29、的变化,则称的变化,则称Y依赖依赖X。依赖关系不仅限于类,用例、包、构件之间依赖关系不仅限于类,用例、包、构件之间都可以存在依赖关系。都可以存在依赖关系。5.2.4 依赖依赖 2.依赖的表示依赖的表示例子例子表示表示在类中,依赖由各种原因引起,如:一在类中,依赖由各种原因引起,如:一个类向另一个类发消息;一个类是另一个类向另一个类发消息;一个类是另一个类的数据成员类型;一个类是另一个个类的数据成员类型;一个类是另一个类的某个操作参数类型。类的某个操作参数类型。问题:问题:问题:问题:教学进程教学进程教学进程教学进程 下面几个模型图中,(下面几个模型图中,()能够正确地表示出)能够正确地表示出“
30、一个雇员只有一个经理,经理可以管理多个雇一个雇员只有一个经理,经理可以管理多个雇员,也可以不管理一个雇员员,也可以不管理一个雇员”这样的意思。这样的意思。?问题:问题:问题:问题:教学进程教学进程教学进程教学进程下面对类之间关系的描述,(下面对类之间关系的描述,()是正确的。)是正确的。A 聚集关系中的部分只属于一个整体;聚集关系中的部分只属于一个整体;B 组合关系中的部分可能属于整体;组合关系中的部分可能属于整体;C 关联是表示对象之间的关系;关联是表示对象之间的关系;D 泛化是表示对象之间的关系。泛化是表示对象之间的关系。?类图及对象图类图及对象图5.3.1 5.3.1 类图的概念类图的概
31、念类图的概念类图的概念5.3.25.3.2 类图的抽象层次类图的抽象层次类图的抽象层次类图的抽象层次5.3.35.3.3 建立类图建立类图建立类图建立类图第第5章章5.3 类图类图5.3.1 类图的概念类图的概念 类图类图(Class Diagram):是由类,相关建模元是由类,相关建模元素,及其关系构成的图,用来描述类之间的静素,及其关系构成的图,用来描述类之间的静态关系。态关系。类图在系统中处在核心位置。也是类图在系统中处在核心位置。也是UML中中最为重要的一种图。最为重要的一种图。5.3.2 类图的抽象层次类图的抽象层次 在系统的不同开发阶段,类图可以具有不在系统的不同开发阶段,类图可以
32、具有不同的抽象程度。随着开发的深入,类图应该越同的抽象程度。随着开发的深入,类图应该越来越详细、具体。来越详细、具体。可以分为:概念层,逻辑层,实现层。可以分为:概念层,逻辑层,实现层。概念层概念层逻辑层逻辑层实现层实现层概念层概念层(Conceptual)(Conceptual)类图描述应用领域类图描述应用领域中的概念,一般地,这些概念和类有很中的概念,一般地,这些概念和类有很自然的联系,但两者并没有直接的映射自然的联系,但两者并没有直接的映射关系。关系。说明层说明层(Specification)(Specification)类图描述软件的类图描述软件的接口部分,而不是软件的实现部分。接口部
33、分,而不是软件的实现部分。实现层实现层(Implementation)(Implementation)类图才真正考类图才真正考虑类的实现问题,揭示实现细节。虑类的实现问题,揭示实现细节。不要过早陷入实现细节,根据项目开发不要过早陷入实现细节,根据项目开发的不同阶段,采用不同层次的类图。的不同阶段,采用不同层次的类图。如果处于分析阶段,应画概念层类图;如果处于分析阶段,应画概念层类图;当开始着手软件设计时,应画说明层当开始着手软件设计时,应画说明层类图;当考察某个特定的实现技术时,类图;当考察某个特定的实现技术时,则应画实现层类图。则应画实现层类图。建立类图的一般步骤:建立类图的一般步骤:研究分
34、析问题领域,确定系统需求;研究分析问题领域,确定系统需求;5.3.3 建立类图建立类图用户访问用户访问领域知识领域知识现实世界经验现实世界经验建立域模型建立域模型问题描绘书问题描绘书 建立类图的一般步骤:建立类图的一般步骤:研究分析问题领域,确定系统需求;研究分析问题领域,确定系统需求;确定类,明确类的含义和职责,确定类的属性和操作;确定类,明确类的含义和职责,确定类的属性和操作;5.3.3 建立类图建立类图 建立类图的一般步骤:建立类图的一般步骤:研究分析问题领域,确定系统需求;研究分析问题领域,确定系统需求;确定类,明确类的含义和职责,确定类的属性和操作;确定类,明确类的含义和职责,确定类
35、的属性和操作;确定类之间的关系。关联,泛化,聚集,组合,依赖;确定类之间的关系。关联,泛化,聚集,组合,依赖;5.3.3 建立类图建立类图如何发现类和它们之间的关系如何发现类和它们之间的关系名词名词-动词分析法动词分析法找出以上来源中的名词或名词短语,作为候找出以上来源中的名词或名词短语,作为候选类选类对候选类进行筛选,去掉冗余的、和系统无对候选类进行筛选,去掉冗余的、和系统无关的、以及非独立的类关的、以及非独立的类以动词为线索确定类之间的关系以动词为线索确定类之间的关系 建立类图的一般步骤:建立类图的一般步骤:研究分析问题领域,确定系统需求;研究分析问题领域,确定系统需求;确定类,明确类的含
36、义和职责,确定类的属性和操作;确定类,明确类的含义和职责,确定类的属性和操作;确定类之间的关系。关联,泛化,聚集,组合,依赖;确定类之间的关系。关联,泛化,聚集,组合,依赖;调整和细化类及其关系,解决重复和冲突;调整和细化类及其关系,解决重复和冲突;5.3.3 建立类图建立类图 建立类图的一般步骤:建立类图的一般步骤:研究分析问题领域,确定系统需求;研究分析问题领域,确定系统需求;确定类,明确类的含义和职责,确定类的属性和操作;确定类,明确类的含义和职责,确定类的属性和操作;确定类之间的关系。关联,泛化,聚集,组合,依赖;确定类之间的关系。关联,泛化,聚集,组合,依赖;调整和细化类及其关系,解
37、决重复和冲突;调整和细化类及其关系,解决重复和冲突;绘制类图,并增加相应说明。绘制类图,并增加相应说明。5.3.3 建立类图建立类图类图及对象图类图及对象图5.4.15.4.1 对象类和抽象类对象类和抽象类对象类和抽象类对象类和抽象类5.4.25.4.2 派生属性和派生关联派生属性和派生关联派生属性和派生关联派生属性和派生关联5.4.3 接口接口第第5章章5.4 几个特殊问题几个特殊问题 对象类对象类 可以实例化为对象的类。我们前面所提的例子都属于对可以实例化为对象的类。我们前面所提的例子都属于对象类。象类。抽象类抽象类 不能直接产生实例的类。抽象类的类名一般被写成为斜不能直接产生实例的类。抽
38、象类的类名一般被写成为斜体。体。5.4.1 对象类和抽象类对象类和抽象类 派生属性和派生关联的概念派生属性和派生关联的概念 可以从其它属性或关联计算推演得到的属性和关联。可以从其它属性或关联计算推演得到的属性和关联。在派生的名字前面加在派生的名字前面加/,以示区别。,以示区别。派生容易产生不一致,应注意。派生容易产生不一致,应注意。5.4.2 派生属性和派生关联派生属性和派生关联派生关联派生关联派生属性派生属性5.4.3 5.4.3 5.4.3 5.4.3 接口接口接口接口(Interface)(Interface)(Interface)(Interface)接口是一组用于描述类或构件的一个服
39、接口是一组用于描述类或构件的一个服务的操作。在图形上,把接口画为一个务的操作。在图形上,把接口画为一个圆;其扩展形式是接口表示为一个构造圆;其扩展形式是接口表示为一个构造型化类。型化类。接口接口接口是版型化的类,版型为接口是版型化的类,版型为的的类,如下图所示:类,如下图所示:Label形式形式Decoration形式形式Icon形式形式5.5 对象图对象图 1、对象图的概念:、对象图的概念:对象图表示一组对象及其它们之间的联系。对象图表示一组对象及其它们之间的联系。对象是系统的详细状态在某一时刻的快照,通对象是系统的详细状态在某一时刻的快照,通 常用来表示复杂类图的一个实例。常用来表示复杂类
40、图的一个实例。2、说明:、说明:对象图并不在任何时间必须;对象图并不在任何时间必须;Rose2003不支持对象图。不支持对象图。例:表示网络间节点关系的类图及其一个对象例:表示网络间节点关系的类图及其一个对象图的例子。图的例子。类图类图对象图对象图RoseRose中对象图的表示:中对象图的表示:类图类图对象图对象图类图和对象图的区别类图和对象图的区别 类图类图 对象图对象图 类具有三个分栏:名称、属性和操类具有三个分栏:名称、属性和操作作对象只有两个分栏:名称和属性对象只有两个分栏:名称和属性在类的名称分栏中只有类名在类的名称分栏中只有类名对象的名称形式为对象的名称形式为“对象名:类名对象名:
41、类名类中列出了操作类中列出了操作对象图中不包含操作,因为对于属对象图中不包含操作,因为对于属于同一个类的对象而言,其操作是于同一个类的对象而言,其操作是相同的相同的类使用关联连接,关联使用名称、类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。角色、多重性以及约束等特征定义。类代表的是对对象的分类,所以必类代表的是对对象的分类,所以必须说明可以参与关联的对象的数目须说明可以参与关联的对象的数目对象使用链连接,链拥有名称、角对象使用链连接,链拥有名称、角色,但是没有多重性。对象代表的色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对是单独的实体,所有的链都是一对一的,因此不
42、涉及到多重性一的,因此不涉及到多重性类的属性分栏定义了所有属性的特类的属性分栏定义了所有属性的特征征对象则只定义了属性的当前值,以对象则只定义了属性的当前值,以用于测试用例或例子中用于测试用例或例子中注意点:注意点:注意点:注意点:教学进程教学进程教学进程教学进程1、类图是用来描述系统资源和要素相互、类图是用来描述系统资源和要素相互之间的静态结构关系。之间的静态结构关系。区分类图和用例图之间的区别区分类图和用例图之间的区别注意点:注意点:注意点:注意点:教学进程教学进程教学进程教学进程2、类图可以用于业务模型,需求模型,、类图可以用于业务模型,需求模型,逻辑模型和设计模型中。逻辑模型和设计模型
43、中。业务模型:对业务资源的关系建模业务模型:对业务资源的关系建模 需求模型:系统要素关系建模需求模型:系统要素关系建模 逻辑模型:系统要素关系建模逻辑模型:系统要素关系建模 设计模型:系统要素关系建模设计模型:系统要素关系建模注意点:注意点:注意点:注意点:教学进程教学进程教学进程教学进程3、类的类型可以具有三种类型:、类的类型可以具有三种类型:界面类:表示外界与系统的交互接口界面类:表示外界与系统的交互接口 实体类:表示实体型事物实体类:表示实体型事物 控制类:表示控制和协调作用的要素控制类:表示控制和协调作用的要素注意点:注意点:注意点:注意点:教学进程教学进程教学进程教学进程4、类的关系
44、具有四种:、类的关系具有四种:关联:表示类中对象之间的链接关系关联:表示类中对象之间的链接关系 组成:表示事物之间的整体和部分关组成:表示事物之间的整体和部分关系,(聚合,组合)系,(聚合,组合)泛化:表示事物的一般和特殊关系泛化:表示事物的一般和特殊关系 依赖:事物之间的因果关系依赖:事物之间的因果关系注意点:注意点:注意点:注意点:教学进程教学进程教学进程教学进程5、类图的抽象层次:、类图的抽象层次:概念层概念层 逻辑层逻辑层 实现层实现层注意点:注意点:注意点:注意点:教学进程教学进程教学进程教学进程6、类可以优化,一个复杂类可以分解为、类可以优化,一个复杂类可以分解为多个简单类。多个简
45、单类。例如:例如:例如:例如:教学进程教学进程教学进程教学进程注意点:注意点:注意点:注意点:教学进程教学进程教学进程教学进程7、描绘类图时,应根据所要表现的应用、描绘类图时,应根据所要表现的应用需要来提取要素,绘制类图。需要来提取要素,绘制类图。例如:例如:例如:例如:教学进程教学进程教学进程教学进程 描述公司与个人雇佣关系的类图。描述公司与个人雇佣关系的类图。方法方法1 1:方法方法2 2:问题为:问题为:问题为:问题为:教学进程教学进程教学进程教学进程提取企业与个人雇佣关系的类图。提取企业与个人雇佣关系的类图。一个企业可以雇佣多个人员。企业的属性包括名一个企业可以雇佣多个人员。企业的属性
46、包括名称、住址、电话、简况。人员的情况包括姓名、年称、住址、电话、简况。人员的情况包括姓名、年龄、性别、住址、电话、简历等。雇佣的信息包括龄、性别、住址、电话、简历等。雇佣的信息包括雇佣的开始日期、截止日期,简要说明等。双方要雇佣的开始日期、截止日期,简要说明等。双方要签订雇佣合同。雇佣还涉及到人员所从事的工作岗签订雇佣合同。雇佣还涉及到人员所从事的工作岗位。位。方法方法方法方法3 3 3 3:教学进程教学进程教学进程教学进程练习练习练习练习1 1:教学进程教学进程教学进程教学进程绘制图书馆图书借阅管理的类图。绘制图书馆图书借阅管理的类图。对于图书馆里的每一种图书,计算机管理目录中对于图书馆里
47、的每一种图书,计算机管理目录中包括:书名、作者、包括:书名、作者、ISBNISBN号、出版社、单价。每一号、出版社、单价。每一种图书馆都藏多册,每一册图书对应着一个唯一的种图书馆都藏多册,每一册图书对应着一个唯一的图书编号。有许多注册读者,读者的信息包括读者图书编号。有许多注册读者,读者的信息包括读者编号、姓名、出生日期、职业、电话、通信地址、编号、姓名、出生日期、职业、电话、通信地址、邮政编码、邮箱。每一个读者拥有一个借书证,借邮政编码、邮箱。每一个读者拥有一个借书证,借书证包括读者编号、注册日期、读者类型。读者每书证包括读者编号、注册日期、读者类型。读者每次可以凭借书证借图书,图书馆要对读
48、者借书登记次可以凭借书证借图书,图书馆要对读者借书登记借书记录,借书记录中登记读者、所借图书、借出借书记录,借书记录中登记读者、所借图书、借出日期、返还日期、管理员等信息。日期、返还日期、管理员等信息。练习练习练习练习1 1:教学进程教学进程教学进程教学进程例例2.2.如何认识面向对象中的元素如何认识面向对象中的元素例如:比赛的目标是要把篮球投入篮框并例如:比赛的目标是要把篮球投入篮框并且要尽量比对手得更多的分数。每个篮球且要尽量比对手得更多的分数。每个篮球队由队由5 5名队员:两个前锋,两名后卫和一名队员:两个前锋,两名后卫和一名中锋。名中锋。上面一小段文字里面,能够抽象出什么呢上面一小段文
49、字里面,能够抽象出什么呢?如何认识面向对象中的元素如何认识面向对象中的元素例如:比赛的目标是要把例如:比赛的目标是要把篮球篮球投入投入篮篮框框并且要尽量比对手并且要尽量比对手得得更多的更多的分数分数。每个每个篮球队篮球队由由5 5名名队员队员:两个前锋两个前锋,两名后卫两名后卫和和一名中锋一名中锋。红色为名词红色为名词,蓝色为动词蓝色为动词如何认识面向对象中的元素如何认识面向对象中的元素例如:比赛的目标是要把例如:比赛的目标是要把篮球篮球投入投入篮篮框框并且要尽量比对手并且要尽量比对手得得更多的更多的分数分数。每个每个篮球队篮球队由由5 5名名队员队员:两个前锋两个前锋,两名后卫两名后卫和和一
50、名中锋一名中锋。小结小结小结小结教学进程教学进程教学进程教学进程 5.1 5.1 类的定义类的定义类的定义类的定义 5.1.1 5.1.1 类的概念类的概念类的概念类的概念 5.1.2 5.1.2 类的属性类的属性类的属性类的属性 5.1.3 5.1.3 类的操作类的操作类的操作类的操作 5.1.45.1.4 类的类型类的类型类的类型类的类型 5.2 5.2 类之间的关系类之间的关系类之间的关系类之间的关系 5.2.1.2.1 关联关联关联关联 5.2.2.2.2 聚集和组合聚集和组合聚集和组合聚集和组合 5.2.3 5.2.3 泛化泛化泛化泛化 5.2.4 5.2.4 依赖依赖依赖依赖 5.