Могу ли я сказать, что 3 функции выполняются одна за другой?Поскольку они представляют собой сплошную стрелку
Стрелки указывают синхронные сообщения, поэтому второе сообщение не может быть отправлено до окончания выполнения функции A , первое не может быть отправлено доконец выполнения функции B и ExecutionSpecification на линии жизни Объект A не может быть завершен до окончания выполнения функции C ,
объект Созданные 3 действия на одной панели активации
Все эти три сообщения могут начинаться с одной и той же ExecutionSpecification на линии жизни Объект A
3 действия ... полученный объектом B с той же строкой активации
Это недопустимо, ExecutionSpecification представляетвыполнение одного и только действия / поведения, поэтому вам нужно три ExecutionSpecification на линии жизни объекта B , вы не можете иметь только одно.
Действительная диаграмма можетбыть:
![enter image description here](https://i.stack.imgur.com/ujDiM.png)
или также показывать возврат:
![enter image description here](https://i.stack.imgur.com/vOzbG.png)
(для них function_c
вызывается не сразу, когда возвращается function_b
, выполнение на объекте делает «что-то» до введения задержки, а также «что-то» после)
из вашего замечания:
Из требований, согласно которым эти 3 функции должны быть выполненыредактируется объектом B одновременно.Это означает, что я должен использовать линейную стрелку вместо твердой стрелки?И могу ли я использовать ту же спецификацию ExecutionSpecification для objectB, если функции выполняются одновременно?
Если вы используете асинхронные вызовы (открытая стрелка), ответного сообщения нет, поэтому object a не можетзнать, когда выполнение заканчивается, и он может немедленно отправить следующее сообщение.
Тот факт, что 3 функции должны выполняться объектом b одновременно является чем-то другим, асинхронные вызовы могут выполняться последовательно получателем, а тот факт, что получатель выполняет параллельные выполнения, не подразумевают асинхронные вызовы, но да, вы можете использовать асинхронные вызовы.
Вам все еще нужно использовать 3 ExecutionSpecification для объекта b , чтобы показать одновременное выполнение, просто используйте объединенный фрагмент "par" .
Так, например: