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

问题描述 投票:2回答:1

我已经开发了一个简单的Workout Android应用,没有考虑到uml类图。现在我要重构它。

应用程序的工作方式

在主屏幕上,只有一个按钮可以开始锻炼。通过单击它,将触发10秒钟的倒计时,等待该人准备就绪。

然后,该应用程序将一次显示多个练习,每个练习之间都有一个休息时间。每次练习需要30秒;每个中断间隔10秒在每次锻炼/休息时,该应用都会显示以下信息:

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

最后,当锻炼结束时,应用程序会显示GIF作为庆祝活动。在最后一个屏幕上,还有一个“回家”按钮。

UML类图

我制作了以下UML类图来对该应用程序进行建模:UML Class diagram

我的疑问

但是,我不确定这是否是描述场景的正确方法。如果能得到一些反馈/评论,我将不胜感激。

我有疑问的主要事情之一就是要处理WorkoutActivity类。它在图中没有属性,因为我无法以对这个问题进行建模的方式来考虑任何属性。而且因为它是空的,对我来说有点奇怪。我曾考虑过使用列表类(例如ExercisesList)来对练习集进行建模,但是我有点受此图的困扰。

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

uml modeling class-diagram class-design design
1个回答
2
投票

这完全取决于您要代表什么。

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

在叙述中,您提到了一个“锻炼环节”。我假设这就是WorkoutActivity的含义。因此最好与命名保持一致。

您可以轻松想到属性:这是会话的日期和时间(以及用户帐户?):这可以使用户遵循他/她在培训中的规律性。

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

enter image description here

每次练习后休息一会的约束不一定是结构性的:它可以是您在组成或生成会话时强制执行的约束。如果以后您希望每2或3个练习(例如:高级用户)休息一下,这将为您提供更大的灵活性。

© www.soinside.com 2019 - 2024. All rights reserved.