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

×


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

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


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

Страницы: « 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 »
361
В 1996-м, описывая версию диаграмм для Statemate, он уже такого себе не позволял. Аналогично в 2004 в версии для Rhapsody. Оттуда и цитировалось. В 1987м в "On the formal semantics of statecharts" "вертолётная площадка" вообще оказывается набалдашником на конце "исторического входа" в состояние, непосредственно обрамляющее её. Т. е. три соавтора уговаривали его за "крючки" и уговорили. В версии электронных часов 1988-го года "On visual formalisms" схожий с фиг. 14 фрагмент решён им иначе (фиг. 22).
И, наконец, рассматривая драфт рисунка к статье, на которую Вы сослались, в "Statecharts in the making" (фиг. 20), мы видим в исходнике "крючки".) То есть, верстальщик не понял, почему "крючок", и испортил диаграмму!)

По теме: покружив так и этак, решило, что размер примера не даёт в достаточной мере оценить размер выгоды, получаемой после рефакторинга. Сначала у нас 3 состояния и 5 переходов (в сумме 8 ). Потом 4 состояния и 4 перехода (те же 8 ). Или 4 состояния + 4 перехода + 1 "верт-площадка" (ого, 9). Наконец, 4 состояния + 4 перехода + 2 псевдосостояния (ого-го, 10). По примитивной "количественной оценке" получаем, что первый вариант рефакторинга не упрощает диаграмму, а два других усложняют. Введя в исходную диаграмму больше подсостояний, можно ощутить движение к лучшему.

Но если считать не по стандарту, т. е. нестабильные вершины рассматривать как начала/продолжения переходов, то оценка всегда 8.

362
Проще простого навести критику, а чтоб предложить, надо подумать, сделать пару витков по орбите. Поэтому в быстром ответе лишь замечание:
Во всех вариантах с "вертолётной площадкой" переходы в неё привычнее видеть нарисованными "крючком", т. е. с явным покиданием состояния, из которого они идут. Иначе они локальны. Стандарт разрешает локальные переходы в исторические псевдосостояния, но толком не говорит про то, как они работают, так как всюду переходы в исторические псевдосостояния рассматриваются в контексте входа в регион или в суперсостояние, их содержащее. При локальном переходе входа не происходит, что приводит к возможной трактовке перехода как возврата не к тому, откуда вышли, а к тому, куда последний раз вошли. Харел явно пишет, мол: "на вертолётную площадку садиться только извне состояния", даже если переход нарисован как "локальный" (в кавычках, так как у него нет такого термина). Там же он даёт пример "локального перехода" в историю. Но это переход из начального состояния, т. е. псевдопереход, имеющий отношение ко входу в состояние.

363
Стандарт пишет, что квалификаторы принадлежат memberEnd'ам ассоциации, не оконечным классам. (И даже, что рисовать квалификатор надо не как "бородавку" на классе, а как "присоску" на ассоциации.) Это значит, что от B зависит ассоциация. Описание связанных ей классов A и C может не содержать упоминания B, и классы могут быть независимы от B.
И, конечно, в стандарте (как и в книгах) мне не попался ни один пример с квалификатором-классом.

364
Вот уж не знаю, откуда рисовать зависимость к B. От ассоциации?)

365
Описка. Событие изменения имелось в виду. Порисую-запосчу.

