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

×


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

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


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

Страницы: « 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 »
91
[некробурения приступ]

Задача про лифт имеет длинную славную историю. Её решение из книги Йордана 1994-5гг. имеет много общего с магистерским диссером некоего капитана Стивена Марша из US Air Force Academy, защищённым в 1989м. Тема диссера "An Object-Oriented Analysis Method for Ada and Embedded Systems". [Через моего марсианского инет-провайдера этот диссер удалось скачать только через проксик, если что.]

US Air Force Academy является альма-матерью Гради Буча. Он туда поступил, вернувшись с вьетнамской войны. Выпустился в числе топ12 выпускников. Дослужился до капитана (программируя для наземного обеспечения пусков шаттлов). Затем Буч вернулся в альма-матерь для преподавания языка Ада. Там он встретил своих однокурсников, с которыми выпускался вместе — Пола Леви и Майка Девлина. Втроём они организовали компанию Rational [Machines Incorporated]. Rational удалось привлечь к работе Джима Рамбо и Ивара Якобсона. И завертелось...

Писанины много, извините. Общая идея -- хорошие учебные задачи (и их учебные решения) живут долго. Стивен Марш (как и Йордан ?по его следам?) не используют ВИ. Их решение оформлено в терминах событий и реакций на них.

92
А чем тогда является ВИ?
Об этом написаны статьи и книги. Не думаю, что следует пытаться дать ответ в 2х словах на этот вопрос.

An actor is behaviored classifier which specifies a role played by an external entity that interacts with the subject (e.g., by exchanging signals and data), a human user of the designed system, some other system or hardware using services of the subject.
Заметим, как сабжект стал системой, а затем обратно сабжектом.

Давайте расширим и актуализируем описание?
Зачем? Давайте уберём устаревшее и неактуальное (почти во всех его пунктах) описание. Книги, статьи, стандарты уже всё описали. Ужели у нас лучше получится?

А как иначе?
Привязка понятия о правильности как о следовании какой-то методе приводит к перекосам вроде отождествления акторов с юзерами, юзкейсов -- с целями юзеров и т. п. За примерами "перекосов" далеко ходить не надо. Они тут на форуме во множестве. Люди считают привычное правильным. Всегда ли это верно?

А чем, частью спецификации?
Да.

Триггер это событие, инициирующее ВИ. Так?
Есть версия, что это одно из событий, служащих причинами инициирования ВИ.

Ясно, что у всех свои традиции. А как напишут?
Коберн, кажется, был против глаголов, заканчивающихся на "-ся". Кем "считается"? Кто выполняет это шаг? Давать альтернативы написанному не входит в мои планы.

93
Раз пока дозволено некробурить, то продолжим.
По современным воззрениям [на моей планете]
  • ВИ не является "последовательностью событий".
  • Действующее лицо не является, в общем случае, пользователем.
  • Состав ДВИ пополнен по сравнению с описанным тут.
  • "Правильно построить ДВИ" -- не означает идти слепо по какой-то метОде, насколько бы привычной кому-то она не была.
  • Сценарий ВИ не является его спецификацией.
  • [Пред]Условия не инициируют ВИ.
  • Триггер не является "условиями".
  • В сценарии [на моей планете] не напишут шаг "Пользователь считается авторизованным".
  • Сценарий ВИ и экземпляр ВИ -- вещи разные.

94
Написанное здесь и в lib.uml2 кажется с моей планеты настолько странным, что хочется предложить снести. Наверное, какую-то пользу для себя те, кто писал это, уже получили. Получат ли те, кто будет читать сейчас?

95
Я кстати тернарную тоже что-то не очень понимаю.  Может пояснить в деталях. Как тут расставлять кратности верно?
Lecturer-1..1--- означает, что для произвольно составленной пары из 1 экземпляра Student и 1 экземпляра Subject обязательно найдётся 1 и только 1 экземпляр Lecturer, дополняющий эту пару до соединённой тройки. Т. е. для любого студента обязательно найдётся лектор, читающий ему любую из дисциплин.
Student-1..*--- означает, что для произвольно составленной пары из 1 экземпляра Lecturer и 1 экземпляра Subject обязательно найдётся 1 или более чем 1 экземпляр Student, дополняющий эту пару до соединённой тройки. Т. е. для любого лектора и любой дисциплины обязательно найдётся студент-слушатель или студенты-слушатели. К слову, в Фобосском филиале университета штата Марс начальство тоже считает, что любой препод может учить любому предмету.
Subject-1..*--- означает, что для произвольно составленной пары из 1 экземпляра Lecturer и 1 экземпляра Student обязательно найдётся 1 или более чем 1 экземпляр Subject, дополняющий эту пару до соединённой тройки. Т. е. для любого лектора и любого студента обязательно найдётся дисциплина или дисциплины, по которым ведётся обучение.
Приблизиться к привычному положению дел можно, снизив минимальную мощность на всех полюсах до 0.

Насчет класса ассоциации согласен, хотя мы не очень понимаем какую предметную область авторы реализуют. Они исходят из того, что Группа-Предмет - однозначно определяют Лектора. Такое без уточнения деталей ведь возможно?
Если Lecturer -- класс ассоциации, то это очень индивидуальное обучение. Каждому соединению между 1 экземпляром Student и 1 экземпляром Subject соответствует свой собственный экземпляр Lecturer, не такой как остальные. Т. е. у любого студента есть персональный лектор для каждой изучаемой дисциплины. Любой лектор соответствует единственной соединённой паре из 1 студента и 1 дисциплины.

