Компонентне програмування. Теорія і реалізація
Компонентне програмування (КП) є різновидом збирального програмування, де роль елементів зборки відігріває програмний компонент чи компонент повторного використання (КПВ, reuse) й інтерфейс. Для програмування КПВ розроблено теорію моделювання предметної області (ПрО) за об’єктами, подання їх функцій...
Збережено в:
Дата: | 2012 |
---|---|
Автор: | |
Мова: | Ukrainian |
Опубліковано: |
Інститут програмних систем НАН України
2012
|
Теми: | |
Онлайн доступ: | http://dspace.nbuv.gov.ua/handle/123456789/86635 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Цитувати: | Компонентне програмування. Теорія і реалізація / К.М. Лавріщева // Проблеми програмування. — 2012. — № 4. — С. 3-18. — Бібліогр.: 21 назв. — укр. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-86635 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-866352015-09-25T03:01:46Z Компонентне програмування. Теорія і реалізація Лавріщева, К.М. Теоретичні та методологічні основи програмування Компонентне програмування (КП) є різновидом збирального програмування, де роль елементів зборки відігріває програмний компонент чи компонент повторного використання (КПВ, reuse) й інтерфейс. Для програмування КПВ розроблено теорію моделювання предметної області (ПрО) за об’єктами, подання їх функцій компонентами й інтерфейсами з формальними анотаціями для їх збереження в бібліотеках, необхідних різним програмним системам (ПС). Математичний апарат КП – це моделі, методи, алгебра об’єднання і змінювання КПВ, алгебраїчні системи перебудови типів даних КПВ та моделі варіабельності і взаємодії СПС. Теоретичні аспекти ТП автоматизовані на веб-сайті ІТК (http://sestudy.edu-ua.net). 2012 Компонентне програмування. Теорія і реалізація / К.М. Лавріщева // Проблеми програмування. — 2012. — № 4. — С. 3-18. — Бібліогр.: 21 назв. — укр. 1727-4907 http://dspace.nbuv.gov.ua/handle/123456789/86635 681.03 uk Інститут програмних систем НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Ukrainian |
topic |
Теоретичні та методологічні основи програмування Теоретичні та методологічні основи програмування |
spellingShingle |
Теоретичні та методологічні основи програмування Теоретичні та методологічні основи програмування Лавріщева, К.М. Компонентне програмування. Теорія і реалізація |
description |
Компонентне програмування (КП) є різновидом збирального програмування, де роль елементів зборки відігріває програмний компонент чи компонент повторного використання (КПВ, reuse) й інтерфейс. Для програмування КПВ розроблено теорію моделювання предметної області (ПрО) за об’єктами, подання їх функцій компонентами й інтерфейсами з формальними анотаціями для їх збереження в бібліотеках, необхідних різним програмним системам (ПС). Математичний апарат КП – це моделі, методи, алгебра об’єднання і змінювання КПВ, алгебраїчні системи перебудови типів даних КПВ та моделі варіабельності і взаємодії СПС. Теоретичні аспекти ТП автоматизовані на веб-сайті ІТК (http://sestudy.edu-ua.net). |
author |
Лавріщева, К.М. |
author_facet |
Лавріщева, К.М. |
author_sort |
Лавріщева, К.М. |
title |
Компонентне програмування. Теорія і реалізація |
title_short |
Компонентне програмування. Теорія і реалізація |
title_full |
Компонентне програмування. Теорія і реалізація |
title_fullStr |
Компонентне програмування. Теорія і реалізація |
title_full_unstemmed |
Компонентне програмування. Теорія і реалізація |
title_sort |
компонентне програмування. теорія і реалізація |
publisher |
Інститут програмних систем НАН України |
publishDate |
2012 |
topic_facet |
Теоретичні та методологічні основи програмування |
url |
http://dspace.nbuv.gov.ua/handle/123456789/86635 |
citation_txt |
Компонентне програмування. Теорія і реалізація / К.М. Лавріщева // Проблеми програмування. — 2012. — № 4. — С. 3-18. — Бібліогр.: 21 назв. — укр. |
work_keys_str_mv |
AT lavríŝevakm komponentneprogramuvannâteoríâírealízacíâ |
first_indexed |
2025-07-06T14:07:49Z |
last_indexed |
2025-07-06T14:07:49Z |
_version_ |
1836906835003572224 |
fulltext |
Теоретичні та методологічні основи програмування
© К.М. Лавріщева, 2012
ISSN 1727-4907. Проблеми програмування. 2012. № 4 3
УДК 681.03
К.М. Лавріщева
КОМПОНЕНТНЕ ПРОГРАМУВАННЯ. ТЕОРІЯ І РЕАЛІЗАЦІЯ
Компонентне програмування (КП) є різновидом збирального програмування, де роль елементів зборки
відігріває програмний компонент чи компонент повторного використання (КПВ, reuse) й інтерфейс.
Для програмування КПВ розроблено теорію моделювання предметної області (ПрО) за об’єктами,
подання їх функцій компонентами й інтерфейсами з формальними анотаціями для їх збереження в бі-
бліотеках, необхідних різним програмним системам (ПС). Математичний апарат КП – це моделі, ме-
тоди, алгебра об’єднання і змінювання КПВ, алгебраїчні системи перебудови типів даних КПВ та мо-
делі варіабельності і взаємодії СПС. Теоретичні аспекти ТП автоматизовані на веб-сайті ІТК
(http://sestudy.edu-ua.net).
Вступ
Протягом гатьох років при ико-
нанні фун ментальних проектів (1998–
2011) ІПС Н НУ .н.с. В. . Грищенко
відділу «Програмна інженерія» поступово
розробив оригінальну теорію об’єктного
і компонен
та концепцію її реа ізації. Ці резу тати
відображені у ряді статей [1–9] та підго-
товленої їм докторської дисертації (2007),
захист якої не відбувся із-за тяжкої хворо-
би. В науковому проекті ІІІ–1–07 без нього
іншими спеціалістами відділу (Г.І. Ко-
валь, К.М. Лавріщева, О.О. Слабоспицька)
продовж розвиток і вдосконалення
теорії КП в напрямку інтероперабельн -
сті й варіабельн
створення комплексної технології вироб-
лення ПС, в якої об’єднані на одній кон-
цептуальній основі теоретичний апарат
об’єктно-орієнтованого аналізу та компо-
нентного програмування ПС із КПВ, реалі-
зованого спектром окремих спрощених
ліній: розробка окремих ПВ, збирання
КПВ і забезпечення взаємодії різномов-
них компо ентів на основі апарата алгеб-
раїчних систем з еквівалентним перетво-
ренням типів даних до по рібних фор-
матів середовища виконання, варіабельно-
сті (варіантності) структу и ПС шляхом
конфігурування КПВ і їх змінювання тощо
[13]. Ці лінії реалізовані струмента-
льно-технологічному комплексі (ІТК)
ІПС НАНУ під керівництвом автора си-
лами трьох тудентів КНУ імені Тараса
Шевченка і МФТІ (2010–2011) [14].
В даній роботі подані базові поло-
ження удосконаленої вітчизняної теорії і
практики КП. Раз
ба в
да
А с М
тного моделювання ПрО
л ль
ено
о
ості ПС [10–14], а також
К
н
т
р
в ін
с
ом вони спрощують та
підвищують продуктивність розробки з
КПВ ПС, сімейств систем, інформаційних
систем, веб-застосувань тощо, а також зме-
ншують їх вартість. Теорія і реалізація
ставлять КП на рівень промислових техно-
логій програмування для сучасних фабрик
програм [15].
Математичне моделювання
об’єктної моделі ПрО
Побудова моделі ПрО починається
з її декомпозиції для виявлення об’єктів,
визначення їх функцій і властивостей за-
собами логіко-математичного моделюва-
ння цієї області [2, 8, 9]. Будується мно-
жина об'єктів ПрО та підмножина преди-
катів певної сигнатури, що відображають
загальні та особисті властивості об’єктів.
Об’єкт ПрО – іменована частина
дійсної реальності з певним рівнем абстра-
кції відносно неї, є понятійною структу-
рою за трикутником Фреге (денотат, знак,
концепт) [16]. Кожний об’єкт (О) як сут-
ність ПрО з множини об’єктів це Oi =
=Oi(Nai, Deni, Coni), де Nai, Deni, Coni від-
повідно – знак (ім’я), денотат та концепт
об’єкта [1, 2].
Аксіома 1. Предметна область, що
моделюється з об’єктів, сама є об’єктом.
Аксіома 2. Предметна область, що
моделюється, може бути окремим об’єк-
том у складі іншої предметної області.
http://sestudy.edu-ua.net/
Теоретичні та методологічні основи програмування
При моделюванні об’єкт ПрО
принаймні отримує хоча б одну власти-
вість або характеристику, семантику й
унікальну ідентифікацію множині
об’єктів ПрО та підмножини предикатів
властивостей об’єктів. Вони (0-арні,
унарні, бінарні) породжуються за
умовами:
– призначення та кількості предика-
тів є достатнім
в
и для концептуального мо-
делювання ;
г-
натура
сприйн
і об'єктів
и )
д т
п 3), 4)
базових
без ур
;
и
й кт
значе я по 'єктів
.
ожин
А / В,
м А
ножини В(А) над А може
включ
дмножина;
вої
множи ни
істинн
мн ∪
ПрО із множини об'єктів ПрО
– кожен предикат, його тип та си
мають відображати суб'єктивне
яття сутності об'єкта аналітиком і
виконавцем ПрО.
Властивість об'єкта визначається
на множин ПрО унарним преди-
катом, що приймає значення істини за його
зовнішніми і внутрішніми властивостями
моделі ПрО. Множина предикатів моделі
ПрО може бути довільним і вводяться за
характеристиками.
Характеристика – це сукупність
властивостей (унарн х предикатів , що є
підмножиною множини, виділених у сис-
темі предикатів за умов приймання зна-
чень істини одночасно не більш, ніж один
предикат з сукупності характеристик зов-
нішнього і внутрішнього типу із області
значень властивості за їх істинною.
Відношення завдається бінарним
предикатом на множині об'єктів ПрО, при-
ймає значення істини на поданій парі об'-
єктів. До основних типів взаємовідношень
належать:
1) множина – множина;
2) елемент множини – елемент
множини;
3) елемент множини – множина;
4) множина – елемент множини.
Цим типам відношень відповідають
відомі операції: узагальнення, спеціалізації,
агрегації, асоціаці, е алізації, класифіка-
ції та екземплярізації. Ти має роде
– видове відношення (IS–A) та відношення
частина – ціле (PART–OF). Ці відношення
використовуються для проведення струк-
турної впорядкованості пар об'єктів.
Проектування моделі ПрО. Вико-
нується за чотирма рівнями: узагальнюю-
чий для визначення понять ПрО
ахування їх сутності та властивос-
тей структурний для впорядкування об'-
єктів у структурі моделі ПрО з відношен-
ням між ними; характеристичний для
формування концептів об'єктів на базі їх
властивосте та хара еристик; поведінко-
вий для ви нн ведінки об у
залежності від подій
У відповідності з узагальнюючим
рівнем об’єкт розглядається як математич-
не поняття класу згідно з положеннями
аксіоматичної теорії множин Геделя – Бе-
рнайса.
Над множинами виконуються базо-
ві операції: об’єднання множин А ∪ В,
перетину множин А ∩ В, різниці мн
доповнення множини А новим еле-
ментом, булеан ножини ⊆ В, потуж-
ність ⎜А⎪, приналежність А ∈ В тощо.
Довільна множини А сигнатури бу-
левої алгебри м
ати:
– сукупність констант ∅, як
порожня пі
– сорти σ, ρ, λ для подання базо
ни А, булеану 2А і множи
істих значень Вооl ={1, 0, ∗};
– предикатні символи ⊂ ρ х ρ→
Вооl та ∈σ х ρ→ Вооl інтерпретуються як
предикати включення й приналежності за
операціями об’єднання, перетину, різниці
й доповнення множин;
– операції комутативності А ∪ В =
= В ∪ А, А ∩ В = В ∩ А, асоціативності
об’єднання й перетину ожин А ( В ∪
∪ С )=( А ∪ В ) ∪ С, А ∩ ( В ∩ С )=( А∩
∩ В ) ∩ С.
Виходячи з цієї теорії, якщо
( )0 1, , , nO O O O= K – множина об’єктів
ПрО і О0 відповідає самій ПрО, то для
елементів О виконується відношення:
∀ i[(i>0) & (Оi∈ О0)]. (1)
У відповідності зі структурним рі-
внем п з
у в о
0)& (i ≠ j)& (Оi∈ Оj)].
роектування кожен об’єктів пода-
ється як множина або елемент певної мно-
жини. У цьом випадку ираз (1) трансф -
рмується у такий вигляд:
∀ i ∃ j[(i>0)&( j≥
4
Теоретичні та методологічні основи програмування
Тут к ен об’єкт (к м Оож рі
н
відповідності з характеристич-
ним рі є
)n – сукупність об’єктів
rP и н
0) є мно-
жиною або елементом певної множини і
до их застосовуються операції теорети-
ко-множинної алгебри. Цей вираз визна-
чає відношення “частина-ціле”,
екземпляризація, агрегація.
У
внем для кожного з об’ ктів фор-
мується відповідний концепт. Якщо
( 1 2, ,...,O O O O′ =
ПрО, а ( )1 2, , ,P P P′ = K – множ на у а-
рних предикатів, що пов’язані з властиво-
стями об’єктів ПрО, то концепт об’єкта
іО є множиною тверджень, побудованих
на основі предикатів з P′ , що приймають
значення істини для відповідного об’єкта.
Тобто концепт { }i ikCon P= за умови
( )k iP O true= , де ikP є твердженням для
об’єкта О відповідно пі редиката kP . Згід-
но зі структурою концептів об’єктів вста-
новлюються відношення типу “рід–вид”.
За структурним рівнем визнача-
ються такі поняття як: клас, екземпляр
класу, абстрактний клас та ін. Визначен-
ня тер
іни:
ме-
тод та ін.
Згідно з поведінковим аспектом ви-
значаю
об’єктів
ПрО і -
зв’
рівні
за ум : н
ю
,
впоряд ання жини
наприклад,
ні о
добутк
з
є т
ю ін-
ших м
яка евн
д ь
і проектування
моделі б
п я
налізу і до складу яких вхо-
дять з
мінів властивостей об'єктів та їх
ія, деталізація, класифі-
кація тощо) виконується на характеристи-
чному рівні, коли визначаються терм
атрибут стану, стан, простір станів,
вiдношень (агрегац
ться послідовність станів об’єктів
та їхні процеси з відображенням перехо-
дів станів. Взаємозв’язки між об’єктами
формуються на основі бінарних предика-
тів, які пов’язані з властивостями
деталізуються до рівня взаємо
язків між станами об’єктів.
Головним завданням усіх рівнів є
опис зовнішніх та внутрішніх характерис-
тик за раніш наведеними типами взаємо-
відношень.
Визначення понять на рівнях
виконується за теоретико-множинною
концепцією. В ній при першому
проектування виявляються об'єкти ПрО,
які структурно впорядковуються за
допомогою бінарного відношення нале-
жності.
асу об’єктів замінюється
поняттям множини. Якщо об'єкт є елемен-
том іншого об'єкта, то він визначається
множиною. При цьому не кожен об' є
елементом будь якого іншого об'єкта (кла-
су). Наприклад, об'єкт відповідає усій
ПрО для певної об’єктної моделі (ОМ), не
є елементом будь об'єкта у
ачен об'єкта формулюється
коже об'єкт обов'язково є
множино або елементом деякої мн ини.
Впорядкування об'єкта виконується
з урахуванням відношення належності
Поняття кл
єкт
, що
якого іншого
цієї ОМ. Визн ня
овою
ож
кув елементів мно через
числову множини ( множина
природних чисел). Об'єкт вирізняється з
множини всіх елементів завдяки побудо-
ваного відображення.
Над об'єктами множин за даною
концепцією виконуються звичай пера-
ції: об'єднання, перехрещення, різниці, до-
датку, симетричної різниці, декартового
у. Конкретизаціями поняття об'єкта
у даній концепції є клас – це об'єкт, який
подає собою множину; ек емпляр класу –
об'єкт, що елемен ом певної множини,
яка сама є класом; об'єднаний клас – мно-
жина, що є прямою сумою декількох ін-
ших множин; клас-перехрещення – це
множина, яка є загальною частино
ножин; агрегований клас – це мно-
жина, є підмножиною п ого декар-
тового добутку екіл кох інших множин.
При першому рівн
ПрО формується множина азових
функцій, яка ов’ зана з декомпозиційни-
ми або композиційними змінами денотатів
та концептів об’єктів. Вона складається з
ряду функцій, які охоплюють трансформа-
ції денотатів та концептів у процесі
об’єктного а
міни, що пов’язані зі збільшенням
або зменшенням кількості об’єктів (деталі-
зація, екземпляризація, агрегація та ін.) та
розширення або звужування концептів
об’єктів. Проте ці зміни підпорядковують-
ся певним правилами та умовами і забез-
печують коректність виконання функцій.
Створення певної моделі ПрО має
ітеративний характер і починається з ви-
значення самої ПрО як початкового
5
Теоретичні та методологічні основи програмування
об’єкта. На кожній ті
до потреб моделювання застосовуються
ітерації у відповіднос
функці
б д
к
удовано об’
), ,...,O O
ї аналізу, які наближають структуру
та властивості о ’єктів ПрО о побудови
кінцевій моделі ПрО із урахуванням ме-
ханізмів ожного рівня абстрагування ві-
дповідного математичного апарата.
Поб алгебру єктного
аналізу ( ),O′= Ψ∑ , де (O O′ = 1 2 n
– множина об’єктів, а Ψ = {decds, decdn,
comds, comdn, conexp, connar} – множина
операцій над елементами O′ . Кожна з опе-
рацій має певний пріоритет та арність, а
також пов’язана з відповідними допусти-
мими змінами денотатів та концептів.
Теорема 1. Множина операцій Ψ
алгебри ∑ є повною системою перацій
щодо функцій об’єктного проектування.
Графове подання моделі ПрО. Ре-
зультатом структурної упорядкованості
об'єктів мо елі ОМ є об'єктний граф
{
о
д
},G O R= , визначений на множині об'єк-
тів O та зв'язків R (relations) за вимогами:
– множина вершин O подає взаємо-
однозначність відображення об'єктів ПрО;
– для кожної вершини повинен іс-
нувати хоча б один зв'язок, що належить
множині відношень-зв'язків R ;
– існує хоча б одна вершина, що має
статус множина-об'єкт і відображає ПрО в
цілому.
Зв'язки можуть бути: один до одно-
го, один до багатьох, багато до багатьох.
Побудований гра {
ф },G O R= може
доповнюватися інтерфейсними об'єктами,
потім структурно впорядковується (наго-
ру) з тролем повноти і ірності
елементів графа й усунення дублюючих
елементів.
кон надм
від а
н
лементів) і взаємним порядком утворять
і
провод
нтна
йому
у
елемен
існує інте
у
єкта ві
ціюються
го
сімейств м
а
шляхо епції їх з
компонентом чи
просто
звертання до них чи інших.
о ріш под
зиції потр
к
тів у
м а
Граф G і множина об'єктів ПрО,
що відрізняються один одного за ст -
тусом (елемент, множи а або множина
е
ОМ. Тобто об'єкти ОМ подаються загаль-
ними й індивідуальними властивостями та
зовнішними і внутрішніми характеристи-
ками.
В об’єктної модел ПрО розрізню-
ються функціональні та інтерфейсні
об’єкти. Перевірка властивостей об'єктів
иться за допомогою операцій (екзе-
мпляриз ифіка
агрегації та ін.) шляхом попарного порів-
няння властивостей внутрішніх характери-
стик об'єкта з множиною властивостей зо-
внішніх характеристик. Властивості раху-
ються перевіреними, якщо виконується
умова, що кожній внутрішній властивості
множини об’єкта відповідає еквівале
ації, клас ції, спеціалізації,
зовнішня властивість об'єк
елемента що ця умова не виконується,
то такий елемент віддалиться зі списк
та-
. Як
тів множини та з графа відповідно.
На змістовному рівні множина О
являє собою набір методів реалізації від-
далених 'єктів ПрО, для кожного з них
рфейсний елемент множини In
(тип stub, skeleton). Метод реалізації об'-
об
дповідає вершині графа, перехід до
якої потребує перетворення даних, що іні-
повідомленнями і зв'язками.
Теорія компонен отн
програмування
Основні поняття. Сутність КП по-
лягає у створенні ПС, систе з
базових елементів – програмних компоне-
нтів та КПВ. Головн мета КП – створен-
ня компонентних програм КПВ
м застосування конц биран-
ня відповідно їх інтерфейсів з властивос-
тями і характеристиками, накопиченими
в репозиторіях (інтерфейсів і реалізацій)
компонентного середовища [9, 17, 18].
Під програмним
і ПС із
компонентом розуміється незале-
жний від МП, самостійно програмний об'-
єкт, який забезпечує виконання певної су-
купності прикладних задач (сервісів), до-
ступ до яких можливий тільки за інтер-
фейсами, які відображають функціональні
можливості компонента, параметри і по-
рядок
Компонент як елемент (відобра-
ження) типовог ення для ПС і а-
льшої компо з іншими ібен мати
типову архітектуру, стру туру, характери-
стики і атрибути подані в його інтерфейс-
ній частині для обміну даними і взаємодії
компонен різних середовищах. Тобто
поданий таким чином компонент, стає не-
подільни т інкапсульованим об’єктом,
6
Теоретичні та методологічні основи програмування
який задовольняє функціональним вимо-
гам, а також вимогам щодо архітектури
системи і середовища взаємодії компоне-
нтній програми.
програма ПС із
компонентів – це сукупність компонентів,
що реалізують функціональні та нефун-
кціональні вимоги до неї, будується за
Компонентна чи
правил
ї
понент й інтерфейсу, компонентної про-
грами, зов-
нішній і вну ої алгебри
побудо
та
метод якого пере-
творює
стр
і иг
ами компонентних конфігурацій
збирального типу для взаємоді у рамках
компонентних моделей.
Формально визначена модель ПрО є
джерелом трансформаційного переходу
від об’єктів до компонентів з вико-
ристанням формального математичного
апарата моделювання: моделей ком-
а
компонентного середовища,
трішній компонентн
ви ПС та алгебраїчні системи
перетворення типів даних компонентів
на сигнатури операцій для завдання їх
взаємодії [9]. Цей апарат слугує
формальної побудови компонентних ПС з
готових КПВ із різних бібліотек зі значним
скороченням витрат і поліпшенням якості
майбутнього продукту.
Модель компонен є наслідком
узагальнених типових рішень щодо сутно-
сті відповідного об’єкта,
ться до компонента за його архіте-
ктурою, уктурою, властивостями, хара-
ктеристиками має в ляд:
( ), , , Im,C CNa CIn CFa C CSe= , (2)
де CNa – унікальне ім'я компонента,
{ }iCIn CIn= – множина інтерфейсів, пов'я-
заних з компонентом, CFa – інтерфейс
забезпечення функ ерування екземп-
лярами компонента, {
цій к
}Im Im jC C= –
множина реалізацій компонента,
{ }rCSe CSe= – множина загальносистем-
них сервісів.
Множина { }CIn CIn In CInOut= ∪
складається CInIn та вих их
CInOut інтерфей Тобто компонент
має вхідні інтерфейси при власної реаліза-
ції, а в
з вхідних ідн
сів.
ихідні інтерфейси реалізації іншо-
го компонента. Кожен з них має відповід-
ну модель
( ), ,i i i iCIn In Na In Fu In Sp= , (3)
де iIn Na – ім'я інтерфе iIn Fu – фун-йсу,
кціональність (сукупність методів), iIn Sp
– специфікація інтерфейсу: опис типів,
констант, інших елементів сигнатур мето-
дів, характеристик тощо.
Інтерфейс CFa визначає методи і
звернення до екземплярів компонентів
(пошук, вибір, знищення тощо).
Кожна реалізація Im ImjC C∈ за-
дається моделлю:
( )Im Im , Im , Im ,j j jC Na Fu Sp= (4)
де Im
j
jNa – ідентифікатор або ім’я реалі-
зації, Im jFu – реалізована функціональ-
ність, Im jSp – специфікація опису (умо-
ви виконання, залежності від певних плат-
форм тощо).
Необхідною вимогою існування
компонента є умова його цілісності:
iCIn CIn∀ ∈ ∃
( )m Im Pr Imj i jC CIn CIC ⎡ ⎤∈ ⊆∃
⎣ ⎦ , (5)
де
( )Pr Pr iovide CIn озн функціональ-
ність з реалізації методів інтерфейсу CIn .
Аксіома 3. Для вох
різнорідних тів 2C існує
1 1
iCIn CIn∈ , то повинен
існувати CIn
ачає
об’єднання д
компонен 1C та
2 2
k CIn∈ такий, що
умова, якщо
( ) ( )1 2
iS CIn S CIn= &k ( )1 2ImPr jiCIn ⊆
р
дного інтерфейсу.
C ,
)…) означає сигнату у відпові-де S(sign
7
Теоретичні та методологічні основи програмування
Модел компонентної ПС Ця мо-
дель ПС (PS) ідентична моделі програмно-
го компонента з той , що її еле-
ментами можуть б
ь .
різніцією
ути самі програми, як
самостійні компоненти.
{ }{ 1 ,..., , ,...{ }nPS PSLm Lm Lm R Ri= , ,Rm
{ }1n Ln ,..., kPSL Ln ,
де { }1 ,..., nPSLm Lm Lm – множина
зації компонента, КПВ, ПС;
{
реалі-
},...,R Ri Rm – множина предикатів;
{ }1 ,..., kLn Ln – множина інтерфейсів
компонентів і програм.
Операції множини R мож
PSLn
від-
повіда онфігурації К
уктури програм і ПС з
множини компонентів, інтерфейсів.
нента чи ПC можуть змінюватися, заміню-
новими функціонально подібними,
ними є с к
ент-
ну програму, 1C .
1 та
2C
множини інтерфейсів та реалізацій.
самій п
1 на 2C
функціональність
може змінитись.
в структурі ПС.
Зв’язування має свою арність і може скла-
датися х
у
пера-
нтами можуть існува-
успадкування, екземпляри-
відношення визн
акий зміст.
ираз
уть
ти об’єднанню чи к ПВ
у деякі складні стр
Компоненти чи КПВ моделі компо-
ватися
еквівалентними чи тотожними КПВ з ме-
тою о я нових варіантів продукту
ПП за .
Аксіома 4. Два компоненти 1C та
2C є тотожними (рівними), якщо тотож-
триманн
аксіомами
їх відповідні кладові. Я наслідок,
заміна 1C на 2C не впливає на компон
до якої належить
Аксіома 5. Два компоненти C
є еквівалентними, якщо тотожними є
їх
Зам е змінює функціональ-
ності компонентної програми за умови
встановлення
іна 1C на 2C н
відповідності між іменами у
рограмі.
Аксіома 6. Два ко онен 1C та
2C є подібними тожними є їх
множини . Заміна C
мп ти
, якщо то
інтерфейсів
зберігає взаємозв’язки компонентів, але
компонентної програми
Головна мета КП це зв’язування
компонентів, а також змінювання їх тото-
жними чи еквівалентними
з множини даних, які в одять до
класу інтерфейсів означеного клас КПВ.
Ця операція виконується за моделлю
компонента (2) і інтерфейсу (3). Модель
компонента й інтерфейсу завдають о
ції і предикати, які визначають умову пе-
редачі даних іншому компоненту.
Між компоне
ти відношення:
зац ання (зв’язування).
Усі ачаються на інтер-
фейсах і предикатах, мають т
і, контракту, об’єдн
Відношення екземпляризації. В
( ), Imi ju Fu описує пе-
вний екземпляр компон
,ij ij
k kCIns IIns InF=
ента C, де: ijI kIns –
унікальний ідентифікатор екземпляра,
iInFu – функціональність інтерфейсу
iCIn CIn∈ , Im jFu – програмний елемент,
що з ви ан еа
, IMap12 ), де:
CIn1 ∈
ком
д
пе-
редаються реалі
чує
n
ід нн
i, ImFuj) та CIns2
mq
= (IIns
зв’
in 1k
абезпечує кон ня р лізації
Im ImiC C∈ .
Відношення контракту. Між ком-
понентами 1C і 2C існує відношення конт-
ракту Cont12
im = (CIn1
i, CIn2
m im
i CIn1 – вихідний інтерфейс першого
понента, CIn2
m ∈ CIn2 – вхідний інтер-
с другого компонента, IMapфей 12
im – відо-
браження відповідності між методами, які
входять о складу обох інтерфейсів з ура-
хуванням сигнатур та типів даних, що
; якщо компонент 2C має -
для інтерфейсу CInзацію 2
m, яка забезпе-
виконання функціональності InFu1
i
інтерфейсу CI 1
i.
В ноше я зв’язування. Якщо між
компонентами 1C і 2C існує відношення
контракту Cont12
im, то між їх екземплярами
CIns1k
ij = (IIns1k
ij, InFu p
2p
mq, InFum, ImFuq) існує відношення
язування відносно контракту Cont12
im,
яке описується у вигляді B d(IIns ij,
IIns2p
mq, Cont12
im).
Відношення взаємодії. Якщо компо-
ненти ПС розташовані у розподіленому
середовищі і вони входять до множини
компонентів репозиторію ПС, то викорис-
товується модель взаємодії, визначеної на
множині інтерфейсів готових КПВ та від-
далених викликів [10, 11].
8
Теоретичні та методологічні основи програмування
Об’єднання компонентів у ПС.
Модель ПС еквівалентна об’єктному гра-
фу, елементи якого мають встановлені
при моделюванні властивості й характери-
стики, які використовуються при завданні
функції інтерфейсу типу інтерфейсу посе-
реднику (stub, skeleton).
Для ачення семант об’єд-
нання об’єктів за графом , використо-
вуються мова опису інтерфейс об’єктів в
IDL (параметр ,
визн ики
G
у
ів In Out ) і операції прина-
лежності:
(,O O In O∈ ) – множина вхідних
го мно
н
множиною вихідних
об’єкт
( k
I= .
єкти
я
t
оли пад
, у о м
k k
жина вихід-
них (Out) інтерфейсних об’єктів.
Результатом об’єднання двох
ів буде компонентний об’єкт, у яко-
жина вхідних інтерфейсів збігається
их інтерфейсів об’єкта-
приймальника, а м ожина вихідних інтер-
(In) інтерфейсних об’єктів;
( ),k kO O Out O∈ – мно
об’єкт
з множиною вхідн
фейсів з інтерфейсів
а-передавача:
) ( )( ),k kO Out O In O= ,
( ) ( )( ),l l lO Out O In O= ,
( ) ( )( ),k l k lO O Out O In O⋅ = .
Аксіома 7. Композиція об’єктів
k lO O⋅ є коректною, якщо об’єкт-
передавач повністю забезпечує сервіс, не-
обхідний об’єкту-приймальнику, тобто
( ) ( ) mm IOOutIOInI ∧∈∃⇒∈∀ nlnk
Компонентні об жуть мати декіль-
ка інтерфейсів, кі можуть успадковувати
інтерфейси інших об’єктів ( lk OO ← ), тоді
останні надають сервіс всієї множини ви-
хідних інтерфейсів :
( ) ( )lklk OOutOOuOO ⊆⇒← .
’ мо
У випадку, к об’єкт ус ковує
інший об’єкт яког ножина вихідних
інтерфейсів містить всі його інтерфейси, а
множина вхідних інтерфейсів містить
тільки інтерфейси, необхідні для надання
сервісу, то маємо
( ) ( ) ,k l
k
Out O Out O
O O
⎛ ⎞∪
⎜ ⎟
( ) ( )( ) .:I I In O In O I
( ) ( ): ,
l m m k l n
k l n mOut O O exec I I
⎧ ⎫⎜ ⎟= ∈ ∪ ∧ ∃← ⎪ ⎪
⎜ ⎟⎨ ⎬⎜ ⎟∈ ←⎪ ⎪⎩ ⎭⎝ ⎠
2
Успадкований об’єкт делегує усі ін-
терфейси і має такі властивості:
транзитивності
1,2,3 1 2 3 1 3: , ,O O O O O O O O∀ ∈ ← ← ⇒ ←
симетричності
kkk OOOO ←⇒∈∀ .
Ці властивості об’єктів ідентичні
компонентам моделі . Для їх розміщен-
ня у деякому
ПС
середови
такі дії:
щі необхідно вико-
нати
ії й умови роз-
ташу
вища ахуванням
зас і п
о
– ні
ейс ка кту
по
лі ПС, можуть бути
розподілен взаємодіяти
між інтерфейси і
повідомлен
ща
має наст
CE = CNa, InRep, ImRep, CSe, CSeIm), (6)
– визначити критер
вання компонентів у вузлах середо-
з ур зв'язків між ними
відповідно об'єктного графа;
– визначити оби передач овід-
омлень від одного компонента д іншого;
об'єднати програм об'єкти і
їхні інтерф и у ркас чи стру ру ПС .
Таким чином, виходячи з запро -
нованої моделі ПС, моделі взаємодії [11,
18] та семантики її виконання, компонен-
ти прикладної моде
і по вузлах мережі і
собою через механізми
ня.
Модель компонентного середови
упний вираз:
(
де { }mCNa= – множина імен компо-
нентів, які входять до складу середовища,
CNa
{ }iInRep = InRep – репозиторій інтерфей-
сів , компонентів середовища
{ }jImRep = ImRe – репозиторій р ліза-
цій, – інтерфейс системних ервісів,
p еа
с
{ }rС CSeIm – множина реалізацій
для системних сервісів.
SeIm =
Кожен елемент з InRep це двійка
( ),i mCIn CNa , де iCIn – інтерфейс -компо
нента, mCNa – ім’я компонента, для якого
9
Теоретичні та методологічні основи програмування
існує інтерфейс. Аналогічно кожен еле-
мент з ImRep описується ( ),j mCIm CNa ,
де jCIm – реалізація, яка описується вира-
астосу
ті ком-
понент контейнера з сер-
вані інтерфейси ’язок між КПВ
які роз ерверах забезпе-
чується CSe.
2
S
зом (4), а mCNa – ім’я компонента, до яко-
го належить ця реалізація.
Компонентне середовище на рівні
моделі розглядається як множина серверів
з вань, де розгортаються компонен-
ти-контейнери, екземпляри яких забезпе-
чують реалізацію функціональнос
а. Взаємозв’язок
-
,
вером забезпечується через стандартизо
(CFa). Зв
горнуті у різних с
реалізаціями інтерфейсу
Означення 1. Каркасом компонен-
тного середовища називається середовище,
для якого CNa, InRep, ImRep – суть порож-
ні множини, тобто:
( ), , , ,FW CSe CSeIm= ∅ ∅ ∅ . (7)
Нехай ( )1 1 1, , , ,FW CSe CSeIm= ∅ ∅ ∅
і (FW = ∅ ∅ ∅ )2 2, , , ,CSe CSeIm – два ка-
ркаси.
Означення 2. Каркас FW1 сумісний
з каркасом FW2, якщо існує відобра-
ження : щ1 2SMap CSe CSe→ таке, о
( )1 2SMap CSe C e⊆ .
Зовнішня компонентна алгебра ви-
значає множину операцій над множинами
компонентів та компонентних середовищ і
описується наступним виразом:
{ }, ,CSet CESetΨ = Ω , (8)
де CSet – множина компонентів, кожен з
я
жина
.
=
– об'єднанн
з
нтного середовища 1 C
ких описується виразом (3), CESet – мно-
компонентних середовищ, кожне з
яки иразом (7), Ω – множина
операцій
До складу множини входять опе-
(розгортання компонен-
та) CE⊕ ;
я компонентних середо-
вищ 3 1 2CE CE CE= ∪ ;
я компонента компоне-
2 \CE CE
х описується в
рації:
– інсталяції
2 1CE C
– видаленн
= .
Мають місце наступні теореми.
слідовності операцій
ному компонентному каркасі:
1 2 nCE C C C FW
Теорема 2. Кожне компонентне се-
є ре татом виконання по-
розгортання компо-
нентів, одять до його складу, в пев-
редовище CE зуль
які вх
= ⊕ ⊕ ⊕ ⊕K .
Теорема 3. Побудова компонентно-
го середовища не залежить від порядку
інсталяції компонентів, які входять до
складу цього середовища, тобто:
( ) ( )1 2 2 1C C CE C C CE⊕ ⊕ = ⊕ .
Теорема 4. Операція об'єднання
компонентних середовищ асоціативна:
( ) ( )1 2 3 1 2 3CE CE CE CE CE CE∪ ∪ = ∪ ∪ .
Теорема 5. Операція об'єднання
компонентних середовищ комутативна:
1 2 2 1CE CE CE CE∪ = ∪ .
Теорема 6. Для будь-якого компо-
нентного середовища
CE FW FW CE CE∪ = ∪ = .
Теорема 7. Для довільних компо-
нентних середовищ 1CE і 2CE та компо-
нента C завжди виконується
( ) ( )1 2 1 2C CE CE C CE CE∪ = ⊕ ∪ = ⊕
( )2 1C CE CE= ⊕ ∪ .
Теорема 8. Для будь-якого компо-
нента C та компонентного середовища CE
завжди виконується ( )C CE⊕ \ C = CE.
Модель ПС для певного компоне-
нтного середовища описується виразом
CP= (CE, Cont, CO), де: CE – компонент-
не середовище, Cont – множина контрак-
тів для компонентів, що входять до
складу CE, O – підмножина компонентів
з CE, що включають реалізації і звер-
таються до інших компонентів за допо-
могою своїх вихідних інтерфейсів. Ці
компоненти є початковими для компо-
нентної програми CP, наприклад, до їх
складу входять компоненти, що безпосе-
редньо взаємодіють з кінцевим користу-
вачем і звертаються до основної функ-
ціональності програми з метою виконан-
ня певних запитів.
10
Теоретичні та методологічні основи програмування
У н н
по ні д
C
терфейс CInO1 , компонента відпові-
CInI m
ит
.
вирішенні
рез модуль
ням міжмовного і міжмодульного
фейсу
для
вдання даних при обміні да
к
и а
ображень).
зб
мова ціліс ості компо ентної
програми лягає н ля кожного
1 з C має вихідний ін-
i
дним вхідним інтерфейсом
в існува
компонента E, що
2C з
2 і конт-
ракт Cont12
im = (CInO1
i, CInI2
m, IMap12
im)
вход ь до складу множини Cont.
Задачі КП. Для реалізацій функці-
ональності компонентів застосовуються
різні мови програмування з відповідними
типами даних в них. При збиранні
(об’єднанні, інтеграції) різномовних ком-
понентів вирішується задача перетворен-
ня типів даних через інтерфейс шляхом
формальних механізмів релевантної кон-
вертації типів даних з урахуванням моде-
лей інтегрованого середовища
Існує два підходи при
проблеми інтеграції КПВ: 1) застосування
моделі взаємодії пари різномовних компо-
нентів в МП у середовищі розподілених
систем шляхом їх композиції че
посередник (stub, skeleton) з використан-
інтер-
[1]; 2) опис
IDL
за ними між
собою.
інтерфейсу КПВ в мові
за параметрами in, out, inout
В теоретичному аспекті інтеграція
різномовних омпонентів базується на фо-
рмальн д них як су-
ід
х відображеннях (по
перпозиції базових в
Модель ирання різнородних
КПВ. Нехай задана множина компонентів
{ }iCSet C= , які написані на різних МП.
При взаємодії мпоненти о мінюються
даними, кожне
ко б
з яких визначається трій-
кою: ім'ям
ченням. Дані, якими обмінюють
ня за допомогою функцій, які
подані б ми
j , FTij: Ti –> Tj
, FVij:
:Vi –>
змінних (наприклад, у
множи
бражен
даних.
ко-
нуєтьс
жен з яких
подається алге-
браїчна система ( ),Т Х
змінної, її типом даних та зна-
ся кожна
пара компонентів Ci і Cj, можуть бути ек-
вівалентними, якщо вони мають однакову
семантичну структуру і тип, або нееквіва-
лентними і в цьому випадку необхідне їхнє
перетворен
відо раження :
FNij: N i –> N
Vj, де FNij встановлюють відповід-
ніст ь між іменами
нах формальних та фактичних па-
рамет ть еквівалентні відо-рів), FTij описую
ня для типів даних, FVij реалізують
необхідні перетворення значень
Задача заміни змінних ijFN ви
я шляхом впорядкування імен змін-
них (наприклад, в описі конфігурації для
компонентів, що інтегруються). Відобра-
ження між типами даних ijFТ базується на
перетвореннях типів даних, ко
як абстрактна алгебра або
= Ω , де Х – мно-
ij
совуються у випадках нееквівалентності
типів ння
цілого
ків
методів компонентів можуть виникати п -
-
о-
морфізму відображення між відповідними
типами орфізму
викори
Під перетворенням
типу
жина значень, що можуть приймати зміні
цього типу, а Ω – множина операцій над
цими змінними. Відображення FV засто-
іТ та jТ (наприклад, перетворе
значення у дійсне) [17].
У випадках багаторазових викли
и
тання прямого та оберненого перетворен
ня даних між формальними та фактичними
параметрами і тому є суттєва умова із
даних. Для існування ізом
стано механізм алгебраїчних систем
для перебудови даних.
( ),і і іТ Х= Ω у тип ( ),j j jТ Х= Ω
розумі
ерацій з
. У ль-
ному випадку перетворення типу іТ у п
jТ -
нтного Ці системи
для М
нізми ге T
до FD
с п
ється таке перетворення, при якому
семантичний зміст оп іΩ еквіва-
лентний змісту операцій з Ω j зага
ти
може бути однобічним, тобто еквівале
перетворення не існує.
П, вони поширені на загальні типи
даних, що описані у стандарті ISO/IEC
11404 і містить меха нерації GD
T МП.
Задача забезпечення взаємозв’язку
пари компонентів (систем, ПС) виникає
при їх збиранні у складні структури, на-
приклад імейство систем. Для цього о-
будовано сукупність відображень для різ-
них видів викликів методів (Call, RPC,
RMI), за якими встановлюються однознач-
ні відповідність між множиною фактичних
параметрів { }1 2, ,..., kV v v v= об’єкта, що
викликає, і множиною формальних пара-
11
Теоретичні та методологічні основи програмування
метрів { }1 2, ,..., kF f f f= для компонент-
них об’єктів, що викликається.
Задачі побудови типів даних засо-
бами алгебраїчних систем для основних
типів даних, що застосовуються у різних
МП і ізоморфні відображення між цими
алгебраїчним системами детальніше роз-
глянуто у монографії [17].
Але відносно гетерогенного сере-
довища задача взаємодії вирішується та-
ким шляхом:
и
1) перетворення типів даних, які за-
стосовуються при передачі даних між вза-
ємодіючими компонентами і системами;
2) усунення відмінностей у поданні
даних за різними особливостями ком-
п’ютерних платформ і архітектур, а також
за принципами кодування (декодування)
даних при передачі їх через мережу іншим
системам;
3) завдання інтерфейсу взаємодію-
чих компонентів і систем мовою IDL, API
з описом в них даних для передачі через
операції віддаленого виклику тощо.
Інтерфейсна модель для КПВ і сис-
тем має вираз
( ),ISyst IFu IG= , (9)
де { }іIFu IFu= – множина інтерфейсів,
IG – інтерфейсний граф, який еквівалент-
ний графу G. Для класів визначаються
умови,
делі сис-
теми
ує єдин
еквівалентн
ема перетворен-
ge
runtime em і
коли вони допускають подання як
елементів множини інтерфейсів у інтер-
фейсному графі.
Теорема 9. Для кожної мо
PS, зовнішня взаємодія з класами
public-методи та керованими змінними,
існ е інтерфейсне подання ISyst з
ою функціональністю.
Ця теорема визначає умови існу-
вання еквівалентного відображення між
об’єктним та інтерфейсним поданнями
програми. Як наслідок, при проектуванні
компонентних програм і систем можуть
застосовуватись моделі та методи ОКМ
методу [8] і формальні моделі КП, які
побудовані на єдиній теоретичній основі
[7–9].
На даний час пробл
ня даних базується на наведеному станда-
рті ISO/IEC 11404 GDT, що механізми їх
генерації від GDT до FDT та упорядку-
вання та перетворення їх за механізмами
примітивних функцій спеціальних бібліотек
системи VS.Net (CLR – Сommon langua
, CTS – Сommon type syst CLS –
Сommon language specification) тощо.
Змінювання компонентних ПС.
Система будується з КПВ шляхом їх зби-
рання та небхідного змінювання інтерфей-
сів та реалізацій компонентів або їх дода-
вання.
Компонентна зовнішня алгебра
{ },CSet CESet,Ψ = чає ножини
компонентів, компонентних середовищ і
операції над ними, а також внутрішню ал-
гебру з операціями реорганізаці ідного
коду, а саме: рефакторинг для змінювання
внутрішній ст уктури КПВ чи інтерфейсу
зі збереженням його поведінки; реінжене-
рії, як апарат еволюції КПВ чи
Ω вклю
ї вих
р
шля-
хом вн
м
ПС
есення деяких змін в КПВ або пе-
репрограмування логіки, уточнення функ-
ції окремих КПВ для їх змінювання в ПС;
реверсної інженерії шляхом встановлення
первісної структури в МП і її реконструю-
вання: { } { }CSet,CESet, 1ϕ= Ψ ∩ = Ω ∩∑
{ }CSet, CESet, 2∩ Ω Ω2}, де Ψ – зовніш-
ня алгебра, ϕ – внутрішня алгебра.
гебра: Зовнішня ал
{ }, , 1CSet CESetΨ = Ω , де CSet – множина
компонентів C, CESet – середовище Е з
множини компонентів С інтерфейсів
In.
і
{ }1 1, 2, 3, 4CE CE CE CEΩ = –
алгебри: CE1 – операції оброблення ком-
ентів; CE2 – операції інсталяції; CE3 =
= CE1 ∩ CE2 – операції зборки (об’єдна-
ння); CE4 = CE1 \ C – операції видалення
компонента С з середовища;
C2 – CE2 = C2 ⊕ (CE1 \ C1) – опе-
рації заміщенн
операції
пон
я.
Алгебра еволюції КП. Повторне
використання КПВ є базисом еволюції ком-
понентів. Їй приділяється увага за кордоном,
вона досліджується у програмах (Японії,
Великобританії, США й ін.), у світових кор-
пораціях (IBM, Microsoft, Hewlett–packard й
ін.) та постійно проблема reuses розгляда-
ються на міжнародних конференціях протя-
12
Теоретичні та методологічні основи програмування
NewCIгом десятир аються великі
кошти для отримання прибутку при розроб-
ленні з них складних ПС
Тому чення мають ме-
тоди відбору КПВ із різних
іч. В КПВ вклад
.
важливе зна
сховищ, їх
еволюц
понентів і ме-
тоди,
іна сигнатур інтерфейсів,
додава
у
належа
х с
ції введено базові поняття ме-
тодів р
нента
(7), роз
цій рефакторінгу з виконан-
ням умови незмінності інтер к
понентної моделі, функцій р ри
компонентної
реверсної ін
ійна трансформація чи перебудова
під потреби користувача операціями їх ре-
інжинірингу і рефакторінгу.
Методи трансформації поділяються
на два види: методи, що змінюють функці-
ональність та поведінку ком
які пов’язані з нефункціональними
змінами. До перших належать зміни в ін-
терфейсах (зм
ння інтерфейсів) та реалізації (змі-
на алгоритмів та логіки, заміщення та до-
давання реалізацій) та ін. До другого вид
ть зміни, що пов’язані з нефункціо-
нальними арактери тиками (збільшення
надійності, ефективності, мобільності),
мовами та платформами виконання.
При формальному розгляді методів
трансформа
ефакторінгу, реінжинірингу, ревер-
сної інженерії та розглянута семантика
цих понять для КПВ. Виходячи з введених
понять і формальної моделі компо
роблені функції трансформації КПВ
і систем: функ
фейсів і ом-
еінжині нгу
з незмінністю моделі, функ-
цій женерії (встановлення пер-
віного алгоритму) [8, 19].
Внутрішня алгебра еволюції:
{ } , , 2CSet CESetϕ = Ω ,
де { }2 , , Оref ORei ORevΩ = – сукупність
операцій еволюції компонентів. енерії.
На основі семантики, умов та вимог
виконання функцій рефакторінгу побудо-
вано внутрішню алгебра рефакторінгу
компонентів ( ), rf CSet Ref=∑ де ,
{ }
nOs) має семантику, де NewCIn =
=OldCIn∪NewCInOs – операція додавання
вихідних інтерфейсів для нової реалізації,
NewCIm = OldCIm∪{NewCIms} – додаван-
ня нової реалізації.
Аксіома. Для tOldCIn OldCInI∃ ∈
існує операція додавання вхідних інтер-
фейсів і відповідної функціональності. Ця
операція є асоціативною та комутативною
і є умовою цілісності компонента.
Операція AdNIm є додавання нової
реалізації, вхідний інтерфейс, якої не вхо-
дить до складу множини інтерфейсів ком-
понента:
( ), , .= s sNewCIm NewCInO
В ній
NewC AdNIm OldC
sNewCIn OldCIn NewCInO= ∪ – до-
дає нові вихідні інтерфейси для нової реа-
лізації, { } sNewCIm OldCIm NewCIm= ∪ –
додає нову реалізацію. Ці операції є асоці-
ативними та комутативними. Цілісність
компонента зберігається.
Операція ReplIm є заміщенням іс-
нуючої реалізації новою без зміни вхідно-
го інтерфейсу: ( ,NewC ReplIm OldC=
), , ,s s r rNewCIm NewCInO OldCIm OldCInO .
В ній { }sNewCIn OldCIn NewCInO= ∪ \
{ }\ rOldCInO – додавання вихідних інтер-
фейсів і видалення ви-
хідних інтерфейсів
для нової реалізації
старої реалізації,
{ } { } \s rNewIm OldIml NewCIm OldCIm= ∪
– додавання нової реалізац ї і видалення
зас операції є
незмінність функціональності усіх інтер-
фейсів, що пов’язані зі старою реалізацією,
після заміщення її новою:
tOldCIn OldCInI∀ ∈
і
тарілої. Умовою виконання
( )( )rPr OldCIn OldCIm⊆ =>⎢⎣
t⎡ CSet = nC – множина компонентів, мо-
дель кожного з яких наведена виразом (7),
а Ref = { }, , , AdOIm AdNIm RelIm AdIn –
сукупність операцій рефакторінгу, де
AdOIm – додавання нової реалізації для
існуючого інтерфейсу.
NewC = AdOIm(OldC, NewCIms,
( )( )t sdCIn NewCIm ⎤⊆ ⎥⎦
∨ Pr Ol jOldCIm∃
{ }( ) ( )\ r tOldCIm OldCIm Pr OldCIn⎡∈
⎣
.jOldCIm ⎤⊆ ⎦
13
Теоретичні та методологічні основи програмування
Лема 1. Операція заміщення існую-
чої реалізації новою з вищевизначеними
умовами та семантикою зберігає цілісність
компонента.
Операція AdIn є д
може
одаванням нового
вхідного інтерфейсу для існуючої реаліза-
ції: ( ) , qNewC AddIn OldC NewCInI= . В
ній { }qNewCIn OldCIn NewCInI= ∪ – до-
давання нового вхідного інтерфейсу,
( )s qOldCIm OldCImPr NewCInI∃ ∈ ⊆
sOldCIm ⎤⊆ ⎦ з відповідною функціональ-
ністю.
Лема 2. Операція додаванням ново-
го вхідного інтерфейсу для існуючої реалі-
зації з вищевизначеними умовами та сема-
нтикою зберігає цілісність компонента.
Наведені операції є базовими для
більш складних ПС. Наприклад, додавання
реалізації разом з вхідним інтерфейсом ви-
значаються наступною суперпозицією:
(( , ,sNewC AddIn AddNIm OldC NewCIm=
) ), .s qNewCInO NewCInI
Сформульовано та доведено насту-
пну теорему.
Теорема 10. Алгебра рефакторінгу
компонентів ( ), rf CSet Refac=∑ є повна
та незаперечна.
Зв’язок алгебри КП з рефактори-
нгом. Згідно з теоремою 10 результатом
операцій рефакторінгу або суперпозицій
операц п н CSet ій є евний компоне т. Тому
складається з КПВ репозиторію і різних
мод к результатів ифікацій компонентів я
виконання операцій рефакторінгу. Напри-
клад, для певної компонентної моделі
конфігурація, яка складається з двох ком-
понентів і для другого з них додаються ре-
алізація і вхідний інтерфейс, описується
наступним виразом:
( (1 2 , ,sCE C A= ⊕ ddIn AddNIm C NewCIm
) ), .CInO NewCInI FW⊕ s qNew
Внут ішня компонентна алгебра е-
бути побудована лише за умови по-
рушення цілісності подання компонентів.
Крім операцій рефакторінгу ( )Ref до
множини входять операції Re, які вида-
ляють з компонента існуючий інтерфейс
або змінюють його сигнатуру. Це порушує
умову цілісності, бо інші які компоненти,
звертаються до нього, не до-зможуть мати
ступу до необхідної функціональності.
У зв’язку з цим розглянуто модель
реінжинірингу компонентів (М ,Re CSet=
)Re . У цьому випадку семантика операцій
з Re може полягати у трансформації не
тільки цільового компонента, а й інших.
Наприклад, при зміні сигнатури вхідного
інтерфейсу необхідна одночасна зміна ін-
ших компонентів, в яких існують звернен-
ня до методів цього інтерфейсу.
Аналогічним чином сформовано ві-
дповідну модель реверсної інженерії
( ) , ResМ CSet Rev= , при цьому Re ⊂ Rev.
Особливість множини Rev полягає у тому,
що вона не визначена повністю (кількість
операцій є необмеженою), а лише за кла-
сифікацією операцій. Наприклад, зміни
якісних характеристик КПВ можуть вико-
нуватись довільним способом і відповідні
операції складають сукупність операцій
для зміни певного показника якості (за
р р
інжинірингу компонентів ( ), re CSet Re=∑
класифікаційною ознакою в множини Rev).
Таким чином, алгебра Σ rf та моде-
лі МRe і МRes складають формальний апарат
внутрішній алгебри щодо моделей і мето-
дів еволюції компонентів.
Розвиток теорії КП апаратом
взаємодії і варіабельності
Починаючи з 2007 р. у відділі акти-
вно розвивалася теорія взаємодії і варіант-
ності ПС з КПВ у межах фундаменталь-
ного проекту з генерувального програму-
вання [10] та комплексна технологія реалі-
зації ПС і сімейств ПС із КПВ в інтегрова-
ному середовищі сучасних систем Eclipse,
VS.Net, Corba.
Варіабельність ПС і сімейств. Во-
на бере свій початок з задач створення різ-
них варіантів програмного продукту (на-
приклад, дослідження Лемону 210 версій
ОС 360, теорія рефакторингу М. Фаулера,
14
Теоретичні та методологічні основи програмування
Product line SEI тощо). Нами визначено
клас моделей і процес керування варіа-
бельними структурами ПС і СПС з вико-
ристанням КПВ і точок варіантності у їх
складі [12, 13, 20]. Модель керованої ва-
ріантами структури
членів СПС із КПВ накопичених в станда-
ртному виді у репозиторії ІТК будується
на основі теорії КП щодо операції алгебри
змінення, поповнення новими формаль-
ними моделями, еквівалентними за
і конфігурування
функ-
ціональністю КПВ, які створюють підклас
рефакторингу варіабельних членів сімейс-
тва і СПС.
Моделі варіабельності СПС є пара
підмоделей:
{ } ; ,VM SV AV= (10)
де SV – підмодель варіабельності стру-
ктури С
AV – підмодель варіабельності продуктів
процесу розроблення СПС.
Моделі VM у процесі розроблення
СПС забезпечує рівень зм
ПС;
інності продук-
тів СП
к
-
С, адекват им умовам їх ви-
користання, а також скорочення термінів
розроблення проду
но задан
тів СПС.
Підмодель варіабельності структу
ри СПС має вигляд:
{ { } }1, , S
F 〉 – граф, вершини якого
( )
V G GR Con Dep= ,
де Gt = 〈F, L
f Ft∈ є унікальні ідентифікатори арте-
фактів різного типу (потреб, вимог, КПВ,
ПС
вання ( )LFt ;
Con і Dep – предикати на декарто-
вому добутку множин артефактів усіх ти-
пів предикатів, які подають обмеження й
залежності між функціями
тощо), поєднаних зв’язками
обов’язкового та варіантного підпорядку-
та характерни-
-
ток з точки ь-
ся . -
ційній роботі.
до
систем. Модель взаємодії призначена
обміну інф ми компо-
нентами і системами при їх об’єднанні й
обчисленні. Під взаємодією розуміються
зв'язки
лами) між програмами, сис-
темами
прийнятою мовою IDL (Interfac
(APL,
SIDL терфейс
для
ють
механізми забезпечення взає-
метри, Модель
включає , які
подаю
є розвитком роз-
глянут
Мinter має загальний ви-
ми елементів СПС.
Ці моделі описані в [13]. Їх розви
зору теорії КП нині виконуєт
Л
для
аспірантом Колесником А . у дисерта
Розвиток теорія взаємодії КПВ
ормацією між різни
двох і більше об'єктів КП і відно-
шення між ними. В основі лежить процес
обміну повідомленнями (викликами, запи-
тами, протоко
і середовищами для сумісного рі-
шення певної задачі. В повідомленнях за-
даєт ться
загально e
Defi
є механізмом забезпечення взаємодії
програм і систем [11, 18].
Н
модії п
ься інтерфейс, який специфікує
nition Language) або іншими
тощо). На загальному рівні ін
(interconnection) різнорідних програм
сучасних середовищ, що забезпечу
розроблення
ові
рограмних об’єктів розробляються
нами для сімейств систем з використанням
моделі GDM і моделі характеристик окре-
мих елементів, що входять до складу СПС.
Вони відповідають деяким функціям або
поняттям ПрО, що специфікуються різни-
ми МП і реалізуються в одному з діючих
середовищ.
Під моделлю взаємодії розуміється
взаємозв’язок між КПВ і ПС через пара-
що передаються між ними.
систему понять і відношень
ться математичними засобами – абс-
трактна алгебра, теорія множин тощо.
Moдель взаємодії
ої в теорії КП операцій взаємодії
між КПВ стос вищ.
Модель
гляд:
овно систем і середо
{ }, , inter pro sys envМ М М М= , (11)
де Мpro = {C, Int, Pr} – модель програми,
C – компонентний об’єкт, Int– інтерфейс,
Pr – протокол для передачі даних;
Мsys = {PS, Int, Pr } – модель про-
грамної системи PS, Int – інтерфейс, Pr –
протокол для передачі даних;
Мenv = {Envir, Int, Pr} – модель се-
редовища, в якому Int, Pr містить сукуп-
ність зовнішніх інтерфейсів та викликів,
взає-
модії
омленн
нього рівня.
що передають дані між програмами через
мережу.
Базовими параметрами моделі
Мinter є програма, інтерфейс і повід-
я. По відношенню до моделі від-
критих систем OSI, Мinter є моделлю верх-
15
Теоретичні та методологічні основи програмування
Реалізація технології
компонентного
програмування в ІТ
Наведена теорія КП реалізована
практично як комплексна технологія, в
якої об’єднанні на однієї концептуальній
основі теоретичний апарат моделювання
ПрО за об’єктами та теорією компонент-
ного програмування ПС із різномовн
К
их
КПВ на основі компонентної алгебри і
апарата алгебраїчних систем
перетворенням типів даних КПВ до
потрібних форматів середовища виконан-
ня, а також алгебри рефакторінгу, реінже-
нерії та реверсної інженерії з операціями
модифікації компонентів через операції
конфігуратора.
Комплексну технологію подано
спектро
з еквівалент-
ним
м окремих ліній в ІТК [13, 14, 17,
21] за веб-сайтом ІТК (http://sestudy.edu-
ua.net), що включає інструментально-
, інструменти проек-
тування і специфікації КПВ, ПС, членів
сімейства систем, стандартні системи
(Eclipse, Protege, репозиторій, CORBA,
MS.Net тощо), МП, онтології тощо.
Спектр е-ліній технологій виробни-
цтва програм і систем:
– побудова КПВ і їх розміщення у
репозиторії КПВ зі стандартизованим опи-
сом типу WSDL для їх повторного викори-
технологічні засоби
стання
них програм за
мод я
різн с-
них у ону-
вання
нфігурування КПВ (див. меню
головн
;
– зборка різномовних програм і
КПВ у складні ПС;
– взаємодія різнорід
еллю взаємодії програм і систем дл
их операційних середовищ, перено
інше середовище для функці
з даними, що подаються із програм
іншого середовища;
– варіабельність ПС і сімейств з ви-
користанням операцій еволюції ПС і СПС;
– онтологія опису і подання доменів
в DSL (ЖЦ SE і обчислювальна геометрія);
– генерація готових програм і КПВ
у варіабельну структуру шляхом їх конфі-
гурування; оцінювання показників якості,
вартості та витрат ПС;
– оцінювання показників якості, ва-
ртості та витрат ПС;
– е–програмування мовами C#, Java,
Basic, C++ у середовищі VS.Net, Сorba та
Eclipse;
– e–навчальна технологія проекту-
вання ПС за е-підручником “Програмна
інженерія”;
– e–настанова для моделювання до-
менів засобами Protégé тощо.
Запропонований теоретичний апа-
рат реалізовано в ІТК, як розділ головного
меню веб-сайта «ТЕХНОЛОГІЇ». В ньому
приведено реалізацію конкретизованих
операцій з класу операцій зборки, зміню-
вання та ко
ої сторінки ІТК).
розроблення нових КПВ;
–
з використанням ва-
ріантн
онтології обчислювальної
геомет
Кожна позиція цього меню має на-
ступне призначення:
– обслуговування репозиторю КПВ
та компонентів;
–
збирання КПВ в складні ПС з IDL-
інтерфейсом;
– конфігурування КПВ в вихідний
код;
– генерація КПВ
их точок;
– оцінювання якості КПВ та ПС;
– генерація DSL опису домену ЖЦ;
– модель
рії;
– вeb-сервіси;
– трансформації загальних типів да-
них GDT до фундаментальних FDT.
16
Теоретичні та методологічні основи програмування
Операції зовнішній алгебрі подані в
ІТК наступними операціями:
link PS (А, В, С) – зборка компонентів
А, В, С;
config SPS (Al1, Bl1, Cl1 (InidlA, InidlB,
InidlC) – конфігуруванням A, B, C в Li мові
і інтерфейсів в IDL;
redoing x, y ⇒ BD – передача даних
x, y BD за прийнятим форматом;
redo TD (x,y) – передача даних з пе-
ретворенням їх значень;
interconect PS (A, B, C, InA, InB, InC)
– об’єднання (взаємодія) A, B, C за їх ін-
терфейсами;
redevelop PS (InA, InB) – перебудова
типів даних А, В.
Конкретизація операцій еволюції,
що додані до зовнішньої компонентної
алгебри, такі в ІТК:
makeaway ( )PS A – віддалити з PS
компонент А;
add ( ),PS A C – додати А, С до PS;
in
ми
операц
моделл
C 26550 з механізмами варіантно-
сті й
ПС з КПВ, артефактів СПС; 2)
зв'язків меха-
нізм stub, sk фігурацій-
ний фай даних;
–
т
, методів еволюції компонентів та
лення нових ПС і ін-
форма
воренням основних
типів
ріабель
рефакт
sert F ⇒ PS – вставити F в PS;
reNa A ⇒ B – змінити ім’я компонен-
ту А на В;
redact A (PS) – редагувати програму
А в PS.
Ці операції поповнені нови
іями і процесами ІТК, пов’яза-
ними з варіабельністю: 1) управління
варіабельністю СПС за адаптованою
ю Product Line та стандартом
ISO/IE
оптимізації створюваної структури
конфі-
гурування (збирання) КПВ в адекватну
структуру вихідного коду ПС, здатну
на повторне конструктивне оновлення
СПС тотожними, подібними, чи еквіва-
лентними КПВ; 3) ре факторингу струк-
тури СПС за новими вимогами, чи за-
мінами непотрібних КПВ; 4) оцінювання
якості КПВ і СПС.
До складу ІТК включено реалізацію
моделі взаємодії через плагіни Eclipse за
таким практичними моделями:
– Visual Studio.Net, Eclipse для
реалізації взаємодії окремих програм у
мові С#, включаючи специфікацію інтер-
фейсу та перенесення його і КПВ в репо-
зиторій системи Eclipse з встановленням
з даним середовищем через
eleton або через кон
л з операціями оброблення
Corba, Java, MS.Net забезпечують
розроблення програм на МП цих середо-
вищ та встановлення зв’язків між ними для
розміщення програм в репозиторій та на-
дання доступу іншим;
– IBM VSphere, МП, Eclipse, де роз-
робляються нові програми з використан-
ням можливих МП, що допускаються у
цьому середовищі або у VSphere.
Розроблений веб-сайт ІТК орієнто-
ваний на реалізацію аспектів програмної
інженерії, до складу якої входить КП. До
нього на даний час звернулися біля 4000
користувачів – викладачів та с удентів.
Нами були доповіді на конференції
ICTERI–2012 [20, 21], пов’язані з метода-
ми і засобами технології програмування.
Висновки
Сформульовано теоретичний апарат
моделювання об’єктної моделі ПрО, меха-
нізми переходу від визначених в них базо-
вих характеристик і методів об’єктів до
компонентів і їх інтерфейсів за новою тео-
рією КП, що складається з базових по-
нять (компонент, компонентна модель,
модель ПС, модель середовища тощо) та
математичних методів збирання КПВ за
зовнішньої та внутрішньої компонентною
алгеброю
методології компонентного проектування
деяких ліній розроб
ційних систем.
В комплексну технологію увійшли
спрощені лінії виробництва ПС із КПВ,
модель взаємодії різномовних КПВ на
основі апарата алгебраїчних систем з
еквівалентним перет
даних до потрібних форматів се-
редовища виконання та модель ва-
ності ПС і СПС. Крім того, вклю-
чені оператори еволюції КПВ із алгебри
орінгу, ре інженерії та реверсної
інженерії з операціями їх модифікації.
Теоретичні і прикладні наробки є нови-
ми, не мають прототипу. Веб-сайт ІТК
(http://sestudy.edu-ua.net) використовується
при навчанні студентів технологіям КП.
17
Теоретичні та методологічні основи програмування
1. Лав
. – 213 с.
3. Гри
омпонентів //
Про
ованное програм-
С 125.
рищева Е.М., Грищенко В.Н. Сбороч-
ное программирование. – Киев: Наук. дум-
ка, 1991
2. Грищенко В.М. Подход к формализации
объектно-ориентированной методологии //
Проблемы программирования. – 1997. –
№ 1. –С. 33–39.
щенко В.М. Систематизований підхід
до визначення програмних к
блеми програмування. – 2001. – № 3 –
4. – С. 23–30.
4. Грищенко В.М. Особливості компонентно-
орієнтованої розробки програмного забез-
печення // Проблеми програмування. –
2001. – № 3 – 4. – С. 23–30.
5. Грищенко В.Н., Лаврищева Е.М.
Компонентно-ориентир
мирование. Состояние, направления и
перспективы развития // Проблеми прог-
рамування. Спец. вип. – 2002. – № 1–2. –
С. 80–90.
6. Грищенко В.Н., Лаврищева Е.М. Методы и
средства компонентного программирова-
ния // Кибернетика и системный анализ. –
2003. – № 1. – С. 39–55.
7. Грищенко В.Н. Формальные модели ком-
понентного программирования // Проб-
леми програмування. – 2003. – № 2. –
С. 42–57.
8. Грищенко В.Н. Алгебраїчна модель рефак-
торінгу компонентів // Проблеми програ-
мування. – 2003. – № 4. – С. 43–53.
9. Грищенко В.М. Метод об’єктно-компонен-
тного проектування програмних систем //
Проблеми програмування. – 2007. – № 2. –
. 113–
10. Лавріщева К.М. Генерувальне програмува-
ння ПС і сімейств // Проблеми програму-
вання. – 2009. – № 1. – С. 3 – 16.
11. Лавріщева К.М. Взаємодія програм, систем
й операційних середовищ // Проблеми про-
грамування. – 2011. – № 3. – С. 13–24.
12. Лавріщева К.М., Слабоспицька О.О., Ко-
валь Г.І., Колесник А.О. Теоретичні аспек-
ти керування варіабельністю в сімействах
програмних систем. – Вісник КГУ, серія
фі
Підходи до конфігурування
//
П –
С.
14. Л
бки и навчан-
ня
нтика. –
М
нко В.Н. Сборо-
чн
аук. думка, 2009. – 371 с.
н к
П
нг: улучшение соот-
ве кода.
– 432 с.
pr or Variab
in ce
IC
I
авріщева К.М. Інструментально-техно-
логічний комплекс для розро
прийомам виробництва програмних
систем. – К.: Вісник НАН України, 2012. –
№ 3. – С. 17–26.
15. Андон П.І., Лавріщева К.М. Розвиток фаб-
рик програм в інформаційному світі //
Вісник НАН України. – 2010. – № 10. –
C. 15–41.
16. Фреге Г. Логика и логическая сема
: Аспект.
17. Лаврищева Е.М., Грище
ое программирование. Основы ин-
дустрии программных продуктов. – Второе
изд. – К.: Н
18. Лаврищева Е.М. Парадигма интеграции в
программной инженерии // Материалы
второй междунар. ауч.-практ. онф. Укр-
рог. – 2000, 23 – 26 мая 2000. –
С. 351–360.
19. Фаулер М. Рефактори
тствующего – СПб.: Символ–
Плюс, 2003.
20. Kolesnyk A., Clabospitskaya O. Tested Ap-
oach f ility Management Enhanc-
g in Software Product Line – Conferen
TERI–12.
21. Lavrischeva К., Ostrovski A., and Radetskyi I.
Approach to E-Learning Fundamental As-
pects of Software Engineering. – Conference
ICTER –12
http://senldogo0039.springer–
sbm.com/ocs/home/ICTERI2012
Одержано 16.08.2012
Про автора:
Лавріщева Катерина Михайлівна,
доктор фізико-математичних наук,
професор, завідуюча відділом.
Місце роботи автора:
Інститут програмних систем
НАН України,
03187
з.-мат. наук. – 2011. – № 1. – С. 151–158.
13. Колесник А.Л.
ко , Київ-187,
проспект Академіка Глушкова, 40.
Тел.: (044) 526 3470.
мпонентів повторного використання
роблеми програмування. – 2011. – № 4.
57 – 66.
18
(4)
|