将CU中指定的字段用于另一个CU

时间:2014-04-28 19:18:08

标签: uml qa

我有一个扩展另一个CU的CU,让我们说:添加库存扩展添加产品,所以在一个产品界面中我需要使用库存CU中的字段,我怎么能在CU中描述这个?

2 个答案:

答案 0 :(得分:2)

“扩展”意味着在扩展UC的“执行”期间,扩展UC的执行已由演员自愿调用。每种UC都由几种情况描述。场景被描述为有序的“步骤”序列。

您必须指定所谓的扩展点 - 扩展用例的场景中的步骤,其中Actor可以调用扩展UC的执行。它可以是一个步骤或范围......

您可以将扩展点视为具有参数的方法,在扩展UC中实现并由扩展UC调用。这些参数可以是这些字段,您需要“传递”到另一个接口。

在我的项目中,我总是使用域模型(类图)“备份”我的案例模型,并在UCs的规范中使用它的元素(前置条件,后置条件,场景,扩展点)。

更新(评论后)

UML没有定义用例规范的具体格式,它只定义了概念及其语义含义。 UC可以具有所谓的行为,可以扩展另一个(或被扩展),具有扩展点。

您定义行为和扩展点的方式是您自己的选择。

所以,在我的例子中:

  • UC的行为被定义为步骤的文本序列,由系统或用户执行(替代方案是状态机,活动图,甚至是用户界面原型)
  • 扩展点被定义为序列中的一个步骤,并通过此“方法”签名进一步描述,以说明交换的信息

请记住,UC显示系统与外部世界之间的相互作用。对于他们来说是系统类型的黑匣子。因此,我在这里使用的概念模型不是数据库或系统设计,而是应用程序使用的实体的概念性,实现不可知视图。它们甚至可以在实现级别上映射到2个不同的系统上! UCs之间的关系同样纯粹存在于用户 - 系统交互抽象层次上,并且不是任何方式都反映了一些内部系统依赖性! (在Gangnus评论后添加注释)

enter image description here

(方案和概念完全是为了示例而发明的)

答案 1 :(得分:1)

UML standard 2.5,p.680,定义:

  

Extend是扩展UseCase(扩展名)的关系   扩展的UseCase(extendedCase),指定方式和时间   扩展的UseCase中定义的行为可以插入到   在扩展的UseCase中定义的行为。扩展发生在   扩展的UseCase中定义的一个或多个特定扩展点。

     

当存在某些其他行为时,将使用Extend   应该可能有条件地添加到定义的行为   在UseCase中。

我不会把你所描述的内容称为an extension。库存实例是将Product实例作为项目的容器。因此,添加库存是一种依赖于现有产品的行为,而不是取决于添加的方式。因此,如果您使用正确的OOP策略,添加库存绝对独立于添加产品行为。它们都是独立的行为。

是的,他们在依赖和相关的结构上工作,但结构大多在其他图中描述。因此,通常情况下,这两种行为是两个不同的独立UC。

另一方面,根据标准,您可以混合不同图表的元素,如果您必须显示对UC图表的中间依赖性,您可以绘制适当的类(产品和库存),通过关联连接。您的用例将通过箭头“依赖” - - - - - - >

连接到这些类

请注意,在某些类中使用用例“添加产品”和方法“addProduct”是绝对不同的事情。第一种是手动描述的行为,用户参与,第二种是代码。第一个是任务,第二个是测试 - 这是一个实现。所以,要注意,只有在你明白自己在做什么的时候才把课程放到用例中,这对于初学者来说并不是那样。最低限度,重新阅读UML标准的用例章节。就个人而言,我会在这里单独的类图中显示类。这是更容易的方式。