Technological aspects of viable software development using generative programming

In this work we consider an approach to soft-ware systems development using viable model. New results towcads generative programming technology are presented.Problems in programming 2010; 4: 21-32

Збережено в:
Бібліографічні деталі
Дата:2026
Автори: Ignatenko, P.P., Bystrov, V.M.
Формат: Стаття
Мова:Українська
Опубліковано: PROBLEMS IN PROGRAMMING 2026
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/968
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Репозитарії

Problems in programming
_version_ 1866844995463413760
author Ignatenko, P.P.
Bystrov, V.M.
author_facet Ignatenko, P.P.
Bystrov, V.M.
author_institution_txt_mv [ { "author": "P.P. Ignatenko", "institution": "Institute of Software Systems NAS of Ukraine" }, { "author": "V.M. Bystrov", "institution": "Institute of Software Systems NAS of Ukraine" } ]
author_sort Ignatenko, P.P.
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
collection OJS
datestamp_date 2026-06-01T21:28:34Z
description In this work we consider an approach to soft-ware systems development using viable model. New results towcads generative programming technology are presented.Problems in programming 2010; 4: 21-32
first_indexed 2026-06-02T01:02:04Z
format Article
fulltext Моделі та процеси життєвого циклу програмного забезпечення УДК 681.3 П.П. Ігнатенко, В.М. Бистров ТЕХНОЛОГІЧНІ АСПЕКТИ СТВОРЕННЯ ЖИТТЄЗДАТНИХ ПРОГРАМНИХ СИСТЕМ В УМОВАХ ГЕНЕРУЮЧОГО ПРОГРАМУВАННЯ Розглядається подальший розвиток підходу авторів до створення програмних систем з використанням моделі життєздатності. Розвиток здійснено в напрямку технологізації їх підходу в умовах генеруючого програмування Вступ У колі наукових дисциплін і теорій нині активно розвивається теорія життє- здатності складних систем (ТЖС) [1] – живих систем, суспільства та людини, а також складних гібридних систем, засновниками якої для біологічних систем є Р. Міллер [2], а для організацій С. Бір [3]. У свою чергу вони базувалися в своїх дослідженнях на роботах кібернетика У.Р. Ешбі [4]. У теорії життєздатності складних систем одним із базових її понять є поняття моделі життєздатності таких систем, яка має: включати в число об’єктів моделю- вання не лише саму систему, а й актуальне для неї оточуюче середовище; адекватно відображати з єдиних позицій сімейство систем; мати способи опису складних ієрархічних систем; враховувати наявність обмежень на архітектуру та поведінку системи; враховувати зміни архітектури та поведінки системи, а також зміни середовища їх існування; адекватно враховувати багатокри- теріальність оптимізації архітектури, функцій і поведінки систем. ТЖС є теоретичним підґрунтям виконання проекту щодо життєздатності складних програмних систем (ПС). Зазначимо при цьому деякі доведені зага- льні твердження із ТЖС, особливо важливі для нашого дослідження щодо життєздат- ності складних ПС: розвинуті життєздатні системи є гармонізованими внутрішньо та тим самим відносно стабільними; система тим більш життєздатна й стійка, чим менший її кордон із зовнішнім середовищем; система може підвищити життє- здатність за рахунок переструктурування й агрегування елементів та кооперування їх у підсистеми без виходу за рамки своєї характерної структури чи організації; ефект мінімізації небезпечного кордону може бути досягнуто шляхом агрегування даної системи з іншими системами із актуального середовища. Всі вищезазначені положення із ТЖС у повній мірі належать предмету нашого дослідження – розробка теоретичних та методологічних основ життєздатності програмних систем. Уперше поняття життєздатності для систем організаційного типу було запропоновано С. Біром, який при цьому опирався на закон необхідної різноманіт- ності У. Р. Ешбі. Ним було запропоновано формалізовану модель – Модель Життє- здатних Систем (МЖС) для організацій. При цьому життєздатна система (структурно – у вигляді структури МЖС) має складатися із життєздатних підсистем і самостійно здійснювати деякі специфічні функції. С. Бір за допомогою МЖС вирішу- вав задачі підвищення якості управління організацією як умови її життєздатності та ефективного функціонування. Запропоно- вана С. Біром декомпозиція спрощує систему прийняття рішень на кожному 21 © П.П. Ігнатенко, В.М. Бистров, 2010 ISSN 1727-4907. Проблеми програмування. 2010. № 4 Моделі та процеси життєвого циклу програмного забезпечення рівні ієрархії (зменшує невизначеність і знімає обмеження), а рознесення діяльності за видом і розвитком забезпечує «нормування» за кінцевим результатом – виживанню системи в цілому. На відміну від життєздатності складних систем взагалі та систем органі- заційного управління, зокрема, питання життєздатності ПС у спеціальній літера- турі до недавнього часу були мало дослід- жуваними. Вони почали активно дослід- жуватися після виходу роботи С. Херрінга [5] у 2002 році, в якій він, опираючись на розробки С. Біра, сформулював інтелекту- альну парадигму управління для ПС, слі- дуючи якій вони могли розвиватися узгод- жено із складним навколишнім середо- вищем (коеволюціонувати). Основним тео- ретичним результатом роботи С. Херінга є обґрунтоване твердження, що поняття життєздатності визначає головну влас- тивість наступного покоління ПС. Авторами раніше розглянуто проб- лему життєздатності ПС у рамках запропонованого ними підходу до ство- рення життєздатних ПС з використанням моделі життєздатності для об’єктно- орієнтованого та компонентного програ- мування [6–12], які, в основному, орієн- товані на створення одиночних систем. Одним із ключових принципів прог- рамної інженерії є її розвиток у напрямку індустріалізації створення ПС [13]. Гене- руюче програмування – це саме той напря- мок розвитку програмної інженерії, який направлений на індустріалізацію створен- ня ПС та потребує свого підходу до вирі- шення проблеми забезпечення життєздат- ності членів сімейства ПС. У роботі пред- ставлено такий підхід та описано техно- логгічні аспекти створення життєздатних членів сімейства ПС в умовах генеруючого програмування. Перші результати в цьому напрямку були опубліковані в попередній роботі авторів [14], присвяченій особливостям забезпечення життєздатності ПС в умовах генеруючого програмування. Дана робота містить розвиток цього дослідження в напрямку технологічних аспектів створен- ня життєздатних ПС в цих умовах. Результати роботи отримано в рамках відомчої теми Інституту програм- них систем НАН України "Розробка теоре- тичних основ генеруючого програмування, прикладних та інструментальних засобів його підтримки". Науковий керівник теми – доктор фізико-математичних наук, професор К.М. Лавріщева. 1. Забезпечення життєздат- ності ПС в умовах генеруючого програмування В основі нашого підходу до забезпе- чення життєздатності ПС для різних мето- дологій їх створення лежить застосування моделі життєздатності. Особливостями її використання в умовах генеруючого прог- рамування і визначаються технологічні аспекти створення життєздатних ПС сімей- ства. Відповідно до застосування пара- дигми генеруючого програмування та кон- цепції забезпечення життєздатності ПС для інженерії предметної області розгля- дається така життєздатна ПС. По-перше, пристосована до внесення змін (здатна змі- нюватись) за участю розробника системи відповідно до зміни зовнішнього середо- вища (предметної області та вимог корис- тувача) у визначених межах. По-друге, во- лодіє засобами пристосування до змін на основі певної інфраструктури повторного використання, засобів генеруючого прог- рамування та засобів підтримки життє- здатності ПС у рамках процесу еволюцій- ної розробки. По-третє, розроблюється та супроводжується за наявністю обмеженос- ті ресурсів (зокрема, часових, фінансових, робочих) відповідно до певних економіч- них моделей. Проблему забезпечення життєздат- ності ПС сімейства на основі означеного підходу ми пропонуємо розглядати, базую- чись на наступних ключових принципах: розробка на основі інваріантів – зміни в ПС та її еволюційні перетворення здійснюються при наявності та збереженні певних артефактів (на різних рівнях абстракції), які визначають такі харак- теристики життєздатності як ідентич-ність (identity) та автономність (autono-my) системи, її адаптованість (adapta-bility), 22 Моделі та процеси життєвого циклу програмного забезпечення стійкість (stability) при внесенні змін та їх простеження (traceability), оптимальність структури та оптимальність процесу еволюційної розробки системи; інваріанти визначають організацію і структуру життє- здатної ПС та направляють процес розроб- ки для досягнення системою якості життє- здатності (viabi-lity quality) [15]; характер- ритики життєздатності залучаються до обраної моделі якості інженерії ПС та узгоджуються із нею відповідно до певних критеріїв життєздатності; “інтелектуалізація” технології еволюційної розробки та зворотний зв'язок – зовнішнє середовище, середовище розробки, інфраструктура підтримки життєздатності, програмна система (in focus) взаємодіють із використанням механізмів зворотного зв'язку на основі моделі прийняття рішень і повторно використовуваного інтелектуального ресурсу в області архітектури та інженерії ПС; ПС проявляє активність, впливаючи на зовнішнє середовище; оцінювання показників життє- здатності (якісних показників ПС та її економічних показників) – якісні показ- ники життєздатності визначають якість сімейства ПС у рамках домену та інженер- ні характеристики якості ПС згідно стандарту ISO/IES 9126-1; економічні показники життєздатності визначаються у відповідності з «принципом повернення інвестицій» (return of investment, ROI) та прогнозованістю необхідного і достат- нього часу існування системи; розробка та використання моделі життєздатності – модель життєздат-ності забезпечує на мета-рівні мульти- парадигменний підхід до створення життє- здатних ПС на основі визначення і використання інваріантів домену та застосувань. Модель життєздатності включає наступні складові. Еталонну модель архітектури жит- тєздатних ПС, яка забезпечує якість життєздатності ПС на основі визна- чення та підтримки архітектурних інваріантів домену та застосувань. Засоби формування архітектури ПС, яка базується на еталонній моделі, та засоби моделювання ПС сімейства. Пропонується використовувати уніфікова- ну мову моделювання UML та засоби розширення UML для підтримки еталонної моделі. Засоби підтримки еволюції на основі моделі простежування змін, узагальнених сценаріїв та моделі прийняття рішень. Методологію запровадження моделі життєздатності для певної предметної області на основі побудови відповідної еталонної моделі домену (domain reference model). Еталонна модель визначає базові концепції архітектури життєздатних ПС та встановлює зв’язок між ними. Ключовим поняттям еталонної моделі є архітектур- ний інваріант. Архітектурні інваріанти відповідають інваріантам моделей життє- здатних систем або інваріантам предметної області, які визначаються на основі крите- ріїв життєздатності. При утворенні ар- хітектури ПС вони об’єднуються відповід- но до певного архітектурного стилю, який забезпечує досягнення ПС якості жит- тєздатності. Наприклад, архітектурні інва- ріанти, які відповідають інваріантам мо- делі життєздатних систем Біра, можуть бути об’єднані на основі архітектурного стилю Парадигма Керування (Control Para- digm) [5], а архітектурні інваріанти, які відповідають інваріантам LST Дж. Мілле- ра, можуть бути об’єднані на основі архі- тектурного стилю Модель-Представлення- Оброблювач(Model-View-Controller, MVC). Наприклад, архітектурні інваріанти предметної області у вигляді архі- тектурних аспектів можуть бути об’єднані в рамках еталонної архітектури сімейства ПС за умовами досягнення оптимальних значень показників якості ПС. Архітек- турні інваріанти підтримуються механіз- мами, які забезпечують пристосування ПС до змін у зовнішньому середовищі (адап- тивність – при функціонуванні та здатність до адаптації при модифікаціях) у рамках певних еволюційних перетворень, її стій- кий розвиток (стабільність) та простежу- ваність змін у системі протягом життєвого циклу (трасованість), а також можливість забезпечення якості життєздатності (qua- 23 Моделі та процеси життєвого циклу програмного забезпечення lity of viability) на основі певної моделі якості системи. Проведені дослідження показали, що при реалізації означеного підходу кри- тичним фактором щодо забезпечення жит- тєздатності ПС є встановлення зв’язку між артефактами ПС сімейства та характери- тиками предметної області. Такий зв’язок досягається на основі застосування шабло- нів проектування в рамках Domain-driven approach. Зокрема, це Product-line Archite- ture Design Approach та Pattern-driven Architecture Design Approach, які видобува- ють абстракції архітектурного проектуван- ня із моделі предметної області (domain model). Найбільш придатним для підтрим- ки архітектури лінійки продуктів (product line architecture, PLA) з точки зору кон- цепції забезпечення життєздатності є Do- main-Specific Software Architecture (DSSA) approach [16]. Отже, важливим технологічним аспектом створення життєздатних ПС є створення її архітектури – еталонної архітектури домену, архітектури сімейства ПС та Каркасу життєздатної ПС. Також, як показали наші попередні дослідження, базований на шаблонах та керований шаблонами підхід до створення ПС на основі моделі життєздатності вимагає наявності моделі якості, яка містить характеристики життєздатності та інженерні характеристики якості. Важливими технологічними аспек- тами створення життєздатних ПС є вибір критеріїв життєздатності, визначення характеристик життєздатності та створен- ня метрик оцінювання характеристик життєздатності ПС за її моделлю. Крім того, ще одним важливим технологічним аспектом є створення моделей прийняття рішень щодо вибору варіанта життєздатної ПС, який найбільше задовольняє вимоги користувача. Враховуючи напрацювання С. Біра, Ч. Херрінга та авторів статті, необхідним технологічним аспектом є узгодження моделей системи, що забезпечують її життєздатність та створення інтегрованої моделі життєздатності доменів та застосувань. 2. Створення інтегрованої моделі життєздатності членів сімейства ПС В аспекті мультипарадигменної концепції до створення ПС проблему забезпечення їх життєздатності пропо- нуємо розглядати як проблему розробки інтегрованої моделі забезпечення життє- здатності доменів та застосувань. Така інтегрована модель вміщує характеристики життєздатності відповідно до узагальненої моделі якості, правила об’єднання зразків та компонентів реалізації відповідно до моделі конфігурування, параметри мінли- вості відповідно до моделі мінливості а також критерії життєздатності відповідно до моделі життєздатності. Інтегрована модель забезпечення життєздатності доменів та застосувань вра- ховує наступні аспекти створення ПС: кібернетичний аспект у тій його частині, який стосується концепцій зворотного зв’язку та необхідності застосування інформаційної моделі системи для забезпечення керування системою та її еволюції. Цей аспект може бути реалізовано, зокрема, на основі моделі життєздатних систем С. Біра , або моделі, яка відповідає теорії живучих систем Дж. Міллера. В рамках інженерії ПС такому підходу відповідає, зокрема, розробка ПС на основі архітектурного стилю Модель-Представлення-Оброблю- вач (Model-View-Controller, MVC); аспекти інженерії ПС у тій їх частині, які розглядають архітектуру ПС як визначальний артефакт щодо забез- печення необхідної якості ПС (archutec- ture-centric approach), визначають архітек- турні інваріанти ПС щодо її організації та структури, підтримують керовану моделя- ми розробку з шаблонами, підтримують розробку оптимальної структури системи та оптимальність процесу еволюційної роз- робки системи на основі моделі якості та шаблонів проектування. До таких підходів належить, зокрема, орієнтований на шаб- лони аналіз та проектування (Pattern Oriented Analysis and Design, POAD), керована моделями розробка (Model Driven Engineering, MDE) з шаблонами та 24 Моделі та процеси життєвого циклу програмного забезпечення ресурсами, що повторно використову- ються тощо; аспекти інженерії ПрО для сімейства ПС у тій їх частині, яка сто- сується визначення еталонної архітектури сімейства ПС, інваріантів предметної об- ласті та оптимальної конфігурації компо- нентів ПС. До таких підходів, зокрема, належить породжуюча розробка програм- ного забезпечення (Generative Software De- velopment, GSD), предметно-орієнтоване моделювання (Domain-Specific Modeling, DSM) тощо. Схематично формування інтегрованої моделі життєздатності членів сімейства ПС представлено на рис. 1. Характеристики життєздатності Інваріанти життєздатних систем Інваріанти доменів та застосувань Критерії життєздатності Шаблони проектування Інтегрована модель життєздатності Конфігураційна модель Модель якості Включає Включає Відповідає Враховують Підтримують Застосовують Відповідають Рис. 1. Інтегрована модель життєздатності членів сімейства ПС Інженерні характеристики якості Відповідають Забезпечують Розширюють Включає Модель мінливості Параметри мінливості Включає Забезпечують Відповідає Застосовує 3. Характеристики життєздатності членів сімейства ПС та їх оцінювання Як уже зазначено, важливим техно- логічним аспектом моделювання життє- здатних ПС є оцінювання їх показників життєздатності за моделю. Показники життєздатності, які заді- яні в прийнятті проектних рішень щодо ПС розділяються на два типи показників – показники якісного та економічного характеру. Показники якісного характеру. За класифікацією стандарту ISO/IEC 9126-1 до характеристик життєздатності ПС можна віднести такі характеристики якості ПС як супроводжуваність (maintainability) – властивості ПС, що обумовлюють можливість її ефективної модифікації, включаючи коригування, удосконалення або адаптацію ПС до зміни середовища, вимог та функціональних специфікацій, а також переносимість (portability) – властивості ПС, що обумовлюють її здатність бути перенесеної з одного середовища до іншого. Наведених 25 Моделі та процеси життєвого циклу програмного забезпечення характеристик якості недостатньо для оцінювання життєздатності членів сімейства ПС. Тим більше вони не дають змоги оцінювати життєздатність довільних складних систем. Для вирішення проблеми нами запропоновано три важливі характеристи- ки довільних систем, пов’язаних із їх життєздатністю. Вони також актуальні для інженерії предметної області. Ці характе- ристики можуть розглядатися, як допов- нення до відомої моделі якості ПС. Харак- теристики життєздатності «стабільність», «модифікуємість», «оптимізуємість», що пропонуються до розгляду, збагачують модель якості ПС, їх значення визначаєть- ся та діє у рамках розглядуваної предмет- ної області (домену). Характеристика «стабільність». «Стабільність» – це властивість життєздат- ної системи, що визначає ступінь її адап- тивності при функціонуванні. Показник «стабільність» тісно пов'язаний з такими математичними поняттями теорії систем [17], як: зворотній зв’язок, координуючий сигнал, кордину- ємість, сумісність, узгодженість. Харак- теристика «стабільність» визначається із сукупності показників, що визначають стан координованості системи в теорії систем шляхом їх інтеграції. У програмній інженерії показник «стабільність» визначається із сукупності показ-ників, що визначають стан адаптивності ПС, шляхом їх інтеграції [18]. Характеристика модифікуємість». «Модифікуємість» – це властивість життє- здатної системи, що визначається наявніс- тю інфраструктури щодо організації її модифікації в середовищі функціонування. Характеристика «модифікуємість» тісно пов'язана з такими математичними поняттями теорії систем, як: сумісність, узгодженість, декомпозиція, координація шляхом зміни цілей, координація шляхом зміни обмежень. Користуючись цими поняттями можна формально ввести поняття «модифікуємість», побудувати ме- тод його обчислення та дослідити його необхідність і достатність для забезпечен- ня життєздатності складної системи. У програмній інженерії ця характер- ристика тісно пов'язана з поняттям реін- жинірингу ПС. Вона фактично визначає ступінь придатності ПС до реінжинірингу. Характеристика «модифікуємість» визна- чається із сукупності показників, що вводяться в теорії реінжинірингу ПС, шляхом їх інтеграції [19]. Характеристика оптимізуємість». «Оптимізуємість» – це властивість життє- здатної системи, що визначається її здат- ністю до рефакторингу – оптимізації функ- ціонування, або покращувати характе- ристики функціонування без зміни її функціональності. Поняття рефакторингу відображає реальну ситуацію для багатьох областей діяльності у зв’язку з технічним прогресом у комп’ютеризації та програмній інженерії. Наприклад, питання децентралізації обчислень і заміна мейнфреймовських комп’ютерів на мережу локальних обчислювальних машин. Воно може розглядатися як проблема досягнення оптимуму в організації процесу комп’ю- терних обчислень. Однак, як вказує теорія систем, цілі децентралізованої моделі обчислень досягаються лише в тому випадку, якщо вона забезпечує узгодже- ність глобальних і локальних цілей. Хоча кожний «обчислювач» намагається покращити свій процес, одночасно покращуються характеристики ПС в цілому, так що в результаті майже кожний виграє. Якраз ця узгодженість цілей, виражена в постулаті сумісності теорії систем, служить реальним виправданням децентралізації обчислень. Характеристика «оптимізуємість» тісно пов'язана з такими математичними поняттями теорії систем, як: координо- ваність, сумісність, еталонне керування, принцип оцінки взаємодій, локальна функція затрат. Вони дозволяють формально ввести це поняття, побудувати метод його обчислення та дослідити його необхідність і достатність для забезпе- чення життєздатності складної системи. Характеристика «оптимізуємість» у програмній інженерії базується на інтег- 26 Моделі та процеси життєвого циклу програмного забезпечення рації сукупності показників, що визна- чаються в теорії рефакторингу ПС. Метрики оцінки показників якіс- ного характеру. В програмній інженерії метрики традиційно використовуються для попередження невірного проектування на ранній стадії життєвого циклу ПС. Знай- дені невідповідності та дефекти можуть бути модифіковані та попереджені з мен- шими затратами коштів та зусиль ніж на пізніших етапах проектування або на стадії супроводу. Метрики забезпечують розроб- нику швидкий зворотній зв’язок – шляхом аналізу зібраних даних можна прогнозу- вати життєздатність ПС. При відповідному використанні метрик можливе значне зменшення вартості всієї розробки та пок- ращення якості кінцевого програмного продукту, що в свою чергу, веде до змен- шення витрат на його підтримку. Метрики застосовуються в контек- сті сценаріїв, які реалізуються за допомо- гою представлення процесу (діаграм взаємодії у середовищі Rational Rose). Це дозволить оцінювати параметри системи не загалом, а в рамках деяких задач або процесів, що цікавлять нас особливо. Таким чином метрики будуть застосову- ватися не до всіх класів та їх методів а лише до тих, що пов’язані спільним сценарієм. Деякі конкретні метрики для показ- ників якісного характеру та приклади їх застосування описано в [20]. Характеристики життєздатності економічного характеру. Характеристи- ки економічного характеру в схемі ство- рення життєздатних ПС мають велике зна- чення. Побудовані системи мають бути доступні для покупки Замовником та в майбутньому забезпечити дохід інвестора. Найбільш важливими економічни- ми характеристиками ПС для управління при розробленні ПС є розмір проекту, трудомісткість, час, необхідний для вико- нання та вартість. Серед цих характер- ристик три останні у великій мірі залежать від першої характеристики – розміру ПС [21]. Впровадження прикладної ПС у організації можна розглядати як інвести- ційний проект, у ході якого замовник вит- рачає певні кошти на придбання активу, який дозволяє зменшити видатки через оптимізацію бізнес-процесів або збільшити надходження, запропонувавши ринку нові продукти. Прикладна ПС є життєздатною, як- що грошові потоки – Cash Flow (CF), що генеруються її проектом, забезпечують дві умови – покриття початкової інвестиції та віддачу на вкладені гроші (дохід інвестора). Найбільш вживаними (основними) показниками ефективності інвестиційних проектів є такі [22]: чиста приведена вартість – відображає різницю між видатками та прибутками, коли всі кошти приведені у часі до теперішнього моменту часу; внутрішня норма прибутку – так називають ставку дисконтування, за якої величина чиста приведена вартість стає нульовою; період окупності – час, необ- хідний для того, щоб сума, інвестована в той чи інший проект, повністю повер- нулася за рахунок коштів, одержаних в результаті основної діяльності за даним проектом; приведений період окупності враховує „часову вартість” грошей. Через такі фактори, як інфляція, банківський процент або інші привабливі проекти, одна гривня сьогодні коштує більше, ніж одна гривня завтра; коефіцієнт прибутковості інвестицій – прибуток до виплати процентів і податків, поділений на суму довготермінових зобов’язань плюс акції. Безумовно, на економічні показни- ки (а отже життєздатність) прикладних ПС впливають показники ефективності генеруючого середовища, з допомогою якого створювалася прикладна ПС. Метрики оцінки економічних показників. Оскільки з чотирьох основ- них економічних характеристик розроб- лення ПС (розмір проекту, трудомісткість, час, необхідний для виконання та вартість) три останні у великій мірі залежать від першої характеристики – розміру ПС – оці- нювання цих характеристик можна розбити на два етапи: оцінювання розміру; оцінювання трудомісткості, вар- тості та тривалості з використанням уже отриманого значення розміру. 27 Моделі та процеси життєвого циклу програмного забезпечення Для розрахунку оцінок трьох останніх характеристик добре підходить модель COCOMO [23], оскільки вона розроблялася саме з метою оцінки бюджету, вартості та тривалості проектів та є нині найбільш широко застосовуваною моделлю. Модель COCOMO використовує як вхідний параметр розмір ПС у рядках вихідного коду (SLOC [24]). Отримати точний розмір у таких одиницях можна лише після завершення проекту. На будь- якому попередньому етапі розмір має визначатися за допомогою експертних оцінок або за допомогою деякої методики оцінювання розміру проекту, яка може дати оцінку в одиницях SLOC. Водночас найкращим вибором для оцінювання розміру проекту є метод FPA [24]. Він має об’єктивний характер, простий у застосу- ванні, є найбільш широко застосованим у індустрії розробки програмного забезпе- чення, має статус міжнародного стандарту та є загально доступним. Розмір ПС, отри- маний за допомогою FPA, можна викорис- тати у моделі COCOMO, оскільки для багатьох мов програмування існують залежності між розміром ПС у одиницях UFP та одиницях SLOC. Існуючі методи експертних оцінок також можуть бути включені в схему, оскільки застосування більш формалізованих методів у певних випадках є неможливим або невигідним. У поєднанні з методами визначення характеристик якості системи за UML - діаграмами це дасть нові можливості для керування проектами з розробки, модифі- кації та реінжинірингу ПС. При отриманні оцінок економічних характеристик ПС, що не задовольняють користувача із-за їх великих значень, необхідно повернутися до етапу моделювання та оцінювання характе- ристик життєздатності ПС, понизити вимоги до характеристик життєздатності, одержати компромісний проект та одер- жати задовільні оцінки його економічних характеристик. Оцінювання характеристик, важли- вих в економічному аспекті, при виконанні проектів за розробкою та модифікацією ПС є необхідною складовою процесу керування розробкою та супроводженням життєздатних ПС. Застосування методів оцінювання економічних характеристик дозволяє більш точно прогнозувати як матеріальні ресурси, необхідні для реалізації проекту, так і людські та часові ресурси. Це дає можливість приймати обгрунтовані рішення щодо формування пакету нових розробок ПС в організації, a також щодо доцільності проектів моди- фікацій супроводжуваних ПС. Для здійснення оцінювання харак- теристик життєздатності ПС відповідні не- обхідні дані мають бути відображені у UML – моделі ПС [25]. 4. Моделювання та забезпечення життєздатності створюваних членів сімейства ПС Моделювання та забезпечення життєздатності створюваних ПС сімейства в умовах генеруючого програмування здійснюється в рамках інтегрованої моделі забезпечення життєздатності доменів та застосувань, яка представлена на рис. 1. Відповідно до цієї моделі розглядаються наступні технологічні аспекти використан- ня моделі життєздатності ПС у середовищі генеруючого програмування: 1) техно- логічна схема генеруючого програмуван- ня; 2) технологічна схема забезпечення життєздатності доменів; 3) технологічна схема забезпечення життєздатності засто- сувань (рис. 2). Еволюційний процес роз- робки життєздатних ПС сімейства реа- лізується на основі взаємодії цих схем. Технологічна схема генеруючого програмування. У рамках цієї технології застосовується конфігураційна модель, яка визначає правила об’єднання компонентів реалізації та зразків (шаблонів проект- тування). Конфігураційна модель базуєть- ся на моделі життєздатності сімейства ПС, за допомогою якої відповідно до критеріїв життєздатності визначаються життєздатні компоненти реалізації, архітектурні стилі для формування еталонної моделі та відповідної еталонної архітектури сімей- ства. Відповідність системи зразків проектування (design patterns) та проб- лемно-залежних зразків проектування (domain-specific design patterns) зразкам предметної області (domain patterns) 28 Моделі та процеси життєвого циклу програмного забезпечення 29 Модель життєздатності сімейства ПС: - інваріанти життєздатних систем, інваріанти предметної області (доменів); - архітектурні стилі, шаблони проектування; - характеристики життєздатності; - базові принципи забезпечення життєздатності ПС та критерії життєздатності; - моделі спільності та мінливості UML- модель життєздатної програмної системи сімейства Сценарії функціонування, моделі простежування змін Оцінки показників життєздатності Визначає Включає Базується Метрики та методи оцінки показників життєздатності програмної системи сімейства Включає Визначають Рішення щодо модифікації моделі ПС Враховує Визначає Породжує Рис. 2. Моделювання та забезпечення життєздатності створюваних ПС: 1 – технологічна схема генеруючго програмування; 2 – технологічна схема забезпечення життєздатності домені; 3 – технологічна схема забезпечення життєздатності застосувань Базований на архітетурі UML - профіль сімейства життєздатних ПС (DSL) Визначає Еталонна модель домену Базується Визначає Життєздатна еталонна архітектура сімейства ПС Генератори артефактів процесу еволюційної розробки ПС Модель прийняття рішень на основі критеріїв життєздатності Базується Конфігураційна модель: - предметно-орієнтовані мови (DSL) специфікації та конфігурування життєздатних компонентів реалізації; - породжуючі мови зразків, що формують архітектурний стиль (еталонну архітектуру) сімейства життєздатних ПС; - моделі перетворень (трансформацій) Визначає Родова модель якості із підтримкою мінливості Визначає Модель життєздатності програмної системи сімейства: - архітектурні інваріанти застосувань; - архітектурний стиль та шаблони проектування; - еволюційні інваріанти/ та критерії життєздатності Базується Визначає Визначає Визначає Життєздатні компоненти реалізації та життєздатні компонентні каркаси Прийняття рішень щодо створення життєздатного домену сімейства ПС Визначає Визначає Прийняття рішень щодо відповідності моделі життєздатності доменній моделі Прийняття рішень щодо відповідності моделі системи моделі життєздатності Моделі та процеси життєвого циклу програмного забезпечення відображається у предметно-орієнтованій мові конфігурування та мови конфігу- рування компонентів реалізації відповідно до простору задач та простору рішень. За допомогою генератора може бути здійснено переклад з однієї мови на іншу [16]. Певні механізми підтримки життєздатності можуть бути представлені також за допомогою аспектних зразків [26]. Таким чином, конфігураційна мо- дель у рамках технології генеруючого програмування забезпечує та підтримує розробку: життєздатної еталонної архі- тектури сімейства ПС; генераторів артефактів процесу еволюційної розробки ПС; життєздатних компонентів реа- лізації та життєздатних компонентних кар- касів. Розробка здійснюється на основі моделі прийняття рішень щодо створення життєздатного домену сімейства ПС. Технологічна схема забезпечення життєздатності доменів. У рамках цієї технології застосовується модель життє- здатності сімейства ПС, на якій базується як конфігураційна модель технології гене- руючого програмування, так і модель жит- тєздатності ПС сімейства технології забез- печення життєздатності застосувань. Модель життєздатності визначає наступні підходи до створення життєздат- них ПС на основі інваріантів: підхід на основі архітектурних інваріантів, яким відповідають інваріанти життєздатних систем (інваріанти VSM Біра, інваріанти LST Міллера тощо); підхід на основі інваріантів предметної області, для визначення і підтримки яких використовуються: модель якості, узагальнені сценарії, критерії життєздатності на основі оцінки характеристик життєздатності, включаючи економічні показники життєздатності, та механізми, що забезпечують якість життє- здатності; модель внутрісистемної та міжсис- темної спільності, мінливості та залежнос- тей (обмежень) на основі інваріантів і механізми внесення змін (механізми мінливості) та підтримки еволюції; модель прийняття рішень та меха- нізми інтелектуалізації і зворотного зв’язку. Модель життєздатності сімейства ПС підтримує розробку: еталонної моделі домену, яка визначає архітектуру життєздатних програмних систем сімейства; базований на архітектурі UML – профіль сімейства життєздатних ПС, який розширює мета-модель UML і розгля- дається як предметно-орієнтована мова (DSL); родової моделі якості із підтримкою мінливості на основі шаблонів проектуван- ня та узагальнених сценаріїв. Розробка здійснюється на основі моделі прийняття рішень щодо відповід- ності моделі життєздатності доменній моделі. У рамках взаємодії технології поро- джуючого програмування та технології забезпечення життєздатності доменів визначаються інваріанти сімейства систем, які відповідають певній моделі життєздат- ності. Поняття предметної області, які ставляться їм у відповідність можна розглядати як інваріантні. Вони мають бути згруповані в рамках обмеження, яке відповідає організації системи (інакше – певному архітектурному стилю). Архітек- турний стиль забезпечує необхідну якість сімейства систем у цілому та окремих членів сімейства на основі родової моделі якості (generic quality model) та моделі простежування змін, а також підтримує модель (інакше – узгоджується з моделлю) мінливості (variability model) сімейства систем відповідно до змінюваних параметрів (variation points). Останні визначають місця, де відбувається мінли- вість. Відповідно до моделювання життє- здатної ПС сімейства можна виділити наступні категорії інваріантних понять: організаційно-структурні поняття, які визначають структуру системи та її організацію відповідно до певної моделі життєздатної системи або відповідно до контексту предметної області; 30 Моделі та процеси життєвого циклу програмного забезпечення композиційні поняття, які забезпе- чують розвиток системи (еволюцію) на основі певних механізмів (рекурсія, наслі- дування тощо); інтероперабельні поняття, які забез- печать гомеостатичну рівновагу щодо взаємодії системи із зовнішнім середо- вищем (зовнішніми системами). Технологічна схема забезпечення життєздатності застосувань. У рамках цієї технології застосовується модель життєздатності ПС, яка базується на моделі життєздатності сімейства ПС. Ця технологія підтримується засобами прикладної інженерії (інженерії ПС). Члени сімейства створюються на основі базованого на архітектурі UML – профілю сімейства життєздатних ПС, а модель якості, яка застосовується для оцінки життєздатності ПС відповідає родовій моделі якості на основі шаблонів проект- тування, сценаріїв та моделі просте- жування змін. Модель життєздатності ПС сімей- ства підтримує розробку: моделі життєздатної програмної системи сімейства (UML - модель); узагальнених сценаріїв функціону- вання ПС; моделей простежування змін для основних сценаріїв функціонування ПС; показників життєздатності ПС; метрик та методів оцінки показни- ків життєздатності ПС. Розробка здійснюється на основі моделі прийняття рішень щодо відповід- ності моделі системи моделі життєздат- ності. Висновки Досліджено технологічні аспекти підходу до створення життєздатних прог- рамних систем на основі інтегрованої мо- делі забезпечення життєздатності доменів та застосувань. Підхід базується та доповнює метод генеруючого програмування, який в даний час є ключовим у реалізації одного із основних принципів програмної інженерії, а саме забезпечення її розвитку в напрямку індустріалізації створення сімейства ПС і який нині розробляється в Інституті програмних систем НАН України. 1. Разумовський О.С., Хазов М.Ю. Проблема жизнеспособности систем // Гуманитарные науки в Сибири. – 1998. – № 1. – С. 3 – 7. 2. Miller J.G. Living Systems. Niwot, Colorado: University Press of Colorado, 1995. – 1102 p. 3. Бир С. Мозг фирмы. – М.: Радио и связь, 1993. – 218 с. 4. Эшби У.Р. Введение в кибернетику. – М.: Наука, 1975. – 427 с. 5. Herring C. Viable software. The intelligent control paradigm for adaptable and adaptive architecture. – 2002. – 343 p. http://charles- herring.com/public/Viable Software.pdf 6. Ігнатенко П.П., Неумоїн В.М., Бистров В.М. Про забезпечення ефективного реінжинірингу прикладних програмних систем // Проблеми програмування. – 2001. – № 1-2. – С. 42–52. 7. Підхід до забезпечення реінжинірингу об’єктно-орієнтованих програмних систем / П.П. Ігнатенко, В.М. Бистров, І.О. Заєць, О.П. Ігнатенко // Там же. – 2002. – № 1-2. – С. 98–108. 8. Ігнатенко П.П., Стрєлов І.А., Ткаченко В.М., Дуднік Р.О. Концепція створення моделі прикладної програмної системи з розвинутою функцією життєзда- тності // Проблеми програмування. – 2004. – № 2-3. – С. 163–172. 9. Ігнатенко П.П., Бистров В.М., Ігнатенко О.П., Ткаченко В.М. Задачі та засоби моделювання і оцінювання життєздатних програмних систем // Проблеми програмування. – 2003. – № 3. – С. 59– 70. 10. Ігнатенко П.П. Проблеми забезпечення життєздатності програмних систем та підходи до їх вирішення // Проблеми програмування. – 2002. – № 3-4. – С. 58–73. 11. Игнатенко П.П., Ткаченко В.Н., Стрелов И.А., Дудник Р.А. Подход к моделированию и проектированию CRM- систем // УСиМ. – 2005. – № 2. – С. 57 – 65. 12. Ігнатенко П.П. Життєздатні програмні системи. Концептуалізація підходу до автоматизації систем організаційного керування // Проблеми програмування. – 2006. – № 3. – С. 33–44. 13. Лаврищева К.М. Методы програм- мирования, теория, инженерия, практика // К.: Наук. думка, 2006. – 451 с. 14. Ігнатенко П.П., Бистров В.М. Особливості забезпечення життєздатності програмних систем в умовах генеруючого програмування // Проблеми програмування – 2008. – № 2-3. – С. 270–278. 31 http://charles-herring.com/public/Viable http://charles-herring.com/public/Viable Моделі та процеси життєвого циклу програмного забезпечення 15. Software Reengineering // Ed. Roberts, S. Amold // IEEE Comp. Soc. Press. – 1994. – 676 р. 16. Чернецки К., Айзенекер У. Порождающее программирование // Методы, инструменты, применение. – М., С-Пет., Изд. дом «Питер», 2005. – 730 с. 17. Месарович М., Мако Д., Такахара И. Теория иерархических многоуров-невых систем. – М.: Мир, 1973. – 344 с. 18. Неумоїн В.М., Ігнатенко П.П. Аспекты адаптивности программных систем // Пр. Першої міжнар. наук.-практ. конф. УкрПРОГ”98. – К.: Ін-т кібернетики ім. В.М. Глушкова НАН України, 1998. – С. 542–546. 19. Ігнатенко П.П., Неумоїн В.М., Бистров В.М. Аспекти реінжинірингу програмних систем // Проблеми програмування. – 2000. – № 1-2. – С. 367–375. 20. Ткаченко В.М. Методика оцінювання деяких характеристик якості прикладних програмних систем // Проблеми програмування. – 2006. – № 4. – С. 16–27. 21. Стрєлов І.А., Ігнатенко П.П. Підхід до оцінювання економічних характеристик проектних рішень при розробці, модифікації та реінжинірингу програмних систем // Проблеми програмування. – 2004. – № 1. – С. 38–51. 22. Стрєлов І.А., Ігнатенко П.П. Підхід до прогнозування основних характеристик економічної ефективності ППС // Проблеми програмування. – 2007. – № 4. – С. 13–20 23. CSE, 1999 – Center for Software Engineering, " COCOMO II Reference Manual," Computer Science Department, USC Center for Software Engineering, 1999. – 86 p. 24. COSMIC, 2003 – The Common Software Measurement International Consortium, The COSMIC FFP Measu-rement Manual. Version 2.2. – 81p. // www.cos-micon.com. 25. Стрєлов І.А., Ігнатенко П.П. Ідентифі- кація та відображення функціональних елементів FPA – методу в UML – моделі створюваної системи для оцінювання її економічних характеристик // Проблеми програмування. – 2005. – № 3. – С. 67–76. 26. Aspect-oriented Domain-specific mo-delling: A Generative Approach, using a Metaweawer framework. – 2004. Отримано 03.03. 2010 Про авторів: Ігнатенко Петро Петрович, кандидат технічних наук, завідувач відділу, Бистров Віктор Михайлович, кандидат фізико-математичних наук, старший науковий співробітник. Місце роботи авторів: Інститут програмних систем НАН України, 03187, Київ - 187, Проспект Академіка Глушкова, 40. Тел.: 526 6025. e-mail: o.ignatenko@gmail.com 32 http://www.cos-micon.com/ mailto:o.ignatenko@gmail.com Вступ 2. Створення інтегрованої моделі життєздатності членів сімейства ПС 3. Характеристики життєздатності членів сімейства ПС та їх оцінювання 4. Моделювання та забезпечення життєздатності створюваних членів сімейства ПС Висновки
id pp_isofts_kiev_ua-article-968
institution Problems in programming
keywords_txt_mv keywords
language Ukrainian
last_indexed 2026-06-02T01:02:04Z
publishDate 2026
publisher PROBLEMS IN PROGRAMMING
record_format ojs
resource_txt_mv ppisoftskievua/6a/2010edc727df8fde372f15f2863a286a.pdf
spelling pp_isofts_kiev_ua-article-9682026-06-01T21:28:34Z Technological aspects of viable software development using generative programming Технологические аспекты жизнеспособных программных систем в условиях генерирующего программирования Технологічні аспекти створення життєздатних програмних систем в умовах генеруючого програмування Ignatenko, P.P. Bystrov, V.M. UDC 681.3 УДК 681.3 УДК 681.3 In this work we consider an approach to soft-ware systems development using viable model. New results towcads generative programming technology are presented.Problems in programming 2010; 4: 21-32 Рассматривается дальнейшее развитие подхода авторов к созданию программных систем с использованием модели жизнеспособности. Развитие осуществлено в направлении технологизации их подхода в условиях генерирующего программирования.Problems in programming 2010; 4: 21-32 Розглядається подальший розвиток підходу авторів до створення програмних систем з використанням моделі життєздатності. Розвиток здійснено в напрямку технологізації їх підходу в умовах генеруючого програмування.Problems in programming 2010; 4: 21-32 PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2026-06-01 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/968 PROBLEMS IN PROGRAMMING; No 4 (2010); 21-32 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2010); 21-32 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2010); 21-32 1727-4907 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/968/1036 Copyright (c) 2026 PROBLEMS IN PROGRAMMING
spellingShingle
UDC 681.3
Ignatenko, P.P.
Bystrov, V.M.
Technological aspects of viable software development using generative programming
title Technological aspects of viable software development using generative programming
title_alt Технологические аспекты жизнеспособных программных систем в условиях генерирующего программирования
Технологічні аспекти створення життєздатних програмних систем в умовах генеруючого програмування
title_full Technological aspects of viable software development using generative programming
title_fullStr Technological aspects of viable software development using generative programming
title_full_unstemmed Technological aspects of viable software development using generative programming
title_short Technological aspects of viable software development using generative programming
title_sort technological aspects of viable software development using generative programming
topic
UDC 681.3
topic_facet
UDC 681.3

УДК 681.3

УДК 681.3
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/968
work_keys_str_mv AT ignatenkopp technologicalaspectsofviablesoftwaredevelopmentusinggenerativeprogramming
AT bystrovvm technologicalaspectsofviablesoftwaredevelopmentusinggenerativeprogramming
AT ignatenkopp tehnologičeskieaspektyžiznesposobnyhprogrammnyhsistemvusloviâhgeneriruûŝegoprogrammirovaniâ
AT bystrovvm tehnologičeskieaspektyžiznesposobnyhprogrammnyhsistemvusloviâhgeneriruûŝegoprogrammirovaniâ
AT ignatenkopp tehnologíčníaspektistvorennâžittêzdatnihprogramnihsistemvumovahgeneruûčogoprogramuvannâ
AT bystrovvm tehnologíčníaspektistvorennâžittêzdatnihprogramnihsistemvumovahgeneruûčogoprogramuvannâ