Model-driven engineering ( MDE ) — это методология разработки программного обеспечения , которая фокусируется на создании и использовании доменных моделей , которые являются концептуальными моделями всех тем, связанных с определенной проблемой. Следовательно, она выделяет и нацелена на абстрактные представления знаний и действий, которые управляют определенным доменом приложения , а не на вычислительные (т. е. алгоритмические) концепции .
MDE — это подраздел подхода к проектированию программного обеспечения , называемый круговой инженерией . Область применения MDE гораздо шире, чем у Model-Driven Architecture . [1]
Подход MDE призван повысить производительность за счет максимизации совместимости между системами (путем повторного использования стандартизированных моделей), упрощения процесса проектирования (путем моделей повторяющихся шаблонов проектирования в прикладной области) и содействия коммуникации между отдельными лицами и командами, работающими над системой (путем стандартизации терминологии и лучших практик, используемых в прикладной области). Например, в разработке на основе моделей технические артефакты, такие как исходный код, документация, тесты и многое другое, генерируются алгоритмически из модели домена. [2]
Парадигма моделирования для MDE считается эффективной, если ее модели имеют смысл с точки зрения пользователя, знакомого с предметной областью, и если они могут служить основой для внедрения систем. Модели разрабатываются посредством обширного общения между менеджерами по продуктам, дизайнерами, разработчиками и пользователями предметной области приложения. По мере приближения к завершению модели позволяют разрабатывать программное обеспечение и системы.
Некоторые из наиболее известных инициатив MDE:
Первыми инструментами для поддержки MDE были инструменты Computer-Aided Software Engineering ( CASE ), разработанные в 1980-х годах. Такие компании, как Integrated Development Environments (IDE – StP), Higher Order Software (теперь Hamilton Technologies, Inc., HTI), Cadre Technologies, Bachman Information Systems и Logic Works (BP-Win и ER-Win) были пионерами в этой области.
Правительство США было вовлечено в определение моделирования, создавая спецификации IDEF . С несколькими вариациями определений моделирования (см. Booch , Rumbaugh , Jacobson , Gane и Sarson, Harel , Shlaer и Mellor и другие) они в конечном итоге объединились, создав Unified Modeling Language (UML). Rational Rose , продукт для реализации UML, был создан Rational Corporation (Booch), реагируя на автоматизацию, которая обеспечивает более высокий уровень абстракции в разработке программного обеспечения. Эта абстракция способствует более простым моделям с большим акцентом на проблемном пространстве. В сочетании с исполняемой семантикой это повышает общий возможный уровень автоматизации. Object Management Group (OMG) разработала набор стандартов, называемых Model-Driven Architecture (MDA), создавая основу для этого передового подхода, ориентированного на архитектуру.
По словам Дугласа С. Шмидта , технологии проектирования на основе моделей предлагают многообещающий подход к решению проблемы неспособности языков третьего поколения облегчить сложность платформ и эффективно выразить концепции предметной области. [4]
Известные программные инструменты для проектирования на основе моделей включают в себя: