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

×


Проверьте диаграмму деятельности, пожалуйста(Прочитано 49756 раз)
Я сейчас чего-то не понимаю зачем здесь вообще параллельные потоки? Как могут потоки, например, 1 и 2 выполняться параллельно, если только один из них имеет место быть (в зависимости от результата операции "Проверка блокировки счета")?



А откуда взялись параллельные потоки? Там же условия прописаны. Я их как параллельные не рассматривал.
Или из ромбика может только два потока выходить?

А так как на этой диаграмме, так правильно?



Параллельные потоки взялись из вертикальных жирных линий.
Я изначально подумал, что никаких параллельных потоков тут нет и предложил заменить их на ромбики, тогда все бы встало на свои места.

Но потом начались разговоры про AND и OR ...

На последней диаграмме не все верно...
1) с точки зрения правильно синтаксиса нельзя писать тексты типа "Счет заблокирован на списание?" вне комментариев.
2) Нельзя, чтобы в одну деятельность ("Постановка в картотеку 1"), входило больше чем 1 стрелочка. В данном примере стрелочки должны сойтись в ромбике, а потом из ромбика одна стрелочка должна указывать на деятельность. Если этого не сделать, а оставить как есть, то измениться семантика.



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

474, ниже диаграммка подтверждающая слова Дениса.
Если вы не знаете куда идете, то вы вряд ли туда дойдете [Форест Гамп]
www.grigorash.ru



А если вообще надписи у ромбиков убрать и написать условия перехода на стрелках? Это правильно будет?
Как в этом примере.



А если вообще надписи у ромбиков убрать и написать условия перехода на стрелках? Это правильно будет?
Да, правильно.

Только лучше писать условия не так - [Есть дополнительно соглашение] и [Нет дополнительного соглашения], а вот так
[Есть дополнительно соглашение] и [else]. Но это просто рекомендация.

Ну и наконец можно пооптимизировать условия.
Например, от действия "Зарегистрировать в книге" до "Постановить в картотеку 1" ведет два пути
1) [ПТА]
2) [ПТ БА] и [Нет дополнительного соглашения]
 
Ну так и надо писать на одной стрелке [ПТА или (ПТ БА и Нет дополнительного соглашения)].

Соптимизировать можно много на этой диаграмме....




Выделить стрелку (или группу стрелок) - Format - LineStyle-Rectilinear - это позволит размещать стрелки, как душе угодно, а то как то не красиво получается.
« Последнее редактирование: 26 Августа 2008, 09:14:42 от anastazya »



Я, кстати, не использую линию синхронизации, если нет распараллеливания потоков. Т.е. если есть "условие" и из нее исходит две стрелки, то в конечном итоги они приходят либо к "окончанию", либо к "действию", напрямую, без дополнительного "объединения". Что скажут знатоки UML 2?
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.



Выделить стрелку (или группу стрелок) - Format - LineStyle-Rectilinear - это позволит размещать стрелки, как душе угодно, а то как то не красиво получается.
На вкус и цвет, как говорится.. Мне так больше нравится и моим пользователям понятнее.
Кроме того в моем EA [6.0.780] нет такого стиля для Control Flow.



2) Нельзя, чтобы в одну деятельность ("Постановка в картотеку 1"), входило больше чем 1 стрелочка. В данном примере стрелочки должны сойтись в ромбике, а потом из ромбика одна стрелочка должна указывать на деятельность. Если этого не сделать, а оставить как есть, то измениться семантика.
А какже дядька Буч?
"В точку ветвления может входить ровно один переход, а выходить - два или более. Для каждого исходящего перехода задается булевское выражение, которое вычисляется только один раз при входе в точку ветвления. Ни для каких двух исходящих переходов эти сторожевые условия не должны одновременно принимать значение "истина", иначе поток управления окажется неоднозначным. Но эти условия должны покрывать все возможные варианты, иначе поток остановится. (Ветвление семантически эквивалентно множественным переходам со сторожевыми условиями)."
Просвятите плз.




А какже дядька Буч?
Буч говорит о другом. Читаем внимательнее.



Денис, если не сложно, объясните плз. Судя по рисунку Виталия в точку ветвления входит три стрелки. Буч говорит о том, что возможна только одна. В чем у меня непонятки?
« Последнее редактирование: 26 Августа 2008, 16:12:01 от anastazya »



Точка ветвление - это ромбик, а деятельность - это прямоугольник со скругленными углами.
В посте, на который вы ссылаетесь я говорю о ДЕЯТЕЛЬНОСТИ, а цитата Буча описывает ВЕТВЛЕНИЕ.

Судя по рисунку Виталия в точку ветвления входит две стрелки.
Это не точка ветвления, а точка объединения (merge). Графически выглядит тоже как ромбик.



Т.е. если есть "условие" и из нее исходит две стрелки, то в конечном итоги они приходят либо к "окончанию", либо к "действию", напрямую, без дополнительного "объединения".
"Окончание" - это узел графа деятельности, в который может входить много стрелок. Он не "действие".

С настоящим "действием" все не так. Согласно идеологии сетей Петри по ребрам графа деятельности ходят маркеры и "действие" может начать выполняться только тогда, когда на ВСЕХ входах у него будут маркеры.
Рисуя так, как предлагает BAS вы просто "вешаете" вашу модель.

Все, что было сказано, относится к UML2. В UML1 нотация с двумя входящими стрелками была бы нормальной, так как там действие/деятельность - частный случай состояния.

Еще одно отступление.
BAS (может быть сам того не подозревая) сказал очень правильную вещь. Он в своем посте употребил слово "действие", а не "деятельность".

Напомню, что действие - непрерываемое вычисление, длящееся относительно короткое время, а длительность - прерываемое вычисление, которое может длиться достаточно долго.

Дело в том, что на диаграммах дейтельности в UML2 вообще нет "деятельностей", там только "действия", т.е. короткие атомарные вычисления.
И то, что кажется деятельностью. Например, "зарегистрировать в книге", в терминах UML2 не деятельность, а действие - "выполнить деятельность Зарегистрировать в книге", которую вы должны раскрыть (если нужно) на другой диаграмме деятельности.



Денис, большое спасибо за пояснения. Я UML2 не изучала. Вчера нашла материалы и действительно вынуждена с вами согласиться. Может посоветуете толковую литературу или источники с материалами по UML2, желательно на русском языке?




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19