vchilka.in.ua 1

Методи та засоби програмної інженерії


УДК 681.3



Г.І. Коваль


підхід до керування надійністю

та якістю програмних систем



У роботі розглянуто головні задачі інженерії надійності та якості програмних систем (ПС) та визначено місце і роль прогнозування та оцінювання надійності та якості у циклі керування проектом. Встанов­лено взаємозв’язок елементів сучасної парадигми якості. Особлива увага приділена причинно-наслід­ковим зв’язкам і керуванню надійністю та якістю за кількісними показниками. Запропоновано підхід до керування якістю, що ґрунтується на розробленій моделі прийняття рішень з керування.


Вступ

Ключовим чинником забезпечення конкурентоспроможності програмних сис­тем (ПС) є підвищення їх надійності та якості. Це багатогранна проблема, пов’язана з пошуком ефективних рішень як у сфері фундаментальних досліджень програмування, так і за напрямками прик­ладних наукових розробок, зокрема в об­ласті програмної інженерії [1, 2].

До початку 90-років минулого сто­річчя більшість досліджень у проблематиці надійності та якості присвячувалась оці­нюванню та підвищенню їх рівня під час тестування [3 – 7]. У ході досліджень, ви­конуваних у ІПС НАН України у 1992 – 2006 роках за темами [8 – 11], проблема підвищення надійності та якості ПС була представлена множиною самостійних тео­ретичних та практичних задач програмної інженерії, безпосередньо щодо прогнозу­вання, вимірювання, керування досягнен­ням надійності та якості ПС на всіх етапах їх виконання за програмними проектами. Вирішення поставлених задач базувалося на створюваному єдиному понятійному, термінологічному, нормативному та мето­дичному апараті, що склав підґрунтя для нових розділів програмної інженерії – ін­женерії надійності [12] та інженерії якості [13]. На теперішній час цей апарат продо­вжує розвиватися з урахуванням нових па­радигм програмування [14] та підходів до керування надійністю та якістю ПС, зок­рема, процесного підходу [15]. Далі розг­лядаються узагальнені задачі цього під­ходу та шляхи їх вирішення при виконанні програмних проектів.


1. Склад задач інженерії надійності та якості ПС

Проблема забезпечення надійності та якості програм повстала одразу з їх роз­робленням та впровадженням у практичну життєдіяльність суспільства. З того часу дослідниками багатьох країн були розроб­лені моделі надійності та якості, які мали велике теоретичне значення, оскільки сти­мулювали пошук нових методів і підходів до створення програмних засобів (ПЗ) та розвиток технології програмування, але практично застосовувались здебільшого лише при виготовленні штучних зразків ПЗ для критичних систем (у космічній, ме­дичній, військовій галузях, ядерній енерге­тиці тощо).

Широке поширення ЕОМ у всі сфери життєдіяльності і поступове перет­ворення програмування з «мистецтва оди­наків» у програмну індустрію стало по­штовхом для визнання та розвитку про­грамної інженерії – області комп'ютерних наук, що вивчає питання побудови крупно-масштабних програмних систем1 як інжене­рної регламентованої діяльності колективів розробників. Колективне роз­роблення ПС у рамках програмних проек­тів, виконуваних в умовах обмежених тех­нічних, фінансових, часових ресурсів та конкуренції організацій-розробників, обу­мовило застосування інженерного підходу до всіх видів діяльності у проекті, насам­перед щодо керування проектом, ризи­ками, ресурсами.

Інженерний підхід (на відміну від адміністративного) ґрунтується на систе­матичному плануванні, вимірюванні та оцінюванні напрацювань (активів) проекту та коригуванні стану його виконання. Множина моделей та методів забезпечення надійності та якості ПС, розроблених у на­укових і освітніх осередках і представле­них у літературних джерелах, не мали під­ґрунтя для широкого використання, оскі­льки, з одного боку, не враховували бага­тьох чинників середовища розроблення та експлуатації ПС, а з іншого, – не були ме­тодично (процедурно) оформлені для практичного застосування виконавцями проектів, що не мали відповідної фахової підготовки.


