UML—静态图
发布日期:2021-06-29 11:15:19 浏览次数:3 分类:技术文章

本文共 1527 字,大约阅读时间需要 5 分钟。

类图

类图的构成

1.类

2.接口:没有给出对象的实现和状态的情况下对对象行为的描述,描述了类或组件对外的、可见的动作。
3.协作:表示一些角色和其他元素一起工作,提供一些合作的动作。一个给定的类可能是几个协作的组成部分。
4.关系:包括关联关系、依赖关系、泛化关系和实现关系。
5.包或子系统
 包的作用:①将那些语义相近并倾向于一起变化的元素进行分组,方便理解和处理整个模型;②构成一个命名空间

类的关系

类之间的关系分为4种:关联、依赖、泛化和实现。下面分别介绍这四种关系:

1.关联
 关联又分为:普通关联、自身关联、聚合关系和组合关系。
 1)普通关联用直线表示,除此之外关联的修饰还有:关联名、角色、多重性等。比如下图:
这里写图片描述
 关于多重性有好几种:

多重性示例
普通关联又可分为:单向关联和双向关联。
①单向关联:其中有一端带有箭头,意味着被指向的一端的对象可以被另一端的对象访问。
②双向关联:两端都加箭头或者两端都不加箭头

 2)自身关联

  自身关联指的是一个对象与一个同类对象有链接,比如:节点,每个节点属于同一类,且每个节点都有前驱节点和后继节点,即每个节点都要和其他节点有联系,那么这种关联就叫做自身关联。而普通关联一般指的是不同类之中的关联。(如果不明白,请看下图:)
这里写图片描述
 3)聚合关系
  聚合关系用空心菱形表示,菱形靠近整体部分。
  聚合关系表示的是一种松耦合关系,整体和部分可以独立存在。比如:汽车和发动机、大雁和雁群。
 4)组合关系
  组合关系用实心菱形表示。
  组合关系表示的是一种强耦合关系,部分不可以脱离整体而单独存在。比如:鸟和翅膀、链表和节点之间的关系。只要整体消失,那么部分也随之消失。

★问:既然都是表示整体与局部,那么为什么还要分聚合和组合呢?

 ①画类图的时候要用最准确的方式来表达。
 ②编程实现时,这两种关系的实现手段截然不同。编程时,不仅要告诉程序员是整体和局部的关系,还要告诉他们整体与局部的生命约束关系,从而在编程的时候用不同的方法来实现。

2.依赖关系:用虚线+箭头表示。

 依赖关系表示的是一种使用关系,当某一个类需要用到另一个类中的属性或方法时,就用依赖关系。
3.泛化关系:用实线+空三角形表示。
 泛化关系表示的是继承关系。
4.实现关系:用虚线+空三角形表示。
 实现关系通常用于类和接口,表示一个类实现了一个接口。

★类和接口的区别:接口没有属性,而且只给出了要实现的方法名,而没有给出具体的代码实现;而类不仅有属性和操作,还给出了方法的具体实现。

类图的讨论和应用

1.可见性

类之中有属性和操作,由于类的封装性,所以就出现了属性和操作的可见性。
可见性有:公有、私有、保护等几种。在 Rational Rose 画图中有两种表示方法:
1)用图标表示
这里写图片描述
2)用符号表示

可见性 符号表示
Public(公有) +
Private(私有) -
protect(保护) #
package(包) ~

2.范围

静态成员:一个类的所有实例共享一个成员,而不是每一个实例化的对象的属性都不同。
静态成员的两种用法:①计数器 ②静态成员通过类名调用,与具体实例无关。

3.类图需要注意的问题:

 1)抽象类不能实例化,类名用斜体表示
 2)类图之间的关系一定要运用准确,能用组合就不要用聚合,能用聚合就不要用关联,能用关联就不要用依赖。

示例

这里写图片描述

对象图

对象图表示类图在某一个时刻一组对象以及它们之间关系的图。

对象图的作用:在复杂的系统中,出错时涉及的对象可能处于一个具有众多类的关系网中,分析出错的原因的时候就会很复杂,因此测试员可以在出错时刻建立对象图,这将大大方便分析错误,解决问题。

示例

这里写图片描述

转载地址:https://blog.csdn.net/zwj_jyzl/article/details/80209819 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:UML—行为图
下一篇:UML—用例图

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月16日 15时56分39秒