我应该使用UML跟踪还是实现

时间:2019-04-05 15:06:54

标签: uml data-modeling

我有一个逻辑数据模型和多个用于不同系统的物理数据模型,所有内容都以UML记录。我想展示物理模型中的数据如何追溯到逻辑模型,以便在对逻辑模型进行更改时,我们可以轻松确定所有受影响的物理模型。

这些关系是否最好地表示为痕迹或实现?我怀疑答案是“痕迹”,但我想看看其他人在投入太多时间之前是怎么想的,并弄错了。在这种情况下,跟踪或实现关系是否比其他关系提供了额外的语义?

2 个答案:

答案 0 :(得分:5)

到目前为止,我的解释(有意引述):“我通常使它们具有<<trace>>依赖性。Realization位于接口或抽象类与“常规”类之间。物理模型是派生的是从逻辑模型中获得的,而不是1:1实现的。在大多数情况下,您是在物理级别上进行逻辑模型中未预见的修改(去规范化和数据库级别所需的各种优化)。实现。”

但是,这是 pure 的事实,这就是UML规范在p上所说的。 54:

  

7.8.14实现[类]

     

实现是两组模型元素之间的一种特殊的抽象关系,一组代表规范(供应商),另一组代表规范的实现(客户)。实现可用于对逐步细化,优化,转换,模板,模型综合,框架组成等进行建模。

因此,您实际上可以在此处使用实现。 <<trace>>较为非正式,但不一定是错误的。

答案 1 :(得分:2)

这些关系最好用迹线表示,即构造型为<< trace >>的依赖关系。跟踪是为了关联不同模型中的元素,而这正是您的情况。

UML 2.5.1规范将跟踪构造型定义为“标准配置文件”(第22.3节)的一部分,如下所示:

  

指定模型元素或模型集之间的跟踪关系   在不同模型中代表相同概念的元素。痕迹是   主要用于跟踪需求和跨模型的更改。如   模型的变化可以在两个方向上发生,   依赖性通常可以忽略。映射指定关系   两者之间,但很少计算,通常是非正式的。

尽管UML规范对实现关系的定义也足以满足您的目的,但UML规范中的示例(例如,图7.21)以及我在现实世界项目中使用这种关系的方式使我得出了结论这种类型的关系主要用于关联同一模型中的元素,尤其是具有实现这些接口的类的接口元素。