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

×


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

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


Сообщения - [прилетело НЛО и...]

Страницы: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 »
466
Рисуя переход от границы суперсостояния Рамбо, скорее всего, имел в виду то же самое, что и рисуя от границы региона
Согласен. А ведь можно было бы наделить разным смыслом переходы идущие от пунктирной и от сплошной границы.
 
регион Night light switch не имеет начального псевдосостояния, а это делает невозможным повторный вход в регион - это нужно для перехода от границы суперсостояния (хотя здесь, скорее всего, ошибка - на стр. 149 есть фраза:"Подсветка управляется выключателем, поэтому начальное значение для нее не имеет смысла". Желание правильное, то есть в диаграмме должно что-то быть, но не исключение начального состояния, а, например, псевдосостояние решения "ромбик" после начального)
Текст Рамбо показывает, что для него ортогональные регионы -- как бы подмашины.
А вот можно ли рисовать от начального псевдосостояния N-зубец с ромбиком, это вопрос открытый. Параграф 14.2.3.7 говорится, что из него может идти один переход (одно звено?) без сторожа и триггера, на OCL это продублировано в 14.5.6.6 (в другом месте 14.2.4.7 можно указать триггер, если это событие создания экземпляра, а начальное псевдосостояние лежит на верхнем уровне). Куда может идти это звено, об этом не сказано, но можно предположить, что, чтобы ограничения не теряли силу, кончаться оно должно на границе состояния, или псевдосостояния истории. Схожее ограничение есть на переход из псевдосостояния истории. Предположительно, из него тоже нельзя растить многозвенный переход.
нигде ранее ничего на эту тему не говорится
Увы, это так.
рисуя переход от границы региона подчеркивается идея того, что переход внутри суперсостояния это переход внутри региона. Да и любая точка на границе суперсостояния относится ровно к одному региону
Геометрически это верно. Но можно представить себе переход внутри состояния, но не внутри региона с явным форком, от которого идут звенья в регионы. Его первое звено по конкретному синтаксису будет лежать в каком-то из регионов, но по смыслу оно исходит от суперсостояния. Наличие в конкретном синтаксисе явной видимой границы релиона, отделяющей его от суперсостояния, могло бы быть полезно в таком случае.

467
Переход, который "принадлежит" региону (и идущий от пунктирной линии) нужен только тогда, когда относится ко ВСЕМ без исключения состояниям региона. Если не ко всем, то приходится всё равно заводить композитное состояние (принадлежащее региону), в которое включать только те состояния региона, к которым относится переход. Примеры:
  • У Рамбо и Блахи в их книге "UML 2.0. Объектно-ориентированное моделирование и разработка" рис. 6.11 - регион InteractiveDisplay, композитное состояние Setup, переход after (90 sec without input)
  • У Харела в "STATECHARTS: A VISUAL FORMALISM FOR COMPLEX SYSTEMS" Fig. 28. регион chime-status, композитное состояние enabled, переход d (in chime.on) 
Это точно. Просто я подумал, что Рамбо не зря на рис. 6.11 часть переходов (по set day, set clock, view program) нарисовал от границы между регионами, часть (по run program, power on) -- от границы суперсостояния. Или это совпадение.)

В стандарте попалось неясное место (вымарал, т. к. неверно прочёл знак).

468
Изменил соглашение при регистрации, теперь оно соответствует правилам из первого сообщения этой ветки.
Благодарю Вас за пояснения и коррекцию соглашения.

469
Получается, что Фаулер ошибся - если надо, чтобы переход затронул только один регион (но для нескольких состояний этого региона), то в соответствии с UML надо завести композитное состояние на эти состояния и делать переходы от этого композитного состояния (у вас это пунктирная линия).
Возможно. Фаулера не очень заботило соответствие стандарту: часть его диаграмм им самим помечены как ненормативные. Или до версии 2.5 было что-то, что позволяло ему выразить нужный ему смысл именно так. Полагаю, что он и Рамбо, рисуя переходы от границ композитных состояний, исходили из диаграмм Харела (у которого "регион" -- это состояние, и есть представление о "зазоре" между границами "региона" и  суперсостояния, в которое тот входит). Думаю, Фаулеру претила мысль о том, чтобы рисовать лишнюю рамочку. В принципе можно было бы в конкретном синтаксисе установить, что переход от пунктирной линии, разделяющей регионы "принадлежит" региону, а от сплошной границы суперсостояния -- суперсостоянию.
Мне давно хотелось поднять вопрос о терминологии:
  • в описании (спецификации, диаграмме) автомата есть vertex (состояния и псевдосостояния) и transition (звенья)
  • при работе автомата есть конфигурации (как допустимые сочетания состояний, но не псевдосостояний) и переходы (смена одной конфигурации на другую). На самом деле это не совсем точно - например не учитывается "историчность".
