首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型系统的企业架构师类图

大型系统的企业架构师类图
EN

Stack Overflow用户
提问于 2016-11-09 04:11:40
回答 1查看 350关注 0票数 0

我正在为我的公司做一个非常大的UML文档项目。我们正在尝试对Enterprise Architect中的现有程序进行建模,以便更好地将其记录下来。由于应用程序的大小,我们选择在主包(如GUI、GPS、Removable Media等)中将图表拆分成单独的包。这对于每个部分的单独类图都很有效。但是,我想将类图从每个包拖放到一个主图上,以显示它们是如何作为一个系统连接起来的。

有没有可能编写一个脚本函数来获取链接的图并自动链接它们,就像代码工程导入的方式一样?我注意到在代码导入的最后一步中,它添加了关联和泛化。我想,如果Sparx在导入代码时可以做到这一点,那么我应该能够在以后的主文档中链接它们。对如何实现这一点有什么想法吗?

如果不可能,有没有办法将创建的图从代码工程链接到我的包中已经存在的图?我认为能够右键单击类图并从主文档中“在包中查找”来查看更多详细信息会很有用。

EN

回答 1

Stack Overflow用户

发布于 2016-11-09 15:37:22

您基本上要做的就是创建一个概览图,然后从浏览器中拖放相关的图。这将提供一个选择框

您只需保留第一个选择Diagram Frame即可。EA将使用图表名称中建议的名称创建一个新对象(您可以保留该名称,但如果需要,也可以对其进行更改)。现在,拖拽的图将出现在概览图上的命名框架内。您不能缩放此图表,因此它将具有原始图表的大小加上它周围的框架。

注意:您可以在上面的对话框中使用Hyperlink来创建用于导航的图表之间的漂亮而简短的链接。

现在来看脚本编写部分。我将使用元语言,但您可能会猜测如何在您首选的语言中使用它。第一件事是定位概览图。您可以通过在浏览器中右键单击它并使用Copy/Copy Node GUID...来查询它的图guid。现在,有了这个id,您可以通过(下面的示例guid )找到它:

代码语言:javascript
复制
overview = rep.GetDiagramByGUID("{A006B95E-1237-4778-A339-D1B407C6FD5C}")

下一步是定位您想要在概述中显示的单个图。这取决于你如何找到它们。最终,它们将位于存储库中的特定位置。要在第一个根的第一个视图中静态加载第一个包中的第一个图,您可以调用

代码语言:javascript
复制
model = repository.Models.GetAt(0)
view = model.Packages.GetAt(0)
package1 = view.Packages.GetAt(0)
dia1 = package1.Diagrams.GetAt(0)

您可能会使用更智能的方法来迭代和查找相关的图表。

现在,有了这些图表对象,您就可以创建图表框架了。这需要放在包里的某个地方。为简单起见,我使用package1,但您最终会将它们放入概览图的包中。

代码语言:javascript
复制
frame = package1.Elements.AddNew(dia1.Name, "UMLDiagram")
frame.Update()
sql = "UPDATE t_object SET PDATA1=" + str(dia1.DiagramID) + " WHERE Object_ID=" + str(overview.diagramID
repository.Execute(sql)

这是伏都教我知道。该应用程序接口不提供将UMLDiagram元素与引用的关系图相链接的方法。所以这必须直接插入到数据库中。

最后,可以将新创建的frame对象放在概览图中:

代码语言:javascript
复制
diagramObj = overview.DiagramObjects.AddNew("l=10;r=110;t=-20;b=-80","")
diagramObj.ElementID = frame.ElementID
diagramobj.Update()

由于这个EA,y轴的坐标从顶部开始是负数(l,r,t,b代表猜测)。EA会将框架扩展到指定大小之上的最小值。

为了查看结果,您需要关闭/打开概览图。我将把它作为练习留给你:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40495564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档