Однако некоторые фирмы-разработчики не стали ожидать появления окончательных стандартов, поскольку основные подходы и идеи MDA оказались достаточно простыми и весьма заманчивыми. Производители программного обеспечения уже разработали несколько инструментов для реализации (может быть, пока частичной) MDA-технологии в различных средах программирования. Среди этих инструментов имеется и программный продукт для реализации MDA в Delphi. Шведская компания BoldSoft MDE Aktiebolag, активный участник консорциума OMG, создала первую версию программного продукта Bold for Delphi в 1999 году, а в 2000-м в состав Borland Enterprise Studio 6 вместе с Delphi 6 вошла доработанная и расширенная версия Bold 3. В сентябре прошлого года в состав Delphi 7 Studio Architect вошла версия 4 Bold этого продукта. В начале октября фирма Borland приобрела шведскую компанию BoldSoft, так что в настоящее время Bold является продуктом фирмы Borland.
Основные возможности Bold for Delphi:
Даже перечисленных основных возможностей продукта более чем достаточно для кардинального сокращения трудозатрат на создание приложений баз данных практически любой сложности. По отзывам разработчиков, применение Bold позволяет сократить время разработки приложений баз данных в 5-10 раз.
На практике использование Bold дает следующие преимущества:
Необходимо отметить, что средства автоматической генерации баз данных и даже классов приложений существовали и прежде, например Rational Rose и PowerBuilder компании Powersoft. Имеется и такой программный продукт, как Delphi RoseLink компании Ensemble Systems1, являющийся своего рода моcтом между CASE-системой Rational Rose и Delphi. Основные его функции ? генерация кода на Object Pascal и обратное проектирование. Однако генерируемый с его помощью код не содержит реализацию функциональности, а генерируются только описания ? определения классов, интерфейсов и т.д.
Bold for Dephi отнюдь не ограничивается этим, поскольку, интегрируясь в Borland Delphi, он предоставляет разработчику полный набор визуальных и невизуальных компонентов, достаточный для реализации объектного пространства (Object Space) приложения. Поэтому разработчик получает возможность работать не на уровне кода и таблиц БД, а на уровне объектов внутри этого объектного пространства.
Другими словами, используя Bold, разработчик:
Как принято говорить, в этом случае разработка ведется на бизнес-уровне.
Принципиальным моментом при использовании Bold является трехуровневая схема создания приложения, которая включает уровень данных, бизнес-уровень и графический интерфейс пользователя. И в данном случае это ? не абстракция, а реальность, воплощенная в конкретные наборы компонентов Bold, с которыми имеет дело разработчик. Так, если обычно при создании приложения баз данных в Delphi визуальные компоненты подключаются к полям или таблицам БД, то при работе с Bold все они подключаются к промежуточному слою ? к объектам бизнес-уровня. Формирование бизнес-уровня приложения является одной из основных функций Bold. Другая важнейшая функция ? обеспечение взаимодействия между бизнес-уровнем и уровнем данных (СУБД), то есть объектно-реляционное отображение и взаимодействие. Такое взаимодействие включает автоматическую, прозрачную для разработчика, трансляцию OCL в операторы SQL, выполнение операций с таблицами БД и т.д. (подробнее обо всем этом будет рассказано в следующих частях статьи).
И наконец, основное отличие Bold от упомянутых выше CASE-средств состоит в том, что Bold работает не только на этапе разработки приложения, но и на этапе его исполнения. Именно это качество позволяет называть Bold инструментом реализации MDA. Любое CASE-средство, сколь бы совершенным оно ни было, предназначено для реализации только этапов проектирования и моделирования. Оно, конечно, может включать также возможности генерации кода и генерации базы данных, но после запуска приложения CASE-система уже не функционирует, ее «присутствие» на этом этапе по сути уже не ощущается. Функционирование же Bold коренным образом отличается от функционирования других CASE-средств: сохраняя модель приложения в исполняемом файле, Bold на этапе выполнения приложения использует эту модель для управления бизнес-уровнем, для контроля целостности объектного пространства, для управления взаимодействием бизнес-уровня с уровнем данных и графическим интерфейсом.
Необходимо подчеркнуть, что Bold ? это не генератор кода, хотя такая возможность в него заложена. В дальнейшем будет продемонстрировано, что при использовании Bold в принципе не обязательно генерировать код классов модели. В следующей части этой статьи мы создадим приложение баз данных, в котором вообще будет отсутствовать как код классов модели, так и пользовательский код. Немного забегая вперед, поясним, что информацию о модели Bold сохраняет не в генерируемом коде, а в специальном компоненте.
Резюмируя вышесказанное, можно дать следующее определение этому программному продукту: Bold for Delphi ? это, с одной стороны, среда разработки, позволяющая на этапе создания формировать объектное пространство (бизнес-уровень) и реализовывать бизнес-логику приложения, а с другой ? программная система, обеспечивающая на этапе выполнения функционирование бизнес-уровня и его интеграцию с СУБД (уровнем данных) и графическим интерфейсом пользователя.
До появления Bold существовал разрыв между средствами проектирования и моделирования, такими как Rational Rose, и RAD-системой Borland Delphi. Можно было и тогда создавать красивые схемы-модели в Rational Rose, но, переходя в среду Delphi, разработчик вынужден был реализовывать эти схемы вручную. Сейчас, после появления Bold, использование UML-редакторов, например Rational Rose (как уже говорилось, в составе Bold имеется и собственный UML-редактор, однако он функционирует только в текстовом режиме, что при создании больших моделей не всегда удобно), стало неотъемлемым этапом разработки, от которого напрямую зависит поведение и функциональные возможности создаваемого приложения.
Включение Bold в состав Delphi позволяет говорить, что из RAD-средства (RAD, Rapid Application Development ? быстрая разработка приложений) Delphi превращается в интегрированную среду разработки, поддерживающую полный жизненный цикл создания приложений (Application Lifecycle Management, ALM).
![]() |
![]() |