Генерувальне програмування програмних систем і їх сімейств
У роботі наведено аналіз основних положень і досягнень сучасного генерувального програмування, сформульовані нові напрями його розвитку щодо систематизації і удосконалення базових засобів подання програмних систем, сімейств систем предметно-орієнтованими мовами і компонентами повторного використан...
Збережено в:
| Дата: | 2009 |
|---|---|
| Автор: | |
| Формат: | Стаття |
| Мова: | Українська |
| Опубліковано: |
Інститут програмних систем НАН України
2009
|
| Теми: | |
| Онлайн доступ: | https://nasplib.isofts.kiev.ua/handle/123456789/2911 |
| Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Цитувати: | Генерувальне програмування програмних систем і їх сімейств / К.М. Лавріщева // Пробл. програмув. — 2009. — № 1. — С. 03-16. — Бібліогр.: 25 назв. — укр. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraine| _version_ | 1859637848718704640 |
|---|---|
| author | Лавріщева, К.М. |
| author_facet | Лавріщева, К.М. |
| citation_txt | Генерувальне програмування програмних систем і їх сімейств / К.М. Лавріщева // Пробл. програмув. — 2009. — № 1. — С. 03-16. — Бібліогр.: 25 назв. — укр. |
| collection | DSpace DC |
| description | У роботі наведено аналіз основних положень і досягнень сучасного генерувального програмування, сформульовані нові напрями його розвитку щодо систематизації і удосконалення базових засобів подання програмних систем, сімейств систем предметно-орієнтованими мовами і компонентами повторного використання, а також нових інструментів їхній трансформації з генераційним змістом та адаптованих до умов генерації моделі якості та життєздатності систем сімейств.---------------
В работе дан анализ основных положений и достижений современного генерирующего программирования. Сформулированы новые направления его развития: систематизация и усовершенствование базовых способов представления программных систем, семейств систем предметно-ориентированными языками и компонентами повторного использования, а также новых инструментов их трансформации с генерационным смыслом и адаптированных условиям генерации моделей качества и живучести систем семейств.---------------
The basic conceptions and reaching of modern generative programming are considered. New directions of their evolution as systematization and improving of basic represent system of program, their families of the subject-oriented languages and reuse components, new tools them transformations and generation, adoptive of model quality and living are formed.
|
| first_indexed | 2025-12-07T13:18:07Z |
| format | Article |
| fulltext |
Теоретичні та методологічні основи програмування
© К.М. Лавріщева, 2009
ISSN 1727-4907. Проблеми програмування. 2009. № 1 3
УДК 681.3
К.М. Лавріщева
ГЕНЕРУВАЛЬНЕ ПРОГРАМУВАННЯ ПРОГРАМНИХ
СИСТЕМ І ЇХ СІМЕЙСТВ
У роботі наведено аналіз основних положень і досягнень сучасного генерувального програмування,
сформульовані нові напрями його розвитку щодо систематизації і удосконалення базових засобів по-
дання програмних систем, сімейств систем предметно-орієнтованими мовами і компонентами повтор-
ного використання, а також нових інструментів їхній трансформації з генераційним змістом та адап-
тованих до умов генерації моделі якості та життєздатності систем сімейств.
Вступ
На сьогодні в галузі програмування
постійно іде динамічний розвиток
комп’ютерних систем (Internet, Web-
сервіси, Web-застосування тощо), систем
загального призначення (СОМ, СORBA,
Java, .NET й інші), середовищ програму-
вання (Eclipse, JBuilder, MS Visual Studio
тощо), серверів застосувань (IIS, JBoss,
Geronimo), систем керування базами даних
(MySQL, MSSQL, Oracle) тощо.
Все це сприяє виробництву про-
грамних продуктів для їхнього викорис-
тання, а також породженню нових і різно-
рідних програмних об’єктів, структур да-
них, інформаційних ресурсів, а також
мов їх опису, засобів та інструментів їх
специфікації і оброблення у сучасних опе-
раційних середовищах. Але методи та ін-
струментальні засоби цих середовищ у
повної мірі не відповідають підходам до
якісної реалізації багатьох задач деяких
складних систем сімейств з предметних
областей і доменів. Багато з вироблених
програмних елементів членів сімейств не
завжди доводять до їх повторного викори-
стання і тому на практиці досить часто їх
розробляють як нові програмні компонен-
ти, на що витрачають значні додаткові
ресурси [1].
Наприклад, механізми створення і
застосування компонентів повторного ви-
користання (КПВ) для заново будованих
програмних систем (ПС) і сімейств систем
у межах широко розповсюдженого
об’єктно-орієнтованого підходу (ООП)
практично відсутні. В цілому напрямок
КПВ у програмної інженерії сам по собі
досяг великого впровадження як у плані
їхнього подання і зберігання, так і нових
інженерних напрямів виготовлення з них
складних систем:
– інженерія КПВ (reuse engineering) –
систематична і цілеспрямована діяльність
щодо визначення їхній можливості засто-
совуватися в різних ПС або об’єднуватися
у складні сукупності;
– прикладна інженерія (application
engineering) – процес виробництва нових
ПС із КПВ як одиночних, самостійних си-
стем або як складових деякої предметної
області (ПрО), домену, що автоматизують;
– інженерія домену (domain
engineering) – це сімейство процесів виро-
бництва окремих членів сімейства ПС і
сімейств програмних систем (СПС) у ці-
лому, яке базується на використанні гото-
вих КПВ у межах деякої ПрО або їхніх су-
купностей у сімействах систем. Ця інжене-
рія базується на мовах опису окремих
компонентів і специфіки членів сімейства
в DSL (Domain Specific Language), моделі
домену GDM (Generative Domain Model) та
методу аналізу, основаного на характерис-
тиках домену FODA (feature Oriented Do-
main Analysis) [2–5], функціональних ви-
могах (functional requirements) та вимогах
якості (quality requirements) відповідно мо-
делі якості, відображаючій аспекти гене-
рації членів сімейства.
Ці інженерії виробництва є голо-
вними напрямами програмної інженерії і
генерувального програмування (ГП) сі-
мейств систем. Їх виробництво здійснюють
засобами та інструментами різних типів
програмування (компонентного, аспектно-
го, агентного, сервісного тощо) при побу-
дові відповідних КПВ, складних ПС та
Теоретичні та методологічні основи програмування
4
членів сімейств систем. Серед типів про-
грамування – аспектне програмування
сприяє розв’язанню загальних системних
проблем взаємодії, синхронізації та зміню-
вання КПВ у системах сімейства. Голо-
вним цільовим об’єктом ГП є домен і ме-
ханізми генерації будь-якого його елемен-
та (члена) сімейства та КПВ, що викорис-
товують для розв’язання конкретних задач
домену або ПрО.
Далі аналізуються основні поло-
ження ГП та концепцій розвитку теорети-
чних та інструментальних засобів його
підтримки при виробництві СПС.
1. Основи проблематики генерувального
програмування
Генерувальне (generative progra-
mming) програмування – нова сучасна па-
радигма програмної інженерії, орієнтована
на інженерію СПС для певних ПрО і гене-
рацію окремих ПС як членів сімейства
СПС. Тобто, в межах цього програмування
склалося достатньо засобів для виробницт-
ва КПВ, одиничного використання ПС та
сімейств систем згенерованих з накопиче-
них різнорідних програмних елементів, що
задовольняють вимогам замовника [3, 4].
Головний метод розробки і генерації GSD
(generative software development) програм-
них продуктів домену базується на різних
підходах з специфікації цього домену,
опису окремих членів СПС різними мова-
ми програмування (МП), виходячи з ви-
мог до членів сімейства, та механізмів ав-
томатизованої генерації адаптованих до
завдань окремих членів сімейства і СПС у
складі доменів.
1.1. Визначення домену
Під доменом або проблемною обла-
стю розуміють множину систем, яка має
набір понять, що однаково трактуються
всіма системами та особами, які мають
справи з цими поняттями.
У межах кожного домену
розв’язують задачі, які реалізують спільні
й варіантні аспекти його проблем, а також
правила маніпулювання ними. Завдання
домену подають у моделі домену або на
перехресті декількох областей, що входять
до складу спільної мови між розробника-
ми, користувачами і замовником системи.
Тобто, кожний домен має прита-
манну йому систему знань, а також харак-
терні властивості (атрибути), відношення
та правила поведінки. Головним об’єктом
кожного члена СПС або усього сімейства
є КПВ. Посередником між фахівцями ПрО
і розробниками різних членів систем сі-
мейства є специфікована модель ПрО за її
поняттями, комунікацією між окремими
системами сімейства в складі КПВ та про-
цесів генерування кожного члена сімейст-
ва шляхом трансформації опису специфі-
ки ПрО в предметно-орієнтованої мові
DSL в опис проміжних мов типу HTML,
XML або в опис сучасних МП з подаль-
шою генерацією вихідного коду для кож-
ного члена сімейства ПрО.
Розроблення домену виконують у
просторі проблеми (speace problem) і прос-
торі рішень (speace solution) в поняттях,
які розуміють однаково всі системи та їхні
користувачі.
Простори проблем і рішень. У
просторі проблем (speace problem) вико-
нують аналіз домену, виявлення понять
ПрО, визначення компонентів моделі ха-
рактеристик та завдань домену (рис. 1).
Простір рішень (speace solution) – це за-
соби розв’язання завдань ПрО та механі-
зми їхній взаємодії та адаптації. Результа-
том розгляду домену в цих просторах є
конфігураційна база знань, яка зберігає
зв’язки характеристик членів сімейства та
їхні залежності, операції конструювання
та об’єднання за GDM-моделлю [4].
Простір проблеми включає пред-
метні поняття ПрО для майбутньої ПС, но-
ві компоненти та КПВ за відповідними об'-
єктами і їх характеристиками. Як результат
аналізу простору проблем є модель харак-
теристик з компонентів і об’єктів, зміню-
вані параметри різних членів сімейства та
проектні рішення, зв'язані з операціями
взаємодії членів сімейства між собою та з
середовищем.
У базисі конфігурації ГП відобра-
жені знання загального і спеціального
призначення, зв’язки між характеристика-
ми, технологічні знання з виробництва
Теоретичні та методологічні основи програмування
5
нових компонентів, засоби їх експертизи,
тестування, вимірювання та оцінювання.
В ньому зберігають завдання ПрО та їх
опис у відповідній предметно-орієнто-
ваній мові.
Простір рішень – це реалізація об-
ласті-залежних абстракції з простору про-
блем, які подають компонентами, КПВ або
каркасами архітектури домену, а також
операціями їхнього з'єднання, вбудовуван-
ня у відповідний член сімейства. Елементи
цього простору, а саме компоненти,
розв’язують задачі цієї ПрО. Каркас осна-
щено механізмом зміни параметрів, які
вимагають фрагментацію множини дріб-
них методів і класів. Він забезпечує побу-
дову різних типів ПС сімейства із засто-
суванням аспектів синхронізації, взаємо-
дії або захисту даних, враховуючи умови
операційних середовищ (JBuilder, Eclipsе,
.Net і т.п.) [6].
Елементи простору проблем пере-
творюють до простору рішень задач за
допомогою GDM моделі та шаблонів опи-
су членів сімейства предметно-
орієнтованою мовою DSL, найбільш бли-
зькою до їхньої сутності. Абстракції прос-
тору впливають на спосіб трансформації
поданих DSL-описів членів сімейства у
МП простору, де ці завдання розв’язують.
Вони можуть бути перетворені, якщо є за-
лежними від специфіки DSL-опису домену
або від змінюваних його характеристик та
особливостей.
1.2. Предметно-орієнтовані мови опису
специфіки і задач домену
Задачі простору проблем предмет-
ної області або окремих членів сімейства,
як правило, визначають різними предмет
но-орієнтованими мовами. В даному випа-
дку термін “мова” використовується в за-
гальному розумінні. Така мова може бути
подана як засіб опису специфічних понять
ПрО, різних аспектів функціонування за-
дач через операції взаємодії членів сі-
мейств або їх складових тощо. Поняття
ПрО можуть бути подані функціями, мето-
дами як в ООП. Вони, як відомо, зберіга-
ються в бібліотеках або вбудовуються в
універсальну МП (наприклад, у С++, С#
тощо). Коли в таку мову додають різні ти-
пи абстракцій опису різних задач ПрО, то
її називають модульною предметно-
орієнтованою мовою [3–5].
Задачі домену можуть бути функці-
онального (наприклад, бухгалтерські, кад-
рові тощо) та системного (наприклад, за-
хист даних, безпека, взаємодія тощо) ти-
пів. Специфікація задач домену може ви-
конуватися декількома предметно-
орієнтованими мовами і кожній з них
притаманна своя специфічна особливість
для його опису.
До засобів предметно-орієнтованих
мов належать такі:
– опис залежних від домену абстрак-
цій, близьких до його простору проблем
та відповідного члена сімейства;
– DSL як опис специфіки домену та
характеристик його членів;
– специфікація функціональних задач
домену;
– опис аспектів взаємодії, синхроніза-
ції компонентів ПС у середовищі;
– подання завдань захисту даних та
безпеки виконання членів сімейства сис-
тем;
– SQL як специфікація програм до-
ступу до БД;
– Опис інтерфейсів членів сімейства
Рис. 1. Структура генерувальної моделі GDM
Теоретичні та методологічні основи програмування
6
та КПВ (PDL, IDL тощо).
Кожний член сімейства може бути
поданий в одної із наведених мов.
Предметно-орієнтована мова –
DSL. Її відносять до класу мов опису спе-
цифіки ПрО або домену, притаманної са-
ме цьому домену. Опис кожного члена сі-
мейства виконують мовою, специфічної
до змісту задач домену і вміщують у ге-
нерувальну модель GDM, до складу якої
входять моделі членів сімейства, також
специфіковані засобами предметно-
орієнтованих мов [5, 7, 8].
Мова DSL не є новим винаходом,
тому що загальні абстракції програмуван-
ня ПрО були раніше визначені й убудовані
в МП загального предметного призначен-
ня. І хоча мову DSL створюють особисто
для кожного нового домену, систематичне
її виконують при специфікації особливос-
тей понять доменів і визначенні їх загаль-
них рис. Ця мова – більш спеціалізована,
чим МП (Паскаль, Java, С#), які створені
з метою і орієнтацією на конкретні області
застосування. Порівняно з ними, мова DSL
близька спеціалізованим мовам, таким, як
HTML, XML і має такі специфічні особ-
ливості:
– абстракції DSL для визначення
концепцій і абстрактних понять ПрО;
– синтаксис мови DSL призначений
для опису специфіки, запобігає синтаксич-
ної непогодженості поняттям домену ана-
логічно використаним МП;
– перевірку описів в DSL виконує
аналізатор як механізм знаходження поми-
лок і повідомлень про їхню наявність мо-
вою, більш зрозумілої експертам цього
домену;
– оптимізація коду з опису в DSL ба-
зується на поданих знаннях про домен, що
не доступно компілятору з МП;
– інструменти підтримки мови DSL
вимагають наявності середовища з транс-
ляторами, редакторами, контролерами ве-
рсій і т. п.;
– предметні абстракції в МП базують-
ся на визначених користувачем функціях,
класах, структурах даних, програмах і
КПВ з бібліотек.
Модель ПрО специфікована мовою
DSL є загальною моделлю GDM і
відбиває таке:
– словник понять, онтологію відпові-
дних їм об`єктів та характеристики ПрО і
членів сімейства в просторі проблем;
– набір членів сімейства і їхніх спе-
цифікацій у мовах типу DSL, RSL, CSP та
інші;
– завдання ПрО в просторі задач для
їхньої реалізації компонентами з наступ-
ною їхньою композицією у конфігурацію
для окремого члена сімейства або усього
сімейства;
– знання про конфігурацію
(Configuration knowledge) з характеристи-
ками і їхніми сполученнями для членів
сімейства;
– модель характеристик із загальни-
ми, змінюваними і незмінними характери-
стиками членів сімейства і правилами
конструювання систем сімейства із ком-
понентів та КПВ;
– архітектуру (каркас) сімейства сис-
тем та опис компонентів архітектури у
підходящій МП.
Генерування членів сімейства здій-
снюють за специфікацією специфічних
особливостей домену в DSL. Опис домену
в цієї мові використовують у середовище
GMD розробки членів сімейства за ком-
понентами, КПВ, аспектами, об’єктами
тощо. Їхній опис трансформують до МП
загального призначення (Java, C++ та ін.),
які одночасно можуть використовуватися
для опису окремих елементів членів сімей-
ства, що розв’язують відповідні завдання
домену.
1.3. Трансформація предметно-
орієнтованих DSL описів
Модель домену або предметної області
Мпро це така загальна модель:
Мпро = {Мпро1, Мпро2, ..., МпроN), (1)
яка складається з декількох моделей окре-
мих підобластей, що відповідають деяким
членам сімейства.
Кожна з цих моделей відображає
поняття і специфіку відповідного члена
сімейства із сімейства систем домену. На
їхньому перехресті можуть знаходитися
загальні поняття, характеристики і обме-
Теоретичні та методологічні основи програмування
7
ження, які відображені у моделі характе-
ристик ПрО. Опис кожної моделі Мпроi ви-
конують відповідною предметно-
орієнтованою DSLi-мовою. Цей опис за
правилами перетворення трансформують
безпосередньо у відповідну МПi як мову
реалізації цієї моделі (рис. 2), або в іншу
DSLj-мову, яка потім трансформується у
потрібну МП.
Рис. 2. Схема трансформації моделей ПрО
Після трансформації опису моделі
ПрО у МП як проміжний опис, його
транслюють до вихідного коду того сере-
довища, де цей код буде функціонувати.
Крім того, КПВ і знову розроблені компо-
ненти, що реалізують окремі задачі з прос-
тору проблем домену, мають опис різними
МП і тим є елементами реалізації завдань
у просторі задач. Поступова перебудова
опису моделі ПрО до вихідного коду зале-
жить від платформи виконання ПС.
Подання моделей ПрО виконується
за відомою модельно-керованою розроб-
кою – MDD (Model Driven Development).
Архітектуру системи за цією моделлю мо-
делюють на двох рівнях – платформи неза-
лежного рівня за моделлю PIM (Platform
Independent Model) і платформи залежного
рівня за моделлю PSM (Platform Specific
Models). Концепції дворівневого моделю-
вання архітектури MDA (Model Driven
Architecture) і відображення PIM→PSM
безпосередньо відповідають наведеній іде-
ології побудови сімейства систем за мо-
деллю прикладних систем (Application
model) у DSL–мові (рис. 3) [9, 10].
Відповідно до підходу MDD моделі
окремих прикладних систем як членів сі-
мейства можуть входити до складу сімей-
ства ПС . Такі члени сімейства можуть
Рис. 3. Схема трансформації моделі при-
кладної системи до платформ А, В
мати спільні задачі й розрізнятися платфо-
рмами реалізації, які відмічаються точками
варіантності у моделі сімейства систем,
отриманої автоматичною трансформацією
PIM→PSM і без участі розробника. У та-
кому випадку до моделі ПрО додають точ-
ки для прийняття альтернативних концеп-
цій і моделювання особливостей понять
генерувальної моделі GDM з такими фун-
кціями:
– зберігання або сортування інфор-
мації у деяких спеціальних компонентах;
– збирання даних, що впливають на
виконання функцій компонентів;
– швидкодіюча певна конфігурація
компонентів з аспектами взаємодії;
– відображення різних поглядів щодо
загальних сумісних інтерфейсів, які мо-
жуть мати деякі організаційні наміри без
будь-яких вимог.
1.4. Моделювання архітектури сімейства
за характеристиками
Моделювання архітектури сімейст-
ва виконують за підходом, орієнтованим
на характеристики (feature-oriented
approach) її членів. Архітектура сімейства
систем з окремих членів, наслідує еталон-
ну архітектуру в просторі рішень (реаліза-
цій) ГП. Цю архітектуру формують у прос-
торі проблем таким чином, щоб різні ком-
бінації характеристик цієї архітектури мо-
гли бути застосовані як компоненти реалі-
Теоретичні та методологічні основи програмування
8
зації простору рішень у кінцевому про-
грамному продукту сімейства. Архітектура
сімейства може бути подана предметно-
орієнтованим шаблоном у цілях генеру-
вання, який визначає архітектурний стиль
ПС сімейства за її інваріантами, механіз-
мами мінливості та еволюційного розвитку
через подання комбінацій відповідних
шаблонів проектування цієї архітектури
[11].
При цьому доменну модель ПС сі-
мейства розширюють шляхом залучення
до неї інваріантних понять та характерис-
тик членів системи відповідно до певних їх
критеріїв та предметно-орієнтованого опи-
су цієї моделі засобами відповідного DSL
для опису проблем або задач, що створю-
ють область перспектив домену.
При аналізі завдань домену дослі-
джують інформаційні джерела простору
проблем, будують модель характеристик
(feature model) або особливостей (Мх), що
відображає загальні й змінні характерис-
тики членів систем у сімействі, їх власти-
вості та сполучення, а також опис проблем
мовою DSL (рис. 4). Цю модель викорис-
товують для подання архітектури системи
і визначення компонентів для деяких задач
домену.
Інформаційні
джерела
домену
Модель
характеристик
Архітектура і
компоненти ПрО
Аналіз домену
Область задач
Мови DSL для
опису проблем
Область проблем
Рис. 4. Схема побудови моделі характери-
стик ПрО
Характеристика – це властивість
членів сімейства, яка доступна користува-
чу системи й можуть бути обов’язковою,
необов’язковою або альтернативною. До
них належать інтерфейсні, проектні, про-
дуктивні та реалізаційні характеристики.
Вони визначають спільні для ПрО власти-
вості понять, а також тих, якими можна
варіювати для окремих понять та їх взає-
мозалежностей.
У модель характеристик входять
варіабельні властивості, що визначають
інформацію задану явно або неявно у
конструкціях мови DSL [8, 10]. Спільні чи
обов’язкові властивості цієї моделі можуть
бути присутні у всіх об’єктах системи і
визначати примітиви DSL та порядок об-
числень. Усі характеристики можуть відо-
бражатися у моделі характеристик відпові-
дними діаграмами орієнтованого графа
домену.
Ця модель відбуває область дії сі-
мейства систем і здатність до змінювання
архітектури та її компонентів, а також
знань з конфігурації системи, необхідної
при автоматизованому виробництві членів
сімейства.
Доменна модель в (1) за сутністю є
метамодель, вона містить моделі членів
сімейства, їх предметно-орієнтовані описи
у DSL з механізмами підвищення рівня
абстракцій і запровадження їх в реаліза-
цію окремих членів сімейства, а також
модель характеристик Мх, а саме:
Мпро = {(Мпро1, Мпро2, .., МпроN), Мх }. (2)
Інструментальні засоби генеруваль-
ного середовища забезпечують відобра-
ження характеристик Мх членів сімейства,
які відповідають поняттям з простору про-
блем в реалізовані завдання простору рі-
шень.
Розробку архітектури домену вико-
нують у просторі проблем і є їхньою про-
екцією на модель характеристик. Цей про-
стір конкретизують на прикладних і аспек-
тних характеристиках, які виконують
компоненти з простору рішень. У моделі
характеристик прикладними елементами
можуть бути архітектурні шаблони, які
слугують реалізації архітектури сімейства
систем.
1.5. Методологія розробки домену
Методологія розробки домену MDD
базується на моделі GDM [2, 7] та на:
– модельно-керованої архітектурі
MDA, що використовує мову моделювання
Теоретичні та методологічні основи програмування
9
UML для подання архітектури системи і її
конкретні профілі для різних платформ;
– модельно-інтегрованої обробки
MIC (Model-Integrated Computing) для реа-
лізації елементів системи і їхніх зв'язків за
допомогою засобів предметно-орієнтованої
мови моделювання DSML (Domain-Specific
Modeling Language) і перетворення цього
опису в платформозалежні артефакти.
Модель MIC поєднує:
– предметно-орієнтовані мови моде-
лювання DSML, як засіб формалізації
структури, поведінки і вимог до систем
усередині ПрО, визначення зв'язків між її
поняттями, семантики й обмежень цих по-
нять;
– трансформаційні процесори і гене-
ратори, які аналізують задані аспекти мо-
делей домену і синтезують вихідний код у
мову типу XML, включаючи схеми розгор-
тки, узгодження між реалізаціями і зафік-
сованими вимогами до функцій і якості
системи.
При проектуванні домену за карка-
сом або моделлю GDM можуть задавати-
ся додатково механізми змінювання, син-
хронізації, безпеки засобами аспектного
програмування.
Технологія розробки сімейства
систем має такі базові процеси [10]:
– розробку унікальних, одиночних
програм ПрО;
– інженерію повторного викорис-
тання ресурсів;
– менеджмент домену.
Розробка ПрО належить до конвеє-
рної із базових ресурсів повторного вико-
ристання, а саме: компоненти, генератори,
DSL-описи, модель ПрО, КПВ, докумен-
тація й інше. Розробка предметної області
– це більш складний виробничий процес і
містить у собі такі загальні етапи: аналіз,
проектування і впровадження в ПрО
одиночних програм або КПВ.
Аналіз області це аналіз систем
сімейства, які треба побудувати, визнача-
ючи для них загальні й відмінні риси,
створити структурні та поведінкові специ-
фікації членів сімейства. Аналіз ПрО по-
чинають з вибору вимог і їхньої специфі-
кації для системи і членів сімейства. Спе-
цифікація вимог – це вхідні дані для руч-
ного або автоматичного створення домену
з готових ресурсів [9]. Найважливішим ви-
ходом аналізу є термінологія та базована
на ній спільна мова фіксації знань щодо
ПрО, яка залишається неформальною,
хоча базується на певній термінології та
змісті понять цієї ПрО.
Інженерія повторного викорис-
тання – це пошук і аналіз КПВ для їхнього
повторного використання під час
розв’язання задач ПрО. Вони відобража-
ються в загальній архітектурі сімейства і її
окремих членів (тобто прикладних систем)
сімейства цієї ПрО. Такими членами мо-
жуть бути одиночні прикладні системи,
що вироблені методами прикладної інже-
нерії, або готові КПВ.
Впровадження або реалізація сис-
тем сімейства виконують за готовими ре-
сурсами: компонентами, одиночними про-
грамами, генераторами, DSL–описами й ін.
Об’єднання цих ресурсів у зв’язану сукуп-
ність виконуються за допомогою генера-
торів або конфігураторів готових ресурсів.
Згенеровані продукти сімейства можуть
включати і не програмні артефакти, на-
приклад, інструкції з користування DSL s
продуктами домену.
Менеджмент домену – це керуван-
ня конвеєрною розробкою з повторним ви-
користанням ресурсів, яку планують і ко-
нтролюють при підборі типових для ПрО
ресурсів, їхньої оцінки та перевірки відпо-
відності вимогам до систем сімейства. У
задачу менеджменту входить також пере-
вірка можливості застосування тих чи ін-
ших готових ресурсів для реалізації спе-
цифіки ПрО і програмування компонентів
з простору задач відповідно до потреб
клієнтів домену.
Таким чином, інженерія домену
складається з таких процесів:
– аналізу домену, виявлення об'єктів і
зв’язків між ними та побудова Мпро;
– визначення області дій об'єктів,
членів сімейства ПрО;
– визначення загальних функціональ-
них і змінюваних характеристик, побудова
моделі Мх з встановленням залежностей
між різними членами сімейства;
Теоретичні та методологічні основи програмування
10
– створення базису для інженерії ви-
робництва конкретних прикладних членів
сімейства з механізмами змінювання неза-
лежно від засобів їхньої реалізації;
– підбору і підготовки КПВ для реа-
лізації задач ПрО;
– генерації окремих членів сімейства
або домену в цілому.
Процеси в цій схемі забезпечують
формування моделі ПрО і моделі Мх, як
елементів простору проблем. Їх трансфор-
мують в архітектуру системи й опис її
компонентів. При цьому здійснюють під-
бір КПВ і їхню генерацію для отримання
програм, що розв’язують задачі ПрО у
просторі рішень. Іншими словами, дана
схема призводить до генерації моделі
GMD для сімейства ПС, зміни її членів і
породженню готових підсистем або окре-
мих членів сімейства [1, 2, 4].
Змінюваність деяких членів сімейс-
тва досягається шляхом [10]:
– коректування процесів виробництва
через включення у систему нових проект-
них рішень або КПВ;
– моделювання залежностей між
компонентами, формування сутності зміни
деяких елементів моделі GMD, об'єктної
моделі або моделі взаємодії шляхом дода-
вання нових вимог і деяких властивостей
понять з фіксацією їх у моделі характери-
стик і в конфігурації системи;
– фіксації залежностей між додатко-
вими характеристиками понять і об’єктів з
уточненням моделі Мпро і конфігураційної
бази сімейства систем;
– розроблення інфраструктури КПВ,
включаючи засоби репозитарію для опису,
збереження, пошуку, оцінювання, а також
об'єднання їх у нові системи сімейства;
– забезпечення безпеки, захисту да-
них для окремих членів сімейства, а також
взаємодії КПВ у складі сімейства систем,
які функціонують у різних середовищах.
Таким чином, модель Мпро сімейст-
ва ПС, її модель характеристик і набір
компонентів, реалізуючих задачі домену, є
базисом автоматизованої генерації окре-
мих членів сімейства і сімейства у цілому,
що специфіковані мовою DSL або МП.
2. Розробка теоретичних і прикладних
аспектів ГП
Сформульовані вище основні поло-
ження ГП показують, що в його межах
склалися достатньо важливі концепції,
моделі і методи, орієнтовані на інжене-
рію виробництва сімейства систем. Але ці
напрацьовані положення потребують роз-
витку формального апарата щодо СПС,
засобів тестування згенерованих членів
сімейств, гарантування й оцінювання їх-
ній якості та життєздатності функціону-
вання у сучасних середовищах генерацій-
ного типу. На розв’язання цих проблем
зорієнтована наукова тема проекту "Розро-
бка теоретичного апарату генеруючого
програмування і інтегрованого середови-
ща його підтримки” Інституту програмних
систем НАН України (2007–2011 рр.).
Головні напрями основ формально-
го подання СПС у ГП направлені на роз-
робку:
– змісту, меж ПрО, мовних засобів
опису і розв’язання задач ПрО як членів
сімейств за їхній генерацією до умов су-
часних середовищ і платформ;
– метазасобів подання DSL-мовою зі
специфічними поняттями домену та моде-
лі характеристик, з їхніми властивостями,
взаємозв’язками та залежностями від за-
дач членів сімейства;
– апарата інфраструктури підтримки
опису інтерфейсів КПВ, їхнього сховища
та методів пошуку необхідних КПВ для
застосування у нових системах;
– технологічних базових положень
сімейства процесів життєвого циклу, кож-
ний з яких забезпечує спеціалізовану
трансформацію деякого члена сімейства
систем та різних її складових;
– новітніх підходів до верифікації і
тестування готових КПВ, їхніх сукупнос-
тей та складових сімейства домену;
– нової концепції експертного оціню-
вання елементів процесів розроблення, ре-
алізуючих різні задачі членів сімейства
домену, а також вдосконалених методів
оцінювання якості згенерованих продуктів
для систем сімейства;
Теоретичні та методологічні основи програмування
11
– інструментального середовища з
репозитарієм артефактів (КПВ, компонен-
ти, аспекти тощо) для вибору готових,
розроблення нових компонентів і поро-
дження з різних шаблонів (templates) про-
грам і інших складових систем сімейства;
– нових характеристик, що забезпечу-
ють життєдіяльність згенерованих членів
сімейства систем, що розташовані та фун-
кціонують у різних середовищах.
Поставлені завдання у даному про-
екті ґрунтуються на наукових і приклад-
них результатах, отриманих у попере-
дньому фундаментальному проекті “Роз-
робка теоретичних основ та методологіч-
них засад компонентного програмування”
(2001–2006 рр.), що був призначений для
побудови теорії компонентного програму-
вання [1, 12], а саме, формалізації опису
інтерфейсів різних КПВ для їхнього збері-
гання у репозитаріях і визначення операцій
інтеграції різномовних компонентів для
нових компонентних систем. За цим прое-
ктом сформульована теорія КПВ і компо-
нентів як основи ГП, оскільки КПВ – це
головні „деталі” виробництва компонент-
них систем і СПС, і з нашої точки зору,
вона є первинним теоретичним фундамен-
том, який надалі буде розвиватися у ГП.
Дамо характеристику базового фу-
ндаменту компонентного програмування і
новим підходам з розв’язання вищепере-
лічених задач ГП.
2.1. Об’єктно-компонентний метод як
базовий фундамент ГП
Головне досягнення попереднього
фундаментального проекту – новий метод
комплексного аналізу і компонентної по-
будови програмних систем [12]. У методі
узагальнено поняття об'єктів, як елементів
реального світу з відповідними властивос-
тями і характеристиками, послідовне їхнє
визначення на рівнях об'єктного аналізу
(узагальненого, структурного, характерис-
тичного, поведінкового) засобами матема-
тичних формалізмів опису та уточнення
вибраних при проектуванні домену різних
об'єктів, з завданням їм достатніх власти-
востей та характеристик, що відрізняють
один об’єкт від іншого. Доведення прина-
лежності властивостей об'єктів ПС вико-
нано за теорією Фреге [13].
Розроблений об’єктно-компонент-
ний метод програмування відображає
принципи об’єктного аналізу ПрО з побу-
дови об’єктної моделі (ОМ), а також фор-
мальний перехід від об'єктів до компонен-
тів з інтерфейсами. Тобто цей метод
встановлює з формальної точки зору тео-
ретичний і практичний зв'язок між об'єкт-
ним аналізом і компонентним розроблен-
ням ПС, вміщує операції об'єктного аналі-
зу, зовнішній та внутрішній компонентної
алгебри [12].
Об'єктний аналіз виконується на
множині базових функцій зміни денотат і
концептів об'єктів під час декомпозиції
ПрО на об'єкти O=(O1, O2, . On) за такими
операціями:
– декомпозиційне змінювання дено-
тата однорідних і неоднорідних об'єктів –
decds (Oi): Oi → (Oi1, … Oik) для ∀j Conij =
=Coni,∪ Denij = Deni чи ∀j Conij = ∅,
∪Denij = Deni ;
– композиційне змінювання денотата
однорідних і неоднорідних об'єктів comds
(Oi1, … Oik): (Oi1, … Oik) → Oi, для∀j Coni =
=Conij, Deni = ∪Denij і Coni = ∅, Deni =
=∪Denij ;
– розширення концепту об’єкта таки-
ми умовами (Pt ∈ P), (Pt ∉ Coni), де Pt(Oi)
істинно і conexp (Oi, Pt) : Oi → Oi`, Coni ∪
{Pt} = Coni ;
– звуження концепту connar(Oi, Pt):
Oi → Oi` при Oi` = Oi`(Namei, Deni, Coni`),
Coni`= =Coni \ Pt .
Ці операції забезпечують адекватне
подання ОМ ПрО.
Теоретичні аспекти компонент-
ного програмування. Складовими нової
теорії компонентного програмування є мо-
делі компонента, інтерфейсу, середовища
та алгебра (зовнішня та внутрішня). Ці мо-
делі – інструмент переходу від ОМ до
компонентної моделі ПрО за операціями
зовнішньої і внутрішної алгебри.
Зовнішня алгебра: Ψ = {CSet, CESet,
Ω1}, де Ω1= {CE1, CE2, CE3, CE4} – опе-
рації зовнішній алгебри:
– інсталяція (розгортання) CE2 =
=Comp ⊕ CE1;
Теоретичні та методологічні основи програмування
12
– об'єднання компонентних середо-
вищ CE3 = CE1 ∪ CE2;
– видалення компонента з компонен-
тного середовища CE2 = CE1 \ Comp;
– заміщення компоненти Comp1 на
Comp2 – CE2 = Comp2 ⊕ (CE1 \ Comp1).
Внутрішня алгебра: ϕ = { CSet,
CESet, Ω2}, де Ω2 = {Оrefac, OReing , ORever }
– операції внутрішній алгебри, призначе-
ні для еволюційного змінювання об’єктів
до компонентів, а також безпосередньо са-
мих компонентів:
– операції рефакторінгу Оrefac =
={AddOImp, AddNImp, ReplImp, AddInt};
– операції реінженерії Oreing=
={rewrite, restruc, adop, supp, conver };
– операції реверсної інженерії ORever=
={visual, metric, restruc, design, rewrite}.
Зовнішня і внутрішня алгебра разом
складають алгебру компонентного програ-
мування: Ξ = {Ψ ∩ ϕ} = { CSet, CESet,
Ω1} = { CSet, CESet, Ω2}= {CSet, CESet,
Ω1, Ω2}.
Компонентна алгебра – новий базис
формалізованої інженерії виробництва ПС
з компонентів та КПВ.
Розвиток формальних і мовних
аспектів в ГП. Формальний апарат ГП
буде створюватися з використанням тео-
ретичного апарата компонентного програ-
мування, що включає формальні моделі
опису і подання компонентів, frameworks
ПрО, а також операцій відповідної ком-
понентної алгебри. До цього апарата бу-
дуть додаватися формальні засоби (синта-
ксис і семантика) предметно-орієнтованої
мови DSL, глосарій і онтологія доменів,
нові можливості подання інфраструктури
репозитарієв КПВ [14 –18], моделі якості
[19–21] й життєздатності (живучості) виго-
товлених систем [23–25]. Мова опису по-
нять і задач ПрО буде залежать від засо-
бів подання вимог (наприклад, UML [14]),
моделей ПрО і методів їх трансформації до
виконавчого коду, патернів (заготовок) де-
яких компонентів з операціями їхній гене-
рації і використання у сімействі [3, 11], та
інших новітніх концепцій генерування і
композиції різних об’єктів і компонентів у
сімейство з урахуванням умов середовища
ГП [1–3].
Передбачається подання моделі ха-
рактеристик діаграмами засобами UML,
для якого є досвід побудови алгебри
об’єктного аналізу з правилами керування
тими діаграмами UML [12, 14], як алгебра
графічного подання характеристик деяких
систем сімейства доменів та складова час-
тина компонентної алгебри.
Додавання до алгебри інших опера-
цій залежить від типів генераторів, транс-
форматорів, а також плагинів, що увійдуть
до складу середовища як інструменти пе-
ребудови різних описів членів сімейства,
генерації наявних шаблонів, цільових
frameworks тощо. До складу операцій
увійдуть операції і процедури, пов’язані з
методами тестування згенерованого вихід-
ного коду для членів сімейства і сімейства
систем, а також новий теоретичний апарат
з методами експертного і якісного оціню-
вання показників якості, живучості проду-
ктів сімейства у середовищі ГП та аспекти
теорії керування програмними проектами.
У межах ГП повторне використання
КПВ отримує розвиток нових типів
об’єктів та засобів їх опису і подання КПВ
у репозитарій [17, 18], моделювання і ви-
готовлення сімейств систем за цими КПВ з
систематичним пошуком спільних рис між
КПВ, інструментами, системами сімейства
і готовими одиничними програмами з да-
ної ПрО чи з іншої. На основі деяких спі-
льних рис можуть бути створені окремі
члени сімейства як повторно використані
(наприклад, загальні архітектури, компо-
ненти, моделі). Але нова форма абстракцій
фреймворків і компонентів за предметно-
орієнтованими мовами, відсутність чітких
границь і різноманітних їхніх описів по-
требує, на наш погляд, додавання у метод
генерації нових правил і операцій, які бу-
дуть також породжені залученими деякими
плагинами й інструментами до середови-
ща ГП.
2.2. Інфраструктура КПВ
Як вище описано, одним з продук-
тів аналізу домену є пошук повторно вико-
ристовуваних знань конкретні КПВ, що
необхідні домену. У попередніх проектах
Теоретичні та методологічні основи програмування
13
з компонентного програмування сформу-
льовано концепцію подання кожного КПВ
інформаційною моделлю у вигляді пошу-
кового образу, в якому анотовані функції,
інтерфейси, мова опису, середовище роз-
робки тощо [17]. Стандартом їхнього по-
дання є UML діаграми, що задані в термі-
нах понять користувача. До інфраструкту-
ри належать насамперед накопичені у ре-
позитарію КПВ, методичні, технічні і люд-
ські ресурси, що зді1йснюють зберігання і
вибірку КПВ для подальшого їхнього за-
стосування у деякої прикладної системі
домену, що розробляється.
Сутність КПВ полягає у їхній неза-
лежності від конкретної платформи, наяв-
ності інтерфейсу і параметрів настрою-
вання на нове середовище, а також можли-
вості взаємодії з іншими компонентами
системи без внесення в них змін. Основні
процеси розроблення ПС за КПВ такі:
– аналіз об'єктів і зв’язків у ПрО, яку
реалізують з метою виявлення КПВ з зага-
льними властивостями, притаманними гру-
пам об'єктів цієї області;
– адаптація наявних КПВ у базі репо-
зитарію, розроблення нових процесів і
функцій, не представлених у цій базі, і до-
ведення їх до рівня повторного викорис-
тання;
– розроблення інтерфейсів компонен-
тів і розміщення їх у репозитарії інтерфей-
сів системи;
– інтеграція КПВ з їхніми інтерфей-
сами та іншими елементами ПС і форму-
вання конфігураційної бази системи.
У ГП в якості готових компонентів
могуть бути різні програмні артефакти як
універсальні методи і ресурси, так і ін-
струменти, які необхідні для виконання
процесів розроблення ПС.
Процес генерації систем за участю
усіх видів готових ресурсів пропонується
такий [16–18]:
1) генерація вимог під керуванням
користувача;
2) пошук готових ресурсів проекту-
вання систем за вимогами;
3) прийняття рішення щодо визначен-
ня достатності знайдених готових ресурсів,
засобів і інструментів у репозитарії та їх
генерації у відповідному середовищі.
Головне завдання щодо готових ре-
сурсів у проекті, це розроблення онтологі-
чних моделей їхній специфікації, яка слу-
гує поданню деякого ресурсу у формалізо-
ваному і загальному за формою шаблоні,
здатному для генерації спеціальними ін-
струментами за єдиною генераційною
схемою.
2.3. Верифікація, тестування членів сі-
мейства та їх оцінювання
Одним з напрямів дослідження
проблем ГП є інженерія оцінювання
об’єктів СПС і пов’язаних з нею питання
перевірки правильності (верифікація, тес-
тування) членів сімейства. Проблема оці-
нювання об’єктів ПС детально досліджена
у попередніх проектах, а також наведена у
звіті за 2008 рр. Створені нові концепції і
методи експертного і кількісного оціню-
вання різних об’єктів і запропоновані нові
проектні рішення з оцінювання показ-
ників якості для сімейства процесів у
ГП [ 19, 20].
Іншим напрямом вирішення про-
блеми оцінювання – удосконалення існую-
чих і розроблення нових методів тестуван-
ня різних об’єктів (звичайних компонентів,
веб-компонентів і сервісів тощо) за онто-
логічною моделлю, затвердження їх відпо-
відності загальноприйнятим стандартам і
моделям якості ПС, визначеним для оці-
нювання генерованих членів сімейства
ПрО. Наступним напрямом є побудова мо-
делей архітектури сімейства ПС за новіт-
німи підходами, сформульованими до ін-
женерії якості ПС [7, 18] з можливістю
зміни різних артефактів після генерації і
отримання оцінок, що не задовольняють
розробників сімейства систем.
Всі ці задачі і підходи орієнтовані
на нове сімейство процесів ГП, а саме:
– оброблення описів КПВ та їхніх ін-
терфейсів, зберігання їх у різних схови-
щах (репозитаріях) для подальшого вибору
і пристосовування у конфігурацію сис-
теми з сімейства;
– генерації членів сімейства за різни-
ми процесами середовища з метою отри-
мання кінцевого продукту домену;
Теоретичні та методологічні основи програмування
14
– підтримки набору процесів з фор-
малізованого сімейства процесів з інжене-
рії доменів, прикладних систем і доменів
шляхом поступового конвеєрного вироб-
лення на них відповідних продуктів для
масового вживання користувачами;
– реалізації нового методу багато-
критеріального експертного оцінювання
об’єктів ЖЦ систем та механізмів забез-
печення варіабельності архітектури СПС із
застосуванням експертних методів оціню-
вання [18, 21, 22];
– підтримки графічного подання он-
тологій з тестування і використання спеці-
альних видів плагинів оцінювання продук-
ту після тестування;
– моделювання нефункціональних
характеристик СПС за комбінуванням різ-
нотипних моделей ПрО, формальної ве-
рифікації моделей характеристик ПрО та
ієрархічної моделі якості компонентів.
Одним з процесів сімейства буде
процес експертного оцінювання, що пода-
ється системою експертиз з використан-
ням моделі переваг класу аргументованого
дерева цінності [20], інформаційне взаємо-
пов’язаних онтологічним середовищем із
визначеними у ньому відношеннями поді-
бності, а також індивідуальними експерт-
ними оцінками на основі імовірності подій
у процесі розроблення [22].
Тобто, у проекті системи ГП ста-
виться задача забезпечення теоретичної,
нормативно-методологічної та програмної
підтримки розв’язку проблем верифікації,
тестування й моделювання якості членів
сімейства і самих сімейств процесів ГП.
2.4. Концептуальні основи побудови си-
стеми генерації і середовища ГП
Головні концепції такі:
– визначення змісту, моделей і меж
ПрО з формування спеціалізованого сере-
довища ГП, а також набору мовних і про-
грамних засобів опису і розв’язку завдань
доменів [24];
– вибір підходящих frameworks від-
критого типу для підтримки процесів роз-
роблення, генерації і оцінювання якості та
живучості програмних продуктів для різ-
них типів доменів;
– реалізація готових шаблонів і ком-
понентів з різних доменів та розміщення їх
у середовищі ГП;
– визначення архітектурних і проект-
них рішень щодо середовища ГП для під-
тримки інженерії доменів за типом конвеє-
рного виробництва.
Застосування DSL як засобу по-
дання специфіки ПрО потребує наявності у
середовищі ГП:
– інструментів трансформації опису
моделей доменів шляхом перетворення
первісної моделі у вихідну (цільову) згід-
но з сформульованими операціями алгеб-
ри ГП з перетворення як для однієї мови,
так і для сукупності конструкцій мов її
подання.
– інструментальних засобів (компіля-
тор, редактор, аналізатор, верифікатор, ге-
нератор тощо), які при змінах ПрО теж
можуть змінюватися або замінюватися;
– метаінструментів для оброблення
моделей ПрО, які зможуть адаптуватися
до нових мов DSL або тих, які відобра-
жають частини вже використаних мов
DSL;
– засобів побудови нових версій зге-
нерованих програмних продуктів або
окремих їх частин у системах сімейства,
що описані МП. Їми можуть бути також
мета інструменти з механізмами настрою-
вання і створення нових конфігурацій сис-
тем сімейства;
– універсальні засоби трансформації,
придатні для будь-якої ПрО і незалежних
від ПІ;
– технологічні процеси життєвого
циклу, здатні послідовно виконувати об-
робку різних описів (вимог, специфіки,
специфікації тощо).
Тож задача інформаційного забез-
печення системи генерації – запропонува-
ти на кожній стадії розробки засобів під-
тримки трансформації описів і моделей.
Усі перераховані процеси створю-
ють базове ядро системи ГП. В якості ін-
струментального середовища цієї системи
обрано Eclipse [6], яка є відкритою систе-
мою і надає базові frameworks, типові ін-
струменти, а також засоби й інструменти,
за якими додаються нові можливості з
забезпечення генерації різних СПС.
Теоретичні та методологічні основи програмування
15
2.5. Проблема забезпечення живучості
систем сімейства
Одним з важливих понять у сімей-
стві систем є життєздатність (viability –
живучість), тобто властивість кожної з
систем виконувати свої функції в процесі
супроводу в відповідному середовищі з
урахуванням різних зовнішніх і внутрі-
шніх випадків з нестабільного виконання.
Важливою умовою життєздатності деякої
системи є можливість при вказаних випад-
ках змінювати й адаптувати свою модель
шляхом корегування проектних характери-
стик архітектурного каркасу і структурних
інваріантів, поданих засобами теорії живу-
чості LST (Living System Theory) [23], мо-
делюванням архітектури MDA і механіз-
мами інтеграційної обробки MIC. Теорія
LST дає інтегрований концептуальний
підхід LSPA (Living Systems Process
Analysis) проведення процесу аналіза жи-
вучості майбутній системи за розробкою і
супроводом. Основні положення цієї теорії
досліджені і вивчені в межах попередньо-
го згаданого проекту, які отримують роз-
виток для сімейства систем ГП.
За теорією живучості створюють
модель живучості VSM (Viable System
Model) [24], яка містить у собі такі важливі
механізми, як зменшення (atttnuation) або
збільшення (amplification) головних її опе-
рацій, у випадку, коли виникають деякі
нерегулярні ситуації при функціонуванні
системи і потребують перенастроювання
вхідних параметрів і характеристик моделі
життєздатності системи на подальше про-
довження її роботи [25].
До складу цієї моделі включають
деякі показники стандартної моделі якості,
а саме, адаптивність, змінність, реактив-
ність тощо. Крім того, ця модель попов-
ниться деякими властивостями з моделі
характеристик системи генерувального
програмування, які будуть зорієнтовані на
операції внесення змін і адаптацію чинни-
ків і зв’язків між різними характеристика-
ми цієї моделі. Всі ці задумки будуть спи-
ратися на засоби UML моделювання окре-
мих систем сімейства, нові моделі обчис-
лювань [15], шаблони (pattern-oriented
architecture) архітектури, механізми керу-
вання ними тощо. Ця модель буде відо-
бражена у конфігураційній моделі СПС,
що керує розгортанням окремих її членів.
Тобто, властивість живучості тлу-
мачиться нами як комплексна характерис-
тика ПС, яка вміщує у собі різні характе-
ристики, властивості й показники, що на-
копичені в інших сучасних моделях, от-
римали досвід і будуть адоптовані до по-
треб розроблення, розгортання та функці-
онування систем сімейства.
Таким чином, у рамках даного про-
екту вирішується проблема забезпечення
живучості окремих ПС із сімейства з ви-
користанням шаблонів архітектури, набо-
ру сучасних моделей та відповідних
процесів із сімейства ГП. Залучення шаб-
лонів проектування до процесу розроб-
лення складних систем за моделями жи-
вучості й якості сприяє реалізації їх більш
якісними і життєздатними у середовищі
генерувального програмування.
Висновок
У роботі в межах проекту проведе-
ний аналіз основних положень сучасного
ГП, сформульовані нові шляхи його розви-
тку щодо систематизації і удосконалення
базових засобів подання ПС, сімейств сис-
тем за КПВ, які накопичують у системно-
му репозитарію ГП. Сформульовані підхо-
ди до трансформації і генерації різних
описів членів сімейства. Визначені нові
підходи з їх тестування, проведення експе-
ртиз, оцінювання якості й забезпечення
живучості генерованих систем у середо-
вищі ГП. Розроблено загальна структура
процесів сімейства та системи ГП за вище
наведеними напрямами.
1. Лаврищева Е.М. Методы программирова-
ния. Теория, инженерия, практика.– Киев:
Наук. думка, 2006. – 450 с.
2. Kang K.C., Cohen S.G., Hess J.A.., Novak
W.E. and Peterson A.S. Feature-oriented do-
main analysis (FODA) feasibility study.
Technical Report CMU/SEI-90-TR-21, Soft-
ware Engineering Institute, Carnegie Mellon
University, 1990.
Теоретичні та методологічні основи програмування
16
3. Чернецки К., Айзенекер У. Порождающее
программирование. Методы, инструмен-
ты, применение.– М. – СПб. – Харьков. –
Минск. – Изд. дом Питер, 2005. – 730 с.
4. Crarnetcki K. Owerview of Generative Soft-
ware Development // Canada,
www.crarnetcki.fcm.org
5. Mernik M., Heering J., Sloane A.M.: When
and how to develop domain-specific lan-
guages. Technical Report SEN-E0309, CWI,
Amsterdam, 2003, Available from
http://www.cwi.nl/ftp/CWIreports/SEN/SEN-
E0309.pdf
6. Гамма Э., Бек К. Расширения Eclipse:
принципы, шаблоны и подключаемые мо-
дули.: Пер. с. англ. – М.: КУДИЦ-ОБРАЗ,
2005.– 384 с.
7. Consel C. From a program family to a do-
main-specific language // Symposium on
Principles of Programming Languages,
Charleston, SC, USA, ACM Press, 1993.– P.
19–29.
8. Jeff Grey et al. OOPSLA’02 Workshop on
Domain-Specific Visual Languages, 2002.
http://www.cis.uab.edu/info/OOPSLA-
DSVL2
9. Model Driven Development and Software
Product Lines. BigLever Software Inc. –
2007.
http://www.biglever.com/technotes/mdd_spl.
html?source=mdd
10. Mezini, M., Ostermann, K. Variability man-
agement with feature-oriented programming
and aspects. In: Foundations of Software En-
gineering (FSE-12), ACM SIGSOFT 2004.–
P. 123–130.
11. Гамма Э., Хелм Р., Джонсон Р., Влиссидес
Дж. Приемы объектно-ориентированного
проектирования. Паттерны проектирова-
ния. – СПб: Питер, 2001. – 368 с.
12. Грищенко В.Н. Метод об’єктно-
компонентного проектування програмних
систем // Проблеми програмування.–
2007.– № 2.– С. 113–125.
13. Фреге Г. Логика и логическая семантика.–
М.: Аспект–пресс, 2000. – 512 с.
14. Буч Г.,Рамбо Д., Джекобсон А. Язык
UML. Руководство пользователя: Пер. с
англ. – М.: ДМК, 2000. – 432 с.
15. Меллор C. Программная инженерия. Про-
граммы должны работать // Открытые
системы. – 2008. – № 8. – С. 42–51.
16. Jacobson I., Griss M., Johnson P. Software
Reuse: Architecture, Process and
organization for Business Success – Addison
Wesley, Reading , MA, May 1997.– 501 p.
17. Бабенко Л.П. Онтологический подход к
спецификации свойств программных сис-
тем и их компонент // Кибернетика и сис-
темный анализ. – 2009. – № 1. – С. 30–37.
18. Бабенко Л.П. Спецификация прогнози-
руемой вариантности как инструмент
управления изменениями программных
продуктов UML // Кибернетика и систем-
ный анализ. – 2007. – № 3. – С. 156–163.
19. Лавріщева К.М., Коваль Г.І., Коротун Т.М.
Підходи інженерії якості сімейств програ-
мних систем // Проблеми програмування.
– 2008. – № 2– 3. – С. 219 – 228.
20. Лавріщева К.М. Перспективні дисципліни
програмної інженерії.–К.: Вісник НАН
України, 2008. – С. 12–17.
21. Слабоспицька О.О. Моделі і методи ек-
спертного оцінювання у життєвому циклі
програмних систем. Автореф. дис.… канд.
физ.-мат. наук. – Ін-т кібернетики ім. В.М.
Глушкова НАН України, Київ; 2008. –
21 с.
22. Слабоспицька О.О. Задачі, методи та засо-
би експертного оцінювання якості в інже-
нерії програмних систем // Проблеми про-
грамування. – 2007. – № 3. – C. 32–40.
23. Miller J.G. Living Systems. – Niwot,
Colorado: University Press of Colorado,
1995. – 1102 p.
24. Herring C. Viable software. The intelligent
control paradigm for adaptable and adaptive
architecture. – 2002.– 343p. http://charles-
herring.com/public/ViableSoftware.pdf
25. Ігнатенко П.П., Бистров В.М. Особливос-
ті забезпечения життєздатності програм-
них систем в умовах генеруючого про-
грамування // Проблеми програмування.
– 2008. – № 2 – 3.– C. 270–279.
Отримано 03.12.2008
Про автора:
Лавріщева Катерина Михайлівна,
доктор фізико-математичних наук,
професор.
Місце роботи автора:
Завідуюча відділом ІПС НАН України,
Тел.: 526 3470
e-mail – lem@isofts.kiev.ua
|
| id | nasplib_isofts_kiev_ua-123456789-2911 |
| institution | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| issn | 1727-4907 |
| language | Ukrainian |
| last_indexed | 2025-12-07T13:18:07Z |
| publishDate | 2009 |
| publisher | Інститут програмних систем НАН України |
| record_format | dspace |
| spelling | Лавріщева, К.М. 2009-05-13T14:47:13Z 2009-05-13T14:47:13Z 2009 Генерувальне програмування програмних систем і їх сімейств / К.М. Лавріщева // Пробл. програмув. — 2009. — № 1. — С. 03-16. — Бібліогр.: 25 назв. — укр. 1727-4907 https://nasplib.isofts.kiev.ua/handle/123456789/2911 681.3 У роботі наведено аналіз основних положень і досягнень сучасного генерувального програмування, сформульовані нові напрями його розвитку щодо систематизації і удосконалення базових засобів подання програмних систем, сімейств систем предметно-орієнтованими мовами і компонентами повторного використання, а також нових інструментів їхній трансформації з генераційним змістом та адаптованих до умов генерації моделі якості та життєздатності систем сімейств.--------------- В работе дан анализ основных положений и достижений современного генерирующего программирования. Сформулированы новые направления его развития: систематизация и усовершенствование базовых способов представления программных систем, семейств систем предметно-ориентированными языками и компонентами повторного использования, а также новых инструментов их трансформации с генерационным смыслом и адаптированных условиям генерации моделей качества и живучести систем семейств.--------------- The basic conceptions and reaching of modern generative programming are considered. New directions of their evolution as systematization and improving of basic represent system of program, their families of the subject-oriented languages and reuse components, new tools them transformations and generation, adoptive of model quality and living are formed. uk Інститут програмних систем НАН України Теоретичні та методологічні основи програмування Генерувальне програмування програмних систем і їх сімейств Generayive programming of program systems and their families Генерирующее программирование программных систем и их семейств Article published earlier |
| spellingShingle | Генерувальне програмування програмних систем і їх сімейств Лавріщева, К.М. Теоретичні та методологічні основи програмування |
| title | Генерувальне програмування програмних систем і їх сімейств |
| title_alt | Generayive programming of program systems and their families Генерирующее программирование программных систем и их семейств |
| title_full | Генерувальне програмування програмних систем і їх сімейств |
| title_fullStr | Генерувальне програмування програмних систем і їх сімейств |
| title_full_unstemmed | Генерувальне програмування програмних систем і їх сімейств |
| title_short | Генерувальне програмування програмних систем і їх сімейств |
| title_sort | генерувальне програмування програмних систем і їх сімейств |
| topic | Теоретичні та методологічні основи програмування |
| topic_facet | Теоретичні та методологічні основи програмування |
| url | https://nasplib.isofts.kiev.ua/handle/123456789/2911 |
| work_keys_str_mv | AT lavríŝevakm generuvalʹneprogramuvannâprogramnihsistemííhsímeistv AT lavríŝevakm generayiveprogrammingofprogramsystemsandtheirfamilies AT lavríŝevakm generiruûŝeeprogrammirovanieprogrammnyhsistemiihsemeistv |