如何在UML类图中使用已知的类和接口

如何在UML类图中使用已知的类和接口,uml,Uml,假设我有两个Java类Foo和Bar,Bar有一个getFoos方法返回一个列表 在Java中,所有类都扩展父类对象。List是一个扩展接口集合的接口,而接口集合又扩展了Iterable。所有这些都是由Java核心提供的,不需要编程。但是,它们有可以使用或重写的方法。可能需要知道接口层次结构,例如,采用Iterable的方法将接受列表 在UML中从这些类绘制类图时,如何处理著名的类对象和接口列表及其超级接口集合和Iterable?我是否也必须将它们绘制到图表中?我能完全跳过它们吗?有没有一个特殊

假设我有两个Java类Foo和Bar,Bar有一个getFoos方法返回一个列表

在Java中,所有类都扩展父类对象。List是一个扩展接口集合的接口,而接口集合又扩展了Iterable。所有这些都是由Java核心提供的,不需要编程。但是,它们有可以使用或重写的方法。可能需要知道接口层次结构,例如,采用Iterable的方法将接受列表


在UML中从这些类绘制类图时,如何处理著名的类对象和接口列表及其超级接口集合和Iterable?我是否也必须将它们绘制到图表中?我能完全跳过它们吗?有没有一个特殊的符号,让我觉得云很好?如果应该限定的普通类是java.awt.List而不是java.util.List,那又如何呢?

UML没有链接到任何语言,JDK类的规范中没有任何内容

许多工具提供了一个配置文件,其中包含已经定义的JDK类

所以,如果你得到了像ImportProfile这样的菜单,你必须查看你的工具,并查看哪些配置文件可用

其他两种解决方案可以是:

在模型中定义所需的最小JDK类集

试图编写一个java程序来生成JDK类的XMI。理论上没有那么复杂,但是JDK包含了不能使用内省的JNI类


UML与任何语言都没有联系,JDK类的规范中没有任何内容

许多工具提供了一个配置文件,其中包含已经定义的JDK类

所以,如果你得到了像ImportProfile这样的菜单,你必须查看你的工具,并查看哪些配置文件可用

其他两种解决方案可以是:

在模型中定义所需的最小JDK类集

试图编写一个java程序来生成JDK类的XMI。理论上没有那么复杂,但是JDK包含了不能使用内省的JNI类


您对如何处理已知类的选择将取决于您计划如何使用UML类图

如果创建UML图的主要目的是向团队传达设计细节,我会选择不包括来自JDK的众所周知的类,也不包括在您的上下文中众所周知的类。原因是你希望你的信息集中。添加这些众所周知的类会很快使图表变得混乱,而不会向消息中添加任何内容。出于同样的原因,我通常会排除getter/setter和任何对理解设计不重要的信息。对于不知名的类,我将包括它们,因为它们传递的信息团队不容易访问


如果您的类图将在MDA中使用,即它将用于生成系统实现,那么您必须包括已知类。

您对如何处理已知类的选择将取决于您计划如何使用UML类图

如果创建UML图的主要目的是向团队传达设计细节,我会选择不包括来自JDK的众所周知的类,也不包括在您的上下文中众所周知的类。原因是你希望你的信息集中。添加这些众所周知的类会很快使图表变得混乱,而不会向消息中添加任何内容。出于同样的原因,我通常会排除getter/setter和任何对理解设计不重要的信息。对于不知名的类,我将包括它们,因为它们传递的信息团队不容易访问


如果您的类图将用于MDA,也就是说,它将用于生成系统实现,那么您必须包括知名的类。

UML有点像武术。每个从业者都有自己的风格/风味。我会向那些使用UML的人咨询他们的期望。一般来说,用Java层次结构来扩充它可能不是一个好主意——除了一些例外,也许.UML有点像武术。每个从业者都有自己的风格/风味。我会向那些使用UML的人咨询他们的期望。一般来说,用Java层次结构扩充它可能不是一个好主意——也许有一些例外。我同意,大多数支持从UML生成Java的工具已经有一个模型库,其中定义了所有JDK类。您还可以建模所需的JDK类或反转JDK…我同意大多数支持从UML生成Java的工具已经有一个模型库,其中定义了所有JDK类。您还可以建模所需的JDK类或反转JDK…我决定不包括所有这些类,而是绘制一个
实际上,在编辑器中,我必须使用完全限定的类名来说明我绝对需要的类,它们是Exception、RuntimeException和Enum。这可能是非标准的,但它被认为是足够的工作。我决定不包括所有这些内容,并绘制一个云,这实际上是可以与编辑器一起使用的,对于我绝对需要澄清的类,我必须使用完整的限定类名,这些类是Exception、RuntimeException和Enum。这可能是不标准的,但被认为是足够的工作。