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

×


Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Vadim

Страницы: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 »
31
Предметная область понятна. Теперь дальше.
Необходимо представить зависимости между этими группами наиболее удобно: Например если в качестве инструмента выбран молоток, то множество материалов сужается до (гвозди, чопики), а метод обработки до (забивать)
Есть варианты изображения данной зависимости с помощью паттерна фабрика, но хотелось бы что то более удобное(понятное даже человеку не знакомому с UML)/

Если коротко, нужна диаграмма отображающая сценарий, при котором выбор одного элемента множества, отсекает объекты из другого множества, не имеющих связи с выбранным объектом.
Непонятно, может "варианты изображения данной зависимости с помощью паттерна фабрика" покажете, будет яснее.

Ещё вопрос - пусть содержимое:
  • гвоздь, забивание, молоток
  • гвоздь, вытаскивание, молоток-гвоздодер
  • гвоздь, забивание, молоток-гвоздодер
  • шуруп, вкручивание, отвертка
После выбора гвоздя что оказывается:
  • есть 2 метода обработки: забивание и вытаскивание; есть 2 инструмента: молоток и молоток-гвоздодер
  • есть 3 пары: забивание, молоток; вытаскивание, молоток-гвоздодер; забивание, молоток-гвоздодер
?

32
Хочу определить детали структуры информации. Для этого использую пример, в котором в каждом пункте делается попытка добавления одной минимальной порции данных. Минимальная порция данных - связка материала, метода обработки и инструмента. Любой из элементов связки может быть не заполнен (NULL).
Наращиваем содержимое:
  • гвоздь, забивание, молоток - принимается
  • гвоздь, вытаскивание, молоток-гвоздодер - принимается
  • гвоздь, забивание, молоток-гвоздодер - принимается
  • гвоздь, забивание, молоток - не принимается (дублирование)
  • гвоздь, забивание, NULL - принимается
  • гвоздь,  NULL, молоток - принимается
  • NULL, забивание, молоток - принимается
  • гвоздь, забивание, NULL - не принимается (дублирование)
  • гвоздь, NULL, NULL - не принимается (мало заполненных элементов)
  • NULL, забивание, NULL - не принимается (мало заполненных элементов)
  • NULL, NULL, молоток - не принимается (мало заполненных элементов
Правильно?

33
Еще 2 ситуации возможны?:
  • шурупы обрабатываются отверткой, но не определен метод обработки
  • кручение делается отверткой, но не определен материал

34
шурупы должны удаляться, но нет ни одного инструмента для этого?
Такая ситуация допустима?

35
Ещё вопрос по предметной области: может быть есть отдельная связь между материалами и методами обработки (гвозди могут забиваться и вытаскиваться, чопики - забиваться и удаляться [не равно вытаскиваться!]). И уже экземпляры этой связи связываются с инструментами (несколькими, только одним или вообще с нулем!), например гвозди доставаться могут только молотком-гвоздодером, а чопики могут удаляться и молотком-гвоздодером, и отверткой, а шурупы должны удаляться, но нет ни одного инструмента для этого?

36
Для начала хорошо бы определить характер зависимости: нет ли среди 12 возможных (под)зависимостей функциональные (12 зависимостей получаются для 3 групп, если групп больше, то больше и зависимостей http://www.academia.edu/13759154/The_meaning_of_multiplicity_of_n-ary_associations_in_UML таблица 4). По примеру это возможно, например: молоток позволяет только забивать, а отвертка - только закручивать.

37
Авторы стандарта, в частности Бок (мама дорогая, сколько лет тому назад) смотрят на прерываемые регионы с использованием метафоры обработки исключительных ситуаций. Вероятно, Вы используете другую метафору. Это ни плохо, ни хорошо. Я пока толкую, исходя из общей с авторами стандарта метафоры.

Можно вводить собственные термины, такие как "по смыслу прерывающее ребро". Но это оправдано, к. м. к., тогда, когда стандартная терминология неудобна или не применима.
Я тоже хочу использовать общую с авторами стандарта метафору, но пока её не осознал!

У всех виденных мной примеров на прерываемые регионы конструкция на прерывание одна и та же - узел приёма события без входящих ребер и единственное выходящее из него прерывающее ребро. Если есть другие примеры - дайте, пожалуйста, ссылки.

38
Как по мне, в любой из двух реализаций придётся указать прерывающего и прерываемого. Симметрии в решениях не вижу. Язык не даёт подходящего средства.
Может мы слегка запутались. Симметричными я считаю только решения во вложении. Возможно им надо добавить "руну Соул".
ДД -- не мой конёк.
И не мой - я опрометчиво полагал, несмотря на отсутствие практики использования, что в ДД нет ничего "такого".
В стандарте сказано, что "молния" прерывает, а обычное ребро -- нет. Т. е. не всякое ребро через границу прерывающее. Также там есть Figure 15.73.
Figure 15.73 - 4 случая ребра через границу:
  • от OrderCancelRequest к CancelOrder - ребро с молнией и по смыслу прерывающее
  • от ReceiveOrder к CloseOrder - ребро без молнии, а по смыслу прерывающее
  • от FillOrder к SendInvoice - ребро без молнии и по смыслу прерывания нет
  • от ShipOrder к CloseOrder - опять ребро без молнии, а по смыслу прерывающее
Есть подозрение, что на Ваши последние варианты надо добавить "руну Соул".
Возможно

39
Угу.
Тогда есть 6 вариантов развития событий - по количеству возможных перестановок моментов окончания A, B, C(A), C(B):
  • A, C(A), B, C(B) - прерывается B, а до C(B) даже не доходит
  • A, B, C(A), C(B) - прерывается C(B)
  • A, B, C(B), C(A) - прерывается C(А)
  • B, C(B), A, C(A) - прерывается A, а до C(A) даже не доходит
  • B, A, C(B), C(A) - прерывается C(А)
  • B, A, C(A), C(B) - прерывается C(B)

40
По теме
P. S. К делу не относится, но задачка от авторов "UML3" (см. слайды 50-51) сомнительная какая-то. Как видится с моей планеты.
Диаграмма во вложении эквивалентна диаграмме слайдов?

41
Ещё вариант:

42
Введение буфера загромождает модель, как мне кажется, и заставляет действие1 порождать объектный токен.
Согласен, загромождает. Согласен, токен от действие1 к буфер - объектный.
Прерываемый регион не согласуется с "равнозначностью". Один из двух прерывает другого. Роли не равны.
Роли равны - ЛЮБОЙ из двух может прервать другого.
Прерываемый регион, из которого нет "молнии", сомнителен по стилю. Стандарт в своих ocl-ях зачем-то допускает прерываемые регионы без "молний" и "молнии" без прерываемых регионов. На моей планете не могут взять в толк -- зачем.
А какая разница "молнией" или "прямой" выходить из региона - в обоих случаях всё, что связано с регионом прерывается.

43
Стилистически вложение3 лучше ложится на исходный текст. Вложение4 лучше бы легло на текст "если время истечёт раньше наступления События - Действие3, иначе - Действие2".
Согласен. Подходит, если один из вариантов поведения выглядит как основной, а остальные - как дополнительные.
Стилистически вложение5 не годится, т. к. "ничегонеделательная" деятельность -- костыль "модельера", который (костыль, не "модельер") не должен торчать явно из модели.
А как подчеркнуть "равнозначность" вариантов поведения? Может как во вложении?
По стандарту, скорее всего, все 3 варианта прочекаются.
Согласен.
P. S. К делу не относится, но задачка от авторов "UML3" (см. слайды 50-51) сомнительная какая-то. Как видится с моей планеты.
По мне и a) возможно, если A закончится (и C(A) начнется) раньше, чем закончится C(B)! По крайней мере C(A) "starts but is killed". A и B можно поменять местами.

44
Или так - вложение (в действии без имени ничего не выполняется, оно нужно только чтобы сделать вход в область прерывания). А как лучше и почему?
P.S. Первый из вариантов встретил в http://www.win.tue.nl/~jschmalt/teaching/2IX20/2IX20_Lecture06_activity_FSM.pdf стр.15-20

45
Если после Действия1 необходимо дождаться События и после этого выполнять Действие2 - см. вложение 1.
Если после Действия1 необходимо пропустить время и после этого выполнять Действие3 - см. вложение 2.
А если после Действия1 необходимо выполнить: если произойдет Событие до истечения времени - Действие2, если время истечет раньше - Действие3. Варианты - вложения 3 и 4.

Страницы: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 »