Model Driven Architecture - это идея, что вы создаете модели, которые выражают проблему, которую вам нужно решить, способом, свободным от (или, по крайней мере, большинства) технологий реализации, а затем вы генерируете реализацию для одной или нескольких конкретных платформ. Утверждение заключается в том, что работа на более высоком уровне абстракции гораздо более мощная и продуктивная. Кроме того, ваши модели переживают технологии (так что у вас все еще есть что-то, когда ваш первый язык / платформа устареет, и вы сможете использовать его для решения следующего поколения). Другим ключевым заявленным преимуществом является то, что большая часть шаблонной и "тяжелой работы" может быть получена. Как только компьютер поймет семантику вашей ситуации, он может вам помочь.
Некоторые утверждают, что этот подход в 10 раз эффективнее, и что способ , мы все будем создавать программное обеспечение через 10 лет.
Впрочем, это всего лишь теория. Мне интересно, каковы результаты, когда резина встречается с дорогой. Кроме того, «официальная» версия MDA относится к OMG и выглядит очень тяжелой. Он в значительной степени основан на UML, который можно считать хорошим или плохим, в зависимости от того, кого вы спрашиваете (я склоняюсь к «плохому»).
Но, несмотря на эти проблемы, трудно поспорить с идеей работать на более высоком уровне абстракции и "обучать" компьютер понимать семантику вашей проблемы и решения. Представьте себе серию моделей ER, которые просто выражают правду, а затем представьте себе, как использовать их для генерации значительной части вашего решения, сначала в одном наборе технологий, а затем снова в другом наборе технологий.
Итак, Мне бы очень хотелось услышать от людей, которые действительно сейчас делают MDA («официально» или нет). Какие инструменты вы используете? Как это работает? Какую часть теоретического обещания вы смогли уловить? Вы видите увеличение эффективности в 10 раз?