第4章类图及对象图-其他
UML静态视图

(5)控制对象完成对数据库的操作。
(6)界面请求控制对象的服务。
软件需求分析与解决方案与UML
2020年1月11日3时13分
4.4 对象图(Object Diagram)
4.4.1 对象图的概念和内容
在UML中,对象图表示在某一时刻一组对 象以及它们之间关系的图。
对象图可以被看作是类图在系统某一时刻 的实例。在图形上,对象图由节点以及连接这 些节点的连线组成,节点可以是对象也可以是 类,连线表示对象间的关系。
软件需求分析与解决方案) 与UML
1..* performance
:1
Perforsmanc
sseeaatt: String : deate
:
:*
1 St限 rin定 g 符
Dtiamtee
:
操作
TimeOfDay
2020年1月11日3时13分
谢 谢!
软件需求分析与解决方案与UML
2020年1月11日3时13分
除了关联的基本形式外,还有4种应用于关 联的修饰,它们分别是名称、角色、多重性和 聚合。
(1)名称
关联可以有一个名称,用于描述该关系的性
质。
名称
名称方向
Student
Study In
University
软件需求分析与解决方案与UML
关联
2020年1月11日3时13分
(2)角色
当一个类处于关联的某一端时,该类就在 这个关系中扮演一个特定的角色。
Student
角色名
Learner Teacher University
关联
软件需求分析与解决方案与UML
2020年1月11日3时13分
(3)多重性
第04章:UML系统分析与设计-类图和对象图

类图的组成
在标准的UML定义中,有时还应当指明类的另一种信 息,那就是类的职责。类的职责指的是对该类的所有 对象所具备的那些相同的属性和操作共同组成的功能 或服务的抽象。
在声明类的职责的时候,可以非正式的在类图的下方 增加一栏,将该类的职责逐条描述出来。类的职责的 描述并不是必须的,因此也可以将其作为文档的形似 存在,也就是说类的职责其实只是一段或多段文本描 述。一个类可以有多种职责,设计得好的类一般至少 有一种职责。
类图的组成
泛化关系是用来描述类的一般和具体之间的关系。具体描 述建立在对类的一般描述的基础之上,并对其进行了扩展。 因此,在具体描述中不仅包含一般描述中所拥有的所有特 性、成员和关系,而且还包含了具体描述补充的信息。
类图的组成
关联关系是一种结构关系,指出了一个事物对象与另一个 事物对象之间的语义上的连接。
类图的概念
1. 类图的概念
类图(Class diagram)显示了系统的静态结构,而系统的 静态结构构成了系统的概念基础。
类图,就是用于对系统中的各种概念进行建模,并描绘出 它们之间关系的图。
在大多数的 UML 模型中,我们可以将这些概念的类型概 括为以下四种,分别是: 1类 2 接口 3 数据类型 4 构件
在设计数据库时,通常将数据库模式看作为数据库概念设计的蓝 图,在很多领域中,都需要在关系数据库或面向数据库中存储永 久信息。系统分析者可以使用类图来对这些数据库进行模式建模。
类图的组成
1. 类
类是面向对象系统组织结构的核心。类是对一组具有相 同属性、操作、关系和语义的事物的抽象。
在UML的图形表示中,类的表示法是一个矩形,这个矩 形由三个部分构成,分别是:类的名称(Name)、类的 属性(Attribute)和类的操作(Operation)。
uml类图-对象图-包图PPT课件