366
Что вызывает сомнение - то, что перечислимый тип может участвовать в ассоциации?
Привычнее видеть, что у класса есть атрибут перечислимого типа и проведена зависимость от класса к типу. Привычка идёт от увиденного в книгах и т. п. В стандарт не лазило. Как по мне, data type и enumeration недоклассификаторы, в том смысле, что их "экземпляры" не соединяются с экземплярами классов, а являются значениями их слотов.
Для меня это эквивалентное преобразование: класс-ассоциацию (многие ко многим) всегда можно заменить на ассоциацию от одного из ассоциируемых с квалификатором по другому из ассоциируемых (картинка во вложении).
В верхней части рисунка у класса C починённое положение, а у A и B -- главное. Они полноправные партнёры в связи, C -- их обслуживает, обеспечивая сохранение свойств связи. В нижней части рисунка полноправны A и C, а B уточняет связь. StateBehaviour -- часть состояния. Разумно связать их ассоциацией (композицией). Тот факт, что поведение каждого типа (по входу, по выходу и внутренняя деятельность) у состояния может быть не более чем одно, удобно показать квалификатором.
Можно предположить, что дело в "звучании" терминов - "ФИНАЛЬНОЕ состояние", "переход по ЗАВЕРШЕНИЮ". Явно звучит "Конец", "Финиш", "Уже всё". И тут внутренний переход, что явно предполагает продолжение - непорядок!.
Гипотетически, если понадобилось бы промоделировать поведение, при котором по завершении деятельности проверяется условие, а затем по результатам проверки осуществляется действие, внутренний переход по завершению был бы полезен. Без него решение немного сложнее.

367
Дело прошлое, но можно заметить недочёты диаграммы состояний:
Вешать сторожевое условие на переход из начального псевдосостояния запрещает стандарт.
Переходы по завершению со сторожевыми условиями использованы ошибочно. Если заменить их на переходы по событию завершения (с теми же условиями), диаграмма выиграет.

368
Диаграмма лишь даёт перечень состояний объектов и отличается от такового перечня лишь тем, что задаёт тривиальную трассу. Возможно, что свою цель она достигает, но выглядит как набросок.

369
Подсистема в разных проекциях отображается на разные элементы UML. На диаграмме вариантов использования она может быть представлена как subject (если моделируем её использование) или как actor (если моделируем не её, а другую подсистему, элементом контекста которой является подсистема-actor). В модели логической структуры подсистема представлена пакетом со стереотипом <<subsystem>>. В модели реализации подсистема отображается в компонент с тем же стереотипом.
На всякий случай, подсистемы независимы лишь отчасти. В противном случае система рассыпется в набор несвязанных между собой фрагментов, не образующих единого целого.

370
Попробую на зуб. Сомнительным кажется соединение класса с перечислимым типом с помощью ассоциации (SimpleState-*--*-TypeStateBehaviour). М. б. соединить SimpleState со  StateBehaviour, а TypeStateBehaviour сделать типом квалификатора при этой связи?
Пользуясь случаем врублю офтопик. Стандарт против внутренних переходов по завершению. А, собственно, почему?

371
Задача стоит вот такая "Разработка информационной системы поэтапной сборки шкафа автоматики управления выключателем"
К этой задаче относятся 4 "яйца" в левом нижнем углу диаграммы. Если толковать расширительно, то м.б. + "яйца" правой половины. Да и то, возникают вопросы как может быть автоматизирована сборка, программирование, исправление монтажа. Закупка и моделирование могут рассматриваться как этапы "жизненного цикла", но не сборки как таковой.
Предлагаю дать другие имена "мужикам"-отделам: "специалист по качеству", "специалист по сборке".
Совет по стилю: "мужиков" расставить по границам диаграммы, "яйца" сложить в её середину. Стараться рядом с "мужиком" класть те яйца, с которыми он связан. Избегать по возможности пересечения связей.

