一、概述
类图在软件建模中的作用:
在软件空间中建立一个对问题空间的概念及关系的抽象印象
建立功能处理逻辑的静态模型
软件设计的基础
数据库设计的基础
类图在软件建模中起着十分重要的作用,是软件模型的核心和基础
二、对象与实例
实例是类元中的一个元素,类元是实例的集合
类是一种类元;对象是类的实例
三、类元与类
类元是对聚集一组具有共同特征的实例的模型元素的通称
类、接口、用例、参与者、关联等都属于类元
类的一般表示
简化表示:
缩略表示:
类名:
- 名词或名词短语
- 竟可能明确剪短,避免使用抽象、无意义的名词
- 英文首字母大写
- 可分为简单类名和带限定名的类名
实体类表示客观实体
界面类表示交互界面,比如登入界面
控制类表示系统处理过程。名字用动词或动词短语表示
属性:描述类所表示事务的静态特征
关联属性也叫伪属性,作用是在类中标识与其存在关联关系的其他类
操作:描述类所表示事务的动态性质
四、关联关系
通俗含义:表示事务之间存在的内在的角色牵连关系
本质含义:用来表示存在内在角色联系的类元中实例之间的连接关系
关联本身是一种类元,关联的实例被称为链
多重性:
关联类:把关联信息通过类的形式描述出来,被称为关联类
限定关联:通过限定符来规定关联的限定关系
派生关联:通过其他关联得到的关联,角色名前加/
关联的种类:
一元(自反)关联
二元关联
多元关联
五、组成关系
(1)概述
组成关系:描述事物之间整体与部分的关系
组成关系的特性:传递性(A是B的组成部分,B是C的组成部分,则A是C的组成部分)、不可逆性(A是B的组成部分,则B不是A的组成部分)
(2)聚集
聚集:整体与部分的关系是松散组成
(3)组合
组合:整体与部分的关系是紧密组成
(4)聚集于组合的区别
- 聚集松散,组合紧密
- 一个部分事务对象可以属于多个狙击对象,但一个部分事务对象仅能属于一个组合对象
- 聚集的对象生命周期可以不同,但组合对象则是同存同亡
(5)组成与关联的关系
- 与关联一样,组成关系是类元,其实例也是链
- 组成关系是有向关系,关联是无向关系
- 组成关系的多重性,整体乙方的多重性只能是0...1
- 组成是一种特殊的关联关系
六、泛化关系
(1)泛化的概念
泛化:泛化具有抽象、概括和超越的意思。反应事物之间的特殊与一般关系
泛化与继承描述事物之间的同一种关系->父类与子类
(2)泛化的表示
(3)泛化的特性
传递性
不可逆性
反自反性:类元,不能和自己存在泛化
继承性
单项拥有性:子类知道自己的父类,但父类不知道哪个是自己的子类
(4)泛化的作用
特征抽象
分层分类
特征重用
(5)泛化与分类
分类是泛化的基础
(6)单继承与多继承
一个子类只有一个父类的被称为单继承
一个子类有多个父类的被称为多继承
多继承转化为单继承,可用接口代替继承
七、依赖关系
(1)依赖的概念
模型元素之间的一种有向关系,表示一个模型元素在其语义或结构上依赖于另一个元素
(2)依赖的表示
(3)依赖的类型
八、接口
(1)接口的概念
接口是一种类元,聚集了一组需要通过其他类元氏县的公共的操作和属性
接口只是定义一组操作的规约,并不实现这组操作,接口所定义的操作需要通过另外一个类园来实现
(2)接口的表示
(3)接口的特性
- 接口只声明操作,不提供操作的实现,需要由另一个类来实现接口声明的操作
- 接口虽然是类元,但接口没有实例
- 接口不但可以声明操作,也可以声明属性
- 接口声明的操作和属性的可见性是公开的,为public
(4)接口的类型
供口:提供接口被其他元素访问
需口:需要访问到的接口
(5)接口的实现
(6)接口的泛化
九、类图
(1)类图的概念
类图是由类,相关建模元素,及其关系构成的图,用来描述类之间的静态关系
类图在系统中处在核心位置,也是UML中最为重要的一种图
(2)类图的抽象层次
概念层
逻辑层
实现层
(3)建立类图
十、对象图
(1)对象图的概念
对象图标书类图在某一时刻,个各类中的对象相互之间的关系,性党羽对类图在某时刻的一个快照。
同一类图,不同时刻的对象图不一样
(2)对象图的表示
(3)对象图的作用
- 初期分析工具
- 模拟业务场景
- 模拟运行场景
十一、注意
对象类是可以实例化为对象的类
抽象类不能产生实例的类
类图是用来描述系统资源和要素相互之间的静态结构关系
类图可以用于:业务模型、需求模型、设计模型
类的三种类型:界面类,实体类,控制类
类的四种关系:
关联:表示类与对象之间的链接关系
组成(聚集和组合):表示事物之间的整体和部分关系
泛化:表示事物的一般和特殊关系
依赖:事物之间的因果关系
类图的抽象层次:
概念层:需求建模
逻辑层:逻辑建模
设计层:设计建模
类可以优化,分解