Ефективність застосування онтологічних моделей для побудови програмних систем
У статті наведено результати аналізу ефективності застосування онтологічного моделювання для побудови програмних систем. Задачу аналізу ефективності розглянуто в контексті підвищення якості програмного продукту на всіх етапах його життєвого циклу. Запропоновано метрики для вимірювання ступеня підвищ...
Збережено в:
| Опубліковано в: : | Математичні машини і системи |
|---|---|
| Дата: | 2013 |
| Автор: | |
| Формат: | Стаття |
| Мова: | Ukrainian |
| Опубліковано: |
Інститут проблем математичних машин і систем НАН України
2013
|
| Теми: | |
| Онлайн доступ: | https://nasplib.isofts.kiev.ua/handle/123456789/83798 |
| Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Цитувати: | Ефективність застосування онтологічних моделей для побудови програмних систем / Є.В. Буров // Мат. машини і системи. — 2013. — № 1. — С. 44-55. — Бібліогр.: 15 назв. — укр. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraine| id |
nasplib_isofts_kiev_ua-123456789-83798 |
|---|---|
| record_format |
dspace |
| spelling |
Буров, Є.В. 2015-06-24T06:39:06Z 2015-06-24T06:39:06Z 2013 Ефективність застосування онтологічних моделей для побудови програмних систем / Є.В. Буров // Мат. машини і системи. — 2013. — № 1. — С. 44-55. — Бібліогр.: 15 назв. — укр. 1028-9763 https://nasplib.isofts.kiev.ua/handle/123456789/83798 004.89 У статті наведено результати аналізу ефективності застосування онтологічного моделювання для побудови програмних систем. Задачу аналізу ефективності розглянуто в контексті підвищення якості програмного продукту на всіх етапах його життєвого циклу. Запропоновано метрики для вимірювання ступеня підвищення якості для різних джерел та етапів життєвого циклу програмного продукту. В статье приведены результаты анализа эффективности использования онтологического моделирования для построения программных систем. Задача анализа эффективности рассмотрена в контексте повышения качества программного продукта на всех этапах его жизненного цикла. Предложены метрики для измерения степени повышения качества для разных источников и этапов жизненного цикла продукта. The results of effectiveness analysis of ontology models usage for software systems design are presented. The effectiveness is considered as software quality increase due to ontological models usage on all parts of its life-cycle. Metrics for measuring software quality increase for different sources and stages of life-cycle of software product are suggested. uk Інститут проблем математичних машин і систем НАН України Математичні машини і системи Обчислювальні системи Ефективність застосування онтологічних моделей для побудови програмних систем Эффективность применения онтологических моделей для построения программных систем The effectiveness of ontological models usage for software systems design Article published earlier |
| institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| collection |
DSpace DC |
| title |
Ефективність застосування онтологічних моделей для побудови програмних систем |
| spellingShingle |
Ефективність застосування онтологічних моделей для побудови програмних систем Буров, Є.В. Обчислювальні системи |
| title_short |
Ефективність застосування онтологічних моделей для побудови програмних систем |
| title_full |
Ефективність застосування онтологічних моделей для побудови програмних систем |
| title_fullStr |
Ефективність застосування онтологічних моделей для побудови програмних систем |
| title_full_unstemmed |
Ефективність застосування онтологічних моделей для побудови програмних систем |
| title_sort |
ефективність застосування онтологічних моделей для побудови програмних систем |
| author |
Буров, Є.В. |
| author_facet |
Буров, Є.В. |
| topic |
Обчислювальні системи |
| topic_facet |
Обчислювальні системи |
| publishDate |
2013 |
| language |
Ukrainian |
| container_title |
Математичні машини і системи |
| publisher |
Інститут проблем математичних машин і систем НАН України |
| format |
Article |
| title_alt |
Эффективность применения онтологических моделей для построения программных систем The effectiveness of ontological models usage for software systems design |
| description |
У статті наведено результати аналізу ефективності застосування онтологічного моделювання для побудови програмних систем. Задачу аналізу ефективності розглянуто в контексті підвищення якості програмного продукту на всіх етапах його життєвого циклу. Запропоновано метрики для вимірювання ступеня підвищення якості для різних джерел та етапів життєвого циклу програмного продукту.
В статье приведены результаты анализа эффективности использования онтологического моделирования для построения программных систем. Задача анализа эффективности рассмотрена в контексте повышения качества программного продукта на всех этапах его жизненного цикла. Предложены метрики для измерения степени повышения качества для разных источников и этапов жизненного цикла продукта.
The results of effectiveness analysis of ontology models usage for software systems design are presented. The effectiveness is considered as software quality increase due to ontological models usage on all parts of its life-cycle. Metrics for measuring software quality increase for different sources and stages of life-cycle of software product are suggested.
|
| issn |
1028-9763 |
| url |
https://nasplib.isofts.kiev.ua/handle/123456789/83798 |
| citation_txt |
Ефективність застосування онтологічних моделей для побудови програмних систем / Є.В. Буров // Мат. машини і системи. — 2013. — № 1. — С. 44-55. — Бібліогр.: 15 назв. — укр. |
| work_keys_str_mv |
AT burovêv efektivnístʹzastosuvannâontologíčnihmodeleidlâpobudoviprogramnihsistem AT burovêv éffektivnostʹprimeneniâontologičeskihmodeleidlâpostroeniâprogrammnyhsistem AT burovêv theeffectivenessofontologicalmodelsusageforsoftwaresystemsdesign |
| first_indexed |
2025-11-26T06:08:36Z |
| last_indexed |
2025-11-26T06:08:36Z |
| _version_ |
1850614854431277056 |
| fulltext |
44 © Буров Є.В., 2013
ISSN 1028-9763. Математичні машини і системи, 2013, № 1
УДК 004.89
Є.В. БУРОВ
ЕФЕКТИВНІСТЬ ЗАСТОСУВАННЯ ОНТОЛОГІЧНИХ МОДЕЛЕЙ ДЛЯ
ПОБУДОВИ ПРОГРАМНИХ СИСТЕМ
Анотація. У статті наведено результати аналізу ефективності застосування онтологічного
моделювання для побудови програмних систем. Задачу аналізу ефективності розглянуто в
контексті підвищення якості програмного продукту на всіх етапах його життєвого циклу. За-
пропоновано метрики для вимірювання ступеня підвищення якості для різних джерел та етапів
життєвого циклу програмного продукту.
Ключові слова: онтологічна модель, програмна система, онтологія, якість програмного продукту.
Аннотация. В статье приведены результаты анализа эффективности использования онтологи-
ческого моделирования для построения программных систем. Задача анализа эффективности
рассмотрена в контексте повышения качества программного продукта на всех этапах его жиз-
ненного цикла. Предложены метрики для измерения степени повышения качества для разных ис-
точников и этапов жизненного цикла продукта.
Ключевые слова: онтология, онтологическая модель, программная система, качество программ-
ного продукта.
Abstract. The results of effectiveness analysis of ontology models usage for software systems design are
presented. The effectiveness is considered as software quality increase due to ontological models usage on
all parts of its life-cycle. Metrics for measuring software quality increase for different sources and stages
of life-cycle of software product are suggested.
Keywords: ontology model, software system, ontology, software product quality.
1. Вступ та загальна характеристика проблеми
Збільшення ступеня інтеграції бізнес-процесів підприємств, розвиток інформаційних
технологій та глобалізація світової економіки приводять до збільшення темпів змін бізнес-
середовища і, як наслідок, необхідності постійної адаптації програмних систем до
змінного середовища їх функціонування.
Традиційні методи проектування та архітектурні принципи побудови програмних
систем орієнтовані на створення програмного продукту на основі фіксованого набору ви-
мог, що призводить до створення систем, які погано реагують на зміну вимог та зовнішніх
чинників, які дорогі у підтримці та експлуатації і в яких нерідко трапляються збої та аварії
[1]. Врахування змінених вимог, як правило, призводить до необхідності випуску нової
версії програмного продукту, що передбачає виконання тривалих та ресурсоємних етапів
аналізу, дизайну, кодування, тестування та впровадження нової версії продукту.
Адаптація програмної системи до змін бізнес-середовища вимагає врахування знань
експертів відповідних предметних областей. Як правило, такі експерти не являються
спеціалістами у галузі програмування. Звідси виникає необхідність чіткого формулювання
вимог експертами для розробників системи. Помилки та непорозуміння у керуванні вимо-
гами до системи під час її концептуалізації становлять значну частину серед причин не-
вдач у розробці програмних продуктів [2].
Одним із шляхів вирішення зазначеної проблеми є відокремлення логіки
функціонування програмної системи від механізму її опрацювання та реалізації. При цьо-
му логіка функціонування подається у вигляді певної формальної моделі.
Одним із способів реалізації такого підходу є MDD/MDA (Model – driven de-
sign/model-driven architecture), започаткований у роботах Шлаера (Shlaer) та розвинений
Меллором (Mellor) [3], зокрема, як xUML-технологія створення програмних систем. Ця
ISSN 1028-9763. Математичні машини і системи, 2013, № 1 45
технологія полягає у формалізації програми у вигляді моделей та наступної їх компіляції у
код. Багаторічне використання цього підходу, крім переваг, виявило і його суттєві
недоліки, зокрема, складність створення та модифікації комплексу моделей, яка є
порівняною зі складністю створення системи традиційним шляхом.
Альтернативним способом реалізації MDD є використання онтологій для побудови
програмних систем. За визначенням Грубера [4], онтологія є формальною моделлю
концептуалізації предметної області. Така модель містить визначення сутностей
предметної області та залежностей між ними. Методи онтологічного інжинірингу на
сьогодні широко застосовуються для вирішення задач змістовного пошуку інформації, ре-
ферування документів, підтримки прийняття рішень [5].
Використання онтологій для побудови програмних систем приводить до уникнення
повторної концептуалізації предметної області, що дозволяє скоротити використання
ресурсів на етапі аналізу та дизайну системи, зменшує кількість помилок концептуалізації.
Перепоною до використання онтології при побудові програмних систем є їх значна
складність, декларативний характер онтологій, відсутність подання в них процедурних
знань. Подолати зазначені проблеми та обмеження доцільно шляхом побудови та викори-
стання виконувальних онтологічних моделей багаторазового використання. Така модель є
фрагментом загальної онтології і містить елементи онтології, релевантні для вирішення
конкретної задачі, доповнені формальним описом операцій та логіки вирішення цієї задачі.
В [6] був запропонований підхід до побудови програмних систем з використанням
інтерпретованих онтологічних моделей, подані архітектура та порядок роботи системи
моделювання. При цьому невирішеною залишилася задача аналізу ефективності застосу-
вання онтологічного підходу для побудови програмних систем, виявлення джерел
ефективності та розроблення відповідних метрик.
Метою цієї роботи є аналіз ефективності застосування онтологічних моделей для
побудови програмних систем.
2. Подання знань, структура та порядок роботи системи моделювання з використан-
ням онтологічних моделей
Значна частина розробок у галузі представлення знань у системах штучного інтелекту зо-
середилася на вивченні представлення декларативних знань. Розроблені математичні
формалізми для подання декларативних знань, зокрема, Description Logic, яка
використовується для подання декларативної складової з використанням семантики, що
базується на логіці першого порядку. З використанням цих формалізмів було розроблено
ряд фреймових систем, зокрема, KL-ONE [7].
Декларативні системи подання знань покладені в основу сучасних напрямів розроб-
ки семантичного веб, семантичних веб-сервісів та інших семантично-орієнтованих
технологій [8].
Перевагами декларативних систем подання знань є можливість створення цілісної
формальної моделі предметної області, досягнення однозначного трактування концептів
предметної області у різних задачах, ідентифікація та формальне представлення простих
залежностей між концептами. Водночас декларативні системи подання знань та пов’язані з
ними механізми логічного виводу мають і ряд суттєвих недоліків, зокрема, велику
складність самої онтології та пов’язані з цим значні витрати на створення та супровід дек-
ларативних онтологічних систем, процедурна складова у мережевих моделях має друго-
рядне значення та досить спрощена, вони непридатні до подання знань, орієнтованих на
вирішення конкретних задач, у них відсутнє подання мети, вони непристосовані до подан-
ня та використання процедурних абстракцій.
Декларативний підхід до представлення та використання знань значно відрізняється
і від розуміння когнітивного процесу людини у когнітивній психології, поданого теорією
46 ISSN 1028-9763. Математичні машини і системи, 2013, № 1
Рис. 1. Структура системи моделювання
схем [9]. Згідно з цією теорією, прийняття рішення людиною здійснюється шляхом пошу-
ку, активації та використання певної достатньо простої схеми. Схеми можуть містити інші
схеми та бути пов’язані між собою різноманітними типами зв’язків. Прийняття рішення
завжди здійснюється у певному контексті, який визначається множиною активованих у
даний момент схем та метою вирішення задачі.
Декларативні знання відображають концепти та залежності між ними. Вони моде-
люють відношення загальне-детальне, реалізують наслідування, дозволяють групувати
концепти. Водночас вони не дозволяють указати, як вирішити конкретну задачу, як досяг-
нути вказаної мети, які проміжні задачі потрібно вирішити та які цілі досягнути. Значна
частина знань людства – це знання про способи вирішення задач та досягнення цілей, а
також знання, що містяться у шаблонах, стереотипах, архетипах. Для створення
інтелектуальних систем необхідно формально подавати такі знання та опрацьовувати їх
машинно.
Для відображення процедурних знань було запропоновано [6] використати
онтологічні моделі, що відображають сутності, відношення та обмеження онтології в
контексті конкретної задачі та доповнені операціями над цими елементами.
Система моделювання, що реалізує запропонований підхід, складається з таких
компонент (рис. 1). База фактів містить факти про об'єкти та події зовнішнього світу,
необхідні для вирішення задач системою. Всі факти семантично інтерпретовані, тобто
подані як об'єкти певних класів, визначених онтологією. Інформація в базі фактів впоряд-
кована за часом та змінами, що дозволяє відслідкувати стан бази на довільний момент часу
або на довільну зміну. База фактів, онтологія та моделі у сукупності утворюють базу знань
системи.
Онтологія містить модель предметної області, подану як таксономія класів. Це
створює можливість однозначного трактування усіх об'єктів з бази фактів, визначення
єдиної структури слотів та типів властивостей для них. Крім того, онтологія містить
відношення, правила та обмеження, які мають загальний, системний характер.
Моделі визначають, які задачі вирішуються в кожний момент у системі і як вони
вирішуються. Посилання на моделі використовуються в онтологіях для зберігання склад-
них правил та обмежень, зокрема, динамічних обмежень, значення яких залежить від стану
бази знань або зовнішнього світу.
ISSN 1028-9763. Математичні машини і системи, 2013, № 1 47
Система реагує на визначене коло подій зовнішнього світу та опрацьовує їх, ство-
рюючи нові або модифікуючи існуючі факти. Для опрацювання цих подій використову-
ються відповідні моделі. Важливими компонентами системи є сервіси системи моделю-
вання, які забезпечують виконання моделей, їх взаємодію, пошук потрібної інформації у
зовнішніх джерелах. Так, Менеджер виконання моделей реалізує запуск або зупинку моде-
лей, відслідковує використання ресурсів моделей. Брокер взаємодії моделей реалізує по-
шук релевантних моделей для вирішення задач, ініціалізує та запускає обрані моделі. Про-
вайдер інформаційних послуг за запитом моделі системи звертається до зовнішніх джерел,
реалізує пошук необхідних даних та їх семантичну інтерпретацію. Такими зовнішніми
джерелами є, наприклад, бази даних, документи, веб-сервіси та ін.
Моделі виконують операції відповідно до відображеної в них логіки, звертаючись з
запитами до зовнішніх відносно системи моделювання сервісів. Такими сервісами є
сервіси операційної системи, сервіси інформаційної системи підприємства, побудованої з
дотриманням вимог SOA [10], або довільні веб-сервіси.
3. Аналіз ефективності застосування онтологічних моделей для покращання якості
програмних систем
Використання онтологічних моделей впливає на різні аспекти та етапи процесу створення
й експлуатації програмних систем. Задачу аналізу ефективності будемо розглядати як за-
дачу оцінки ступеня підвищення якості програмного забезпечення в результаті викори-
стання онтологічних моделей на всіх етапах його життєвого циклу.
3.1. Підходи до визначення та вимірювання якості програмної системи
Якість програмного забезпечення є комплексним поняттям, яке відображає різні аспекти
процесів його створення та експлуатації. В літературі відображено такі визначення цього
терміна.
• «Якість програмного забезпечення – це сукупність властивостей, які визначають
корисність програми для користувачів у відповідності з функціональним призначенням та
сформульованими вимогами» [11].
• «Увесь обсяг ознак та характеристик продукту або послуги, що стосується їх
можливості задовольняти визначеним або передбачуваним потребам» [12].
Таким чином, якість формулюється через корисність та відповідність явним вимо-
гам або неявним очікуванням.
Існуючі методології вимірювання якості програмного забезпечення, сформульовані
у стандартах [11, 13], розглядають якість програмного продукту на різних етапах його
життєвого циклу за посередництвом моделей якості. Такі моделі [11] використовуються
для визначення критеріїв якості для різних типів програмних продуктів і різних предмет-
них областей їх використання.
ISO 9126 розрізняє внутрішні, зовнішні параметри якості, а також якість на етапі
використання. Параметри якості, які вимірюють на етапі розробки, називають внутрішніми
(internal), параметри, які вимірюють на етапі тестування, – зовнішніми (external), а якість
програмного продукту для кінцевого користувача відображена у параметрах етапу викори-
стання (рис. 2).
48 ISSN 1028-9763. Математичні машини і системи, 2013, № 1
Рис. 2. Модель якості програмного продукту стандарту ISO 9126
Стандарт ISO/IEC 25010 [13] розширює модель стандарту ISO 9126 у контексті се-
редовища, в якому функціонує програмний продукт, розглядаючи поняття якості
програмної системи. Він вводить також поняття якості даних.
Кожен із стандартів якості будує таксономію характеристик якості. ISO 9126
визначає для внутрішньої та зовнішньої якості шість характеристик якості, у свою чергу,
поділених на підхарактеристики.
Стандарт ISO 9126 визначає такі головні характеристики якості, як
функціональність (відповідність вимогам, точність, інтероперабельність, безпека),
надійність (зрілість, стійкість до відмов, поновлюваність), зручність у використанні
(легкість розуміння та освоєння, зручність в експлуатації, естетичність), ефективність
(часові аспекти, використання ресурсів), супровід (придатність до аналізу, зручність впро-
вадження змін, стабільність, придатність до тестування), переносимість (зручність
адаптації, придатність до інсталяції, здатність співіснувати з іншими продуктами,
можливість заміни).
Стандарт ГОСТ 28195-89 [14] визначає такі характеристики якості програмного за-
безпечення, як надійність (працездатність та стабільність), супровід (структурність, про-
стота, наочність, повторюваність), зручність використання (легкість освоєння, зручність
експлуатації, наявність документації), ефективність (рівень автоматизації, використання
ресурсів, часові параметри), універсальність (гнучкість, мобільність, придатність до
модифікації), коректність (повнота, узгодженість, логічна коректність).
Як видно з порівняння стандартів ISO/IEC 9126-1 та ГОСТ 28195-89, характеристи-
ки якості у значній мірі співпадають. Водночас у стандарті ISO/IEC 9126-1 відсутні такі
важливі характеристики, як структурність, простота конструкції, рівень автоматизації,
перевіреність.
Для визначення ефективності застосування онтологічних моделей для побудови
програмних систем необхідно визначити джерела ефективності та проаналізувати характе-
ристики якості, на які впливає використання онтологічних моделей, розробити метрики
для вимірювання ступеня покращання якості.
Розглянемо можливі джерела ефективності застосування онтологічних моделей для
побудови програмних систем для різних етапів життєвого циклу програмного продукту.
3.2. Повторне використання знань на етапі передпроектного аналізу та розробки
архітектури
Вагомим джерелом збільшення якості програмного забезпечення, побудованого з викори-
станням онтологічних моделей, є повторне використання концептів, знань, структур даних.
При цьому повторне використання має місце на різних етапах життєвого циклу програм-
ного продукту.
На етапі концептуалізації розробник програмного продукту вирішує задачу побудо-
ви концептуалізації предметної області в контексті задач, які повинен вирішувати про-
грамний продукт. Розробник виділяє у предметній області необхідні сутності, визначає їх
ISSN 1028-9763. Математичні машини і системи, 2013, № 1 49
атрибути та обмеження, залежності між ними. Помилки, допущені на етапі
концептуалізації вважають найбільш вагомими, і виправлення їх нерідко вимагає перероб-
лення всьго програмного продукту [2]. Різні програмні продукти часто вимагають
концептуалізації одних і тих самих об’єктів реального світу. При цьому великий обсяг
робіт з первинної концептуалізації та аналізу предметної області фактично дублюється.
При використанні онтологічного підходу розробник використовує наявну
концептуалізацію предметної області, відображену в онтології. Якщо онтологія неповна,
він доповнює її новими елементами, які в подальшому можуть бути використані іншими
розробниками.
Прикладами концептів, які використовуються різними програмними продуктами та
багатократно концептуалізуються у процесі створення програмного забезпечення, є кон-
цепти особи, організації, користувача, інформаційного ресурсу та ін.
Уникнення повторної концептуалізації безпосередньо впливає на такі характери-
стики якості, як відповідність вимогам, точність, інтероперабельність, зрілість, викори-
стання ресурсів на етапі проектування, переносимість та можливість співіснування з
іншими продуктами. Використання готової концептуалізації у вигляді онтології
предметної області спрощує процес початкової концептуалізації при створенні програмно-
го продукту, дозволяє уникнути помилок концептуалізації.
Для різних програмних продуктів, що використовують спільну концептуалізацію,
простіше організувати взаємодію. За рахунок багатократного використання онтології у
різних, реально функціонуючих, програмних продуктах досягається високий ступінь
зрілості концептуалізації, а також стабільності та надійності, що досягається шляхом бага-
тократного та різностороннього тестування, яке проходить онтологія під час створення та
експлуатації продуктів на її базі.
Метрику, що вимірює ступінь повторного використання концептуалізації, визначи-
мо як відношення кількості доданих сутностей в онтологію ( )en newN − до кількості вже
існуючих в онтології сутностей, використаних при побудові даного продукту ( )en oldN − .
en new
ent re
en old
NC N
−
−
−
= . (1)
Метрика (1) розглядає тільки сутності онтології і є досить наближеною. Враховую-
чи те, що при створенні нового продукту до онтології додають (або модифікують) не
тільки сутності, але й відношення, обмеження, правила, точнішою буде метрика, що
враховує усі додані або змінені елементи онтології:
det
el new
en
el old
NC N
−
−
−
= ,
де el newN − – кількість доданих (або змінених) елементів онтології;
el oldN − – кількість використаних (та не змінених) елементів онтології.
Продукти, що базуються на спільній концептуалізації, мають кращу
інтероперабельність за рахунок уникнення помилок, пов’язаних з різним поданням
предметної області в них.
Подамо метрику int ( , )C A B для оцінки погіршення інтероперабельності, яке виникає
через відмінності концептуалізації, для двох продуктів A та B :
int ( , )
A B
diff diff
AB
comm
N N
C A B
N
+
= ,
де A
diffN – кількість відмінних елементів в онтології продукту A порівняно з продуктом B ;
50 ISSN 1028-9763. Математичні машини і системи, 2013, № 1
B
diffN – кількість відмінних елементів в онтології продукту B порівняно з продуктом A;
AB
commN – кількість спільних елементів онтології, які використовують продукти A та B.
3.3. Повторне використання структур даних та коду на етапі дизайну та кодування
Використання єдиної онтології на етапі дизайну та кодування дозволяє розширити ступінь
повторного використання коду, поданого онтологічними моделями. Моделі, що базуються
на спільній онтології, є сумісними і можуть використовуватися разом.
Якщо порівнювати підхід, який базується на онтологічних моделях з об’єктно-
орієнтованим програмуванням (ООП), то кожен клас ООП має декларативну частину, по-
дану оголошенням змінних, та процедурну частину, подану спеціфікацією методів. При
використанні онтологічних моделей всі моделі (які є аналогами методів) мають спільну
декларативну частину, подану онтологією.
При використанні об’єктно-орієнтованого програмування переносимість обмежена
повторним використанням груп взаємозалежних класів [15]. При цьому методи класу не є
переносимими і можуть використовуватися тільки з екземплярами даного класу.
Використання онтологій для побудови програмної системи дозволяє уникнути бага-
тократного декларування об’єктів у різних класах, підвищити переносимість коду, змен-
шити використання ресурсів на стадії кодування за рахунок повторного використання ко-
ду. Характеристики якості, що покращуються при цьому, переносимість, зменшення вико-
ристання ресурсів у процесі проектування.
Запропонуємо такі метрики для вимірювання переносимості коду.
1. Частина програмних конструкцій (класів, моделей, сервісів) у наявних
бібліотеках коду, які можна використовувати без змін:
1
portable
port code
all
N
C
N− = ,
де
portable
N – кількість програмних конструкцій, які переносяться без змін;
all
N – загальна кількість конструкцій.
Зауважимо, що у випадку використання онтологічних моделей 1 1port codeC − = .
2. Кількість додаткових програмних конструкцій (класів, бібліотек), які необхідно
долучити до коду продукту при використанні конкретного класу (моделі) – port addC − .
3.4. Ефективність використання онтологічних моделей на етапі тестування
На етапі тестування програмного продукту використання онтологічних моделей призво-
дить до зменшення обсягів тестування. При цьому тестуванню підлягають розроблені або
модифіковані моделі, а не продукт загалом.
При традиційному підході до тестування програмних продуктів їх тестують, вихо-
дячи з варіантів використання (use-cases). Для кожного такого варіанта визначають набір
тестових сценаріїв. Якщо програмний продукт змінено, то важко визначити залежності
між змінами у коді та сценаріями використання системи. Тому перетестовують усі сценарії
використання або їх значну частину.
У випадку побудови програмного продукту на базі онтологічних моделей моделі,
що додані до продукту без змін, у них можна не тестувати.
Ще одним джерелом спрощення процесу тестування є те, що моделі описують
спосіб вирішення певної задачі і, як такі, часто відповідають певному сценарію викори-
ISSN 1028-9763. Математичні машини і системи, 2013, № 1 51
стання системи. При цьому об’єктом тестування стають моделі, зменшуються кількість
сценаріїв тестування та витрати часу на створення сценаріїв тестування.
Виміряти ступінь зменшення трудомісткості проведення тестування можна на
прикладі програмного продукту, перенесеного на нову онтологічну платформу. При цьому
доступні тестові сценарії як для традиційної архітектури, так і для нової. Метрикою, що
вимірює ступінь зменшення трудомісткості проведення тестування, є відношення кількості
сценаріїв у новій платформі
mod
N до кількості сценаріїв у традиційній платформі
old
N з
урахуванням середньої складності (наприклад, кількості кроків) кожного сценарію
mod
(
av test
C
− −
, )
av test old
C
− −
.
mod modav test
test
old av test old
N C
C
N C
− −
− −
×=
×
.
Важливим додатковим фактором покращання якості програмного продукту, побу-
дованого з використанням онтологій, є те, що моделі, які повторно використовуються у
ньому, попередньо вже пройшли тестування та практично використовуються в інших про-
грамних продуктах, що дозволяє говорити про повторне використання тестування, прове-
деного для інших програмних продуктів, а також припустити зменшення кількості поми-
лок та збільшення ступеня зрілості продукту.
Головні характеристики якості програмного продукту, покращені за умови викори-
стання онтологічних моделей на етапі тестування, – придатність до тестування,
стабільність, зрілість.
3.5. Повторне використання концептів, знань, структур даних та коду на етапах
підтримки й експлуатації програмного продукту
Якість програмного продукту після його завершення та введення в експлуатацію містить
багато аспектів, пов’язаних з такими характеристиками якості програмного забезпечення,
як зручність в експлуатації, придатність до аналізу, зручність впровадження змін,
зручність адаптації, можливість заміни. Ці характеристики загалом відповідають таким
групам характеристик якості, як зручність у використанні (usability) та супроводі (maintai-
nability), переносимість (portability) коду.
У сучасних умовах придатність програмного продукту до швидкої адаптації при
змінах у бізнесовій ситуації та проблемній області є важливою вимогою. У традиційному
підході до побудови та розробки програмного продукту будь-які зміни у вимогах вимага-
ють розробки нової версії програмного продукту, що передбачає виконання етапів аналізу,
проектування архітектури, кодування, тестування та впровадження в експлуатацію. Роз-
робка нової версії продукту займає тривалий час і вимагає значних коштів.
Визначимо метрику складності модифікації програмного продукту традиційним
способом:
m
1 1
n m
i j
old ov ov ch ch
i j
C T K T K−
= =
= × + ×∑ ∑ ,
де n – загальна кількість програмних елементів (класів, функцій), m – кількість програм-
них елементів, які підлягають модифікації, ovK – метрика складності i -того компонента,
ovT – середній час, що витрачається на аналіз, тестування, компоновку з розрахунку на
один програмний компонент, chK – метрика складності компонента, що змінюється, chT –
середній час, що витрачається додатково на аналіз, перекодування та перетестування з
розрахунку на один програмний компонент, що змінюється.
52 ISSN 1028-9763. Математичні машини і системи, 2013, № 1
Водночас зміни у вимогах та предметній області, які спонукають до розробки нової
версії продукту, мають різний характер, що робить доцільним їх окремий аналіз. Розгля-
немо такі варіанти змін.
Заміна методу вирішення задачі або формування нового методу комбінацією
існуючих. Подання предметної області залишається без змін.
Розробка нового методу вирішення задачі або уточнення існуючого.
Уточнення подання предметної області шляхом уведення нових сутностей,
відношень та обмежень. При цьому визначені попередньо елементи предметної області не
змінюються.
Зміна розуміння предметної області, яка відображена у модифікації та заміні попе-
редньо визначеного формального опису цієї області.
У випадку заміни методу вирішення задачі або формування нового методу як
комбінації з існуючих, модифікація коду є тривіальною і проводиться експертом
предметної області в середовищі проектування. Додатковий час при цьому витрачається на
тестування та підготовку даних для нього. Об’єктом зміни виступає модель. Оцінити
складність проведення зміни можна з використанням такої метрики:
( )md m m tC K T T= × + ,
де mK – метрика складності (кількість компонент) моделі, mT – час, що витрачається в се-
редньому на модифікацію, та tT – тестування в розрахунку на один компонент.
Якщо потрібно розробити нову модель або модифікувати існуючу, то, порівняно з
попереднім випадком, збільшуються витрати часу на створення і тестування моделі. При
цьому також об’єктом модифікації й тестування виступає модель, і складність цього про-
цесу, порівняно з модифікацією традиційного коду, є незначною.
У випадку введення нових сутностей, відношень або обмежень в онтологію, при
збереженні існуючих її частин без змін, проектувальник онтології проводить валідацію
запропонованих змін. Він аналізує зміни на предмет відсутності конфліктів з наявними
елементами онтології та обгрунтовує доцільність модифікації онтології. Модифікація
онтології проводиться у редакторі онтологій. Складність проведення модифікації залежить
від кількості нових елементів, доданих до онтології.
mod mod( )md ont add anC K T T− − = × + ,
де mod ont addC − − – метрика складності, modK – кількість доданих до онтології компонент, anT –
час на аналіз та валідацію, modT – час на проведення модифікації у редакторі онтологій з
розрахунку на один компонент.
Причиною зміни існуючих елементів онтології є переосмислення змісту предметної
області, а також виявлення змістовних та логічних помилок в онтології. Зміна існуючих
елементів онтології вимагає змінити та перетестувати усі моделі, які працюють зі
зміненими елементами. Така задача є доволі трудомісткою, адже кількість моделей у
репозиторії моделей є значною. Архітектура та функціональні можливості системи моде-
лювання роблять тривіальною вирішення задачі знаходження усіх моделей, на які вплива-
ють зміни в онтології. Для кожної такої моделі необхідно провести аналіз впливу змін, ви-
значити обсяг необхідних модифікацій, провести зміну моделі та перетестувати змінену
модель.
mod( ) ( )md on rev on on md on an md testC K T K T T T− − − −= × + × + + ,
де mod on revC − − – метрика складності, onK – кількість змінених елементів онтології, onT – час,
що витрачається на модифікацію одного елемента онтології у редакторі онтологій, md onK −
ISSN 1028-9763. Математичні машини і системи, 2013, № 1 53
– кількість моделей, які необхідно змінити, anT – час на аналіз та проектування зміни в
моделі, md modT − – час на проведення зміни, testT – час на тестування.
При цьому задачі проведення змін та тестування проводяться у середовищі проек-
тування і не займають значного часу. Найбільшим є час виконання аналізу та проектуван-
ня змін у моделях.
При порівнянні складності модифікації програмної системи для випадків 1–4 не-
можливо дати точні оцінки метрик складності, не враховуючи особливості конкретних
проектів та колективів розробників. Водночас доцільно ранжувати їх на основі експертних
оцінок. Порівнюючи складності, отримуємо шкалу метрик, в якій складність зростає:
( , , , )md md ont add md ont rev m oldС C C C− − − − − .
У випадку зміни подання онтології ще одним джерелом збільшення якості програм-
них продуктів на основі онтологічних моделей є проактивне виявлення та виправлення
дефектів, які виникають через несвоєчасне врахування у програмному продукті змін у
предметній області. При використанні онтологічних моделей і внесенні зміни в онтологію
переробляють усі залежні від цієї зміни моделі. Таким чином усувають можливі дефекти,
що виникають через неузгодженість предметної області та моделей ще до того, як вони
проявляться як помилки у роботі програм.
При традиційному підході до створення програмних продуктів зміни у предметній
області часто враховують тільки тоді, коли вже виявлені некоректні результати в роботі
програмної системи. При цьому виправлення дефектів, як правило, обмежується конкрет-
ним програмним продуктом. Інші програмні продукти, що залежать від тих самих особли-
востей предметної області, оновлюються окремо, що потребує додаткових затрат ресурсів
на аналіз та модифікацію. У випадку програмних систем, що використовують онтологічні
моделі, усі залежні моделі оновлюють разом.
Таким чином, використання онтологічних моделей для побудови програмних сис-
тем приводить до покращання таких характеристик якості, як коректність, кількість
дефектів, відповідність функціональним вимогам, зручність впровадження змін.
Онтологічні моделі мають невелику кількість елементів та просту структуру. Вони
подаються з використанням концептів предметної області і орієнтовані на специфікацію
методу вирішення конкретної задачі. При виникненні необхідності зміни моделі ця зміна
також формулюється з використанням концептів предметної області. Створення та
модифікація моделі не вимагають знання мов програмування й проведення кодування. Та-
ким чином, до вирішення задач створення та підтримки моделей можна залучити фахівців
з визначених предметних областей.
У традиційному підході до створення програмних систем взаємодія розробника та
фахівця предметної області по виявленню та формалізації вимог до системи є окремим
етапом розробки, на якому є ризик виникнення помилок через неповне або хибне
взаєморозуміння розробника та фахівця предметної області. При використанні
онтологічних моделей фахівець предметної області самостійно створює модель з наявних в
онтології сутностей та залежностей. Таким чином, фактично усунуті можливі причини по-
милок, що виникають через неправильне формулювання вимог до системи.
4. Висновки
Підведемо підсумки аналізу впливу використання онтологічних моделей для побудови
програмних продуктів на характеристики якості програмного продукту (табл. 1).
54 ISSN 1028-9763. Математичні машини і системи, 2013, № 1
Таблиця 1. Джерела підвищення якості програмного продукту з використанням
онтологічних моделей та метрики для оцінки
Назва
етапу
життє-
вого
циклу
Характеристики
якості, покращені
за рахунок
використання
онтологічних
моделей
Джерело покра-
щання
характеристик
якості
Метрики для оцінки ступеня покращання
характеристик якості
Аналіз
вимог
та роз-
робка
архітек-
тури
системи
Відповідність
вимогам, точність,
інтероперабельніс
ть, переносимість,
використання
ресурсів
Ступінь повтор-
ного використан-
ня
концептуалізації
,en new
ent re
en old
NC N
−
−
−
=
det
el new
en
el old
NC N
−
−
−
=
Ступінь зміни
інтероперабель-
ності
int ( , )
A B
diff diff
AB
comm
N N
C A B
N
+
=
Дизайн
та ко-
дування
Переносимість
коду, використан-
ня ресурсів
Відсоток про-
грамних
конструкцій, які
можна використо-
вувати без змін
1
portable
port code
all
N
C
N− =
Кількість додат-
кових програмних
конструкцій
port addC −
Тесту-
вання
Придатність до
тестування,
стабільність,
зрілість
Зменшення
трудомісткості
проведення тесту-
вання
mod modav test
test
old av test old
N C
C
N C
− −
− −
×=
×
Підт-
римка
та екс-
плу-
атація
Зручність у
використанні та
супроводі,
переносимість
Складність
модифікації про-
грамного продук-
ту
Традиційним способом:
m
1 1
n m
i j
old ov ov ch ch
i j
C T K T K−
= =
= × + ×∑ ∑
Якщо змінюється метод вирішення задачі:
( )md m m tC K T T= × +
При введенні нових елементів в онтологію:
mod mod( )md ont add anC K T T− − = × +
Якщо модифікується онтологія:
mod
( )
( )
md on rev on on
md on an md test
C K T
K T T T
− −
− −
= × +
+ × + +
Використання онтологічних моделей для побудови програмних систем дозволяє по-
кращити якісні характеристики на всіх етапах життєвого циклу програмного продукту.
Головним джерелом покращання якісних характеристик при цьому виступає можливість
повторного використання концептуалізації та коду, поданого відповідними моделями. За
рахунок використання єдиної концептуалізації при створенні різних програмних продуктів
зростає ступінь їх інтероперабельності, переносимість коду.
СПИСОК ЛІТЕРАТУРИ
1. Model-driven systems development / L. Balmelli, D. Brown, M. Cantor [et al.] // IBM Systems Journal.
– 2006. – Vol. 45. – P. 569 – 585.
2. Charvat J. Project Management Methodologies / J. Charvat. – Wiley, 2003. – 264 р.
ISSN 1028-9763. Математичні машини і системи, 2013, № 1 55
3. Mellor S.J. Executable UML: A foundation for model-driven architectures / S.J. Mellor, M.J. Balcer. –
Boston: Addison-Wesley, 2002. – 416 р.
4. Gruber T.R. A translation approach to portable ontology specifications / T.R. Gruber // Knowledge
Acquisition. – 1993. – Vol. 5. – P. 199 – 220.
5. Норенков И.П. Интеллектуальные технологии на основе онтологий / И.П. Норенков // Информа-
ционные технологии. – 2010. – № 1. – C. 17 – 23.
6. Буров Є.В. Концептуальне моделювання інтелектуальних програмних систем / Буров Є.В. –
Львів: вид-во Львівської політехніки, 2012. – С. 432.
7. Brachman R.J. An Overview of the KL-ONE Knowledge Representation System / R.J. Brachman,
J.G. Schmolze // Cognitive Science. – 1985. – Vol. 9. – P. 171 – 216.
8. Daconta M.C. The Semantic Web: A Guide to the Future of XML, Web Services and Knowledge Man-
agement / Daconta M.C., Obrst L.J., Smith K.T. – Wiley, 2003. – 312 р.
9. Rumelhart D.E. Schemata: The building blocks of cognition / D.E. Rumelhart // Theoretical Issues in
Reading Comprehension / R.J. Spiro, B.C. Bruce, W.F. Brewer (eds.). – Hillsdale, NJ: Erlbaum, 1980. –
P. 33 – 58.
10. Erl T. SOA Principles of Service Design / Erl T. – Boston: Prentice Hall, 2007. – 608 р.
11. ISO/IEC 9126-1:2001. Software engineering – Product quality – Part 1: Quality model [Електронний
ресурс]. – Режим доступу: http://www.iso.org/iso/catalogue_detail.htm? csnumber= 22749.
12. ISO 8402:1994. Quality management and quality assurance – Vocabulary. [Electronic resource]. –
Режим доступу: http://www.iso.org/iso/catalogue_detail.htm?csnumber=20115.
13. ISO/IEC 25010:2011. Systems and software engineering. – Systems and software Quality Require-
ments and Evaluation (SQuaRE). – System and software quality models [Електронний ресурс]. – Режим
доступу: http://www.iso.org/iso/home/store/catalogue_ics/catalogue _detail_ics.htm?csnumber=35733.
14. ГОСТ 28195-89. Оценка качества программных средств. Общие положения [Електронний ре-
сурс]. – Режим доступу: http://www.gametest.ru/doc/sw/28195_89.pdf.
15. Милютин А. Метрики кода программного обеспечения [Електронний ресурс] / А. Милютин. –
Режим доступу: http://www.viva64.com/ru/a/0045.
Стаття надійшла до редакції 27.09.2012
|