9

我和其他几位开发人员目前正在清理我们的遗留代码库,主要是分离视觉层和数据层。为了帮助未参与此重构的开发人员理解模型,我想介绍一个(相当非正式的)类图,其中包含关于每个类的范围和所需用途的注释。由于我很懒,我想为此使用 UMLGraph。

但是有一个小问题:我们有一个 perl 代码库,并且重构广泛使用了 Moose 角色。现在我对 UML 的了解还不够好,无法为角色找到合适的抽象——我的第一个猜测是接口,但它们也包含实现;多重继承也没有完全削减它。

我如何(或者你将如何)在类图中正确地表示角色?

4

2 回答 2

8

我不是 UML 专家,但在原始论文中,特征是这样表示的

特征图 http://img.skitch.com/20100422-8iey4atkkama53ni81c3pca562.jpg

于 2010-04-22T12:48:55.657 回答
3

我会将角色表示为具有«role»原型的 UML 类。然后,组成角色的类将与具有原型的角色关联«does»

简单作文 http://img820.imageshack.us/img820/5665/simplecomposition.png

如果我需要使用别名或排除进一步调整角色,我会将其创建为具有正确注释的成员和«adaptation»原型的关联类。关联类的名称无关紧要,因为它在设计中不是真正的类型;所以我会留下它的名字。

具有冲突解决的构图 http://img828.imageshack.us/img828/244/conflictcomposition.png

(请注意,我已经展示了与组合相关的适配“类”以及它所适配的角色。我真正想做的是将它与和之间的关联联系起来MyCompositionMyRole1只是我使用的工具不支持关联类)。

于 2010-07-27T17:31:35.983 回答