如何在用例描述中展示“if”条件?

4

当我们编写一个用例表 *(编号,描述,参与者,前置条件,后置条件,基本流程,替代流程)* 时,在基本流程中,我们展示了参与者和系统之间交互的简单步骤。我想知道如何在用例基本流程中展示条件?据我所知,基本流程包含用例的逐个简单步骤。但是我不能没有伪代码展示条件吗?UML用例描述的基本流程中可以使用伪代码吗?

以下是下列序列的步骤:

enter image description here

对于上图,应该是下面的表格吗?

-------------------------------------------------------------
| ID            | UC01                                      |
-------------------------------------------------------------
| Description   | do something                              |
-------------------------------------------------------------
| Precondition  |  --                                       |
-------------------------------------------------------------
| Postcondition |  --                                       |
-------------------------------------------------------------
| Basic flow    |  1. actor requests system to do something |
|               |  2. if X = true                           |
|               |        2.1 system does step 1             |
|               |     else                                  |
|               |        2.3 system does step 2             |
|               |  3. system return results to actor        |
-------------------------------------------------------------
| Alternate flow|  --                                       |
-------------------------------------------------------------

1
抱歉,您的问题有点不清楚。您在创建用例的序列图时可以使用alt条件吗?是的。您不仅可以描述基本流程,还可以描述替代流程。不需要伪代码。 - Ister
@Ister,可能会有重复、if、else等不同的语义上下文,我该如何在备选流程中处理所有这些东西?你能解释一下发布的图表的示例用例表是什么吗? - Sazzad Hissain Khan
序列图中有各种类型的扩展区域。这些不同的类型允许您覆盖不同的流程变化。首先阅读它们,然后尝试提出更具体的问题。 - Ister
只要观众能够理解,任何有助于交流的手段都是允许的(这也有点进退两难)。 - qwerty_so
2个回答

3

在像Visual Paradigm这样的工具中,您可以使用if/else和循环条件对事件流进行建模,并将步骤指定为用户输入和系统响应。

enter image description here

2
  • 使用备选和异常流程来记录此类行为。
  • do somethingstep 1 明显属于不同级别,最好将它们放入单独的用例中。
  • Actor 不是演员角色的最佳名称,我们可以称之为 User
  • 我不得不将 Step 1 更改为 Calculation 1 以避免混淆。

示例

------------------------------------------------------------------------
| ID               | UC01                                              |
------------------------------------------------------------------------
| Level            | User goal, black box                              |
------------------------------------------------------------------------
| Basic flow       |  1. User requests Robot System to do something.   |
|                  |  2. Robot System performs UC02.                   |
|                  |  3. Robot System return results to User.          |
------------------------------------------------------------------------


------------------------------------------------------------------------
| ID               | UC02                                              |
------------------------------------------------------------------------
| Level            | SubFunction, white box                            |
------------------------------------------------------------------------
| Basic flow       |  1. Robot System validates that X is true.        |
|                  |  2. Robot System does Calculation 1.              |
------------------------------------------------------------------------
| Alternate flow 1 |  Trigger: Validation fails at step 1, X is false. |
|                  |  2a. Robot System does Calculation 2.             |
------------------------------------------------------------------------

实际情况中可能会有许多if/else、循环等分支。您认为对于所有这些条件点,我应该创建不同的用例吗? - Sazzad Hissain Khan

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