2021/3/9
授课:XXX
8
2021/3/9
授课:XXX
9
练习:请为下面这段Java代码补充类图
pulic class Student{ private String name; public void setName(String name){ =name; } public String getName(){ return ; }
本次课主要内容
类图
什么是类图 类图的应用 类图的组成 类图的建模技术
对象图 包图
实例分析-图书管理系统
2021/3/9
授课:XXX
1
Example
2021/3/9
授课:XXX
2
什么是类图?
类(Class)、对象(Object)和它们之间的关 系是面向对象技术中最基本的元素。类图 技术是OO方法的核心。 类图标加上它们之间的关系就构成了类图。
2021/3/9
授课:XXX
4
类图的组成
类图通常包含下述内容:
➢类 ➢ 接口 ➢ 协作 ➢ 依赖、泛化和关联关系
类图可以包含注解和约束; 类图还可以有包或子系统,二者都用于把 模型元素聚集成更大的组件。
2021/3/9
授课:XXX
5
类(Class)
A class is the descriptor for a set of objects with similar structure, behavior, and relationships.
2021/3/9
授课:XXX
19
关联的多重性
4章:类图与对象图习题.docx

第4章类图与对象图习题一、简答题1.什么叫对象?答:对象的本意是指认识的指向物。
在计算机软件中,対象用來表示客观事物的一个实体,它封装了一组属性和操作。
从形式上看,对象是一段具有特定语法规则的程序单元,它能够作为软件系统的一个相对独立的基本单位,在软件中承担确定的服务职能。
2.简述实例的概念。
答:实例是类元中的一个元素。
3.简述类元的概念。
答:类元是对聚集一组具有共同特征的实例的模型元素的通称,类、接口、用例、参与者、关联等都属于类元。
类元的名字用标识符来表示,首字母要人写。
类元会包括一组实例。
4.什么叫类?答:类是具冇相同性质的一组对彖的集合,这纽对象具冇相同的特征、约束和语义。
5.类有哪儿种类型?答:按阶段分:业务对象,PIM类,PSM类;按作用分:实体类,控制类,界面类。
6.简述接口的概念。
答:接口是-种类元,聚集了一组需要通过其他类元实现的公共的操作和属性。
二、填空题1.认识的対象可以是客观中一个具体的(事物),也可以是主观中的一个抽象(观念)。
2.软件屮的对象是一段具有特定语法规则的(程序单元),它能够作为软件系统的一个相对独立的基本单位,在软件中承担确定的(服务职能)。
3.类描述具有相同性质的一组对彖的(集合),类用(炉形)来表示。
4.按作用,可以把类分为(控制类)、边界类和(实体类)儿种类型。
5.接口可以分为(供口)和(需口)两种类型。
三、选择题1.在认识过程中,下面哪个不是对象的要素(D )A:认识的指向物认识者C:认识指向物在认识者主观中的反映D:认识的背景2.下面哪一个对对象的说法不正确(B )A:客观实体B:事物的对立面C:认识的指向物D:软件的一个基木单位3.下而属性命名不正确的是(A )A *BirthDay:DateB #studentBirthDay:Date=1999-10-21C ^price:float=12. 01 {R/W}D +studentName:Strings “张敏”4.指出下面不合适的类名(B )A:材料B:事物C:订单D:会员5.下面不是对彖图作用的是(A )A:功能逻辑建模B:初期分析工具C:描述业务场景D:模拟运行场景四、练习题1.在一个订货系统中,采购员从供货商处订货,双方需要签订订单,一个采购员可以订多个供货商的货品,一个供货商也可以给多个采购员供货。
第四章 类图和对象图2

窗口
1 1 1..n 1..n
菜单
按钮
聚集和组合的关系
聚集松散,组合紧密; 一个部分事物对象可以属于多个聚集对象,但
一个部分事物对象仅能属于一个组合对象; 聚集的对象生命周期可以不同,但组合对象则 是同存同亡。
关联
聚集 组合
3.类的泛化关系
泛化(Generalization)是描述类之间的继承关 系。利用泛化来表达类之间的相似性 。
例:自返关联的例子
说明: • 自返关联虽然只有一个被关联的类,但有两 个关联端,每个关联端的角色不同。
二元关联(binary association) :二元关 联是在两个类之间的关联。 N元关联(n-ary association):是在3个或 3个以上类之间的关联。
例:N元关联的例子:
2.聚集和组合
聚集(aggregation)是一种特殊形式的关联。聚 集表示类之间的整体与部分的关系。个体可以 属于多个整体;
。
类之间整体和部分弱关系。称为“has-a”联系 。
项目
1 1..n
人员
bank
customer
ห้องสมุดไป่ตู้
聚集和组合
组合(composition)类之间整体和部分强关 系。称为“contains-a”联系。 在组合关联中用来组成整体类的部分类是不 能独立存在。整体类由部分类组成,部分类 需要整体类才能存在。这种关系意味着销毁 整体类将会同时销毁部分类。 组合关联使用带有实心菱形的实线连接
public class Person { private String personName; protected Company employer; }
第4章类图及对象图

4.1.2 类的属性
1. 属性的含义
属性(attribute): 描述类所表示事物的静态性质。
2.属性的格式
[可见性]属性名[:类型][„[ ‟多重性[次序]„]‟][=初始值][{特性}]
该属性对外部实体的显现程度. 可见public : + 受限protected: # 私有private : 11
15
4.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
16
4.1.3 类的操作
1. 操作的含义
操作(operation): 描述类所表示事物的动态性质。
2.操作的格式 [可见性]操作名[(参数列表):返回类型][{特性}]
44
2.确定类之间的关系
①
45
2.确定类之间的关系
②
?
货品是由供应商提供,但订单所订的 货品怎么样反映出来?
46
2.确定类之间的关系
②
47
4.2.2 聚合和组合
1. 聚合
聚合(aggregation): 表示类之间一种松散的整 体与部分的组成关系,是一种特殊的关联。
表示
例子
48
4.2.2 聚合和组合
32
2.关联的特性 ④ 关联类 通过关联类描述关联的属性,操作,及其它信息。
关联类
33
2.关联的特性 ⑤ 关联的约束 通过约束加强关联的含义。 例如,“帐户”不能同时与“人”和“公 司”有关联。
约束
34
2.关联的特性 ⑥ 限定关联 通过限定符来规定关联的限定关系,用于一对多或多对 多关联,限定符用来区别多端的对象集合。 例如,“文件目录”通过“文件名”来与具体的文件对 象进行关联。 “银行”通过“帐户”与具体的“人”对象进行关联。
UML类图详细教程ppt课件

精选ppt课件2021
24
关联的限定 类的关联还可以通过限定条件来明确类之间的关系。如下图所
示。
关联的限定
精选ppt课件2021
25
自反关联: 类具有到自身的关联,称为自反关联。
类的自反关联
精选ppt课件2021
26
类的精自选p反pt课关件联2021
27
关联的导航性 导航性表明类的关联方向。如下图所示。
19
多重性: 多重性(mutiplicity)用来指示一个类的多少对象与另一个类
的一个对象相关。可以在类关系的任何一端添加多重性,来指示 出多重性,如下图所示。
精选ppt课件2021
20
多重性是一个数值或者数值范围,用来指示一个类的几个对象与 另一个类的一个对象相关。如下图所示。
精选ppt课件2021
13
2. 操作(方法)
操作(Operation)表示类能够提供的功能服务。它在UML类 矩形框中用文字串说明,如下图所示。
操作名指示类可提供的功能服务,它后跟圆括号中的参数列表是
可选项,即一个操作可以有参数,也可以没有参数。参数列表由
逗号分隔的操作的形式参数组成,其格式为:
Байду номын сангаас参数名:类型=缺省值,…
21
关联的多重精选性ppt课件2021
22
角色 类关系还可以通过添加角色来进一步丰富。在类图中使用角色
可以帮助读者理解第一个类对于第二个类的作用。角色与多重性 显示在相同的位置,在指示类之间关系线的上面或者下面,如下 图所示。
精选ppt课件2021
23
下图显示了player类和Team类在关联中分别扮演两个角色。
第4章 UML类图
Section 4_类图和对象图

47
多值分类和动态分类
动态分类
(1)动态分类允许在同类的子类集中,动态地改变对象所属 的类。 (2)静态分类不允许对象改变类型。
48
边界类、控制类和实体类
UML中三种主要的类版型
• 边界类, boundary class • 控制类, control class • 实体类, entity class
关联的种类
关联类1
(1) 自反关联 (2) 二元关联 (3) N元关联
public class EnginePart { -team -goalkeeper Team public EnginePart theEnginePart[]; Player * * }
-season *
Year
26
聚集与组合
依赖关系 如果修改元素X会导致另一个元素Y的修改,则Y依赖于X
• 一个类是另一个类的数据成员类型 • 一个类的方法使用另一个类作为形式参数 • 消息的发送者与接收者之间的关系 • 一个类的方法创建了另一个类的实例 •…
35
依赖关系 MyDependentClass att: int myFunction()
目录 *
文件
目录
文件名 : String *
文件
24
限定关联
• 关于一份订单,对于产品中的每一个实例,最多只有一 个订单项。 • 限定关联是为了显示关联的查找接口。 • 限定关联的重数是在限定符方面的重数。 • 引入限定符的一个目的就是降低另一端的多重性。
25
public class Order { public OrderLine getLineItem(Product aProduct) public void addLineItem(Number amount, Product forProduct) }
第4章 uml语言纵览-郭

聚合关系描述元素之间部分和整体的关系,即一 个模型元素可能由几个表示部分的模型元素聚合 而成。
组合关系是一种强聚合关系,用实心菱形表示,部分 依赖于整体的存在而存在。
4.4 通用机制
1. 2. 3.
4.
5.
通用机制使得UML更简单和易于使用,通用 机制可以为模型元素添加注释、信息或语义, 还可以对UML进行扩展。这些通用机制中包 括: 修饰 注释 规格说明 通用划分 扩展机制
注意箭头的方向
3.泛化关系 (generalization)
泛化是一种特殊/一般的关系,表明一个元素是 另一个元素的特例。 也可以看作是常说的继承关系
注意箭头的方向
4.实现关系(realization)
实现关系表示一个元素实现另一个元素。
例如:类实现接口, 协作实现用例
注意箭头的方向
5.聚合关系
※
协作图的一个用途是表示一个类操作的实现。
6.活动图
活动图描述执行算法的工作流程中涉及的活动
或一个过程的流程或操作的工作步骤,描述了 一组顺序的或并发的活动。
描述对象的动态特性。
活动图描述对象之间控制流的转换和同步机制。
7.状态图
状态图是对类描述的补充,用于显示类的对象可能具备的 所有状态和连接这些状态的转换组成 ,以及引起状态改 变的事件。 描述对象的动态特性。 仅对那些具有多个明确状态并且这些状态会影响和改变其 行为的类才绘制状态图。 注意:状态图是描述一个对象的状态,而活动图可以描绘 多个对象的状态。
Use Case Use Case Diagram Diagram 时序图
State State Diagram Diagram 类图 State State Diagram Diagram 对象图
第章面向对象分析与设计类图和对象图

学校工作总结本学期,我校工作在全体师生的大力支持下,按照学校工作计划及行事历工作安排,紧紧围绕提高教育教学质量的工作思路,不断强化学校内部管理,着力推进教师队伍建设,进一步提高学校办学水平,提升学校办学品位,取得了显著的成绩。
现将我校一学期来的工作总结如下:一、德育工作本学期我校德育工作围绕学校工作中心,精心安排了“文明守纪”、“良好习惯养成”、“光辉的旗帜”、“争先创优”等主题教育月活动,从培养学生的行为规范,狠抓养成教育入手,注重务实,探索途径,加强针对性、实效性和全面性,真正把德育工作落到实处。
1.强化学生养成教育,培养学生良好习惯。
本学期,我校德育工作十分注重学生的常规管理,尤其重视对学生的养成教育。
一是利用班队会、红领巾广播站、国旗下演讲对学生进行品德熏陶。
二是以文明监督岗为阵地,继续强化了“文明班集体”的创建评比活动,通过卫生、纪律、两操等各项常规的评比,增强了学生的竞争意识,同时也规范了学生的行为。
三是继续加大值周检查的力度,要求值周领导、教师、学生按时到岗,在校门口检查、督促学生有秩序出入校园,从而使学生的行为规范时时有人抓,处处有人管,形成了良好的局面。
2.抓好班主任队伍建设,营造全员育人氛围。
班主任是学校德育工作最重要的力量,为了抓好班主任队伍建设,提高班主任素质水平,学校在第十二周组织开展了班主任工作讲座,在学期末举行了班主任工作交流,在活动中探索行之有效的工作方法,总结经验,交流心得,使班级管理工作更上新台阶。
3.充分发挥主题班队会的教育功能。
主题班队会,是对学生进行德育教育的一种特殊而卓见成效的方式之一。
为了充分发挥主题班队会的教育意义,第十三周,四(3)中队举行了“祖国美,家乡好”主题队会观摩活动,有效规范了我校主题中队会程序,强化了主题队会对学生的思想教育作用。
二、学校管理工作1.建立健全规章制度。
学期初,学校制定了出明确的目标计划及管理措施,做到了目标明确、工作具体,有效地增强了全体教师参与学校管理的主人翁意识,充分调动了全体教师的工作积极性,保障了教育教学工作的顺利开展。
uml 基础教程 第四章-类图和对象图

• 在UML中一个矩形表示一个类的图标,按照 UML约定,类的名称的首字母应当大写,放在矩 形的偏上部。如果类的名称由两个单词组成,那 么将这两个单词合并,第二个单词首字母也大写 (如WashingMachine)。如图4-4。
• 类在它的包含者内有唯一的名称,这个包含者 通常可能是一个包,但也可能是另外一个类。
4.2.3 属性
• 属性描述了在软件系统中所代表的对象具备的静态部 分的公共特征抽象,这些特征是这些对象所共有的。属性 是类的一个特性,它描述了类的对象(也就是类的实例) 所具有的一系列特性值。一个类可以具有零个或多个属性
• 在UML中,类的属性的表示语法为: [可见性] 属性名称 [:属性类型] [=初始值] [{属性字符串}] 如 表4-3所示
•
职责描述了类做什么——也就是类的属性和操作能完
成什么任务。例如,一台洗衣机的职责是将脏衣服作为输
入,输出洗干净的衣服。(Take dirty clothes as input and
produce clean clothes as output)。
• 类的属性和操作是对类的具体结构特征和行为特征的形 式化描述,而职责是对类的功能和作用的非形式化描述。
其次,为用户提供易用性。设定一些初始值能够有效帮 助用户进行输入,从而能够为用户提供很好的易用性。
• 类的属性在该类对象中都有具体值,如下图:
myWasher: WashingMachine brandName= “ Laundatorium” ‘modelName= “Washmeister”serialNumber= “ GL57774” Capacity=16
completecomplete人人女人女人男人男人性别性别完全泛化交通工具交通工具drive汽车drive汽车drive轮船轮船drivedrive启动轮子转动drive启动螺旋桨person驾驶drive是抽象操作泛化中的多态性及带识别名称的泛化propulsionpropulsio交通工具交通工具重叠泛化汽车汽车水陆两栖车水陆两栖车种的关系它使父类能够与更加具体的子类连接在一起有利于对类的简化描述可以不用添加多余的属性和操作信息通过相关继承的机制从其父类继承相关的属性和操子类除了继承父类的属性和操作外通常也增加了自己的属性和操作
类图

类图中的元素有类、接口、协作、关系、注释、约束、包。关 系把类、协作、接口连接在一起构成一个图。
6
4.2 UML中的类
4.2.1 类的表示
UML中,表示一个类,主要是标识它的名称、属性和操作。如 图3-2所示,类由一个矩形表示,它包含3栏,在每栏中分别写 入类的名称、类的属性和类的操作。
图3-2 Order类
•图3-17关联的多重性
29
4.导航性
导航性描述了源对象通过链接访问目标对象。箭头表明了导航 的方向性,即,只有源对象才能访问目标对象,反之,目标对 象不能访问源对象。如图3-18所示。
•图3-18导航性
30
4.3.2 关联的属性
5.限定符 如果源对象到目标对象是1对多关联,为了在多个目标对象的集 合中查找到需要的目标对象,我们必须在目标对象集合中,选 一个唯一标识目标对象的查找键(限定符,从目标对象的属性中 选择),它应该是目标对象中的某个属性,当然,也可以是表达 式。
7
4.2.1 类的表示
类图和对象图

应用系统根据关键字对数据集作查询,常用到受限关联。引 入限定符的一个目的就是把多重性从n降到1或0..1,则查询 结果是单个对象,效率高。 如果引入限定符后,另一端的多重性仍为n,则意义不大。
关联
关联的种类 (1) 自返关联 (2) 二元关联 (3) N元关联
+display(): Location +hide() #create() -attachXWindow(xwing: XwindowPtr)
类之间的关系
常见的类之间的关系包括: 关联、聚集、组合、泛化、 依赖、实现.
关联
关联(association)表示类与类之间的关系
链(link)表示的是对象与对象之间的关系,链是关联的实例。 一个关联可以有两个或多个关联端(association end),每个关 联端连接到一个类。 关联可以是单向的uni-directional 或 双向的bi-directional
0..n
关联
关联角色的多重性(multiplicity)
多重性表示可以有多少个对象参与该关联 非负整数的子集表示 0 表示没有实例的关联,一般不用 0..1 0..n
一个教师可开设1到3门课程,一门课程可以有1到多个教师
1 即1..1
3..6 1..n
teacher的 多重性 course的 多重性
关联
关联名
关联名
Company
Employ
Person
用于明确表达关联的含义。客户?雇员?老板? 可有可无 动词短语 斜体
导航性(方向性)
从一个类(对象)可以访问到另一个,反过来却不行,
UML类图和对象图详解

泛化关系用来描述类的一般和具体之间的关
系
UML表示法:实线 + 箭头 关系:" ... has a ..." 所谓关联就是某个对象会长期的持有另一个 对象的引用,而二者的关联往往也是相互的。 关联的两个对象彼此间没有任何强制性的约 束,只要二者同意,可以随时解除关系或是 进行关联,它们在生命期问题上没有任何约 定。被关联的对象还可以再被别的对象关联, 所以关联是可以共享的。
聚合 关系
组成 关系
聚合
UML表示法:空心菱形 + 实线 + 箭头 关系:" ... owns a ..."
整体和部分的关系,部分可以离开整体独立 存在。
组成
UML表示法:实心菱形 + 实线 + 箭头 关系:" ... is a part of ..."
整体和部分不能拆分,具有相同的生命周 期,部分不能独立于整体存在
概念
类图和对象图是用于描述系统静态结构的两 种重要手段。类图从抽象的角度描述系统的 静态结构,而对象是类的实例化表示。
类图(Class
Diagram)显示了系统的静态 结构,而系统的静态结构构成了系统的概念 基础。
类图图示
对象图中包含对象(Object)和链(Link),
其中对象是类的特定实例,链是类之间关系 的实例,表示对象之间的特定关系。
实现关系将一种模型元素(如类)与另一种
模型元素(如接口)连接起来,从而说明和 其实现之间的关系。 在UML中,实现关系的表示形式和泛化关系 的表示符号很相似,使用一条带封闭空箭头 的虚线来表示。
图例
依赖关系
泛化关系 Leabharlann 联关系聚合关系 组成关系 实现关系
《类图及对象图》PPT课件

17 of 70
5.1.3 类的操作
1. 操作的含义 操作(operation): 描述类所表示事物的动态性质。
2.操作的格式
[可见性]操作名[(参数列表):返回类型][{特性}]
该操作的输入参数,可以为空. 例如: #create() +hide() -ttachXWindow(xwin:Xwindow)
表示属性值的取值,及有序性: 例如: name:String[0..1]
表示属性”name”可能无值,也 可能仅有一个值.
points:Point[2..* ordered] 表示有两个或多个值,有序
11 of 70
5.1.2 类的属性
1. 属性的含义 属性(attribute): 描述类所表示事物的静态性质。
18 of 70
5.1.3 类的操作
1. 操作的含义 操作(operation): 描述类所表示事物的动态性质。
2.操作的格式
[可见性]操作名[(参数列表):返回类型][{特性}]
该操作的返回值的类型. 例如: +display():Locatein
19 of 70
? 问题4:
1、指出下面操作名的含义。
2.属性的格式 [可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性约束说明: 例如: #visibility:Boolean=false{读写}
表示属性”visibility”可读,写
13 of 70
? 问题3:
1、指出下面属性名的含义。
+studentName:String=“黎明” #studentBirthDay:Date=‘1999-10-21’ -price:float=12.01{R/W}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
39
例如:
40
注意点:
7、描绘类图时,应根据所要表现的应用 需要来提取要素,绘制类图。
41
例如:
描述公司与个人雇佣关系的类图。
方法1:
方法2:
42
问题为:
提取企业与个人雇佣关系的类图。
一个企业可以雇佣多个人员。企业的属性包括 名称、住址、电话、简况。人员的情况包括姓名、 年龄、性别、住址、电话、简历等。雇佣的信息包 括雇佣的开始日期、截止日期,简要说明等。双方 要签订雇佣合同。雇佣还涉及到人员所从事的工作 岗位。
第 章 类图及对象图-其他
4.5类图的阅读 4.6绘制类图 4.7几个特殊问题
4
1
4.5 类图的阅读
1. 2. 3. 4. 有哪些类 类之间存在的关系 多重性 类图的结构特点以及各个属性和方法的含义
2
4.5 类图的阅读
3
4.5 类图的阅读
读图过程 • 读出类:
– Order、OrderItem、Customer、Consignee、DeliverOrder、 Peddlery、Prodcut
– 分析信息
• 名词、名词短语 • 动词、动词短语
• 使用CRC卡片 (class Responsibility collaborator)分析寻找类
– 脑力风暴收集信息
– 关键业务用类表示,其他卡片作为属性
19
2.寻找类
4.6.2 绘制类图
• 确定潜在的对象类
– 通常陈述中的名词或名词短语是可能的潜在对象,他们以不同的形 式展示出来,如:
4.6.2 绘制类图
4.实例
• 得到候选类
• 在使用“名词动词法”寻找类的时候,很多团队会在此耗 费大量的时间,特别是对于中大型项目,这样很容易迷失 方向。其实在此主要目的是对问题领域建立概要的了解, 无需太过咬文嚼字
28
4.6.2 绘制类图
4.实例
• 关联分析、建模、多重性分析,再建模
29
4.6.2 绘制类图
– 是否有系统必须处理的设备? – 是否有组织部分(organization parts)?
– 业务中的执行者扮演什么角色?这些角色可以看作类,如客户、操 作员等。
21
4.6.2 绘制类图
3.定义类
• 标识属性
– 属性表示类的稳定特征,即为了完成客户规定的目标所必须保存的 类的信息,一般可以从问题陈述中提取出或通过对类的理解而辨识 出属性。 – 分析员可以再次研究问题陈述,选择哪些应属于该对象的内容,同 事对每个对象回答下列问题:“在当前的问题范围内,什么数据项 (复合的和/或基本的)完整地定义了该对象?”
• 外部实体(如其它系统、设备、人员),他们生产或消费计算机系统 所使用的信息 • 物体(如报告、显示、信函、信号),它们是问题域的一部分 • 发生的事物或事件(如,性能改变或完成一组机器人移动动作),它 们出现在系统运行的环境中 • 角色(如管理者、工程师、销售员),他们由与系统交互的人扮演
• 组织单位(如,部分、小组、小队),他们与一个应用有关
31
练习1:
绘制图书馆图书借阅管理的类图。
对于图书馆里的每一种图书,计算机管理目录 中包括:书名、作者、ISBN号、出版社、单价。每 一种图书馆都藏多册,每一册图书对应着一个唯一 的图书编号。有许多注册读者,读者的信息包括读 者编号、姓名、出生日期、职业、电话、通信地址、 邮政编码、邮箱。每一个读者拥有一个借书证,借 书证包括读者编号、注册日期、读者类型。读者每 次可以凭借书证借图书,图书馆要对读者借书登记 借书记录,借书记录中登记读者、所借图书、借出 日期、返还日期、管理员等信息。 32
• 统一分析类
9
4.6.1 用例分析
分析类
10
4.6.1 用例分析
分析类 • 边界类 • 实体类 • 控制类
11
4.6.1 用例分析
边界类 • 位于系统于边界的交界处,如窗体、对话框、报表、与外 部设备或系统交互的类等
12
4.6.1 用例分析
实体类 • 保存永久信息,最终可能映射数据库中的表和字段
4.5 类图的阅读
一张复杂的类图
7
第 章 类图及对象图
4
4.6 绘制类图
4.6.1 用例分析 4.6.2 绘制类图
8
4.6.1 用例分析
分析对象行为 • 补充用例描述 • 对每一个用例实现
– 从用例行为中发现(分析)类
– 把用例行为分发给(分析)类
• 对每一个(分析)类
– 描述职责
– 描述属性和关系
4
4.5 类图的阅读
读图过程 • 多重性:用来说明关联的两个类之间的数量关系
5
4.5 类图的阅读
读图过程
• 理解方法和图:
– Order类,有两个方法:dispatch()和close(),从名字中可以 猜出它们分别实现“分拆订单生成送货单”和“完成订单”
– DeliveOrder()类中则有一个Close()方法,同理它应该表示“完成送 货”
– 而在OrderItem中有一个stateChange()方法和deliverState,不难 猜出它就是用来改变其“是否交给送货人”标志位的 – 先调用Order的dispatch()方法,它将根据其包含的OrderItem中 产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系 统后就可以获取其DeliverOrder,并在执行完后调用close()方法。 这时,就调用OrderItem的stateChange()方法来改为其状态。同 时再调用Order的close()方法,判断该Order的所有的OrderItem 6 是否都已经送到了,如果是就将其真正close掉
24
4.6.2 绘制类图
4.实例
• 发现类
• 小王是一个爱书之人,家里各类书籍已过千册,平时又时 常有朋友外借,因此需要一个个人图书管理系统。该系统 应该能够将书籍的基本信息按计算机类、非计算机类分别 建档,实现按书名、作者、类别、出版社等关键字的组合 查询功能。在使用系统录入新书籍时系统会自动按规则生 成书号,以修改信息,但不能够删除记录。该系统还应该 能够对书籍的外借情况进行记录,可对外借情况列出打印。 另外,还希望能够对书籍的购买金额、册数按特定时限进 行统计。
• 为控制时间的发生而监控对象的操作
23
4.6.2 绘制类图
3.定义类
• 协作者
– 一个类可以用它自己的操作去操纵它自己的属性,从而完成某一特 定的责任,一个类也可和其它类协作来完成某个责任。如果一个对 象为了完成某个责任需要向其它对象发送消息,则我们说该对象和 另一对象协作。协作实际上标识了类间的关系。 – 为了帮助协作者,可以检索类间的类属关系。如果两个类具有整体 与部分关系(一个对象是另一个对象的一部分),或者一个类必须 从另一个类获取信息,或者一个类依赖于(depends-upon)另一个 类,则他们间往往有协作关系。
• 设计类
– 针对具体的语言,考虑类的实现细节
17
4.6.2 绘制类图2Leabharlann 步骤• 分析问题域,确定需求
• 寻找类,确定类的含义和职责 • 定义类的属性和操作 • 确定类之间的关系 • 绘制类图
18
4.6.2 绘制类图
2.寻找类
• 使用名词/动词分析寻找类
– 收集相关信息
• 补充的需求规格说明 • 用例 • 项目词汇表 • 其他文档
25
4.6.2 绘制类图
4.实例
• 筛选备选类
– “小王”、“人”、“家里”很明显是系统外的概念,无需对其建 模
– 而“个人图书管理系统”、“系统”指的就是将要开发的系统,即 系统本身,也无需对其进行建模
– “书籍”是一个很重要的类,而“书名”、“作者”、“类别”、 “出版社”、“书号”则都是用来描述书籍的基本信息的,因此该 作为“书籍”类的属性处理,而“规则”是指书号的生成规则,书 号是书籍的一个属性,因此“规则”可以作为编写“书籍”类构造 函数的指南
4.实例
• 职责分析
– 书籍类:从需求描述中,可找到书名、类别、作者、出版社;同时 从统计得需求中,可得知“定价”也是一个关键的成员变量
– 书籍列表类:书籍列表就是全部得藏书列表,其主要得成员方法是 新增、修改、查询(按关键字查询)、统计(按特定时限统计册数 与金额)
– 借阅记录类:借阅人(朋友)、借阅时间 – 借阅记录列表类:主要职责就是添加记录(借出)、删除记录(归 还)以及打印借阅记录
– “基本信息”则是书号、作者、类别等描述书籍基本信息统称, “关键字”则是代表其中之一,因此无需对其建模 26
– “功能”、“新书籍”、“信息”、“记录”都是在描述需求时使
4.6.2 绘制类图
4.实例
• 筛选修改类
– “计算机类”、“非计算机类”是该系统中图书的两大分类,因此 应该对其建模,并改名为“计算机类书籍”和“非计算机类书籍”, 以减少歧义 – “外借情况”则是用来表示一次借阅行为,应该成为一个候选类, 多个外借情况将组成“外借情况列表”,而外借情况中一个很重要 的角色是“朋友”——借阅主体。虽然到本系统中并不需要建立 “朋友”的资料库,但考虑可能需要列出某个朋友的借阅情况,因 此还是将其列为候选类。为了能够更好地表述,将“外借情况”改 名为“借阅记录”,而将“外借情况列表”改名为“借阅记录列表” – “购买金额”、“册数”都是统计的结构,是一个数字,因此不需 建模,而“特定时限”则是统计的范围,也无需建模,不过从分析 27 中,可以返现,隐藏着一个关键类——书籍列表,也就是执行统计
• 场所(如制造场所、装载码头),它们建立问题和系统所有功能的环 境 • 构造物(如四轮交通工具、计算机),它们定义一类对象,或者定义 20 对象的相关类
4.6.2 绘制类图