fbpx

Дві третини життєвого циклу програмних систем

опровождение програмного продукту — це підтримка працездатності програмного продукту, перехід на нові версії, внесення змін, виправлення виявлених помилок і т. п.
Супровід ПО представляє процес, що дозволяє вже існуючим продуктам виконувати свої функції з продовженням продажів, установок і використання замовниками, таким чином, приносячи прибуток організації-розробнику.
У моделі водоспаду супровід ПЗ виділяється в окрему фазу циклу розробки. В спіральної моделі, що виникла в ході розвитку об’єктно-орієнтованого програмування, супровід не виділяється як окремий етап. Тим не менш, ця діяльність займає значне місце, враховуючи той факт, що зазвичай близько 2/3 життєвого циклу програмних систем займає супровід.
Термін супровід ПЗ визначається IEEE як “процес модифікації програмної системи або її компонентів, що проводиться після поставки системи замовнику з метою усунення відмов, підвищення продуктивності або покращення інших характеристик системи, або адаптації до зміненого програмного оточення”.
Нижче розглянемо напрямки супроводу програмних продуктів на прикладі мультимедійних навчальних систем (МОС) компанії ТОВ«Корпоративні системи»:
Коригуючий супровід – це виправлення помилок, виявлених при тестуванні або експлуатації. Користувачі очікують від розробників оперативного виправлення знайдених в процесі роботи “багів” і бувають дуже незадоволені, якщо їх зауваження губляться. Тому саме коригуючій супроводу приділяється особлива увага.
Для того, щоб розробники оперативно усунули проблему, необхідно, щоб і користувачі так само действововали оперативно, так як супровід – це двосторонній процес.
Наприклад, проводиться навчання з МОС «Сталевар Дугової електросталеплавильної печі» в Магнітогорському індустріальному коледжі. Користувачі виявили помилку: не всі результати тестування в програмі зберігаються. Якщо зауваження зафіксовано в реєстрі зауважень, в нашому випадку керівником навчання за даною МОС, і про проблему одразу повідомлено розробникам, то, як правило, протягом 5 робочих днів зауваження буде усунуто.
Але бувають ситуації, коли користувачі виявили помилку і трактують її по-своєму, або позначають проблему абстрактно, розробнику відразу незрозуміло — що конкретно не працює. У відповідь на таку формулювання проблеми – «програма не працює», розробник їде на підприємство з’ясувати, в чому ж все-таки справа. В результаті виявляється, що користувач запускав програму не дотримуючись інструкції по запуску і, як наслідок, — втрачений час. Такі фактори, як неграмотність користувача, недостатня підготовка до експлуатації програмного продукту, розтягують процес супроводу в 2-3 рази.
Поліпшує супровід – це додавання в продукт нових функцій або захист системи від старіння. Запити на їх включення зазвичай виходять від користувачів.
Наприклад, у МОС «Машиніст дистрибутора», навчання за якою проводилося в Магнітогорському індустріальному коледжі, за бажанням користувачів потрібно включити діаграми стану «залізо-вуглець», як довідкової інформації для користувача. Розробник оцінює доцільність включення цієї функції в МОС, тільки після цього ставиться завдання на реалізацію. В даному випадку — підключення такої функції, включаючи установку оновлень на підприємстві, займе не більше тижня. Є випадки, коли доопрацювання вимагає значних витрат.
Адаптивне супровід – підтримка відповідності З свого оточення: операційній системі, апаратних засобів, основних компонентів, таких як СУБД, графічним інтерфейсами користувача та комунікаційних систем. Зміни в інтерфейсі окремих компонентів системи або структури даних тягнуть за собою переробку частини системи для повернення їй працездатного стану. Але при цьому функціональність не потребує розширення. Програма повинна виконувати лише старі функції в нових умовах або в новому оточенні.
Наприклад, одне підприємство, яке працює з МОС ТОВ «Корпоративні системи», використовує в роботі пакет офісних програм Microsoft Office, і вимагає, щоб всі звіти по навчанню формувалися у форматі *.doc. Спочатку МОС була розроблена під дане підприємство. Проходить час, число підприємств, які хочуть використовувати МОС, зростає, і серед них є підприємства, на яких не використовується пакет офісних програм Microsoft Office (під який «заточена» МОС). Для таких випадків розробник додає додаткову функцію в МОС — формування звітів в системі Fast Report.
Зауважимо, що внесення будь-яких змін у ПО, – це найчастіше редагування вихідного коду, яка тягне за собою весь комплекс робіт з модернізації по – від аналізу до тестування і передачі користувачам. Для полегшення цього процесу створюються методики, що дозволяють вносити зміни в програмний код з меншими трудовитратами, наприклад, отримав широке поширення об’єктно-орієнтований підхід.
Однак, є ще інша сторона супроводу, також поглинає чимало людино-днів. Тут ми згадуємо про супроводі як про процес. Незалежно від того, до якого типу супроводу належить заявка (дефект програмного забезпечення, вимога на доопрацювання тощо), вона повинна пройти за визначеним маршрутом між співробітниками, змінюючи свій внутрішній статус в залежності від проведених робіт. Як цей процес поставлений, скільки у нього бюрократичних інстанцій, і які трудомісткість і вартість проходження кожного кроку і підтримки процесу в цілому – все це визначає загальну вартість супроводу.
Процес обробки заявки від користувача являє собою цілий цикл робіт з реєстрації, відстеження, аналізу запиту, прийняття по ньому рішення, реалізації, перевірки та закриття. Реалізація заявки вимагає прийняття ряду рішень керівниками різних підрозділів і обміну інформацією між зацікавленими особами про поставлених завданнях і вироблених роботах.
Одним з варіантів підтримки цього процесу буде його реалізація за допомогою внутрішніх регламентів організації, але при цьому не можна забувати, що для відстеження їх виконання необхідно витрачати додаткові ресурси. І все одно ніхто не гарантує точного їх дотримання, адже так велика спокуса трохи відступити від правил.
Розглянемо звичайний сценарій роботи з запитом на зміну МОС. Наприклад, користувач стикається з проблемою, вирішити яку самостійно не в змозі. Він дзвонить розробникам і повідомляє про неї. Проблема реєструється, потім аналізується, і якщо є можливість її якось обійти або вирішити “мирними” засобами, тобто без внесення змін у вихідний код, то таке рішення приймається. Якщо ближчим часом пошуки обхідних шляхів не дають результатів, то швидше за все доведеться доопрацьовувати програмний продукт для усунення виявленої проблеми. Керівник визначає трудомісткість робіт, призначає відповідального і термін виконання. Після внесення змін вони тестуються, і нова версія надсилається користувачам. Проблема закривається.
Організація такої або ще більш складної ланцюжка робіт вже сама по собі непросте завдання, що вимагає чіткої регламентації послідовності дій.
Звичайна картина для неформалізованої процесу супроводу – спеціаліст по системі витрачає значну частину свого робочого часу на спілкування з користувачами по телефону, роз’яснення питань, що стосуються експлуатації. При цьому інформація, що надходить в кращому випадку фіксується в Excel-файлі і по мірі внесення виправлень видаляється, а в гіршому – взагалі записується на клаптиках паперу, періодично кудись пропадающих.
Наявності непродуктивна трата часу кваліфікованого спеціаліста, крім того, виникають труднощі із плануванням робіт по усуненню зауважень. У керівника немає повної інформації щодо виявлених дефектів, немає зведеної статистики щодо зауважень, які вже виправлені або ще потребують розгляду.
Хто в подібних випадках розставляє пріоритети? Сам розробник. Він приймає зауваження і вирішує, що робити в першу чергу, а що відкласти на потім. Це повинен бути надзвичайно відповідальна людина, яка вболіває за свою справу.
Поки що немає валу зауважень, і у фірми всього один-два клієнти, що працюють з МОС, з цим ще можна якось миритися, але коли обсяги зростають, потрібно кардинальне рішення проблеми. Необхідний інструмент, який дозволить зробити супровід прозорим, буде підтримувати необхідну організацію робіт, забороняючи відступати від правил і не вимагаючи великих зусиль на ведення процесу, і, звичайно ж, у ньому повинні зберігатися всі отримані дані в одному місці для швидкого і безперешкодного доступу команди супроводу – від керівника до програміста.
Таким чином, основа якісного супроводу продукту: регулярність, оперативність, підвищену увагу до обслуговування та підтримки програмних продуктів. Супровід має забезпечувати максимальну ефективність роботи програмного забезпечення. На відміну від проекту, який реалізується в певні терміни, супровід є безперервним процесом. Крім того, супровід вимагає не тільки знання предметної області, але і досвіду реалізації.