什么是Enterprise Architect中的Override Attribute Initializers和Set Run State,它们之间的区别是什么,为什么它们的行为不同?

3

这是我在SO上的第一个问题,所以请在我的完美提问之路上行使一些善意。

在我的当前项目中,我尝试在EA v14.0中对部署进行建模,其中我希望将组件部署到执行环境并进一步设置它们的某些值。

但是,根据我如何部署(作为Deployment ArtifactComponent Instance),我会得到不同的行为。在Deployment Artifacts上,我被要求Override Attribute Initializers。在Component Instance上,我被要求Set Run State。当我尝试在DeploymentArtifact上设置属性时,我收到错误消息,说没有初始值设定项可覆盖。当我尝试在Component Instance上设置运行状态时,我可以设置值。但是,然后我会收到UML验证错误消息,告诉我不要将组件实例链接到执行环境:

MVR050002 - error ( (Deployment)): Deployment is not legal for Instance: Component1 --> ExecutionEnvironment1

  1. 这是我开始的方式。我创建了一个带有部署规范的组件:enter image description here

  2. 然后我创建了一个部署图来部署我的组件:enter image description here一次作为Deployment Artifact,一次作为Component Instance

  3. 当我尝试Override Attribute InitializersOverride Attribute Initializers时,我收到错误消息DeploymentArtifact has no attribute initializers to override`。

  4. 当我尝试Set Run StateSet Run State时,我实际上可以输入值enter values

  5. 但是,当我验证包时,我会收到上述错误消息。

有人能解释我做错了什么或者这应该如何工作吗?

非常感谢您的帮助!


我认为最近在Sparx的论坛上已经讨论过这个问题,结论是(如果我没记错的话)关闭严格连接器检查。 - qwerty_so
你是如何创建 DeploymentArtifact::Component1 的? - qwerty_so
@ThomasKilian 我从项目浏览器中将 Component1 拖到图表中,并选择“放置为” Artifact(而不是LinkInstance)。 - Irene Hofstetter
第二张图片显示“名称:char”。这只能通过特征/分类器属性手动创建。 - qwerty_so
我正在使用EA v14,并按照描述创建了图表。为了使继承的“名称”属性在实例上 可见,我还从“Compartment Visibility” “Show Elements Compartments”对话框中选择了以下项目:AttributesInherited Attributes。也许你正在使用不同的版本。无论如何感谢你的帮助。 - Irene Hofstetter
显示剩余4条评论
1个回答

0

实际上这里有多个问题。

  1. 你的第二个图表是无效的(而且很可能EA早就应该在V12中抱怨了)。

    您可以在节点实例上部署工件,并像UML 2.5规范第654页所示使用部署规范作为关联类:

enter image description here

但是你不能在抽象的东西上部署某些东西。你需要实例 - 在两侧都需要。

您可以通过在选项中关闭严格连接器检查来使EA静音警告:

enter image description here


回答你标题中的问题:覆盖初始化器会查看对象分类器的属性列表,并提供设置任何运行状态(即在运行时设置属性值)的选项。此外,设置运行状态允许设置任意键值对,这些键值对不是分类器属性。这是为了表达例如节点中的RAM大小或类似的内容。

感谢您的解释和帮助。关于您的第一点:我已经在执行环境实例中进行了测试,仍然收到相同的错误消息,因此从部署工件实例和组件实例到执行环境实例的EA部署都是无效的。关于您的第二点:我不明白为什么我不能覆盖部署工件实例上的值。据我所知,这是一个实例,并且我的示例分类器定义了属性。所以我应该能够覆盖它们。我是否误解了您的意思?再次感谢您的帮助。 - Irene Hofstetter
我将安装一个V14测试版本(再次安装;它的缺陷比功能更多...)并在那里尝试。 - qwerty_so
抱歉,我在V14安装方面遇到了问题。需要一些时间来解决 :-/ - qwerty_so

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接