372
Можно отметить общее свойство обоих Ваших диаграмм, похожее на ошибку. Если полагать, что Вы моделируете бизнес-процесс, и читать их по стандарту, то неясно, что именно лежит внутри границ "сабжекта", подвергаемого моделированию. На диаграмме ВИ "мужиками" (действующими лицами) изображают внешние элементы контекста, лежащие за границами "сабжекта". Т. е., если Вы моделируете пекарню, то те, кто в пекарне работает, не могут быть "мужиками" на диаграмме. Они внутри границ, а не вне. Их помещают на диаграммы классов, диаграммы взаимодействия как исполнителей. Функции исполнителей моделируют как их операции, а не как ВИ. "Мужики" пекарни -- это покупатели продукции, сборщики налогов, пожарники и т. п. (все они не работают в пекарне!).
Аналогично, если в модели конструкторского бюро Вы считаете инженера "мужиком", то это какой-то "заграничный" инженер, которому, к примеру, лень что-то конструировать и он подписал бюро на субподряд.
Подобная ошибка проиллюстрирована на сайте, куда Вас однажды я уже направляло. Вот такая картинка:

Красным покрашены "мужики", которых на диаграмме быть не должно.
Так вот, если учитывать всё это, то диаграммы про пекарню моделируют X = пекарня - менеджер - бухгалтер - кладовщик - экспедитор (здесь "-" -- это "минус"). По-моему, X -- это пекари, тестоместы и т. д. Вряд ли можно ожидать, что для бухгалтера они будут оформлять накладную, а для кладовщика вести учёт остатков.
Возможно Вы моделируете какую-то систему, автоматизирующую деятельность пекарни, связанную с реализацией её продукции. Тогда работники пекарни могут быть её "мужиками". Но сомнительно, как мне кажется, что клиент сам с помощью этой системы будет организовывать свои денежные расчёты. Для расчётов есть банки.
Аналогично можно рассмотреть модель про бюро. Если из него вычесть упомянутые на диаграмме отделы, то что останется? Если моделируется система, автоматизирующая работу, то вряд ли её пользователем будет отдел целиком, но сотрудник отдела может быть.
Укажите, какая перед Вами стоит задача! Вы просите рассмотреть ответы, не открывая, решениями чего они являются. В результате нам остаётся лишь гадать, чего от Вас требуется.
P. S. Всё то, что Вы включили в оформление накладной скорее является включениями в работу с заказом. Например, без "внесения характеристик и количества продукции" в заказ нельзя выполнить проверку наличия товара. Мне представляется, что большая часть накладной -- это сведения из заказа.

373
Т.е. лучше будет убрать линии ассоциаций от расширений?
Их убирать нельзя.
Ваш преподаватель полагает, что на диаграмме ВИ все ВИ нужно связать друг с другом.
Общий подход состоит в том, что связи между ВИ рисуются только между теми ВИ, описания которых ссылаются друг на друга. Но описаний ВИ у Вас (и у Вашего преподавателя?) нет. Возможно, что они просто не предъявлены, хотя кажется, что до описаний дело не доходит вообще. Но без описаний нет возможности адекватно оценивать диаграммы, которые Вы постите.

374
Спасибо, очень занимательное руководство.
Но во первых там целый комплекс диаграмм, а не только ДВИ
А во вторых, при всём уважении к парням из Rational, похоже на инструкцию "Как правильно забивать гвозди нашим микроскопом":)
А в-третьих, ю-к-диаграмму можно таки использовать как перечень бизнес-процессов предприятия. О чём изначально и шла речь.
А в-четвёртых, известно, что в IBM/Rational -- все малахольные, но возможности использования нотации из-за этого не сужаются.
А в-пятых, основные проблемы автора топика не связаны с выбором нотации. Выбора у него, собственно и нет.

375
Спасибо, но разве это метод H. E. Eriksson'а and M. Penker'а У них нотация обозначения вроде бы совершенно иная?
Я не сразу поняло, о чём Вы. Признаю за собой заблуждение относительно E&P-метода, полистав ссылку. Полагало, то рейшеналовские "мужики с гвоздями в голове и треснутые яйца" являются развитием идей E&P. Добавлю, что и за E&P признаю заблуждение. Полагать, что их Process-диаграмма является размеченной стереотипами диаграммой деятельности, сейчас не осталось никакой возможности. А представить её юз-кейс-диаграммой можно вполне.

Страницы: « 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 »