Форум Сообщества Аналитиков

Общий раздел => Теория моделирования и нотации => Тема начата: Resen70 от 09 Июля 2023, 10:53:22

Название: UML. Имя Activity
Отправлено: Resen70 от 09 Июля 2023, 10:53:22
Добрый день!

Делаю простую диаграмму Activity Diagram с помощью PowerDesigner.
Диаграмма описывает алгоритм некоторой процедуры, обрабатывающей текущую строку таблицы.
На этой диаграмме несколько объектов Activity по сути являются вызовом одной и той же подпрограммы, выполняют одни и те же действия, но в разных местах алгоритма.
Естественно, для этих объектов Activity я в имени указываю одно и то же имя вызываемой подпрограммы.
Однако, PowerDesigner не дает этого сделать и выдает ошибку о том, что имя не уникально.

Объясните, пожалуйста, в соответствии с требованиями стандарта UML разве имена всех объектов должны быть уникальными?
Какой в этом смысл?
А если имя уникальное, то как на диаграмме отобразить тот факт, что несколько объектов Activity вызывают одну и ту же подпрограмму?
Название: Re: UML. Имя Activity
Отправлено: [прилетело НЛО и...] от 14 Июля 2023, 13:40:17
Activity -- это вызываемая процедура. Она одна.
Шагами алгоритма являются вызовы этой процедуры. Это узлы действия -- Action node. Тип этих узлов Call Behaviour Action. Вызываемое поведение -- Activity -- указывается как параметр узла (не как его имя).
Название: Re: UML. Имя Activity
Отправлено: Resen70 от 21 Февраля 2024, 10:15:41
Здравствуйте!

Недавно делал диаграмму в Enterprise Architect.
И оказалось, что EA свободно дает создавать несколько Activity с одинаковыми именами!

Что это значит? Что EA нарушает стандарт?
Или то, что Activity в EA имеют другой смысл?
Название: Re: UML. Имя Activity
Отправлено: [прилетело НЛО и...] от 23 Февраля 2024, 03:35:21
Стандарт языка не запрещает одноимённые деятельности.
EA не может строить догадки о том, что Вы моделируете.
PD аллертит из-за нарушения встроенных в него правил.

По [моей] идее, очень мало поводов рисовать именно деятельность на диаграмме деятельности. В описанном Вами случае на диаграмме деятельность одна и она выполняет роль рамки всей диаграммы. Это описываемая процедура.
Вызываемая подпрограмма как деятельность на диаграмме не присутствует. Присутствуют её вызовы -- узлы действия, Action Node.
Написанное выше не является требованием стандарта. Это что-то вроде перевода написанного Вами в термины UML.
Название: Re: UML. Имя Activity
Отправлено: Galogen от 22 Марта 2024, 19:08:18
Добрый день!

Делаю простую диаграмму Activity Diagram с помощью PowerDesigner.
Диаграмма описывает алгоритм некоторой процедуры, обрабатывающей текущую строку таблицы.
На этой диаграмме несколько объектов Activity по сути являются вызовом одной и той же подпрограммы, выполняют одни и те же действия, но в разных местах алгоритма.
Естественно, для этих объектов Activity я в имени указываю одно и то же имя вызываемой подпрограммы.
Однако, PowerDesigner не дает этого сделать и выдает ошибку о том, что имя не уникально.

Объясните, пожалуйста, в соответствии с требованиями стандарта UML разве имена всех объектов должны быть уникальными?
Какой в этом смысл?
А если имя уникальное, то как на диаграмме отобразить тот факт, что несколько объектов Activity вызывают одну и ту же подпрограмму?

На самом деле процедура в программе определена одна, а вот вызовов конечно может быть много.
Название: Re: UML. Имя Activity
Отправлено: [прилетело НЛО и...] от 26 Марта 2024, 13:22:06
(http://sp.cs.msu.ru/ooap/trib.png)
Вот иллюстрация.
Деятельность Trib внутри себя содержит три рекурсивных вызова (3 узла действия вызова деятельности). Моделируется вычисление n-ого числа трибоначчи.