UML类图:适应性跟踪器

UML类图:适应性跟踪器,uml,Uml,嘿,我对制作类图是新手,我被指派为我的团队将要开发的健身计划制作一个简单的类图 我擅长制作类和属性。我对它的关系部分、聚合和所有这些好东西都有问题 下面是一个简单的概述: 有一个培训师,每个培训师有一个客户。每个客户都有一个前后报告。此外,每个客户都有每日锻炼计划、每周处方和日志 我已经添加了一个我已经拥有的草图的图像 首先,客户和培训师之间没有任何特定的属性来建立关系,这种关联是可以的,但是没有任何方法可以从培训师那里找到客户,反之亦然。 您可能需要通过提问来理解和使用成员之间的关系。 让我们

嘿,我对制作类图是新手,我被指派为我的团队将要开发的健身计划制作一个简单的类图

我擅长制作类和属性。我对它的关系部分、聚合和所有这些好东西都有问题

下面是一个简单的概述: 有一个培训师,每个培训师有一个客户。每个客户都有一个前后报告。此外,每个客户都有每日锻炼计划、每周处方和日志

我已经添加了一个我已经拥有的草图的图像


首先,客户和培训师之间没有任何特定的属性来建立关系,这种关联是可以的,但是没有任何方法可以从培训师那里找到客户,反之亦然。
您可能需要通过提问来理解和使用成员之间的关系。
让我们从培训师开始。

培训师

Q:
您是通过培训师找到客户,还是通过培训师找到客户?
A[0]:
客户是由其培训师找到的(培训师->客户)=>因此在这种情况下,您需要在培训师内部跟踪(拥有)客户参考。

A[1]:
培训师由其客户找到(客户->培训师)

A[2]:
培训师和客户都应该有彼此的推荐信


上述场景适用于(之后/之前)报告和客户端。

每日工作表

因此,这里每个客户都有一张以上的训练表,所以这里我们有聚合组合,两者的区别并不难理解。
组合:
它意味着
客户端
有一个
日常工作表
的列表,并且
日常工作表
的生命周期是依赖于
客户端
生命周期,它意味着如果
客户端
获得删除(从内存中删除),然后,这将导致删除与
客户端
引用关联的
日常工作表
(s)的所有引用。

(构图形状是一个填充的菱形,它指向承载(
客户端
)来宾(
每日工作表


聚合:
这意味着
客户机
有一个
日常工作表
的列表,并且
日常工作表
的生命周期是独立的
客户机
生命周期上。因此,这意味着删除
客户端
引用后,与
客户端
引用关联的
DaileyWorkoutSheet
(s)将持续存在。

(聚合形状是一个空菱形,它指向承载来宾(
client
)的类(
DailyWorkoutSheet





关于
客户
周处方
日志
之间的关系,上述场景是正确的。首先,客户和培训师之间没有任何特定属性来建立关系,关联是可以的,但没有任何方法从培训师那里找到客户,反之亦然。
您可能需要通过提问来理解和使用成员之间的关系。
让我们从培训师开始。

培训师

Q:
您是通过培训师找到客户,还是通过培训师找到客户?
A[0]:
客户是由其培训师找到的(培训师->客户)=>因此在这种情况下,您需要在培训师内部跟踪(拥有)客户参考。

A[1]:
培训师由其客户找到(客户->培训师)

A[2]:
培训师和客户都应该有彼此的推荐信


上述场景适用于(之后/之前)报告和客户端。

每日工作表

因此,这里每个客户都有一张以上的训练表,所以这里我们有聚合组合,两者的区别并不难理解。
组合:
它意味着
客户端
有一个
日常工作表
的列表,并且
日常工作表
的生命周期是依赖于
客户端
生命周期,它意味着如果
客户端
获得删除(从内存中删除),然后,这将导致删除与
客户端
引用关联的
日常工作表
(s)的所有引用。

(构图形状是一个填充的菱形,它指向承载(
客户端
)来宾(
每日工作表


聚合:
这意味着
客户机
有一个
日常工作表
的列表,并且
日常工作表
的生命周期是独立的
客户机
生命周期上。因此,这意味着删除
客户端
引用后,与
客户端
引用关联的
DaileyWorkoutSheet
(s)将持续存在。

(聚合形状是一个空菱形,它指向承载来宾(
client
)的类(
DailyWorkoutSheet




关于
客户机
周处方
日志
之间的关系,上述场景是正确的