Я думаю, що також слід зробити так, що MDD - це найгірше, що трапилося з UML (чому б інакше у нас був UML2, який у нас є?), Але на даний момент ігноруючи це ...
MDD = Модель <Дизайн | Розробка>. Ідея полягає в тому, щоб мати можливість розробляти рішення на рівні абстракції, відповідного проблемній області - тобто це спроба виразити рішення проблем у найбільш природному синтаксисі для вираження цих рішень. Сама проблемна область характеризується операційною моделлю (тобто моделлю, яку можна виконати комп'ютером). Отже, MDD може бути дуже привабливим підходом, хоча і з двома основними вимогами:
- Треба бути у змозі скласти цю мову у форму, придатну для виконання на комп’ютері (модель повинна бути функціональною ); і
- Треба створити мову моделювання для проблемної області.
Наскільки я розумію, що зусилля UML2 мали на меті вирішити точку 1, ймовірно, вважаючи, що виробничий досвід роботи з UML показав, що точка 2 задоволена деяким великим набором проблемних областей. На жаль, і це те, на що я думаю, що потрапляв Вільям Кук, UML не задовольняє пункт 2 ніде, де немає проблем, про які думали. Я не кажу з особистого досвіду, але думаю, що виробничий досвід використання MDD з UML має два загальні результати:
Або вихідний код, згенерований з UML, потрібно підлаштувати, щоб усунути ті невеликі прогалини між дизайном UML та програмними вимогами (змушувати розробників працювати з генерованим кодом, який має різні стандарти ремонтопридатності та зменшує застосовність артефактів UML до реалізації ); АБО
UML переповнюється великою кількістю деталей, що зменшує його зручність використання як мову для спілкування про дизайн.
У будь-якому випадку обіцянки MDD не виконані. UML може вважатися найгіршим, що трапилося з MDD, оскільки він привернув увагу розробників інструментів MDD до виключення моделей, які можуть справді працювати (хоча і для меншої кількості програмних проблем).