Введение

Методология разработки программного обеспечения

Модельно-ориентированная инженерия (MDE) — это методология разработки программного обеспечения, которая фокусируется на создании и использовании моделей предметной области, представляющих собой концептуальные модели всех аспектов, связанных с конкретной проблемой. Таким образом, она акцентирует внимание и стремится к абстрактным представлениям знаний и действий, определяющих конкретную область применения, а не к вычислительным (т. е. алгоритмическим) концепциям. 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. Существовало несколько вариантов определений моделирования (см. Бух, Рамбо, Джейкобсон, Гейн и Сарсон, Харел, Шляер и Меллор и другие), которые в конечном итоге были объединены в Единый язык моделирования (UML). Rational Rose, продукт для реализации UML, был разработан корпорацией Rational (Booch) в ответ на стремление к более высокой степени абстракции в разработке программного обеспечения благодаря автоматизации. Эта абстракция способствует созданию более простых моделей с большей ориентацией на предметную область. В сочетании с исполняемой семантикой это позволяет достичь более высокого уровня автоматизации в целом. Объектный менеджмент-группа (OMG) разработала набор стандартов под названием архитектура, управляемая моделью (MDA), заложив основу для этого продвинутого архитектурного подхода.

Преимущества

По словам Дугласа К. Шмидта, технологии разработки на основе моделей предоставляют перспективный подход к решению неспособности языков третьего поколения уменьшить сложность платформ и эффективно выражать концепции предметной области.