我正在开发由 17 个类组成的 java gui 应用程序,并且几乎在所有类中都使用了 java swing 组件。我还使用外部库中的新组件。
我的问题是:是否有必要在 UML 图中包含所有 swing 类?或者我可以只用 int、string 等方法和变量为每个类绘制类图吗?
我在网上搜索过,但答案各不相同。一些消息来源建议包括所有使用的类,而另一些消息来源则主张仅专注于描述自定义类之间的关系。
良好的 UML 实践是使用较小的图,每个图都有明确的重点。
用一个类图包含所有可能的类(包括库组件)的想法是对建模的一种根本误解,由于复杂性,导致除了作者之外没有人能够理解图。
通常,实践是 UML 中的语言配置文件定义公共语言特定类型(然后您可以将其用于属性),并仅显示图表中真正需要的库类。
UML 规范表明,这是不是基于意见的:关于图表的附录 A 清楚地表明图表不必显示所有内容:
相应的 UML 图是 UML 模型部分的图形表示。
在其他多个地方,UML 规范表明符号中缺少某些元素并不意味着模型中不存在该元素。
UML 规范不知道如何选择显示或不显示的元素。幸运的是,UML 的发明者 Grady Booch、James Rumbaugh 和 Ivar Jacobson 在“UML 用户指南”(第 113 页)中提供了一些指导:
结构良好的类图专注于传达系统静态视图的一个方面,仅提供理解该方面所必需的元素,...
并且:
...提供与其抽象级别一致的细节,并且仅提供对于理解至关重要的装饰,...