Це спричинило здійснення аналізу стану справ у проблематиці надійності та якості ПС, а також програмної інженерії, формулювання специфічних задач керу­вання надійністю та якістю саме з позицій інженерного підходу. Актуальність цього напрямку досліджень підтверджена розви­тком стандартизації у галузі якості, який заохочує організації-розробники ПС до створення систем менеджменту якості на основі інженерного підходу та сертифіка­ції виконуваних процесів.

Інженерія надійності програмних систем включає вирішення наступних задач [12]:


  • розроблення теоретичних ос­нов забезпечення і оцінки надійності ПC на різних стадіях їх розроблення (моделей, методів, методик);

  • формування критеріїв (зок­рема, оптимального моменту часу) випу­ску ПС, а також оптимальних періодів мо­дифікації ПС з урахуван­ням вимог до її надійності;

  • вимірювання досягнутої на­дійності ПС під час її експлуатації та оці­нювання ефективності застосову­ваної методології її розроблення;

  • прогнозування надійності за характеристиками як продукту, так і про­цесу розроблення ПС, а також з урахуван­ням очікуваних сценаріїв використову­вання ПС;

  • встановлення чинників впливу на надійність та метрик на­дійності, а також порядку їх викори­стання при ви­значенні важелів керу­вання надійністю та вдосконалення процесу розроблення;

  • формування вимог і керу­вання вибором архітектури ПС і ме­тодів її проектування з урахуванням цілей надій­ності;

  • розроблення інструментів для збору метричних даних, прогно­зування та оцінювання надійності;

  • формування інструмента­ль­но-методичного підґрунтя для здійс­нення атестації і сертифікації ПС.

Склад цих задач доповнюється спе­цифічними задачами інженерії якості:
  • вибір оптимального складу основних характеристик та кількіс­них по­казників якості ПС, що забез­печує досяг­нення максимального рівня задоволення потреб замовника ПС відповідного класу (наприклад, з ура­хуванням потреб захисту інформації, зруч­ності використання, на­дійності тощо);


  • визначення підходів до моде­лю­вання якості ПС з урахуванням мно­жини характеристик якості, вибір (розроб­лення) відповідного інструментарію (ана­літичні моделі, ієрархічні та мережні гра­фічні моделі);

  • керування досягненням зада­них показників якості в ході виконання прое­кту з дотриманням балансу у трикут­нику «якість – тривалість – вартість» прое­кту;

  • вдосконалення видів діяльно­сті, безпосередньо спрямованих на підви­щення якості ПС (верифікація, тестування тощо).

Серед множини визначених задач безпосередньо керування надійністю сто­суються задачі прогнозування досяжності встановленого цільового значення цієї ха­рактеристики для проекту ПС, її оціню­вання та використання отриманого резуль­тату для вдосконалення процесів життє­вого циклу (ЖЦ) ПС, задіяних на певному етапі проекту.

2. Підхід до вирішення задач керування надійністю у циклі виконання проекту

2.1. Оцінювання надійності ПС за моделями зростання надійності. Хоча з позицій керування надійністю, її оціню­вання наприкінці проекту не є першочер­говою задачею, саме вона була історично «першою» поставленою і вирішуваною за­дачею.

Оцінювання надійності виконується під час випробовувань ПС на надійність після накопичення великої кількості даних про відмови. Дані збираються протягом всього періоду тестування, що дозволяє оцінити зростання надійності статистично з обґрунтованим рівнем довіри.

