BOLD – інструмент реалізації MDA в Delphi. Частина 1. MDA – технологія майбутнього, Комерція, Різне, статті

Зміст



Введення


В історії розвитку засобів розробки програмного забезпечення не раз відбувалися події, коли поява нових технологій розробки кардинально змінювало світогляд програмістів і методи створення додатків і програмних систем. Можна згадати у зв'язку з цим виникнення методології об'єктно-орієнтованого програмування (ООП), теорії і практики створення реляційних баз даних і т.д. Схоже, що незабаром можна очікувати чергову подібну революцію, наслідки якої будуть, мабуть, анітрохи не меншими за масштабом змін у світі програмування. Мова йде про новітній технології створення програмного забезпечення – Model Driven Architecture.


Model Driven Architecture (MDA) дослівно перекладається як «архітектура, керована моделлю». Концепція MDA розробляється консорціумом OMG (Object Management Group, http://www.omg.org/), в який сьогодні входить більше 800 компаній – виробників програмного і апаратного забезпечення. Головним завданням OMG є розробка стандартів та специфікацій, що регламентують застосування нових інформаційних технологій на різних апаратних і програмних платформах. Широко відомі такі стандарти і технології, як UML і CORBA, у розробці яких бере активну участь OMG.


MDA пропонує новий інтегральний підхід до створення багатоплатформні програм, із забезпеченням можливостей взаємодії між цими додатками. Ми зупинимося тут лише на таких основних моментах, розуміння яких необхідно для подальшого обговорення цієї технології.


В основі MDA лежить ідея виділення в якості самостійного та обов'язкового етапу розробки логіки функціонування програми (бізнес-логіки). Згідно з концепцією MDA розробка програми повинна починатися з етапу створення моделі програми, яка визначає склад, структуру і поведінку майбутнього програмного продукту. Така модель створюється не мовою програмування, а за допомогою мови уніфікованого моделювання (Unified Modelling Language, UML) і є переносних незалежної (Platform Independent Model, PIM), тобто при її створенні розробник повністю абстрагується від особливостей конкретних програмних і апаратних засобів реалізації програми.


На другому етапі, після створення PIM, створюються одна або кілька переносних залежних моделей PSM (Platform Specific Model), які є своєрідними адаптерами, що забезпечують інтеграцію PIM з однією або декількома технологіями розробки програмних продуктів. Крім того, створюється спеціальний набір програмних інтерфейсів, що використовується в подальшому для взаємодії даного програми з іншими.


Нарешті, на заключному етапі на підставі PIM і PSM генерується код програми, але, при необхідності, база даних. У разі наявності кількох PSM процедура генерації може проводитися кілька разів – Для кожної з використовуваних платформ. При цьому генерація коду і баз даних здійснюється автоматично, за допомогою спеціальних інструментальних програмних засобів.


Таким чином, відповідно до концепції MDA головний акцент при розробці програм переноситься з власне етапу програмування на етап створення моделі. До того ж, створивши модель один раз, розробник отримує принципову можливість генерації програм для різних апаратних і програмних платформ.


Слід зазначити, що MDA не є, за задумом OMG, конкурентом якої-небудь з існуючих технологій (платформ) створення додатків (CORBA,. NET, J2EE, Sun ONE і т.д.). MDA знаходиться на більш високому рівні узагальнення процесу розробки, дозволяючи на етапі створення PIM-моделі абстрагуватися від цих платформ, на наступному етапі вибрати одну або кілька платформ розробки і створити відповідний набір PSM-моделей і, нарешті, на етапі генерації коду отримати додаток, що функціонує на цих платформах. Консорціум OMG вважає (і, ймовірно, справедливо), що даний підхід можна буде застосовувати не тільки для існуючих на даний час технологій розробки, а й для будь-яких майбутніх технологій за умови створення для них відповідних адаптерів (PSM-моделей).


Таким чином, OMG вважає архітектуру MDA не просто новою технологією, а скоріше «метатехнологій» створення додатків, яка відтепер буде єдино актуальною, незалежно від розвитку та появи нових засобів розробки, які MDA вже «заздалегідь інтегрувала» в себе.


Переваги, які дає MDA розробникам, очевидні: локалізація усієї логіки програми в одному місці (тобто в моделі), автоматична генерація коду та баз даних, а в перспективі – і графічного інтерфейсу користувача. Якщо заглянути далі, то сценарій створення додатків буде виглядати приблизно так: створюється модель, яка надходить на вхід спеціальної програми, а на виході генеруються готове до програми та база даних. При необхідності зміни вносяться в модель, і потім процедура генерації повторюється, причому без внесення змін в код програми. З цього випливає, що саме поняття «Розробник програмного забезпечення» може при впровадженні MDA досить сильно видозмінитися. Внаслідок зміщення акценту на створення моделі розробкою додатків будуть займатися не стільки програмісти, скільки фахівці, що володіють описуваної предметної областю. При цьому мовою опису є уніфікована мова моделювання UML.


Мова уніфікованого моделювання UML


В даний час є досить велика кількість літератури, яка описує мова UML. Враховуючи важливість UML для розуміння і використання MDA, коротко повторимо основні концепції та етапи розвитку цього мови.


Причиною появи Unified Modelling Language (UML) стала необхідність уніфікованого підходу до опису моделей бізнес-додатків на початку 90-х років ХХ століття. До того часу з'явилося кілька десятків варіантів інструментарію для створення подібних моделей, але всі вони були не узгоджені між собою, що заважало розробці CASE-засобів і вносило деяку плутанину. Нагадаємо читачеві, що CASE-засоби (Computer Aided Software Engineering – розробка програмного забезпечення за допомогою комп'ютера, тобто автоматизована розробка програмного забезпечення) в той період грали в основному роль графічної надбудови над СУБД, що дозволяє автоматично генерувати базу даних по її графічній схемі. Біля витоків розробки мови UML стояла компанія Rational Software, яка розробила одне з перших CASE-засобів – Rational Rose. У 1995 році консорціум OMG включився в роботу по стандартизації UML, потім до розробки мови активно підключилися й інші компанії, і, після виходу кількох проміжних версій, в 1997 році з'явилася версія UML 1.0.


