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

×


Проверьте диаграмму деятельности, пожалуйста(Прочитано 59505 раз)
Добрый день.

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



1) замени все жирные горизонтальные линии на ромбики
2) те прямоугольники со скругленными углами где задаются вопросы - тоже ромбики

После этих изменений синтаксис будет верен.



1) замени все жирные горизонтальные линии на ромбики
Это почему?
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.



Да, условия для ромбиков (decision node) пишутся в прикрепленном примечании.



Это почему?
потому что жирные линии - это параллельные потоки.
Если автор именно это имел в виду (я-то подумал, что это условие), то параллельные потоки должны сходится вместе где-то, но не так как нарисовано.
Разошлись на два потока, на два и должны сойтись.



Если автор под жирными линиями подразумевал параллельные потоки, то он вообще ерунду нарисовал.
Самая левая верхняя жирная линия принимает в себя два потока управления. А откуда они взялись?
Ну и далее тоже не лучше....



Если автор под жирными линиями подразумевал параллельные потоки, то он вообще ерунду нарисовал.
Самая левая верхняя жирная линия принимает в себя два потока управления. А откуда они взялись?
Ну и далее тоже не лучше....
Ага согласен с предыдущим оратором 8).
Вместо жирных линий (Fork и Join) нужно элемент Merge. Если я правильно помню Join это операция AND логическая, а Merge - это OR
Другими словами на жирной линии программа остановится, тк она будет ждать когда выполняться все входящие стрелики, а этого не будет потому, что выше у нас принятие решения (только одно из нескольких), в итоге все повиснет :)

Да, условия для ромбиков (decision node) пишутся в прикрепленном примечании.
Или в самом ромбике
« Последнее редактирование: 22 Августа 2008, 18:35:50 от Виталий Григораш »
Если вы не знаете куда идете, то вы вряд ли туда дойдете [Форест Гамп]
www.grigorash.ru



Если я правильно помню Join это операция AND логическая, а Merge - это OR
Merge рисуется ромбиком, а про AND и OR не совсем так. Из начальной точки выходит маркер управления. И он ОДИН. Проходя через ромбики он ОДНИМ и остается и идет только по одной из множества веток. В Fork он ... размножается, а в Join опять ... короче становится ОДНИМ и как правильно написано, дожидается своих товарищей, отпочковавшихся в Fork.



Денис безусловно прав, да и как может быть иначе, если он тренер по UML.

Для того чтобы понять разницу между точкой принятия решения и линеей синхронизации, можно посмотреть в сторону нотации IDEF3. Кроме того можно применить к линии понятие мультиплексор, то есть линия либо клонирует поток либо его сливает в один. Точка принятия решения подобна XOR.

OR читаем так - один или несколько потоков должны начаться (от точки (линии) разделения) или завершиться (в линии соединения). Т.е. могу начаться или закончиться 1 или несколько параллельных процессов

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

Кроме того для понимания диаграммы видов деятельности советую изучить концепции сети Петри или Оценочных сетей.
Это оттуда Денис говорит о маркере - фишке. Т.е. Сеть Петри или ДА мы рассматриваем не как статическую, а как динамическую, задавая так называемую разметку. Начальная разметка задает и начальное состояние наблюдаемого процесса. При этом правила таковы - переход срабатывает тогда и только тогда, если во всех входных позициях есть метка, маркер, фишка.

При этом, если потребовать условие, что в позиции не может быть больше 1 метки - (условие безопасности сети) посути получим Е-сеть
« Последнее редактирование: 22 Августа 2008, 23:32:55 от Galogen »



Или в самом ромбике
Для UML 2 не верно. По крайне мере в спецификации я таких картинок не видел.
« Последнее редактирование: 22 Августа 2008, 22:13:28 от Denis »



В дополнению к словам Эдуарда.
В UML 1 диаграмма деятельности являлись по сути частным случаем диаграммы состояний, т.е. в основе лежала концепция конечного автомата.
В UML 2 диаграмма деятельности основана на концепции сетей Петри, о которой говорит Эдуард.



Если автор под жирными линиями подразумевал параллельные потоки, то он вообще ерунду нарисовал.
Самая левая верхняя жирная линия принимает в себя два потока управления. А откуда они взялись?
Ну и далее тоже не лучше....
Автор под жирными линиями подразумевал, ну, скажем, OR подразумевал. То есть не параллельные потоки.
Согласен, что получилось неправильно, приложу новый вариант.

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

Так, на диаграмме (приложенной к этому сообщению) я пронумеровал три потока выходящие из одного условия. Это потоки 1, 2, 3 (красные цифры). Похожая ситуация и с потоками 4,5,6.

Итак, у меня два вопроса:
1. Подскажите, как рисовать потоки в таких случаях?
2. Может быть, для большей ясности, стоит в зеленых точках проставить ромбики?



1. Подскажите, как рисовать потоки в таких случаях?
В случаях 1,2,3 общими для потоков являются только условия, поэтому ничего страшного не случится, если их продублировать.
А для случая 4 и 5 существует общая часть. Решается как приведено на рисунке.
Трезубец означает ВЫЗОВ некоторой деятельности, которую следует раскрыть на другой диаграмме.

2. Может быть, для большей ясности, стоит в зеленых точках проставить ромбики?
для ясности было бы неплохо



В случаях 1,2,3 общими для потоков являются только условия, поэтому ничего страшного не случится, если их продублировать.
А для случая 4 и 5 существует общая часть. Решается как приведено на рисунке.
Трезубец означает ВЫЗОВ некоторой деятельности, которую следует раскрыть на другой диаграмме.
для ясности было бы неплохо
По потокам 1,2,3. Правильно я понял, что можно около цифры 2 на моей диаграмме повторить условие "Проверка блокировки счета", а из него вывести 2 и 3? Кстати, третий поток, по идее стоит разбить на два. "Нет" (блокировки) и "Арест". На первоначальной диаграмме у меня было так. То есть из условия "Проверка блокировки счета" выходило четыре потока. Но, насколько я понимаю, если в условии есть четыре возможных варинта ответа на условие проверки и в двух случаях движение происходит по одному пути, то эти два потока лучше изобразить одним? А назвать его "Нет или Арест"?

По поводу 4,5. Общая часть это "Постановка в картотеку 2"?



Я позже нарисую. Сейчас нет времени...




 

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