Известно, что N-арную ассоциацию можно заменить набором бинарных, если её "материализовать", но в МИФИ ищут новых путей.

96
Lecturer, Student, Subject, соединены тернарной ассоциацией с неверными мощностями на полюсах (1 как минимальная мощность не годится). Преобразованная ДК, в которой Lecturer стал классом ассоциации, во-первых, не является полноценной заменой исходной, во-вторых имеет сомнительный смысл ([на Марсе] после того, как студент перестаёт изучать предмет, лектор никуда не девается).

97
[Очередная попытка некротредить]
https://cyberleninka.ru/article/n/validatsiya-i-optimizatsiya-diagramm-klassov-uml/viewer
По ссылке вак-овская статья по UML-тематике. Как почти обязательные атрибуты русскоязычных публикаций в этой сфере, в статье имеются:
+ ошибки на uml-диаграммах;
+ удивительные [с точки зрения инопланетого существа] воззрения о том, что является ошибкой и/или "источником дурного запаха";
+ лакуна по части защиты или указания достоинств предлагаемого решения (единственное достоинство, вероятно, состоит в том, что решение предложено).

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

98
В режиме бреда предлагаю попробовать Presentation Options -> Show Constraints.

99
Чтобы донудеть до конца, замечу, что по умолчанию  isUnique=true. То есть, по идее авторов стандарта, на диаграмме его и не должно быть видно.)

100
[Упс, в заголовке уточнение, которого нет в тексте. Стирать не буду, но читать мою нудятину не вижу смысла.]

Обычно справа в фигурных скобочках приписывается {unique} / {nonunique}. VP даже приходится бороть [на самом деле мне не удалось пока побороть], чтобы не приписывал [именно про {unique}]. Внутренний педант нашёптывает, что стандартное имя свойства isUnique, и что по стандарту это свойство не атрибута, а его мультиплисити. У атрибута есть свойство isID, записываемое на диаграмме как {id}, если isID=true, обозначающее, что атрибут -- часть идентификатора.

101
Что касается диаграммы, то на ней стоило показать все бизнес-процессы. Полагаю, что те, которые не изображены, связаны с бизнес-актором (бизнес-акторами), которых не выделили. Такими как Время. Мне, кстати, не встречались диаграммы BUC с таким бизнес-актором, хотя многие бизнес-процессы завязаны на время и стартуют по нему.

102
Долистало до примера с рестораном. По дороге хотело всё свалить на переводчика-ксенолингвиста, но просмотр оригинала на английском показывает, что книга за прошедшее время сильно разошлась со стандартом UML, которому учит. Ну и изначальные дефекты есть.

Я бы не рекомендовало.

103
Тогда можно почитать про действующие лица в стандарте UML. Там сказано, что ДЛ в модели заводят, чтобы описывать _роли_ ... . При этом слово "роль" используется в обиходном смысле, а не как термин из глоссария RUP (где "роль" описывает статические аспекты RUPовой модели ЖЦ) или из UML-словарика. См. два заключительных замечания в параграфе 18.1.3.1 стандарта. Прочтение "ролей", имеющих отношение к ДЛ в RUPе такое же.
Можно, основываясь на коллизии смыслов "роли" разрешать заданный вопрос так, как он был разрешён выше. Мол, ДЛ -- на диаграмме ВИ, а роль -- в RUPовой модели ЖЦ. А можно обойти коллизию и отвечать по смыслу заданного вопроса.  Тут каждый волен идти своим путём.

104
[продолжаем некробурить]
В обсуждении много, скажем так, "ксенолингвистического". Дело в том, что термин "роль" в RUP  не однозначный. При описании методических моментов "роль" задаёт набор назначенных кому-либо обязанностей и ответственностей. При рассмотрении содержимого модели вариантов использовании "роль" используется в ином значении. Там говорится о том, что в виде действующего лица моделируется набор увязанных друг с другом _ролей_, которые разыгрываются элементами контекста системы. Можно припомнить, что действующее лицо соединяется с вариантом использования ассоциацией-коммуникацией. А, раз так, то "роль" во 2-ом своём значении -- это возможное имя полюса такой ассоциации, на котором находится действующее лицо (хоть и не принято писать такие имена на ДВИ). Роль действующего лица в каждой его ассоциации фиксируется в RUPовом Actor Report.
В некоторых официальных доках по RUP ради упрощения пишут как-будто действующее лицо-1---1- роль. В частных случаях такое может быть верным, если ДЛ имеет единственную ассоциацию, ведущую к нему, и не имеет действующих лиц-предков (а связанный с ДЛ ВИ не имеет ВИ-наследников).
Видимо такое упрощение и дало повод для заданного топикстартером вопроса.

105
[Некробурения приступ]
"Ресторан" является популярным тренажёром -- учебной моделью, на которой якобы можно продемонстрировать подход, возможности нотации и т. п.. При этом считается, что [всю всамделишную] работу ресторана можно хорошо себе представить и считать-узнать в учебной модели. Полагаю это очень сильмым допучением и считаю, что "ресторан-тренажёр" моделирует только наши представления, которые могут соотноситься или не соотноситься с реальностью.
"Ресторан" by Kirill Fakhroutdinov.
"Ресторан" как часть руководства по RUPу от IBM и как исходник рисунков Fakhroutdinov-а.
"Ресторан с красными человечками" by Kirill Fakhroutdinov -- иллюстрация популярных "граблей" при построении BUC-модели.



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