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

Общий раздел => ПО Аналитика => Sparx => Тема начата: Skazo4Nick от 20 Мая 2013, 20:52:29

Название: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Skazo4Nick от 20 Мая 2013, 20:52:29
есть ли такой функционал в EA?
и расскажите пожалуйста подробно как им воспользоваться?
к сожалению поиск информации по данному вопросу не дал никаких результатов

задача которую хочу этим решить:отобразить альтернативные потоки сценария ВИ на этой диаграмме
картинку где это видел прилагаю.
спасибо.
сори не видел подраздела...
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Galogen от 20 Мая 2013, 23:15:37
Примерно так, особо никакими справками не пользовался
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Skazo4Nick от 21 Мая 2013, 00:08:28
подскажете как это у вас так получилось?)))))))))
то что на втором скриншоте...
я уже и справку всю облазил, и гугл прошерстил я этого понять не могу уже больше чем полгода... ну правда подскажите, а?)))
и английский я плохо знаю... да...
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Thinkler от 21 Мая 2013, 12:52:09
Судя по названиям диаграмм - uml2style и uml15style. В первом случае использовалась нотация UML 2, во втором - UML 1.5
Насколько я знаю, SPARX поддерживает обе нотации, но вторым вариантом я ни разу не пользовался. Мне тоже интересно.
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Виктор Малышко от 21 Мая 2013, 21:11:53
Простите за офтопик, но уж больно диаграмма в заглавном сообщении курьёзная. Интересно, какой смысл (кроме иллюстрации UML конструкций) в неё вкладывал автор? А. Леоненков, если не ошибаюсь.
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Galogen от 21 Мая 2013, 23:30:03
Простите за офтопик, но уж больно диаграмма в заглавном сообщении курьёзная. Интересно, какой смысл (кроме иллюстрации UML конструкций) в неё вкладывал автор? А. Леоненков, если не ошибаюсь.
Виктор, вот вот я тоже, когда пытался изобразить ее никак не мог полностью ее повторить :)
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Galogen от 21 Мая 2013, 23:40:06
подскажете как это у вас так получилось?)))))))))
Да вы меня сейчас совсем в краску вгоните. Неужели я такой сообразительный, елы палы.

1. Делаешь один lifeline
2. Делаешь второй lifeline
3. От 1 проводишь стрелку сообщения 1
4. От 1 проводишь стрелку сообщения 2
5. Жмешь правой кнопкой мыши по второму сообщению
6. Из контекстного меню выбираешь Branch with Previous Message - Сделай ветвью предыдущего сообщения - в свойствах сообщения есть разделы для условий и прочего
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Skazo4Nick от 22 Мая 2013, 00:34:16
А. Леоненков, если не ошибаюсь.
не ошибаетесь) насколько я понял из прилагаемого текста именно виды конструкций там и перечислялись...
выбираешь Branch with Previous Message

Спасибо большое)))
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Виктор Малышко от 22 Мая 2013, 18:28:09
Дело в том, что нарисован антипаттерн "Прикладная телепатия". Нижнее сообщение -- возврат -- отправляется 2-м объектом 1-му в ответ на сообщение от 3го. Но как второй узнаёт, что возврат должен произойти не отправителю сообщения, а другому объекту? Прикладная телепатия.
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Skazo4Nick от 22 Мая 2013, 23:21:45
Дело в том, что нарисован антипаттерн "Прикладная телепатия".
хм... спасибо.
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Galogen от 22 Мая 2013, 23:48:57
Дело в том, что нарисован антипаттерн "Прикладная телепатия". Нижнее сообщение -- возврат -- отправляется 2-м объектом 1-му в ответ на сообщение от 3го. Но как второй узнаёт, что возврат должен произойти не отправителю сообщения, а другому объекту? Прикладная телепатия.
Вот, что значит профи. +1
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Skazo4Nick от 23 Мая 2013, 17:38:46
Вот, что значит профи. +1
Цитировать
Условием ветвления может служить сумма снимаемых клиентом средств со своего текущего счета. Если эта сумма превышает $1000, то могут потребоваться дополнительные действия, связанные с созданием и последующим разрушением объекта 4. Если же сумма превышает $50, но не превышает $1000, то управление передается объекту 3. И, наконец, если сумма не превышает $50, то управление получает объект 2. При этом объекты 1, 2 и 3 постоянно существуют в системе. Объект 4 создается, только если справедливо первое из альтернативных условий. В противном случае он может быть никогда не создан. После выполнения требуемых действий объекты 2 и 3 просто информируют объект 1 о завершении соответствующих операций, не требуя от него никаких действий (пунктирная стрелка).
вот что имел ввиду автор... только не пойму почему у него в тексте последнее предложение не совпадает с диаграммой.
так все таки нельзя делать?.. должен быть return напрямую к первому объекту?..
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Виктор Малышко от 23 Мая 2013, 17:58:15
От следующей картинки только хуже. Сообщение из одной условной ветки приходит в активацию ("фокус") другой. Вот так фокус-покус. Описание не соответствует диаграмме.
Название: Re: Ветвление потока управления в EA(диаграмма последовательности)
Отправлено: Виктор Малышко от 23 Мая 2013, 22:20:42
Начиная рисовать диаграммы последовательности, стоит придерживаться следующих рекомендаций:
- не рисуйте спецификации выполнения (или активации, или фокусы);
- если рисуете спецификации выполнения, то не рисуйте синхронные сообщения;
- если рисуете синхронные сообщения, следите, чтобы два разных сообщения не входили в одну и ту же спецификацию выполнения, и не рисуйте явные возвраты;
- если рисуете явные возвраты, следите, чтобы они шли туда, откуда пришло сообщение, начавшее спецификацию выполнения.
Если придерживаться этих пунктов, то можно сократить количество ошибок на диаграмме последовательности, даже не вникая при этом в смысл, придаваемый спецификациям выполнения.
По тексту Леоненкова диаграмма должна быть такой:
(http://www.websequencediagrams.com/cgi-bin/cdraw?lz=T2JqMS0-K09iajQ6IFtjPjEwMDAkXQpPYmo0LS0-LU9iajE6CmRlc3Ryb3kgT2JqNCAKACkKMzogWyhjPD0AMAUpICYgKGM-NTAkKQA7BTMANgoAWwoyOiBbYzw9NQBdBzIAWgoKCgoK&s=vs2010)
Если хочется, чтобы во второй альтернативе взаимодействовали не только объекты Obj1 и Obj3, но и Obj3 и Obj2, то картинка будет такой:
(http://www.websequencediagrams.com/cgi-bin/cdraw?lz=T2JqMS0-K09iajQ6IFtjPjEwMDAkXQpPYmo0LS0-LU9iajE6CmRlc3Ryb3kgT2JqNCAKACkKMzogWyhjPD0AMAUpICYgKGM-NTAkKQA7BTMAUQYyOgpPYmoyAEYHMwAJBTMAUQoAdgoyOiBbYzw9NQB4BwAqCDE6CgoKCgo&s=vs2010)
а текст изменится на: Если же сумма превышает $50, но не превышает $1000, то управление передается объекту 3, который далее делает запрос к объекту 2, дожидается ответа и осуществляет возврат объекту 1.