类似的用例。怎么解决比较好?

Similar Uses Case. How do the better solution?

对于我的项目,我需要制作用例图。 这些是我的用例,但我认为这个解决方案不正确。

搜索店铺 -> 客户在系统中查找所有店铺

搜索您所在城市的店铺 -> 客户查找他所在城市的店铺

按类别按城市搜索店铺 -> 客户按输入类别在输入城市中搜索店铺

按类别搜索店铺 -> 客户找到输入类别的所有店铺

我正在考虑使用扩展程序,因为它们基本上做同样的事情,但有些步骤不同。

根据我的定义:扩展一般用例的用例集的替代或可选行为

所以我是这样想的

但我不知道我的解决方案是否正确,因为我不确定<>

客户端必须能够进行这 4 次搜索。

第一种还是第二种方案更好?为什么? 还有其他更好的解决方案吗?

编辑:我正在尝试一个新的解决方案。

我的问题:客户可以在系统中进行不同的搜索。

添加场景来挖掘 UC 会比其他解决方案更好吗?我知道 UC 可以有成功和失败的各种扩展。 我可以通过选择这样的解决方案来解决我的问题吗?

一切都取决于你想展示什么。

A 由标准(formal/2017-12-05 的第 640 页第 18.1.3.2 页)表示:

Extend is intended to be used when there is some additional behavior that should be added, possibly conditionally, to the behavior defined in one or more UseCases.

所以,你的第二张图不等同于你的第一张图(假设用例不变):

  • 在第一个图中,客户端搜索店铺搜索您所在城市的店铺 按类别搜索商店 ...

  • 在第二张图中,当客户搜索商店期间,他还可以搜索您所在城市的商店and也可以按类别搜索店铺 and ...

也许您想说在搜索过程中可以添加过滤器以在类别中的城市 and/or 中搜索,在这种情况下您可以使用 2 extends:

注意在城市中搜索商店按类别搜索商店搜索商店的专业化,以及按类别搜索商店在城市搜索商店按类别搜索商店的专业化, 所以:

如果你非常喜欢 UC 中的泛化


出于这些关于 extend/generalization 的理论考虑并单独查看 UC,就像关于 UC 的任何情况一样,您必须检查您的 UC 是否有效 UC,是否每个都有足够的附加值存在或者你只有 UC search shop ?

除了的专家和全面的回答,我想表达另一个观点。

虽然 UML 不知道用例应该或不应该表达什么,但人们普遍认为用例应该对应于参与者 goals.

我个人找店的时候,首要目标是找店。标准只是实现这一目标的手段。也许是我镇上的一家商店,也许是离我的 GPS 坐标最近的商店,也许我正在寻找给定的类别,或者也许我会在显示搜索结果时以交互方式优化我的标准。

指定过于详细的用例会使您很早就锁定在可能预先定义或 constrain your user-interface 的解决方案中,而没有真正考虑为用户实现目标的最佳和最舒适的方式. UML 创始人警告了这个缺点,并明确建议不要使用用例模型来设计用户界面。

因此我会保持简单,只有一个用例 Search shop,并在与每个 UC 关联的描述中描述更具体的 intents/expectations(最好使用 essential use-cases ).