我为我的Java应用程序构建UML 2.0类图。在我的代码中,我有HashMap数据类型的属性。但是,据我所知,在UML标准中没有HashMap数据类型。问题是 - 我可以使用HashMap作为类的属性的数据类型吗?类图中的HashMap(UML)
UPDATE
也许在图我只是应指向java.util包?并且可能将Map类放在此包中的图表上?
我为我的Java应用程序构建UML 2.0类图。在我的代码中,我有HashMap数据类型的属性。但是,据我所知,在UML标准中没有HashMap数据类型。问题是 - 我可以使用HashMap作为类的属性的数据类型吗?类图中的HashMap(UML)
UPDATE
也许在图我只是应指向java.util包?并且可能将Map类放在此包中的图表上?
HashMap只是许多java类中的一个。
您可以在UML 2.0类图表中使用任何Java类,接口或原始类型。
UML 2.0 java类图中的任何数据类型都对应于某个java类,接口或原语。
您正在使用UML图来开发您自己的应用程序。所以,为了您的方便,请随意扩展UML 2.0标准。没有人能为此责怪你。
如果你真的有使用Java类的UML模型(我不会推荐它),这仅仅是扩展模型(或库模型)。通过配置文件扩展UML - 在这种情况下,它不是必需的。 – Christian 2012-01-15 15:46:08
只需在UML中使用普通类并将其称为HashMap
即可。 UML是语言不可知的,并且不了解Java的预定义类。或者我误解了你的问题?
无论如何,HashMap不应该出现在你的UML模型中。 HashMap只是一个合格关联的实现。可能它甚至只是一个提高速度的不合格协会。所以如果你有一个带有HashMap的类A,你可以建模一个UML Class A,一个UML Class B和一个从A到B的UML Association。如果通过一个不属于属性的键B.如果你的HashMap键是B的名字(而B有这个名字作为属性),你可以简单地忽略限定词。
为了表示您的关联的实现(您希望使用HashSet实现它),您可以将其添加为关键字或为其创建一个Stereotype(更复杂)。
HashMap的是一流的,它应该在UML模型中肯定存在。然而,并不是每个班级都需要作为班级出现在图表上。 – 2012-01-16 12:15:42
HashMap的可能是这个概念在Java名称,但每一个编程语言有某种Hash<>
或Map<>
类的,和等效东西应该包含在UML,因为很多车型包括哈希或地图容器的属性。
某些工具支持<<map>>
刻板印象;如果你有,我会使用它,如果你主要关心视觉直觉 - 但是不可能说出暗示什么样的关键。
合格的关联图形化UML设备是非直观的,我怀疑工具很难转化为正向代码生成中的任何明智事物。我会避免它。
的另一种方式做到这一点(这是我平时)做的是以下几点:
Hash<Thing, String>
(小心与订单 - 我用值第一,键秒),创建一个名为Hash<Thing,String>
UML类和输出关系Hash<>
然后映射V和K至实际参数Thing
和String
things
其类型为Hash<Thing,String>
类型。MagicDraw例如支持此。
这样做的缺点是,您将看不到客户端类和值类型之间的关联链接(在我的示例中为Thing
)。有利的一面是,如果你发布你的模型作为程序员的规范,这是我们做什么,程序员看到在类表中正确的事,因为你可以看到this example - translation_details attribute
。
在UML这样做基本任务的困难是刚刚的许多问题与UML之一,为什么大多数开发商我今天见面不使用它除了对白板或文档图片。
的属性通常不应该的'HashMap'数据类型。它应该有'Map'数据类型。 –
2012-01-15 08:49:34