В чем разница между инициализаторами переопределенных атрибутов и заданным состоянием выполнения в Enterprise Architect, и почему они ведут себя по-разному? - PullRequest
0 голосов
/ 05 июня 2018

это мой первый вопрос по SO, поэтому, пожалуйста, проявите некоторую любезность на моем пути к формулировке совершенных вопросов.

В моем текущем проекте я пытаюсь смоделировать развертывания в EA v14.0, где я хочу, чтобы компоненты былиразвертывается в средах исполнения и дополнительно устанавливает для них некоторые значения.

Однако, в зависимости от того, как я развернул (как Deployment Artifact или как Component Instance), я получаю разные варианты поведения.На Deployment Artifacts мне предлагают Override Attribute Initializers.На Component Instance мне предлагают Set Run State.Когда я пытаюсь установить атрибут на DeploymentArtifact, я получаю сообщение об ошибке, что инициализатор для переопределения отсутствует.Когда я пытаюсь установить состояние запуска на Component Instance, я могу установить значение.Однако затем я получаю сообщение об ошибке проверки UML о том, что я не должен связывать экземпляр компонента со средой выполнения:

MVR050002 - ошибка ((развертывание)): развертывание недопустимо для экземпляра: компонент1-> ExecutionEnvironment1

  1. Вот как я начал.Я создал компонент со спецификацией развертывания: enter image description here

  2. Затем я создал диаграмму развертывания для развертывания моего компонента: enter image description hereОдин раз как Deployment Artifact и один раз как Component Instance.

  3. Когда я пытаюсь переопределить инициализаторы атрибутов Override Attribute Initializers, я получаю сообщение об ошибке DeploymentArtifact не имеет инициализаторов атрибутов для переопределения`.

  4. Когда я пытаюсь установить состояние выполнения Set Run State, я действительно могу ввести значения enter values.

  5. Однако, когда я затем проверяю свой пакет, я получаю вышеупомянутое сообщение об ошибке.

Может кто-нибудь объяснить, что я делаю неправильноили как это должно работать?

Большое спасибо за помощь!

1 Ответ

0 голосов
/ 05 июня 2018

На самом деле здесь есть несколько вопросов.

  1. Ваша 2-я диаграмма недействительна (и, вероятно, EA уже должен был стонать здесь, поскольку это происходит в V12).

    Вы можете развернуть артефакт на экземпляре узла и использовать спецификацию развертывания в качестве класса ассоциации, как показано на с.654 спецификации UML 2.5:

enter image description here

Но вы не можете развернуть что-то на чем-то абстрактном.Вам понадобятся экземпляры - с обеих сторон.

Вы можете отключить советник от предупреждений, отключив строгую проверку коннектора в опциях:

enter image description here


Чтобы ответить на ваш вопрос в заголовке: Override initializer просматривает список атрибутов классификатора объекта и предлагает вам возможность установить любые состояния выполнения (то есть значения атрибутов во время выполнения).Кроме того, Set Run State позволяет устанавливать произвольные пары значений ключа, которые не являются атрибутами классификатора.Это должно выражать, например, размер ОЗУ в узлах или тому подобное.
...