UML - 如何管理大类图?

时间:2009-06-06 20:21:46

标签: c++ uml

对于我的项目报告,我需要显示我构建的软件的类图,其中大约有20个类!问题是,当我在jpeg文件中渲染类图(使用StarUML或ArgoUMl或其他......)时,我们无法正确地看到细节(因为大量的类而非常大)。那么,如何正确管理这种情况呢?由于报告将打印在A4页面上?

谢谢!

8 个答案:

答案 0 :(得分:21)

有20个课程,我希望至少有3个子系统,(模块,图层),可能更多

制作包图,显示它们之间的关系,每个子系统的一个类图。 为要显示的特殊事物添加类图。在A4上打印每个。

如果你不能轻易地将图表拆分成模块,我会认为这是一种设计气味。

在巨大的纸张上打印大图表很有意思(比如A0上的500张表格;-)但它真的没什么用处。

答案 1 :(得分:4)

制作一个包含20个类的类图是完全没用的 - 它实际显示了什么?使用类图时,我从来没有创建过超过5-8个类的图表。

要问自己的问题是“我试图用这个图表显示哪些有用的信息?”。不要为了它而生成类图!

分解以演示特定的设计模式,子系统或组件是我发现的类图有用的。

答案 2 :(得分:2)

您可以做一些事情:

  1. 更大的纸张
  2. 不显示方法签名
  3. 不显示私人方法
  4. 将问题分成更多包
  5. 每个图表的课程数量较少
  6. 这是尝试将UML视为工程图纸的问题之一:一旦你从白板上解决它,它就是一种糟糕的沟通语言。它看起来不太好。

答案 3 :(得分:2)

另一种方法是不显示所有成员而只显示主要成员,这会减少类的大小,然后减少图的大小。当然,假设您使用的工具允许选择哪些操作/属性/关系必须可见,但此绘图设置是经典的

可能是你的工具也有绘图设置隐藏操作的某些部分以减小宽度,例如显示或不显示参数,或它们的方向,类型等

Bouml(http://bouml.free.fr)拥有所有这些绘图选项,并且据说有PNG和SVG导出

最好的问候和快乐的建模

布鲁诺

答案 4 :(得分:1)

通常,处理此问题的一种好方法是为软件的不同模块或功能区域创建不同的图表。或者,您可以在多个页面上打印单个图像,并显示如何组合它们以形成完整图像。

答案 5 :(得分:1)

使用BOUML。 ArgoUML和StarUML是经典的,每个人都提到“有没有免费的UML软件?”。有趣的是,作为一个历史性的软件不会使软件未知和未使用。在Argo和Star的情况下,历史系数使它们被人知道和使用。

BOUML可以导出到SVG。这将解决您的问题。我描述了工具here

借助SVG,您可以快速切换鸟瞰图和详细视图。我是用Firefox做的。它速度很快。

PS。我刚刚注意到你要打印报告。那么SVG可能不是你想要的:\

答案 6 :(得分:1)

我认为这是一个固有的问题,你试图在一个图表中显示这么多东西。你的问题就像“我怎么能在一个句子里放100个单词而不让读者厌倦呢?”

您可以使用FacadePattern 重构它。基本上它只是将东西分解成模块。对于例如时间表,PayCheck,BonusRecord可以进入ManagementSystem。产品,订单可以分为OperationSystem等。

答案 7 :(得分:0)

在几个图表中拆分你的课程!在创建UML模型时,您可以在多个图表中显示模型元素,例如显示的类(不是)。图表只是UML模型的视图,因此您可以突出显示特定图表中的模块。