Існує чимало моделей зростання надійності, огляди та класифікація яких подані, наприклад, у [16 – 18]. У ході дос­ліджень у даній проблематиці вироблено рекомендації щодо застосування множини моделей, а також процедури збирання да­них, калібрування моделей, демонстрацій­ного тестування на надійність, які згодом були покладені в основу методики ІПС НАН України «Проведення випробувань та оцінка надійності програмного забезпе­чення комп’ютерних систем», розробленої в рамках теми [10]. Кілька моделей (зок­рема, Желінськи–Моранди, Шика–Волве­ртона, Гоела–Окумото, Муси) були реалі­зовані програмно у технологічних модулях оцінки надійності.


Нажаль, міжнародна та вітчизняна практика інженерії надійності засвідчила, що моделі зростання надійності, розроб­лені за останні 40 років, у більшості випа­дків не знаходять широкого застосування з ряду причин:


  • встановлюються не обґрунто­вані кількісні вимоги до надійно­сті ПС;

  • припущення у моделях не від­пові­дають реальному процесу відмови ПС;

  • погано організовано збір і об­роб­лення даних для застосування у мо­делях, що призводить до неадекватної оці­нки їх параметрів.

Фахівці в області надійності ПС прийшли до висновку про необхідність формування систематизованих підходів до прогнозування надійності розроблюваних ПС на всіх стадіях їхнього ЖЦ.

2.2. Прогнозування надійності ПС на ранніх стадіях ЖЦ. У літературі тер­мін прогнозування надійності (reliability prediction) все ще часто пов’язують з її оцінюванням за аналітичними моделями зростання надійності. У роботі [19] запро­поновано вирізняти дві фази прогнозу­вання: «раннє» прогнозування (до початку тестування) і традиційне «пізнє» прогнозу­вання.

Раннє прогнозування надійності ПС полягає у побудові проекції значень вимі­рів надійності, отриманих за внутрішніми метриками на певній стадії ЖЦ, на зна­чення вимірів надійності, обчислюваних за зовнішніми метриками на будь-якій насту­пній стадії та в кінці розроблення ПС. Ре­зультатом раннього прогнозування надій­ності є значення інтенсивності відмов ПС на початку (або в будь-який момент) тес­тування системи. Це мінімальна надій­ність, яка згодом може тільки підвищува­тися завдяки усуненню дефектів у ПС. Мета раннього прогнозування – визначити, які вдосконалення можуть бути зроблені в застосовних методах і процесах розроб­лення ПС, щоб забезпечити мінімальну щільність дефектів у ПС до моменту поча­тку системного тестування.

Пізнє прогнозування надійності фа­ктично охоплює період після раннього прогнозування, коли надійність підвищу­ється внаслідок тестування і виправлення дефектів. Таке «відкладене» прогнозу­вання надійності звичайно може зменшити ризик відмови ПС у експлуатації, але не зменшить ризику виконуваного проекту.


Загалом, прогнозування надійності має бути ітеративним процесом застосу­вання комбінації моделей «раннього» та «пізнього» прогнозування надійності ПС з послідовним уточненням параметрів цих моделей за ходом розроблення програм­ного продукту. Такий підхід до прогнозу­вання надійності схематично подано на рис. 1 [19] та описано у методиці ІПС НАН України «Прогнозування надійності про­грамного забезпечення комп’ютерних сис­тем» , розробленої у рамках теми [10].

Під час виконання проекту зна­чення вимірюваних величин оновлюються (уточнюються) і перед початком систем­ного тестування прогнозні значення замі­нюються фактичними та використову­ються для статистичного оцінювання па­раметрів застосовної аналітичної моделі зростання надійності.

Кінцева мета створення і застосу­вання прогнозних моделей – організація керування проектом на кількісній основі. У сукупності з іншими прогнозними моде­лями, наприклад моделями прогнозу об'­єму і складності ПС [20], а також варто­сті її розроблення на всіх стадіях ЖЦ, ці мо­делі дають керівництву проекту реальні важелі керування ризиком проекту, що свідчить про зростання рівня зрілості ор­ганізації-розробника ПС.