В даний час останньої стандартизованої OMG версією є UML 1.4, завершується розробка версії 2.0. Розвиток UML сьогодні координує консорціум OMG, який вважає розробку і просування цієї мови своїм стратегічним напрямком.


Перерахуємо характерні властивості UML:



Мова UML базується на об'єктно-орієнтованому підході і включає діаграму класів для опису структури і складу моделі. Діаграма класів є основою для формування моделі програми і грає найважливішу роль при роботі з продуктом Bold for Delphi.


У рамках UML існує і розвивається формальну мову для текстового опису умов, що накладаються на класи моделі. Він отримав назву OCL (Object Constraint Language – мова об'єктних обмежень). OCL також відіграє надзвичайно важливу роль при практичному використанні MDA в Delphi (опису OCL буде присвячена одна з частин даного циклу).


Bold – реалізація MDA в Delphi


Зрозуміло, що створення такої технології, як MDA, вимагає досить тривалого часу. Наприкінці 2001 року консорціум OMG випустив документ «Model Driven Architecture – a Technical Perspective», що представляє собою першу попередню специфікацію MDA. На черзі – наступні специфікації та документи.


Однак деякі фірми-розробники не стали чекати появи остаточних стандартів, оскільки основні підходи та ідеї 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).


Інсталяція Bold. Розміщення компонентів


Остання версія продукту входить до складу Delphi 7 Studio Architect, у тому числі і в ознайомчу версію, доступну для скачування з сайту разработчіка2. Зверніть увагу на те, що Bold не входить до версію Delphi 7 Studio Enterprise.


При інсталяції Delphi 7 Studio Architect Trial Edition на екрані з'явиться заставка (рис. 1), що дозволяє вибрати встановлювані продукти: Delphi 7, ModelMaker і власне Bold. Продукти встановлюються в порядку їх перерахування. Після установки Delphi 7 рекомендується встановити також UML-редактор Model Maker, що дозволяє створювати діаграми класів і взаємодіяти з Bold (хоча це і необов'язково). Якщо при інсталяції Bold буде запропоновано вибрати склад установки, потрібно позначити всі компоненти. До речі, на обсяг необхідного простору на жорсткому диску для Bold цій версії він становить більше 140 Мбайт.


Після установки Bold на палітрі компонентів Delphi з'являться нові закладки, зокрема:








Слід мати на увазі, що візуальні компоненти Bold взаємодіють не з даними, а з об'єктами бізнес-рівня. З цієї причини Bold має власні аналоги таких візуальних компонентів, як мітка (Label), сітка (Grid) і т.д., що володіють додатковими, необхідними для взаємодії властивостями. Втім, надалі буде показано, що при бажанні в багатьох випадках можна використовувати і звичайні компоненти, а також компоненти сторонніх виробників.


Інші компоненти Bold будуть розглянуті окремо, при описі додаткових можливостей продукту.


Резюме


З цієї частини статті, яка є, по суті, вступної, ми дізналися наступне:



Крім того, ми коротко розглянули інсталяцію продукту і загальну класифікацію основних його компонентів. Тому, як працює Bold на практиці, буде присвячена Частина 2

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*