Ценное замечание.

470
Почему Вы считаете, что это способ поражения в правах?
Я так не считаю. Я считаю, что это способ регулирования рекламы, предложенный одним из участников (цитирую: "Сделайте в конце концов подраздел ... — и там сходите с ума"). По прецеденту можно было бы отделить вопросы обучения от рекламы ШСА тем же самым путём, что и в случае с Cradle.

471
Да, он имеет право публиковать сообщения рекламного характера, согласно правилам форума. Регистрационные правила следует уточнить, спасибо за наблюдение. Но хотелось бы услышать причину, которая побудила написать это сообщение. Это возможно?
1) В марте я заметил, что новички ограничены в правах строже старожилов. Например, приняв соглашения, я обязался не размещать никаких рекламных сообщений, хотя мог бы пригласить молодых исследователей в области SE участвовать в одной из (некоммерческих) научных конференций.  Захотел проверить, продолжает ли действовать дискриминация новичков.
2) Также я заметил, что появление информационных сообщений по системе Cradle на форуме теперь ограничено -- для них выделен специальный подфорум. Хотелось понять, это специальный случай, или пример действия новой системы регулирования рекламы, которая пока касается не всех?

472
Задаю схожий вопрос о сообщении выше. Соглашение запрещает размещать на форуме сообщения, являющиеся ложными, клеветническими, неточными, оскорбительными, вульгарными. На кого распространяется действие этого запрета из нового соглашения?

473
Текущая версия регистрационного соглашения запрещает рекламу на форуме. Является ли разрешённым сообщение руководителя ШСА о записи в блоге, где первым обучателем ИТ-аналитиков представлен один из экспертов ШСА?

474
Была мысль продолжить ряд примеров 1-2-3 из этого сообщения примерами 4 и 5, где рефлексивный переход из композитного состояния нарисован так, что его дуга пересекает границы одного или двух вложенных состояний. По стандарту такое обозначение нельзя объяснить, как мне кажется. Но почему бы его не допустить, считая, что при таких переходах выполняется цепочка входов, затем действие при переходе, затем цепочка выходов?

475
Хороший пример, вызвал вопрос - в примере из предыдущего сообщения (рис. 14.34 с состоянием s2) какими (локальными или внешними) будут переходы, если бы они были нарисованы внутри s0 (мой вариант в скобках):
  • из s0 в s0 (локальный, он и нарисован слева внизу)
  • из s0 в s1 (локальный, он и нарисован слева в середине)
  • из s1 в s0 (не знаю!, стандарт считает внешним)
  • из s1 в s2 (внешний)
В стандартных терминах локальности/внешности так и будет.

Переход внутренний или локальный сам по себе, но для локального перехода, целью которого является композитное состояние, это композитное состояние должно иметь начальное псевдосостояние (также, как для внешнего перехода, целью которого является композитное состояние, это композитное состояние должно иметь начальное псевдосостояние).
Я имел в виду, что локальность перехода лучше (разумнее) определять для него самого, а не для его возможных связок с переходами из начальных состояний. Конкретная диаграмма может быть такой, что от границы состояния, к которой ведёт локальный/внешний переход, может начинаться цепочка переходов из начальных псевдосостояний, которая телепортирует куда-то внутрь вложенных подсостояний (при этом маршрут телепортации может зависеть от предыстории, например, чтобы было веселее). В таком случае цепочку проще разбить на звенья и описывать поведение по частям. Локальность/внутренность -- это поведение и свойство первого звена.

476
Тогда как будет выглядеть ответ на вопрос в первом топике не по стандарту, а по Харелу?
По Харелу диаграмма состояний основывается на формализме higraph'ов (хайграфов), введённым им же (см.).
В хайграфе ребро-переход соединяет между собой два блоба (blobs) -- набора вершин-состояний, соединённых связками И- и ИЛИ-. Каждый такой блоб-набор определяет некоторое множество допустимых конфигураций состояний. Блоб в терминах UML -- это состояние или композитное состояние и, может быть, регион. И это важно, что переход, фактически, описывает биекцию между наборами конфигураций состояний.

