UML图(二)——类图

    说到类图,让我们说一下类。

类的定义

    类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在系统中,每个类都具有一定的职责,职责指的是类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责。

    类的分类

    说过类,让我们看看它的分类。

在系统分析与设计阶段,类通常可以分为三种,分别是实体类(Entity Class)、控制类(Control Class)和边界类(Boundary Class),下面对这三种类加以简要说明:

(1) 实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。

(2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类,注册对应有一个用户注册类等

(3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。

在面向对象分析和设计的初级阶段,通常首先识别出实体类,绘制初始类图,此时的类图也可称为领域模型,包括实体类及其它们之间的相互关系。

类之间的关系

当这些都明白的时候,就应该了解一下类之间的关系了。

1.依赖关系(Dependence)

依赖关系(Dependence):假设A类的变化引起了B类的变化,则说名B类依赖于A类。

依赖关系(Dependency) 是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。


依赖关系有如下三种情况:

1A类是B类中的(某中方法的)局部变量;

2A类是B类方法当中的一个参数;

3A类向B类发送消息,从而影响B类发生变化;


2.泛化关系

泛化关系(Generalization):ABC的父类,B、C具有公共类(父类)A,说明AB,C的一般化(概括,也称泛化)

泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。 在UML中,泛化关系用带空心三角形的直线来表示。

在UML当中,对泛化关系有三个要求:

1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;

2、子类中除了与父类一致的信息以外,还包括额外的信息;

3、可以使用父类的实例的地方,也可以使用子类的实例;


3.关联关系

关联关系(Association):类之间的联系,如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单

关联关系(Association) 是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系

在使用类图表示关联关系时可以在关联线上标注角色名

1)双向关联(默认情况)


2) 单向关联:类的关联关系也可以是单向的,单向关联用带箭头的实线表示.

3) 自关联: 在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。


4)  重数性关联: 重数性关联关系又称为 多重性关联关系 (Multiplicity) ,表示一个类的对象与另一个类的对象连接的个数。在UML中多重性关系可以直接在关联直线上增加一个数字表示与之对应的另一个类的对象的个数。

表示方式

多重性说明

1..1

表示另一个类的一个对象只与一个该类对象有关系

0..*

表示另一个类的一个对象与零个或多个该类对象有关系

1..*

表示另一个类的一个对象与一个或多个该类对象有关系

0..1

表示另一个类的一个对象没有或只与一个该类对象有关系

m..n

表示另一个类的一个对象与最少m、最多n个该类对象有关系 (m<=n)



4.聚合关系(Aggregation

聚合关系(Aggregation):表示的是整体和部分的关系,整体与部分可以分开.

聚合关系(Aggregation) 表示一个 整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构,从而找出一些成员类,该整体类和成员类之间就形成了聚合   关系。
在聚合关系中, 成员类是整体类的一部分 ,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。 UML 中,聚合关系用带空心菱形的直线表示。 

5.组合关系(Composition

组合关系 (Composition)也表示类之间整体和部分的关系,但是组合关系中 部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在,部分对象与整体对象之间具有 同生共死的关系。
在组合关系中,成员类是整体类的一部分,而且整体类可以控制成员类的生命周期,即成员类的存在依赖于整体类。 UML 中,组合关系用带实心菱形的直线表示。

6.实现关系( Implementation

实现关系(Implementation):是用来规定接口和实线接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。

接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现关系(Realization),在这种关系中,类实现了接口,类中的操作实现了接口中所     声明的操作。UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。




某城市已经在各条道路上安装了空气温度、空气湿度、pm2.5、CO2 、光照、道路状态等传感器。部分小车安装了ETC和速度传感器,能够获得这些小车的数度和对其ETC金额进行管理。各传感数据已经汇总在服务器系统。 假设各传感器和ETC账户最小、最大阈值已由管理员设置如下: 环境指标 最小值 最大值 备注 空气温度: 10 40 空气湿度: 50 150 pm2.5 500 5000 CO2 100 600 光照 0 100 道路状态: 1 5 ETC账户余额 100 5000 现要求开发一套移动APP实现如下功能: 1、用户登录注册模块的功能 对用户账号的合法性进行判断,合法的用户允许使用智能交通系统,不合法的用户则禁止使用该系统。用户登陆注册模块能够完成用户注册、自动登录和找回密码等功能。 2、实现系统的实时环境指标动态显示功能 1 界面原型 1)、利用给定的资源,实现该界面原型的布局,参阅环境指标界面原型。 2)、实现空气温度、空气湿度、pm2.5、CO2 、光照、道路状态(默认1号编号道路)实时数据显示功能。 注:数据实时刷新周期为 5秒。 3)、实现报警状态警示功能,正常状态背景为绿色,警告状态为红色。 4)、点击传感器的显示区域,可以进入对应的传感器“实时曲线显示”界面。 3 实现系统车辆账户充值、查询功能和限速功能 1)、在点击充值按钮时,先检测账户余额是否超过设置的阈值,如果超过阈值就不允许充值。 2)、如果用户充值的金额加上账户余额超过了账户余额的最大阈值就提示用户充值失败,并提示出本次可以充值的最大额度。 3)、设置小车速度阈值并且显示到页面。 4)、实时监测小车的速度一旦小车速度低于小车最低速度阈值,提示用户速度过慢。一旦小车速度超过最大速度阈值强制停止小车。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值