«UML - худшее, что когда-либо случалось с MDD». Почему?

17

Уильям Кук в твите написал, что:

« UML - худшее, что когда-либо случалось с MDD. К счастью, многие сейчас понимают это ... »

Я хотел бы знать причину этого утверждения (по-видимому, я не имею в виду его личное мнение).

Я заметил, что многим людям не очень нравится UML. Также стоит упомянуть, что он учится в академических кругах, где UML очень важен для эффективного дизайна и моделирования.

Флоренс Целай
источник
15
Я бы сказал, что MDD - худшее, что когда-либо случалось с MDD.
Майкл Боргвардт

Ответы:

39

Ну, я академик, который опубликовал оригинальный твит. Твиты не предназначены для научных статей. Они являются рекламой, и я думаю, что они также могут быть спорными. Вот мои последующие твиты:

1) UML был создан для моделирования ОО проектов. Это влияет на то, что вы моделируете код системы, а не ее поведение. UML на неправильном уровне.

2) идея о том, что 7 (или 13) форматов диаграмм в UML могут охватить все, безумна. А как насчет GUI, веб-каркасов, авторизации и т. Д. ???

3) UML поддерживает идею о том, что модели должны быть графическими. Смешной! Текстовые и графические модели полезны и часто взаимозаменяемы

4) UML одновременно слишком большой и сложный и в то же время очень ограниченный. Стереотип и профили не эффективны для используемых расширений.

Обратите внимание, что я не обязательно говорю, что UML - это плохо. Я просто говорю, что это не помогает цели «модельно-ориентированного развития», и это то, что меня интересует. Я не понимаю комментарий о «святом Граале».

Уильям Кук
источник
10
+1 за поиск и ответ на вопрос на prog.SE о вашем собственном твите!
Уоррен П
Поэтому разработка, управляемая моделями, всегда казалась мне визуальной моделью. А если не UML, то что? (обратите внимание, мне никогда не нравился MDD, и я ненавижу UML. Но я готов дать MDD-sans-UML шанс. Что мне следует попробовать?
Уоррен П
1
@Warren P: что тебе не нравится в MDD и UML?
dan_l
1
Я удалил свой ответ, потому что, очевидно, я ошибался в том, что вы имели в виду. Но я поддерживаю утверждение, что UML, как и любой язык, является средством коммуникации, а не инструментом дизайна. Вы ответили, что «во многих языках программирования есть слово« язык »в названии, но это не значит, что они предназначены только для общения, а не для исполнения» - я думаю, вы упускаете момент, когда выполнение - это общение с компьютером. Вы бы не использовали COBOL в качестве инструмента дизайна.
pdr
Я думаю, что комментарий «Святого Грааля» относится к частоте обучения.
8

UML - это то же самое, что взять отвертку и молоток, соединить их вместе и назвать его «Универсальный крепежный инструмент». Теоретически, его можно использовать для подробного представления тонны вещей, на практике это набор плохо интегрированных инструментов, претендующих на звание единого инструмента, что делает выполнение любой задачи намного сложнее, чем наличие надлежащего инструмента для начала.

Ryathal
источник
Самое смешное в том , что существует harborfreight.com/impact-screwdriver-set-with-case-37530.html
Buddhi741
3

Я думаю, что есть также аргумент, что MDD - это худшее, что случилось с UML (почему еще у нас будет UML2, который у нас есть?), Но на данный момент игнорируем это ...

MDD = Model Driven <Дизайн | Разработка>. Идея состоит в том, чтобы иметь возможность разрабатывать решения на уровне абстракции, соответствующем проблемной области, то есть это попытка выразить решения проблем в наиболее естественном синтаксисе для выражения этих решений. Сама проблемная область характеризуется операционной моделью (то есть моделью, которая может быть выполнена компьютером). Таким образом, MDD может быть очень привлекательным подходом, хотя и с двумя основными требованиями:

  1. Нужно уметь скомпилировать этот язык в форму, подходящую для компьютерного исполнения (модель должна быть работоспособной ); и
  2. Нужно создать язык моделирования для проблемной области.

Насколько я понимаю, усилия UML2 были направлены на решение пункта 1, вероятно, исходя из убеждения, что промышленный опыт использования UML показал, что пункт 2 был удовлетворен для некоторого большого подмножества проблемных областей. К сожалению, и это то, к чему, как я полагаю, пришел Уильям Кук, UML не удовлетворяет пункту 2, если не считать того, что было задумано. Я не говорю из личного опыта, но я думаю, что промышленный опыт использования MDD с UML имеет два общих результата:

  • Либо исходный код, сгенерированный из UML, необходимо настроить, чтобы устранить эти небольшие пробелы между дизайном UML и требованиями программы (вынуждая разработчиков работать с сгенерированным кодом, который имеет различные стандарты для удобства сопровождения, и уменьшая применимость артефактов UML к реализации. ); ИЛИ
  • UML загроможден множеством деталей, что снижает его удобство использования в качестве языка общения о дизайне.

    В любом случае обещание MDD не выполнено. UML можно считать худшей вещью, случившейся с MDD, поскольку она привлекла внимание разработчиков инструментов MDD к исключению моделей, которые могли бы реально работать (хотя и для небольшого набора проблем с программным обеспечением).

  • Эйдан Калли
    источник
    -2

    UML великолепен, если это просто язык моделирования. Если вы пытаетесь подключить MDD к UML, чтобы получить графическое представление, тогда это бесполезно. MDD было бы здорово без UML, а также UML без MDD.

    Допустим, сегодня UML и MDD развелись, чтобы жить лучше не вместе :-)

    UML_Guru
    источник
    Это не "здорово" на любом уровне. Пользователь катастрофического языка программирования ADA (Booch) создал несколько детских диаграмм и подключил пару более серьезных подходов к построению диаграмм классов для создания UML. UML немедленно превратился в генератор доходов от крупных поставщиков программного обеспечения. Это было ужасно, но было спасено простым добавлением новых типов диаграмм (которые предшествовали UML), таких как последовательность, поток данных и т. Д. В этом нет ничего расширяемого. Нет схем базы данных, нет диаграмм слоев, он полон пробелов и полон бесполезных диаграмм одновременно.
    Рик О'Ши