Если диаграмма нарисована в соответствии с замыслом Фаулера, то она выглядит так как в приложении.
DisplayAlarm & PlayCD --radio--> DisplayAlarm & PlayRadio
другие части биекции, описываемой переходом по radio:
DisplayAlarm & PlayRadio --radio--> DisplayAlarm & PlayRadio
DisplayCurrent & PlayCD --radio--> DisplayCurrent & PlayRadio
DisplayCurrent & PlayRadio --radio--> DisplayCurrent & PlayRadio

Если нужно, чтобы переход по radio затрагивал оба региона, то стрелку следует рисовать от границы состояния On. В этом случае описываемая переходом биекция:
DisplayAlarm & PlayCD --radio--> DisplayCurrent & PlayRadio
DisplayAlarm & PlayRadio --radio--> DisplayCurrent & PlayRadio
DisplayCurrent & PlayCD --radio--> DisplayCurrent & PlayRadio
DisplayCurrent & PlayRadio --radio--> DisplayCurrent & PlayRadio

Как-то так.

477
А если так: на рис. 14.34 левый нижний (и верхний) переход не внутренний, а локальный потому, что целью является композитное состояние (s0) и в целевую конфигурацию состояний должно войти то элементарное состояние, на которое есть переход от начального псевдосостояния. Пример: дополним рис. 14.34 состоянием s2 и начальным псевдосостоянием внутри s0 с переходом к s2. Тогда для исходной конфигурации {s0, s1} внутренний переход (для s0!) приведет к той же конфигурации {s0, s1}, а локальный переход - к конфигурации {s0, s2}.
Разбираемый пример показывает, что описание локальных и внутренних переходов в стандарте дано неаккуратно и не отражено должным образом в метамодели. Так мне кажется.
Очевидно, что нет особой необходимости запрещать рефлексивные локальные переходы. Если составителю диаграммы нужно, чтобы осуществлялся выход из всех вложенных подсостояний, но не выход композитного, он нарисует стрелкой рефлексивный локальный переход. Если не нужно -- он напишет текстом внутренний переход.
К сказанному Вами замечу, что мы не можем считать переход внутренним или локальным не по его свойствам, а по наличию/отсутствию начального псевдосостояния в суперсостоянии и перехода из него. Так мне кажется.)

478
Конструктивная критика приветствуется.  :)
Не уверен, что критикую конструктивно, но всё же:
Авторизация не имеет неуспешного окончания из-за чего может зацикливаться.
Оплата картой предполагает ещё одно действующее лицо, шаги которого отсутствуют.
Выделять ВИ, в котором только шаги системы, вряд ли разумно.

479
Просьба указать на недочеты.
1) Никогда не соединяйте варианты использования коммуникациями (ассоциациями) -- сплошными линиями. У этих связей на одном конце должно быть действующее лицо, а на другом -- ВИ.
2) Избегайте связей обобщения (наследования) между вариантами использования, тем более множественного наследования. Обобщение ВИ предполагает довольно непростое их описание, которое, скорее всего Вы не сможете составить, или составите с большим трудом.
3) Попробуйте начать с простой диаграммы ВИ, где будут указаны только ВИ уровня цели пользователя и не будет никаких связей между ВИ. Затем составьте текстовые описания. По мере составления описаний Вы можете придти к выводу, что следует завести расширения, включаемые ВИ и/или ВИ-наследники. И только в таком случае будет иметь смысл новая версия диаграммы со связями включения, расширения, наследования.

480
В прочем, сами составители стандарта ему не следуют. Например, на рис. 14.34 приведены примеры локальных переходов (см. аттач), но левый нижний переход не является локальным, он внутренний (его исток и его цель совпадают!). Внутренние переходы по стандарту изображаются без линий (см. 14.2.4.10). Т. е. рисунок из стандарта нарушает сам стандарт.)))
Придумалась казуистическая трактовка, которая бы позволила не считать левый нижний "красный" переход внутренним. Если исток перехода = {s0 s1}, а цель = {s0}, то они не совпадают. А с истоком = {s0 s1} = цели переход был бы внутренним и рисовался бы строчкой текста. Но снова смотрим в метамодель и видим, что исток = vertex, в данном случае, -- состояние, а не коллекция или конфигурация состояний.

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

Страницы: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 »