2.3. Встановлення причинно-нас­лідкових зв’язків чинників надійності ПС. Ранні прогнози надійності ґрунту­ються на вимірних характеристиках (мет­риках) процесу розроблення ПС і робочих продуктів (РП), вироблених цим процесом, що мають вплив на надійність кінцевого програмного продукту. Причинно-наслід­кові зв'язки між відмовами ПС у експлуа­тації, дефектами у коді, помилками розро­бників і вадами у процесах створення ПС простежено у [21] та показано на рис. 2.

Відмови ПС можуть бути обумов­лені як зовнішніми причинами (помилками елементів середовища функціонування, в тому числі людини–оператора), так і внут­рішніми причинами – дефектами у ПС.

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


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

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

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

2.4. Керування надійністю. Мно­жина задач з керування надійністю вклю­чає [22]:


  1. визначення цільових кількіс­них значень показників надійності ПС, які слугуватимуть критерієм відповідності ПС потребам користувачів;
  2. прогнозування досяжності встановлених цілей з урахуванням поточ­ного стану виконуваних процесів та розро­блених продуктів у програмному проекті. Пошук та аналіз можливих альтернатив­них рішень для досягнення цілей за умови усу­нення «слабких місць» у процесах ЖЦ. Якщо цілі недосяжні – їх перегляд та узго­дження з замовником ПС (п. 1);


  3. вибір найкращого рішення для досягнення надійності та оцінювання можливості його реалізації з урахуванням обмежених ресурсів проекту (або перегляд цілей);

  4. визначення стратегії, методів та засобів забезпечення надійності та їх «вбудування» в компоненти ПС. Перевірка правильності вироблених робочих продук­тів ПС (документів проекту, коду тощо). Збір даних про хід виконання проекту, стан процесів, ресурсів та розроблюваних робочих продуктів ПС для накопичення досвіду;

  5. аналіз досвіду, перегляд (уто­чнення) суджень щодо важливості тих чи інших чинників успішного досягнення встановлених цілей та коригування стану виконання проекту. В разі потреби - по­вторне виконання задач (п. 1 або 2).

Слід зазначити, що визначена мно­жина задач є типовою для керування прое­ктом за будь-яким показником якості ПС (не лише за надійністю) і є задачею інже­нерії якості ПС.

Задачі інженерії надійності в про­грамному проекті вирішуються групою якості проекту за відповідними планами. Обсяг вирішуваних задач може визнача­тися вимогами договорів на розроблення ПС або встановлюватися у Програмі за­безпечення надійності, основні положення якої сформульовано у [23]. В ній визнача­ється перелік заходів з інженерії надійно­сті, які треба здійснювати для досягнення цілей надійності.

Огляд та аналіз існуючих моделей і методів інженерії надійності здійснено у [19, 24, 25]. Там, зокрема, визначено такі переваги мультиплікативних моделей над регресійними:

  • отримані значення прогнозо­ваної надійності не можуть бути нульо­вими або від’ємними (що можливо для адитивних моделей);

  • моделі дозволяють врахувати од­ночасно значну кількість чинників на­дій­ності;
  • моделі можуть застосовува­тися в разі, коли є лише неповна інформа­ція. За умовчанням прогнозоване значення для невідомого параметра (чинника) прий­ма­ється рівним одиниці, що відповідає усе­редненій оцінці впливу чинника;


  • кількісні характеристики ар­тефак­тів проекту для цих моделей отри­мані шляхом аналізу великої кількості екс­периментальних даних (за більш ніж 100 проектами).

