如何可视化对象属性之间的映射

时间:2017-10-04 19:09:09

标签: attributes mapping uml visualization

我试图为我的同事(以及我未来的我^^)可视化几个类的属性的映射。 我们使用专有软件对UML图中的类进行建模。因为我们必须将对象属性从两个(设计不是很好的)外部接口映射到我们的对象,所以大多数团队成员不知道哪些外部属性与其对应物匹配。 出于文件原因这也很有用。

任何想法如何处理?

编辑:进一步解释

我们将信息从一个业务对象传输到另一个业务对象。 我们的(简化)设置: 我们有3个系统(A,B - 我们的系统 - 和C)。 我们以特定格式从A和C获取数据(两个系统不同),必须将其属性复制到系统中的对象,处理数据并将其复制到另一个系统。 我尝试将业务对象(分别是它们的属性)从3个系统映射到彼此。

简单示例: 系统A为我们提供了由Person类表示的数据。它具有属性id,name,givenname,street(包括街道名称和街道号码)。 系统B(我们的系统)也有一个Person类......让我们称它为PersonItem。它具有属性id,idExternalSystemA,idExternalSystemC,name,givenname,street,streetNumber。 System C提供第三个Person类... PersonElement。它的属性:id,surname,forename,streetName,streetNumber。

我们的应用程序将属性(使用某些逻辑)从A映射到B到C并反转。

从A到B:

Field Person.id is connected to PersonItem.idExternalSystemA. 
Person.name is connected to PersonItem.name. 
Person.givenName is connected to PersonItem.givenname. 
Person.street is connected to PersonItem.street AND to PersonItem.streetNumber (we have to extract the relevant parts from the source or join them when copy to the other direction)

从B到C:

PersonItem.idExternalSystemC is connected to PersonElement.id 
PersonItem.name is connected to PersonElement.surname 
PersonItem.givenname is connected to PersonElement.forename 
PersonItem.street is connected to PersonElement.streetName 
PersonItem.streetNumber is connected to PersonElement.streetNumber

现在我需要一个可视化,显示我们在转移到下一个系统时如何复制属性。 在属性之间使用线条的图表将会这样做。 我读过它不允许直接询问工具但必须描述问题。但可能我总是要求一个合适的工具^^

3 个答案:

答案 0 :(得分:0)

我不确定你要代表的是什么。如果您只是试图展示两个系统之间的映射方式,我会建模一个Adapter模式,显示一个API如何映射到下一个。

这是一个很好的,简单的Java工作适配器模式示例。

Adapter in Java: Before and after

答案 1 :(得分:0)

对我来说,最好的解决方案是跟踪(例如依赖或抽象)此副本。因为您可以在符合UML的图表中创建“链接”。

enter image description here

另一种表示方式是使用矩阵,但这与工具功能更相关......

enter image description here

答案 2 :(得分:0)

使用非标准附加链接是一种可以快速轻松完成的可能性 - 但不符合UML(请参阅@ RedBeards的回答)。 这就是Enterprise Architect支持链接属性的方式:

enter image description here

要符合UML标准,您可以使用这样的限定符:

enter image description here

我使用了<<mapping>>原型关联,其中角色名称表示要映射的属性,限定符告诉当前类中要映射的属性。

这可能是一些开销,但无论如何映射意味着您正在处理需要修复的系统。因此,随着时间的推移,您看到的映射越少,系统就越好。

P.S。似乎UML规范中没有正确指定连接器的图形端点。我用OMG提出了issue