• 上一期UML类文章讲了什么是UML和什么是用例图,UML的基本历史和基本概念。如果还有不清楚UML是什么的同学,请参考之前的“入门PM了解UML之什么是UML(1)

扫码_搜索联合传播样式-标准色版.png
入门PM了解UML之产品经理面试必问什么是类图(3) - 图2

引言:

  • 本期文章主要给小白的产品经理以及即将入门的同学讲解UML模型的第第二种图,相对于用例图来讲产品经理的使用频率不是那么高——类图。
  • 下一期我会写产品经理需要掌握的第三种UML——活动图。

在我们平时对产品功能挖掘以及对需求分析的时候,特别是在对后台数据返回逻辑以及后台功能方面的思绪特别理不清楚,相信已经入门的产品经理都会使用流程图,产品结构图,来进行自我检查以及流程梳理,以免忘掉或者流程出现缺陷。
但是对于功能模块的分类,在产品的架构图上无法细分,有些产品经理可能刚入门甚至产品的功能架构图都不会,更不用说技术架构图了还有底层框架。
那么这次的主要目的 ,就是利用我们新人现在仅有的知识对产品某一个大模块的面向对象的一个建模,我们除开使用产品结构图来体现他们之间的结构,还有一种方式就是使用类图来表示出各个对象之间的关联、聚合、继承关系。

类图的概念,以及构建类图的目的?

定义:

在软件工程中,统一建模语言 (UML) 中的类图是一种静态结构图,它通过显示系统的类、它们的属性、操作(或方法)以及对象之间的关系来描述系统的结构。

在这5种(在第一期UML文章讲过产品经理需要用到的哪五种图)图中,类图可谓作是其他图的基础。因为每个系统都涉及到了大量的人、事、物,这些抽象出来的人事物或者概念就是我们所说的类,而任何UML图都需要建立在有概念和类的基础上才能展开结构和行为的描述。

我们构建类图的目的:

  1. 显示系统中分类器的静态结构
  2. 图为 UML 规定的其他结构图提供了基本的表示法
  3. 对开发人员和其他团队成员也有帮助
  4. 业务分析师可以使用类图从业务角度对系统建模

画法

按照分类可分为两类元素:

  • 一组类元素
  • 类之间的关系元素

类符号

一个类符号由三部分组成:

  1. class名称:
    • 类的名称出现在第一个分区中
  2. 类属性
    • 属性显示在第二个分区中。
    • 属性类型显示在冒号之后。
    • 属性映射到代码中的成员变量(数据成员)。
  3. 类操作(方法)
    • 操作显示在第三个分区中。它们是类提供的服务。
    • 方法的返回类型显示在方法签名末尾的冒号之后。
    • 方法参数的返回类型显示在参数名称后面的冒号之后。
    • 操作映射到代码中的类方法。

入门PM了解UML之产品经理面试必问什么是类图(3) - 图3
类的图形表示 - MyClass 如上图:↑

关系类型

以下引用Visual类图用例:

1637732289710.jpg

类属性和操作的可见性

在面向对象的设计中,有一个属性和操作的可见性符号。UML 确定了四种类型的可见性:public、protected、private和package。
类中属性和操作名称前的 +、-、# 和 ~ 符号表示属性和操作的可见性:
+ 表示公共属性或操作
- 表示私有属性或操作
# 表示受保护的属性或操作(即對子類可見)
~ 表示包属性或操作(即對包内其他成員可見)

入门PM了解UML之产品经理面试必问什么是类图(3) - 图5
类的图形表示 - MyClass 如上图:↑
在上面的例子中:

  • MyClassName 的 attribute1 和 op1 是公开的
  • attribute3 和 op3 受到保护。
  • attribute2 和 op2 是私有的。

下面显示了不同类成员对这些可见性类型中的每一种的访问。

访问权 公开(+) 私有的(-) 受保护的(#) 包(~)
同一类 Y Y Y Y
子类 Y N Y Y
其他类 Y N N 同一classY

多样性

每个类有多少对象参与关系和多重性可以表示为:
正好一 - 1
零或一 - 0..1
许多 - 0..
一个或多个 - 1..
确切数字 - 例如 3..4 或 6
或者一个复杂的关系 - 例如 0..1, 3..4, 6.
表示除 2 或 5 之外的任意数量的对象
对于多样性的示例可以参考下图:

入门PM了解UML之产品经理面试必问什么是类图(3) - 图6

  • 作者将文章发表在微信公众平台
  • 读者前往微信公众平台阅读文章
  • 作者可以发布0到多篇文章,但一篇文章仅属于1个作者
  • 读者也可以阅读0到多篇文章,1篇文章也可以被0到多个读者阅读

示例

示例引用于大话PM

WX20211124-135157@2x.pngWX20211124-135144@2x.png

注意:

  • 类的操作是针对类自身,并不是操作其他类
  • 由于类图中关系复杂,一定要注意规范
  • 一个复杂的实例可以被分为多个类

结合上述画法,继续来看一个具体案例,仍然是SV30沉降系统时间设置用例,先来分析一下需求(个别需求为了迎合上述画法而刻意说明,真实场景可能略有差异):

UML类图.png

从图中可以清晰的看到各个被实例化之后的对象(也就是类)之间的相互关系,既能帮助产品经理更深刻的认识整个用例系统,也能便于其与开发人员之间的沟通。

  • 场景前置条件必须为用户拥有相应权限及登录账号密码进入系统
  • 其配置依赖条件为:用户必须使用computer才能进行时间配置,也就是用户依赖于电脑网络连接,并且连接到上位组态软件西门子的PLC或WinCC进行命令接收传输。
  • 系统应用说配置的自定义时间或默认时间,时间封装为接口
  • 在整个设置时间配置中包含了自定义、默认等部分,允许的操纵为修改或者默认重置。
  • 时间配置里聚合了可视化图形模块在里面,设置完成后自动生成可视化。

我的公众号:菜菜的PM

如果还有不明白的同学可以关注一下我的公众号↑↑↑↑
下一期会写一个产品经理面试基本都会问到的活动图