Визначено також загальні недоліки регресійних та мультиплікативних моде­лей прогнозування надійності, а саме:

  • кількісні дані у моделях при­датні для застосування лише у такому про­екті, характеристики і умови виконання якого подібні до тих, що їх мали дослі­джені про­екти;

  • моделі потребують перекаліб­ру­вання з урахуванням поперед­нього влас­ного (історичного) досвіду ор­ганізації-розробника, яка їх застосовує;

  • моделі орієнтовані на каскад­ний ЖЦ розроблення ПС та застосову­ються на відповідних стадіях ЖЦ. Вони не розрахо­вані на сучасні адаптивні методо­логії роз­роблення;

  • застосування моделей потре­бує попереднього впровадження у проекти процесу вимірювання, отже, можливе ли­ше на четвертому рівні зрілості органі­за­ції-розробника ПС (за моделлю СММ [26]).

Аналіз переваг та недоліків існую­чих моделей та методів показав необхід­ність залучення сучасних методів та засо­бів інтелектуального аналізу даних (як, на­приклад, байєсівські мережі) і розроблення на їх основі нових моделей і методів інже­нерії надійності.

Побудовано модель раннього про­гнозування дефектів у ПС, яка дозволяє виконувати прогнозування за умов неви­значеності щодо кількісних оцінок впливу чинників на надійність, а також ураховує потреби динамічного ЖЦ, тобто не «прив’язана» до конкретних стадій у кас­кадній моделі [25].

Оскільки дослідження в проблема­тиці інженерії надійності ПС були розпо­чаті ще у 80-х роках минулого сторіччя, а надійність є що не найбільш критичним показником якості ПС, - вони природним чином отримали розвиток і узагальнення у проблематиці інженерії якості ПС, дослі­джуваній у рамках тем [10, 11].

3. Парадигма якості у програмній

інженерії


3.1. Вплив процесного підходу до розроблення ПС на визначення паради­гми якості. Проблема моделювання та оцінювання якості ПС та її компонентів є наріжним каменем програмної інженерії, про що свідчать численні публікації, зок­рема, [4, 6, 27].

Перенесення наголосу у програмній інженерії з власне кінцевого програмного продукту у площину процесів життєвого циклу його розроблення, як засіб ство­рення високоякісних програмних продук­тів на постійній основі, спричинило фор­мулювання нової парадигми якості [28] і формування основ інженерії якості ПС, які викладені у [13], а потім уточнені та роз­винені у [29].

Особливостями визначеної нової парадигми якості є процесна програмна інженерія, інтеграція процесів ЖЦ, а також ціле-орієнтована програма вимірювання та оцінювання артефактів проекту як клю­чова ланка циклу керування проектом і вдосконалення процесів ЖЦ [13]. Схема­тично взаємозв’язок елементів нової пара­дигми якості показана на рис. 3.


Центральне місце серед процесів ЖЦ відведено процесу вимірювання, оскі­льки сучасна концепція керування проек­тами заснована на принципі вимірювання характеристик процесів ЖЦ проекту, його ресурсів і створюваних робочих продуктів.

У дослідженнях за темами [10, 11] цілеспрямованість вимірювання відпові­дала потребам керування якістю на ранніх стадіях ЖЦ, що передують системному те­стуванню.

Власне керування якістю визначено як новий процес ЖЦ ПС у поточній версії базового міжнародного стандарту програ­мної інженерії ISO/IEC 12207 (який неод­норазово переглядався) [30]. Відмінності цього процесу від процесу гарантування якості, представленого у національному стандарті ДСТУ 3918-99 [31] стисло окре­слені на рис. 4.

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


Оскільки, на відміну від норматив­ного апарату інженерії якості, її методич­ний апарат, призначений спростити прак­тичне застосування стандартів, був відсут­ній, зусилля у ході досліджень у даній проблематиці спрямовувалися переважно на пошук і вдосконалення існуючих мето­дів виконання процесів та розроблення множини відповідних методик [23].

3.2. Підхід до керування якістю у новій парадигмі якості. У ході дослі­джень за темами [10, 11] запропоновано підхід до керування, що забезпечує підт­римку ухвалення обґрунтованих рішень з керування якістю на всіх етапах ЖЦ ПС. У цьому підході цільовою характеристикою якості, на базі значень якої виробляються керівні рішення, є завершеність (зрілість) ПС (підхарактеристика надійності) – ви­значальна характеристика якості для за­безпечення безвідмовної роботи всіх про­грамних компонентів системи [15].

