Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用EnterpriseArchitect或RationalSoftwareArchitect从源代码创建类图? 我不擅长UML,但我想创建一个基于现有C++代码的类图。其他StAdExpLoad问题表明,两个程序——企业架构师和Rational软件架构师——在“逆向工程”C++代码方面相当好(即,基于现有C++代码创建UML类图)。_C++_Uml_Enterprise Architect - Fatal编程技术网

如何使用EnterpriseArchitect或RationalSoftwareArchitect从源代码创建类图? 我不擅长UML,但我想创建一个基于现有C++代码的类图。其他StAdExpLoad问题表明,两个程序——企业架构师和Rational软件架构师——在“逆向工程”C++代码方面相当好(即,基于现有C++代码创建UML类图)。

如何使用EnterpriseArchitect或RationalSoftwareArchitect从源代码创建类图? 我不擅长UML,但我想创建一个基于现有C++代码的类图。其他StAdExpLoad问题表明,两个程序——企业架构师和Rational软件架构师——在“逆向工程”C++代码方面相当好(即,基于现有C++代码创建UML类图)。,c++,uml,enterprise-architect,C++,Uml,Enterprise Architect,我已经下载了这两个应用程序的试用版。然而,在理解如何在这两个应用程序中创建类图方面,我无法取得任何进展 在Rational软件架构师中,我创建了一个UML项目,但是我不能在程序中找到任何方法来选择和逆向工程我现有的C++代码。 在企业架构师中,我可以导入我的C++代码,但是所有的元素(类)都出现在图中的一个无用的、重叠的对角线上。我尝试了其他设置,比如circle,但这些设置同样无法读取,因为图表太大(由于属性和方法占用了大量空间),所以没有多少平移和缩放是有用的。我想要的是隐藏除类名之外的所有

我已经下载了这两个应用程序的试用版。然而,在理解如何在这两个应用程序中创建类图方面,我无法取得任何进展

<>在Rational软件架构师中,我创建了一个UML项目,但是我不能在程序中找到任何方法来选择和逆向工程我现有的C++代码。 在企业架构师中,我可以导入我的C++代码,但是所有的元素(类)都出现在图中的一个无用的、重叠的对角线上。我尝试了其他设置,比如circle,但这些设置同样无法读取,因为图表太大(由于属性和方法占用了大量空间),所以没有多少平移和缩放是有用的。我想要的是隐藏除类名之外的所有内容(即,不显示任何方法或属性),以便所有20个类在一个屏幕上方便、清晰地显示

但是,我无法找到一种方法来隐藏除类名以外的所有内容。相反,当我在EnterpriseArchitect中发现一个选项时,它似乎隐藏了除类名以外的所有内容,由于某种原因,元素在类图中都消失了,并且没有重复任何步骤&删除和重新添加包,类图重新出现

注:我的C++代码(至少是我选择导入企业架构师的文件)只有大约20个类。

遗憾的是,对这两个程序的文档进行非常仔细的搜索只提供了一般性的信息——据我所知,没有给出关于这两个程序的反向工程的具体说明


如果有人能告诉我创建一个易读、易于导航的图表的基本步骤,我将不胜感激。反向工程(即,C++到UML),只显示类名,这样大约20个类(清晰地)适合于一个屏幕,使用企业架构师或RationalSoftwareArchitect,或任何其他能够做到这一点的工具(我建议EA和Rational只是因为它们在其他StackOverflow答案中被突出显示为可用于此目的的最佳程序)。

此答案适用于EA

您可以递归或不递归地导入单个文件或整个目录。目录导入是目前最常见的情况;单文件导入不允许您自动创建图表

导入源目录时,您可以选择为每个UML包创建图表,或者根本不创建图表。您还可以决定是否为每个源代码目录、命名空间(默认)或文件创建包

如果您的代码只包含20个类,那么它们很可能位于单个目录和/或命名空间中,因此请使用该选项(导入源代码对话框中的包结构)以获得正确数量的图表

在同一个对话框中,有一个按钮“New Diagram Options”,它打开另一个配置对话框,您可以在其中选择图表是否应包含类的属性和/或操作。您还可以根据可见性做出决定,例如仅显示公共成员

此对话框仅影响创建图表时图表中显示的内容。成员仍然被导入,只是没有显示。这听起来像是您想要的

您可以通过双击任何图表的空白区域,或右键单击并选择属性来更改其显示选项。听起来您进入了此对话框并改变了一些内容,但我真的不知道是什么。您所描述的无法恢复原来显示方式的情况,是我从未遇到过的在电子艺界被广泛接受

通过在图表中右键单击并选择“功能可见性”,也可以在每个类的基础上选择显示选项。我不建议您在反向工程图表中使用此选项,我只是为了完整性而提到它

您所描述的布局,所有类都在一个毫无意义的对角线中,向我表明图表在创建后没有正确布局。图表创建是一个两步过程;首先将所有类放到图表上,然后应用布局

这很奇怪,因为EA会自动布局生成的图表,而我无法找到允许您取消选择此行为的选项。如果这种情况持续存在,请向Sparx Systems发送错误报告。您始终可以通过打开图表并从顶级图表菜单中选择布局图来布局图表

最后,如果您的类分布在不同的包名称空间中,以便EA为它们生成多个图表,则您必须手动合并它们。为此,请打开两个图表,在一个图表中选择“全部”(Ctrl-A),复制(Ctrl-C)并粘贴(Ctrl-V),然后要求EA再次布局图表

因此:

  • 在项目浏览器中的空包上单击鼠标右键,选择“代码工程-导入源目录”
  • 在对话框中,选择根目录和源类型
  • 勾选“为每个包创建逻辑图”,并选择最适合源结构的包结构
  • 单击“新建图表选项”,并在新建对话框中取消选中“显示属性”、“显示操作”和“显示属性方法”(如果适用)
  • 好的,两个对话框
  • 如果创建了多个关系图,请将所有类复制到一个关系图中
  • 如果布局看起来不好,请选择Diagram-layout Diagram。