有没有“非功能性用例”这样的东西?

9
我正在阅读使用Sparx Enterprise Architect制作的系统要求文档。 所有需求都与特定的用例相互映射。
一些“高可用性”非功能性需求被映射到名为“提供高可用性”的用例中,并标记为<>。我对这些内容比较陌生,不确定将非功能性需求映射到用例是否合理 - 因此产生了疑问。
如果答案是肯定的,那就太棒了 - 但如果不是,我会很想知道人们如何将这些要求映射到用例(如果有必要的话)。

我投票关闭此问题,因为它与编程无关。 - Vadim Kotov
1个回答

14
几个关于“高可用性”的非功能性需求被映射到一个名为“提供高可用性”的用例中,标记为<>。
俗话说,“如果你手上只有一把锤子,那么每个问题看起来都像是一颗钉子”。用例的存在是为了确定系统为其用户提供的价值。因此,它们旨在描述功能性的事物:系统执行的任务。
所以一般我不建议以这种方式捕获非功能性的需求。然而:这并不意味着它们不能在用例中被捕获。在功能性用例内部指定非功能性需求可以非常有用。例如:
Use Case: Submit Order
{...functional description...}

Availability: 9-5 mon-fri
Volumes: 5000 peak per day
...

这将非功能需求直接关联到它所支持的功能上。这是有道理的 - 因为没有功能,非功能就没有目的或上下文。

当然,你会发现许多用例共享相同的非功能要求。你不想重复,所以需要找到一种方法来因素分离。我更喜欢在一个单独的文档中完成。

但并没有法律禁止在“用例”中捕获。虽然这违反了理论,但在实践中有做的原因:例如建模工具的限制(无法将UC链接到文档)和/或希望将所有内容保持在一个地方。

基本上归结为理论和实践。在理论上,不存在非功能用例。但实际上,创建一个UC来容纳非功能可能是有意义的。只要每个人都明白它只是一个方便的容器而不是真正的功能件,我不会为此感到激动。

希望对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接