Основна відмінність нового підходу від існуючих полягає в орієнтації на сфор­мульовану нову парадигму якості та трак­туванні множини процесів як таких, що обумовлюють внесення дефектів у ПС (що спричинює зниження якості), виявлення і усунення дефектів у ПС (що сприяє під­вищенню якості) [32]. Особливістю цього підходу є також використання елементів теорії прогнозування в інженерії якості, причому не тільки для визначення можли­вості досягти заданого рівня завершеності ПС за допомогою наявних процесів ЖЦ, але і для виявлення процесів ЖЦ, які ма­ють вади та потребують удосконалення (тобто з метою діагностики).

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


Підхід до керування якістю схема­тично показано на рис. 5 у вигляді концеп­туальної моделі прийняття рішень з керу­вання якістю за характеристикою заверше­ність ПС.

Ця концептуальна модель включає множину моделей та методів, розроблених в рамках підходу до керування якістю, а саме:


  • модель вимог до завершено­сті компонентів ПС;

  • метод раннього прогнозу­вання якості;

  • графічну модель прогнозу­вання щільності дефектів у ПС із застосу­ванням байєсівської мережі;

  • метод аналізу альтернатив до­сяг­нення цільового значення показника яко­сті.

Поряд з характеристикою заверше­ність (“maturity”) доцільно було б розгля­дати у моделі якості й інші важливі харак­теристики, як, наприклад, безпека інфор­мації ПС (“security”) або зручність викори­стання (“usability”). Проте, проблема поля­гає у визначенні внутрішніх і зовнішніх метрик для цих (і більшості інших) харак­теристик якості і встановленні формалізо­ваного взаємозв'язку між ними.

Великі перспективи у моделюванні якості має метод аналізу ієрархій (МАІ), ураховуючи можливості його застосування для побудови складніших моделей якості з поєднанням в одній моделі різних характе­ристик, впорядкуванням їх за пріорите­тами і визначенням інтегрального показ­ника якості ПС.

Ще однією проблемою керування якістю є оцінювання вдосконалень проце­сів ЖЦ, які виконуються у кожному циклі керування проектом перед початком но­вого етапу розроблення ПС і прогнозу­вання цільової характеристики якості. Ця проблема вирішується через розроблення адекватного теоретичного апарату оціню­вання процесів та інших об’єктів програм­ної інженерії із застосуванням методів групового експертного оцінювання, які враховують специфіку предметної області і орієнтовані на узагальнення суджень екс­пертів, що репрезентують різні точки зору на оцінюваний об’єкт [33].


4. Висновки та напрямки подальших досліджень

Результати досліджень у проблема­тиці інженерії надійності та якості знай­шли практичне застосування при створенні ПС у класі систем організаційного керу­вання, розроблених на замовлення МО України. Їх впровадження у конкретні про­грамні проекти сприяло встановленню ви­мог до надійності ПС у відповідності до реальних потреб користувачів та можливо­стей колективу розробників ПС; контро­люванню адекватність процесів розроб­лення та верифікації ПС цілям надійності та своєчасному їх коригуванню і, загалом, покращенню процесу керування якістю, починаючи з самих ранніх стадій ЖЦ ПС.

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

