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

опровожденіє програмного продукту — це підтримка працездатності програмного продукту, перехід на його нові версії, внесення змін, виправлення виявлених помилок і тому подібне

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

В моделі водопаду супровід ПО виділяється в окрему фазу циклу розробки. У спіральній моделі, що виникла в ході розвитку об'єктно-орієнтованого програмування, супровід не виділяється як окремий етап. Проте, ця діяльність займає значне місце, враховуючи той факт, що звичайне близько 2/3 життєвого циклу програмних систем займає супровід.

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

Нижче розглянемо напрями супроводу програмних продуктів на прикладі мультимедійних повчальних систем (МОС) компанії Ооо«корпоратівниє системи»:

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

Для того, щоб розробники оперативно усунули проблему, необхідно, щоб і користувачі так само действововалі оперативно, оскільки супровід - це двосторонній процес.

Наприклад, проводиться навчання по МОС «Сталевар Дугової електросталеплавильної печі» в Магнітогорському індустріальному коледжі. Користувачі виявили помилку: не всі результати тестування в програмі зберігаються. Якщо зауваження зафіксоване в реєстрі зауважень, в нашому випадку керівником навчання по даній МОС, і про проблему відразу повідомлено розробникам, то, як правило, протягом 5 робочих днів зауваження буде усунено.

Але бувають ситуації, коли користувачі виявили помилку і трактують її по-своєму, або позначають проблему абстрактно, розробникові відразу незрозуміло — що конкретно не працює. У відповідь на таке формулювання проблеми - «програма не працює», розробник їде на підприємство з'ясувати, в чому ж все-таки справа. В результаті виявляється, що користувач запускав програму не слідуючи інструкції по запуску і, як наслідок, — втрачений час. Такі чинники, як неписьменність користувача, недостатня підготовка користувача, до експлуатації програмного продукту розтягують процес супроводу в 2-3 рази.

Поліпшуючий супровід - це додавання в продукт нових функцій або захист системи від застарівання. Запити на їх включення зазвичай також виходять від користувачів.

Наприклад, в МОС «Машиніст дистриб'ютора», навчання по якій проводилося в Магнітогорському індустріальному коледжі, за бажанням користувачів потрібно включити діаграму стану «залізо-вуглець», як довідковій інформації для користувача. Розробник оцінює доцільність включення даної функції в МОС, тільки після цього завдання ставиться на реалізацію. В даному випадку — підключення такої функції, включаючи установку оновлень на підприємстві, займе не більше тижня. Є випадки, коли доопрацювання вимагає значних витрат.

Адаптивний супровід - підтримка відповідності ПО своєму оточенню: операційній системі, апаратним засобам, основним компонентам, таким як СУБД, графічним інтерфейсам користувача і комунікаційним системам. Зміни в інтерфейсі окремих компонентів системи або структури даних спричиняють за собою переробку частини системи для повернення їй працездатного стану. Але при цьому функціональність не потребує розширення. Програма лише повинна виконувати старі функції в нових умовах або в новому оточенні.

Наприклад, одне підприємство, яке працює з МОС ТОВ «Корпоративні системи», використовує в роботі пакет офісних програм Microsoft Office, і вимагає, щоб всі звіти по навчанню формувалися у форматі *. doc. Спочатку МОС була розроблена під дане підприємство. Проходить час, число підприємств, які хочуть використовувати МОС, росте, і серед них є підприємства, на яких не використовується пакет офісних програм Microsoft Office (під який «заточена» МОС). Для таких випадків розробник додає додаткову функцію в МОС — формування звітів в системі Fast Report.

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

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

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

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

Розглянемо звичайний сценарій роботи із запитом на зміну МОС. Наприклад, користувач стикається з проблемою, вирішити яку самостійно не в змозі. Він дзвонить розробникам і повідомляє про неї. Проблема реєструється, потім аналізується, і якщо є можливість її якось обійти або вирішити мирними способами, тобто без внесення змін до початкового коду, то таке рішення і приймається. Якщо в осяжний час пошуки обхідних шляхів не дають результатів, то швидше за все доведеться допрацьовувати програмний продукт для усунення виявленої проблеми. Керівник визначає трудомісткість робіт, призначає відповідального і термін виконання. Після внесення змін вони тестуються, і нова версія відправляється користувачам. Проблема закривається.

Організація такий або ще складнішого ланцюжка робіт вже сама по собі непросте завдання, що вимагає чіткої регламентації послідовності дій.

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

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

Хто в подібних випадках розставляє пріоритети? Сам розробник. Він приймає зауваження і вирішує, що робити насамперед, а що відсунути на потім. Це має бути надзвичайно відповідальна людина, яка хворіє за свою справу.

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

Таким чином, основа якісного супроводу продукту: регулярність, оперативність, підвищена увага до обслуговування і підтримки програмних продуктів. Супровід повинен забезпечувати максимальну ефективність роботи програмного забезпечення. На відміну від проекту, який реалізується в певні терміни, супровід є безперервним процесом. Крім того, супровід вимагає не тільки знання наочної області, але і досвіду реалізації.

Схожі статті: