Я думаю, что есть также аргумент, что MDD - это худшее, что случилось с UML (почему еще у нас будет UML2, который у нас есть?), Но на данный момент игнорируем это ...
MDD = Model Driven <Дизайн | Разработка>. Идея состоит в том, чтобы иметь возможность разрабатывать решения на уровне абстракции, соответствующем проблемной области, то есть это попытка выразить решения проблем в наиболее естественном синтаксисе для выражения этих решений. Сама проблемная область характеризуется операционной моделью (то есть моделью, которая может быть выполнена компьютером). Таким образом, MDD может быть очень привлекательным подходом, хотя и с двумя основными требованиями:
- Нужно уметь скомпилировать этот язык в форму, подходящую для компьютерного исполнения (модель должна быть работоспособной ); и
- Нужно создать язык моделирования для проблемной области.
Насколько я понимаю, усилия UML2 были направлены на решение пункта 1, вероятно, исходя из убеждения, что промышленный опыт использования UML показал, что пункт 2 был удовлетворен для некоторого большого подмножества проблемных областей. К сожалению, и это то, к чему, как я полагаю, пришел Уильям Кук, UML не удовлетворяет пункту 2, если не считать того, что было задумано. Я не говорю из личного опыта, но я думаю, что промышленный опыт использования MDD с UML имеет два общих результата:
Либо исходный код, сгенерированный из UML, необходимо настроить, чтобы устранить эти небольшие пробелы между дизайном UML и требованиями программы (вынуждая разработчиков работать с сгенерированным кодом, который имеет различные стандарты для удобства сопровождения, и уменьшая применимость артефактов UML к реализации. ); ИЛИ
UML загроможден множеством деталей, что снижает его удобство использования в качестве языка общения о дизайне.
В любом случае обещание MDD не выполнено. UML можно считать худшей вещью, случившейся с MDD, поскольку она привлекла внимание разработчиков инструментов MDD к исключению моделей, которые могли бы реально работать (хотя и для небольшого набора проблем с программным обеспечением).