为我的项目报告,我需要展示我构建的软件的类图,其中包含约20个类!问题在于,当我使用StarUML、ArgoUMl等渲染类图为JPEG文件时,我们无法正确地查看细节(由于类的数量很多,图片非常大)。那么,如何正确地处理这种情况?因为报告将在A4纸上打印。
谢谢!
若有20个类,我预期至少有3个子系统(模块、层),可能会更多。
请制作展示它们之间关系的包图,每个子系统都需要一个类图。如果您想要展示特别的内容,请添加相应的类图。每个类图都需要打印成A4大小。
如果不能容易地将图表分割为模块,那么这可能是一个设计上的问题。
将大型图表打印在巨大的纸张上(比如A0上的500个表格)确实很有趣,但实际上并没有太多用处。
制作一个包含20个类的类图是毫无意义的-它实际上展示了什么?在使用类图时,我从未创建过超过5-8个类的图。
要问自己的问题是“我试图通过这个图展示什么有用的信息?”不要为了制作类图而制作类图!
将其分解以展示特定的设计模式、子系统或组件是我发现类图有用的地方。
以下是一些解决方法:
试图将UML视为工程图纸的一个问题就在于:一旦你把它从白板上拿下来,它就成了一种不太适合交流的语言。 它不容易阅读。
将您的类分成几个图表!创建UML模型时,您可以在多个图表中显示(而不是不显示)诸如类之类的模型元素。图表只是您的UML模型的一个视图,以便您可以在特定的图表中突出显示模块。
使用BOUML。当涉及到“是否有免费的UML软件?”这个问题时,ArgoUML和StarUML是每个人都会提到的经典软件。有趣的是,历史悠久的软件并不意味着它们不为人所知或不被使用。在Argo和Star的情况下,历史系数使它们广为人知且被广泛使用。
BOUML可以导出SVG格式。这将解决您的问题。我在这里描述了这个工具。
由于SVG格式,您将能够快速切换鸟瞰图和详细视图。我用Firefox实现这一点。速度非常快。
附注:我刚刚注意到您想要打印报告。那么SVG可能不是您想要的 :\
我认为你试图在一个图表中展示太多东西是固有的问题。你的问题就像是“如何在一句话中使用100个单词而不让读者感到疲倦?”
你可以可能使用FacadePattern进行重构。基本上,它只是将东西分解成模块。例如,Timesheet、PayCheck和BonusRecord可以合并为ManagementSystem。Product和Order可以合并为OperationSystem等。