1

因此,我为学生在线系统设计了一个用例。问题是我的一些基本案例被细分为许多包含的案例。例如,要生成标记表作为员工,我包含的用例是:选择学生、选择课程、选择模块、选择学期

在我的类图中,我应该为所有较小的用例或像 generateMarksheet 这样的主要用例提供方法吗?

4

1 回答 1

2

简而言之

不,这不是它的工作原理。

更多细节

一般没有直接映射

用例是关于从用户角度来看的需求。所以这是关于要解决的问题。通常,它们代表用户的高级目标,例如Manage studentsSubscribe to courses

您的系统类别是关于满足这些要求的技术解决方案。但是,一般而言,没有您所描述的直接映射:系统的行为来自系统内许多类之间的交互。

有一些方法可以连接两个世界

如果您想在两个世界之间建立联系,您可以遵循 UML 创始人提倡的统一流程:

  • 你从你的用例开始
  • 您为分析创建了一个ECB 类模型,其中为每个用例显示了一个控制类,为用例和参与者之间的每个关联显示了一个边界类,并为您可以从中派生的每个域对象显示了一个实体类叙述。
  • 然后,您会更多地考虑边界和控制,看看是否有一些重叠,甚至重用。
  • 然后你考虑设计你的系统。但细节水平会高得多。您最终会将自己的解决方案类映射到分析类以实现可追溯性:对于每个类,您都可以找到与其相关的用例。反之亦然。

但这种方法在敏捷环境中失去了吸引力。也因为解决方案设计经常受到所选架构模型的严重影响(例如 MVP、MVVM、干净架构……),并且这些模型与 ECB 具有不同的逻辑(尽管有一些明显和误导性的相似性),所以这个分析步骤是没有增加足够的价值。

此外,敏捷方法试图避免严格的 ECB 方法所需的大量前期分析。

于 2020-06-06T16:52:15.117 回答