uml基础-类图

2024-01-03 12:28:48

1.基本元素:类、类之间的关系

2.类图是用来描述系统结构的静态模型

3.类

类是对一组具有相同属性、操作、关系和语义的对象的抽象

包括类名、属性和类的方法

在uml图中用矩形框表示

1)名称

在矩形框最上面

不能省略

是由字符、数字、下划线组成的唯一字符串

表示方法:1.简单名:只有一个名称

? ? ? ? ? ? ? ? ? ?2.全名(路径名):包名:类名

2)属性

可以有0个或多个

语法:【可见性】属性名【:类型】【=初始值】【{属性字符串}】

可见性:+表示公有,-表示私有,#表示受保护,没有则就是未定义,不存在默认的可见性

属性名:一个名词或名词短语,单个单词首字母大写,多个单词除第一个单词其余首字母大写

类型:数据类型,就像之前了解到的任一语言,如string是字符串,float是浮点型等等

初始值:为了防止漏掉取值或非法取值破坏系统完整性来设置

属性字符串:关于属性的其他信息,任何想加入但是没地方加的都可以加这里

3)操作(类的方法)

可以有0或多个

语法:【可见性】属性名【(参数表)】【:返回类型】【{属性字符串}】

可见性:+表示公有,-表示私有,#表示受保护,~表示包内公有类型,没有则就是未定义,不存在默认的可见性

操作名:一个动词或动词短语,

参数表:是操作的输入;定义方式是“名称:类型”;如果存在多个参数,各参数用逗号隔开;可以有默认值

返回类型:虽然是可选的,但是大部分编程语言只支持一个返回值,一般无返回值要加一个void

属性字符串:同类的属性(一种操作函数(function在完成操作后要有一个返回值,可以在这里说明函数的返回值将其类型

4)约束

用{}的形式写在类的边上,指定个别属性的取值范围

例如给a类的b属性加上约束,只能c、d、e对其进行指定那就可以在类旁边写上{b=c or d or e}

4.类之间的关系

依赖关系:有向虚线指向被依赖

1)使用依赖(一个用到另个)包括:

调用(call):调用操作

参数(parameter):操作与参数之间的关系

发送(send):发送者和接收者之间的关系

实例化(instantiate):用一个类的方法创建了另一个类的实例

2)抽象依赖(使用者和提供者之间的关系)有三种类型:

跟踪依赖(trace):存在连接,但不如映射精确

精化依赖(refine):不同语义层次上的元素之间的映射,比如分析阶段有a类,设计阶段要将a类进行精化,详细到可以实现的程度)

派生依赖(derive):一个实例可以从另一个实例中导出BirthDate是具体的Age可以从其中导出,二者是派生依赖关系

3)授权依赖:一个事物访问另一个事物三种类型:

访问(access):允许一个包访问另一个包的内容

导入(import):允许一个包访问另一个包的内容并为被访问包的组成部分增加别名

友元(friend):允许一个元素访问另一个元素,不管被访问元素是否具有可视性

4)绑定依赖(bind):对目标模板使用给定的实际参数进行实例化

泛化关系:子类指向父类空心三角箭头实线

关联关系:实线

1)关联名:源对目标对象执行的动作,一个动词

2)角色:在连线的两端可以写上这个类在这个关系中扮演的角色

3)多重性:类之间的联系,一对一,一对多,多对多等(1表示1,*表示多个,1…*表示一个或多个)

4)聚合:整体和部分的关联,是一个has-a的关系,空心菱形实线

5)组合:强聚合关系,实心菱形实线

6)导航性:本端的对象可以被另一端的对象访问,分为单向和双向

7)关联类:描述关系的类,公司和雇员之间有一个工作类,这个类就是关联类,关联类与关联线用虚线连接

8)约束:指明约束在有约束的那个类附近用花括号加上约束

or约束,在两个类之间用虚线连接上面用花括号写上or约束

实现关系:将不同语义层的元素连接起来,如类实现接口,指向被实现的类

泛化是将同一语义层的元素连接起来

5.类图建模先建立概念层类图(类与现实世界的事物有很大关系,一般很少考虑实现),再建立说明层类图(主要考虑接口部分),最后建立实现层类图(提供实现的细节)

?

?

?

?

文章来源:https://blog.csdn.net/m0_73885339/article/details/135012679
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。