UML类图

么是类图?


类图是描述类,接口,协作以及他们之间关系的图,用来显示系统中各个类的静态结构。类图是一个描述系统类及其之间关系的静态图,静态图可以包括很多的类图,一个类图只是表达了系统的一个方面。下面就来总结一下类图中的重点。



类图定义系统中的类,描述类之间的关系,说明类的内部结构。比如我们构造汽车,首先确定车厢,车轮和发动机等的基本词汇,分析他们的属性(如车厢的材质,颜色等)和行为(如发动机的运转等),最后是确定这些词汇之间的联系。


类图元素:类+接口+关系


类的组成有类名称,属性,方法

如何确定类?

当我们描述一个系统的时候,在面向对象的开发方法中,我们应该先确定这个系统都有什么类。一个办法就是找名词对象,类就是具有同一类属性,方法对象的集合,对对象进行抽象就可以得到类。


如何得到类的属性?

属性是对类静态特征的描述,这些特征是所有类所共有的。


如何得到类的方法?

方法就是对类的对象所能做的事物的抽象。当我们不确定这个方法属于哪个类的时候,我们可以看是谁执行了这个方法,那么这个方法就是属于该类。


接口

接口是在没有给出对象的实现和状态的情况下对对象行为的描述。类可以实现接口,在程序运行时,其他对象可以只依赖此接口,而不需要知道类的具体操作。


关系

如何准确描述类之间的关系?

在进行抽象的过程中,我们很少会发现类之间是独立存在的,大多数的类都以某些方式彼此协作。


类之间的关系有:关联,依赖,泛化,实现。


关联--结构关系:

关联关系又可以分为普通关联,聚合和组合。

普通关联:

是一种拥有的关系, 它使一个类知道另一个类的属性和方法,他是一种结构关系。




聚合--整体和部分独立:

整体和部分之间可以单独存在,没有明显的附属关系,部分不能脱离整体而存在,如书架和书之间,没有了书剑,但是书还可以存在。


组合--整体和部分附属:

整体和部分之间不能单独存在,有明显的附属关系,部分不能脱离整体而存在。如人和头,手是组合关系。

聚合和组合的图形表示:



对关联的修饰有名称,角色和多重性

名称:关联的名字。

角色:关联中靠近他的一端的类对另一端的类呈现的职责

多重性:指有多少个对象可以参与到该关联中。


依赖--使用:

一般是“使用”关系,即一个类的方法中用到了另一个类,包括了调用,实例化,参数和发送,这就是一种依赖关系。

  


 泛化--继承:

泛化关系是一种存在于一般元素和特殊元素之间的分类关系。体现了类之间“继承性”,子类继承父类的所有属性,大大提升了代码的复用性。



实现--一般是类实现接口:

是规格说明和实现之间的关系,比如类实现接口。


下面是机房收费系统第一次画的类图:

思路:需求分析阶段分析系统的功能及角色,绘制了系统的用例图,在此阶段我们会把一个系统分成不同的模块,每个模块都有对应的用例,机房系统我们会分成一般用户模块,操作员模块,管理员模块,根据每个模块的用例图绘制类图,根据每个模块的功能,分析都会有哪些类,确定累的属性和操作,最后寻找类之间的联系。把类进行分组放到一个模块里。


系统中参与者相关得类:一般用户,操作员,管理员,外部设备

 

系统中用到的其他类

一般用户模块的类图:




操作员模块的类图:



管理员模块类图:



各类之间的关系:



第二次画的类图

思路:

1.确定类

有一般用户,操作员,管理员,学生,卡。学生用卡上机会有上机记录类,有注册卡信息类,充值信息类,以及退卡信息类,操作员工作会有操作员工作记录类。管理员对操作员结账会有结账信息类。

2.寻找类之间的联系

管理员,操作员,一般用户之间是泛化关系,即继承关系。学生可以有多张卡,是关联关系,一般用户要查看学生上机记录,在一般用户的方法中会用到上机记录类,所以之间是依赖关系。卡有很多注册信息,充值信息,退卡信息,所以卡与他们之间是关联关系,即拥有关系。



总结:

类图是描述类及其之间关系的静态图。在这里我们应该准确地找到类,以及准确地描述类之间的关系,他们之间的关系能用关联来表示的就不要用依赖。能用聚合,组合表达的就不要用关联,这次图都是根据自己的理解画的,有些不太理解的地方,在以后的学习中继续完善,加油。



评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗琪小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值