За сучасних темпів розвитку індус­трії програмного забезпечення квінтесен­цією здешевлення та підвищення якості ПС у різних проблемних областях (доме­нах) є їх побудова у новій парадигмі гене­руючого програмування з множини різно­типних програмних компонентів, а також постійне накопичення, узагальнення та ви­користання знань про домен та перспек­тиви його еволюції. Подальші дослідження у проблематиці надійності та якості спря­мовуватимуться на розроблення теоретич­ного та методологічного підґрунтя керу­вання якістю саме таких ПС у відповідно­сті до концепцій, створюваних у рамках проекту «Розробка теоретичного фундаме­нту генеруючого програмування та ін­струментальних засобів його підтримки», виконуваному в ІПС НАН України.


  1. Лаврищева Е.М. Программная инженерия. Основные понятия и определения // «Ме­тоды и средства программной инженерии». Сб. науч. трудов АН УССР. Ин-т им. В.М. Глушкова. – Киев. – 1989. – С. 4 – 10.

  2. Бабенко Л.П., Лаврищева К.М. Основи про­грамної інженерії. – К.: Знання, 2001. – 269 с.


  3. Липаев В.В. Надежность программного обеспечения АСУ. – М.: Энергоиздат, 1981. – 239 с.

  4. Липаев В.В. Качество программного обеспе­чения. – М.: Финансы и статистика, 1983. – 264 с.

  5. Липаев В.В. Тестирование программ. – М.: Радио и связь, 1986. – 296 с.

  6. Кулаков А.Ф. Оценка качества программ ЭВМ. – К.: Технiка, 1984. – 167 с.

  7. Бурбан С.И. Оценка надежности программ­ного обеспечения на этапе тестирования // «Методы и средства программной инжене­рии». Сб. науч. трудов АН УССР. Ин-т им. В.М.Глушкова. – Киев. – 1989. – С. 10 – 15.

  8. Розробка методик, програмних засобів тес­тування та оцінки надійності програм­ного забезпечення (НДР 6.1.3./1702-92, N UA0I009618P, 1992 – 1994).

  9. Дослідження та розробка моделей, методів та засобів оцінки та забезпечення підвище­них характеристик надійності розробки прикладних програм у системах обробки даних військового призначення” (НДР N 0-92-66, шифр “Вілена-УА”, 1992 – 1994).

  10. Розробка концепції, методів та нормати­вно-методичного забезпечення інженерії якості прикладних програмних систем” (НДР шифр “Ф1/02К-1998”, ДР 0100U006530, 1998 – 2001).

  11. Розробка концепції, методів та методич­ного апарату вдосконалення та стандарти­зації процесів життєвого циклу систем програмного забезпечення” (НДР шифр “1/02-2002”, ДР 0102U005991, 2002 – 2006).

  12. Мороз Г.Б., Коваль Г.И., Коротун Т.М. Определение целей и задач инженерии на­дежности программного обеспечения // Проблемы программирования. – 1997. – № 1. – С. 98 – 106.

  13. Основы инженерии качества программных систем // Ф.И. Андон, Г.И. Коваль, Т.М. Коротун, В.Ю. Суслов / Под ред. И.В. Сергиенко. – Київ: Академпериодика, 2002. – 504 с.
  14. Лаврищева Е.М. Современные методы про­граммирования. Возможности и инстру­менты // Проблеми програмування. – 2006. – № 2 – 3 (Спецвипуск за матеріалами конференції УкрПРОГ-2006). – С. 60 – 74.


  15. Лаврищева Е.М., Коваль Г.И., Коротун Т.М. Подход к управлению качеством про­граммных систем обработки данных // Ки­бернетика и системный анализ. – 2006. – № 5. – С. 174 – 185.

  16. Мороз Г.Б., Лаврищева Е.М. Модели роста надежности ПО (Препр. АН УССР, Ин-т кибернетики им. В.М. Глушкова; 92 – 38). – Киев. – 1992. – 25 с.

  17. Харченко В.С., Скляр В.В., Вилкомир С.А. Выбор моделей надежности программных средств для систем критического примене­ния // УСиМ. – 2000. – № 3. – С. 59 – 69.

  18. Мороз Г.Б. Пуассоновские модели роста надежности программного обеспечения: Аналитический обзор // УСиМ. – 1996. – № 1-2. – С. 69 – 84.

  19. Коваль Г.И. Подход к прогнозированию надежности ПО при управлении проектом // Проблемы программирования. – 2002. – № 1-2. – С. 282 – 290.

  20. Коваль Г.И. Методы определения размера ПО // Проблемы программирования. – 1999. – №1. – С. 63 – 71.

  21. Kоваль Г.И., Коротун Т.М. Проблемы ана­лиза причинно-следственных связей отка­зов и ошибок в ПО. // Сб. «Программная инженерия». – Киев: Ин-т кибернетики им. В.М. Глушкова НАН Украины, 1994. – С. 83 – 93.

  22. Коваль Г.І. Основні задачі підтримки прийн­яття рішень в інженерії надійності програмних систем // Проблеми програму­вання. – 2005. – № 3. – С. 35 – 41.

  23. Планирование обеспечения надежности информационных систем. – Коваль Г.И., Коротун Т.М., Яблокова Т.Л. и др. // Проблемы про­граммирования. – 2001. – № 3-4. – С. 40 – 47.

  24. Коваль Г.І. Моделі і методи інженерії яко­сті програмних систем на ранніх стадіях ЖЦ. Дис. канд. фіз.-мат. наук. Інститут кі­бернетики ім. В.М. Глушкова НАН Укра­їни, Київ, 2005. – Держ. обл. № 0405U005045.
  25. Коваль Г.І., Мороз Г.Б. Моделювання ви­мог до якості програмних систем оброб­лення даних // Проблеми програмування (Спецвипуск конференції УкрПРОГ-2006). – 2006. – № 2-3. – С. 237 – 244.


  26. Модель оценки технологической зрелости организаций-разработчиков программного обеспечения / Ф.И. Андон, В.Ю. Суслов, Т.М. Коротун, Г.И. Коваль, О.А. Слабо­спицкая // Проблемы программирования. – 1998. – № 4. – С. 46 – 57.

  27. Лаврищева Е.М., Рожнов А.М. Концепция аналитической оценки характеристик каче­ства программных компонентов // Про­блеми програмування (Спецвипуск конфе­ренції УкрПРОГ-2004). – 2004. – № 2 – 3. – С. 180 – 187.

  28. Парадигма качества программного обеспе­чения / Ф.И. Андон, В.Ю. Суслов, Т.М. Коротун, Г.И. Коваль // Проблемы про­граммирования. – 1999. – № 2. – С. 51 – 62.

  29. Основы инженерии качества программных систем / Ф.И. Андон, Г.И. Коваль, Т.М. Коротун, Е.М. Лаврищева, В.Ю. Суслов // Изд. перераб. и дополн., под ред. И.В. Сер­гиенко. – Киев: Академпериодика, 2007. – 672 с.

  30. ISO/IEC 12207:1995 (Amd 1:2002, Amd 2:2004). Information Technology – Software life cycle processes. – ISO. – 106 p.

  31. ДСТУ 3918-99 Інформаційні технології. Процеси життєвого циклу програмного за­безпечення. – К.: Держстандарт України. – 2000. – 49 с.

  32. Коваль Г.І. Байєсівські мережі як засіб оці­нювання та прогнозування якості програм­ного забезпечення // Проблеми програму­вання. – 2005. – № 2. – С. 15 – 23.

  33. Слабоспицкая О.А. Экспертиза процессов жизненного цикла программных систем: особенности организации и проведения // Проблеми програмування. – 2006. – № 2-3 (Спецвипуск по матеріалах конференції УкрПРОГ-2006). – С. 341 – 348.



Отримано 19.04.2007

Про автора:


Коваль Галина Іванівна,

кандидат фізико-матемтичних наук,

старший науковий співробітник.

Місце роботи автора:


Інститут програмних систем НАН України,

тел.:(044) 526 4579

mail: g.koval@ekotex.kiev.ua





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

© Г.І. Коваль, 2007

ISSN 1727-4907. Проблеми програмування. 2007. № 2