如何为简单的锻炼应用程序建模(Class 图)

How to model a simple Workout app (Class diagram)

我开发了一个简单的锻炼 Android 应用程序,没有考虑 uml class 图。现在我想重构它。

应用程序的工作原理

在主屏幕上,只有一个按钮可以开始锻炼。通过点击它,一个 10 秒的倒计时被触发,等待这个人准备好。

然后,该应用程序将显示多个练习,一次一个,它们之间有休息时间。每个练习需要 30 秒;每次休息间隔,10 秒。在每个 exercise/break 上,该应用会显示以下信息:

  1. 当前的倒数计时器exercise/break;
  2. 当前练习的名称,或者在休息间隔的情况下,下一个练习的名称;
  3. 说明当前(或下一个)练习的图像;
  4. 一个暂停按钮。

最后,当锻炼结束时,该应用程序会显示一个 GIF 作为庆祝。在最后一个屏幕上还有一个 "Go home" 按钮。

UML class 图

我制作了以下 UML class 图来为这个应用建模:

我的疑惑

但是,我不太确定这是否是为所描述的场景建模的正确方法。如果我能得到一些关于它的 feedback/review,我将不胜感激。

我怀疑的主要事情之一是处理 WorkoutActivity class。它在图表中没有任何属性,因为我无法按照我对这个问题建模的方式来考虑它的任何属性。因为它是空的,所以对我来说有点奇怪。我考虑过使用列表 class(例如 ExercisesList)来模拟练习集,但我有点受困于这张图。

另一个问题是关于按钮的,我应该把它们包括在图表中吗?

这完全取决于你想代表什么。

如果您的模型适用于锻炼领域,请保持简单:不需要按钮(用户界面对象)和计时器(执行上下文)。

您在叙述中提到了 "workout session"。我假设这就是 WorkoutActivity 的意思。所以最好与命名保持一致。

你可以很容易地想到属性:它是会话的日期和时间(和用户帐户?):这可以让用户在训练中遵循 his/her 规律。

一种更通用的方法是让 WorkoutSession 由多个抽象 WorkoutActivity 组成(注意:与您当前图表中的含义不同)。每个 WorkoutActivity 都会是一个专业化:ExerciseBreakIntervalInfoActivity(例如 FinalActivity,但为什么不也是 StartActivity activity 以鼓励新用户和其他偶尔的活动,例如提示和技巧或广告)。类似于:

每次练习后休息一次的限制不需要是结构性的:它可以是您在组成或生成会话时强制执行的限制。这给了你更大的灵活性,如果将来你想每 2 或 3 个练习休息一下(例如:高级用户)。