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

Общий раздел => Примеры => Тема начата: Vadim от 25 Марта 2010, 18:31:46

Название: Рефакторинг моделей UML
Отправлено: Vadim от 25 Марта 2010, 18:31:46
Доброго времени суток!

Интересует любая информация по эквивалентному преобразованию моделей UML (в первую очередь - классов), кроме той, что имеется в переведенных учебниках по UML (Мацяшек, Блаха, Арлоу, 3 Amigos, Фаулер, Леоненков).

Пример эквивалентности - во вложении (класс-ассоциация может быть выражен как класс, ассоциированный с исходными классами и имеющий ограничение уникальности состава связанных экземпляров).
Название: Re: Рефакторинг моделей UML
Отправлено: Galogen от 25 Марта 2010, 18:40:34
Может дело будет идти лучше, если Вы приведете список проблем, с которыми Вы столкнулись при эквивалентном преобразовании?
Название: Re: Рефакторинг моделей UML
Отправлено: Денис Иванов от 25 Марта 2010, 18:43:20
Имеются в виду конструкции, которые сложно преобразовать в код?
Название: Re: Рефакторинг моделей UML
Отправлено: Vadim от 26 Марта 2010, 11:29:39
Имеются в виду конструкции, которые сложно преобразовать в код?
Преобразование в код - частный случай, когда от эвивалентного преобразования есть польза, скорее всего самый распостраненный. Но хотелось определить что можно делать, а делать или нет - решать в каждом конкретном случае.
Название: Re: Рефакторинг моделей UML
Отправлено: Vadim от 26 Марта 2010, 12:02:04
Может дело будет идти лучше, если Вы приведете список проблем, с которыми Вы столкнулись при эквивалентном преобразовании?

Хочется иметь каталог эквивалентных преобразований. Пример пары преобразований - во вложении. Оба преобразования считаю двухсторонними. Понимаю, что могу ошибаться.
Название: Re: Рефакторинг моделей UML
Отправлено: [прилетело НЛО и...] от 14 Мая 2019, 12:28:54
Прошу зачесть как попытку некротрединга.

С моей планеты выглядит так, что, с одной стороны, можно выявлять дублирование языковых средств в UML, когда одно и то же можно описать разными фрагментами UML-модели, с другой стороны, можно сосредоточиться на рефакторинге как таковом, когда от исходной модели осуществляется переход к схожей с ней новой, имеющей дополнительные желаемые свойства / не имеющей прежних нежелательных свойств. По этому пути есть способ, базирующийся на образцах. В его рамках в новой модели появляется использование какого-то образца, которого раньше не было. Тогда каталог рефакторингов выводится из каталога образцов, например, составленного Джейсоном Мак-Колмом Смитом.   
Название: Re: Рефакторинг моделей UML
Отправлено: Galogen от 15 Мая 2019, 21:09:48
Прошу зачесть как попытку некротрединга.
Зачитывается!
... каталог рефакторингов выводится из каталога образцов, например, составленного Джейсоном Мак-Колмом Смитом.
А ссылку на каталог образцов можно?
Название: Re: Рефакторинг моделей UML
Отправлено: [прилетело НЛО и...] от 15 Мая 2019, 23:07:25
Попытка монетизации самим автором тут (https://www.elementalreasoning.com/).
Jason McColm Smith. Elemental Design Patterns [pdf] (http://bookfi.net/dl/1502668/f9bb95)
Джейсон Мак-Колм Смит Элементарные шаблоны проектирования [pdf] (http://padabum.com/x.php?id=37881)
Название: Re: Рефакторинг моделей UML
Отправлено: Galogen от 20 Мая 2019, 13:34:57
Попытка монетизации самим автором тут (https://www.elementalreasoning.com/).
Jason McColm Smith. Elemental Design Patterns [pdf] (http://bookfi.net/dl/1502668/f9bb95)
Джейсон Мак-Колм Смит Элементарные шаблоны проектирования [pdf] (http://padabum.com/x.php?id=37881)
Спасибо
Название: Re: Рефакторинг моделей UML
Отправлено: Vadim от 07 Июня 2019, 20:22:28
примеры эквивалентности http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=D845BB157C7DAEA81DECD40F7CE2D576?doi=10.1.1.51.1049&rep=rep1&type=pdf
Название: Re: Рефакторинг моделей UML
Отправлено: [прилетело НЛО и...] от 08 Июня 2019, 02:01:56
Эти немцы оч. классные (созданный ими USE -- маст юз), но они не вполне следуют стандарту.
Цитировать
If no multiplicity is shown on an association end, it implies a multiplicity of exactly 1.
Они могут записать на псевдоOCL ограничение с тернарной ассоциацией, а я не могу.

В следующей немецкой эквивалентности известный способ перерисовывания класса ассоциации в класс материализованной связи заменён неподходящим, на мой взгляд, использованием тернарной ассоциации. Сделаем класс ассоциации классом агрегации и "немецкая эквивалентность" разрушится (а класс материализованной связи устоит).

Про эквивалентность квалификатора не скажу дурного, т. к. повторило это изобретение прошлой зимой. Его только стоит доработать на случай квалификаторов с обоих сторон. Пример заставляет задуматься и послать луч добра в сторону авторов стандарта, запретивших квалификаторы на n-арных ассоциациях. Почему, собственно, если квалификатору эквивалентен кусок класса ассоциации (который вполне может ужиться с n-арной).

Композицию очень геморно описывать OCLем, из-за каскадированного удаления всех объектов-композитов одновременно с объектом -- их владельцем.

Обобщение нельзя свести к делегированию (мадам Лизкова запрещает).

Статья писана в 1998 году. Всё указанное простительно.)