- •Характер кризи програмного забезпечення.
- •Характеристика змісту поняття «срібна пуля».
- •Роль і значення моделювання життєвого циклу.
- •4. Еволюційні моделі життєвого циклу.
- •Сутність програмної еволюції.
- •Складові досліджень програмної еволюції.
- •Супроводження програмного забезпечення, як осередок еволюції.
- •Складові супроводження.
- •Сутність, процеси та проблеми супроводження.
- •Межі та інтерфейси супроводження.
- •Модель процесів супроводження. Інженерія еволюції.
- •Методи еволюції программного забезпечення.
- •Базові поняття еволюції.
- •Властивості, механізми та наслідки еволюції.
- •Еволюція і програмне забезпечення – родові терміни.
- •Програми як моделі. Типи програм.
- •Теорія еволюції програмного забезпечення.
- •Закони Лемана.
- •Аналіз еволюції програмного забезпечення.
- •Моделювання еволюційних процесів.
- •Методи та засоби реалізації еволюційних процесів.
- •Еволюція відкритого версійного программного забезпечення.
- •Індекс супроводжуваності.
- •Модель зрілості супроводження програмного забезпечення (sммм).
- •Характеристика росту розміру та складності програмного забезпечення.
- •Розрахунок витрат на еволюцію програмного забезпечення.
- •Метрики супроводження програмного забезпечення.
- •Зворотна інженерія та ре інженерія програмного забезпечення.
- •Версійність програмного забезпечення.
- •Гнучкі технології.
Складові супроводження.
Супроводження програмного забезпечення визначається як вся сукупність діяльності, необхідної для забезпечення ефективної (з точки зору витрат) підтримки програмних систем. Ці роботи виконуються як перед введенням системи в експлуатацію, так і після цього. Попередні роботи включають планування діяльності з супроводу системи, а також організацію переходу до її повнофункціонального використання. Якщо нова система повинна замінити стару систему, призначену для вирішення тих же завдань, просто на новому рівні ефективності, вартості використання, нових функціональних можливостей, в цьому випадку важливо забезпечити плавний перехід зі старої системи на нову, максимально природний для користувачів. З цим пов'язано не тільки планування, наприклад, перенесення інформації, збереженої у відповідних базах даних, а й навчання користувачів, підготовка, налаштування та перевірка "бойовий" конфігурації, визначення послідовності операцій, організація і навчання служби підтримки (help-desk) і т. п.
Область знань "Супроводження програмного забезпечення" пов'язана з іншими аспектами програмної інженерії. По-суті, опис цієї галузі знань безпосередньо перетинається з усіма іншими дисциплінами.
Рис 1. Составные части сопровождения программного обеспечения
Сутність, процеси та проблеми супроводження.
Супроводження програмного забезпечення — процес покращення, оптимізації та виправлення дефектів у програмному забезпеченні після його вводу до експлуатації.
Супровід ПЗ – сукупність дій із забезпечення його роботи, внесення змін при виявленні помилок, адаптації ПЗ до нового середовища функціонування, а також підвищення продуктивності або поліпшення деяких характеристик ПЗ.
Процес супроводження містить у собі моделі процесу супроводу і планування діяльності людей, що проводять запуск ПЗ, перевірку правильності його виконання і внесення в нього змін. Цей процес згідно з стандартом ISO/IEC 14764 проводиться шляхом:
– коригування, тобто зміни продукту для усунення виявлених помилок або нереалізованих задач;
– адаптації, тобто настроювання продукту в умовах експлуатації, що змінилися, або в новому середовищі виконання;
– поліпшення, тобто еволюційної зміни продукту для підвищення продуктивності або рівня супроводу;
– перевірки ПЗ, пошуку і виправлення помилок при експлуатації системи.
Мета внесення змін в один компонент або їх сукупність - це надання старій програмній системі нового призначення в нових умовах застосування. Методи зміни програмних систем слугують способом продовженн яжиття успадкованих та старіючих програм. Серед методів евоюції ПЗ виділють зовнішні і внутрішні методи:
Внутрішні методи (реверсина інженерія, реінженерія та рефакторінг);
Зовнішні методи представлені оброкою компонент, тобто додавання, об’єднання, видалення, переробка та заміщення.
Реінженерія – це удосконалення застарілого ПЗ шляхом його реорганізації або реструктуризації, а також перепрограмування окремих елементів або настроювання параметрів на іншу платформу, середовище виконання зі збереженням зручності його супроводу.
Реверсна інженерія полягає у відновленні специфікації (графів викликів, потоків даних і ін.) за отриманим кодом системи для її аналізу на більш високому рівні. Відновлюється ідентифікація компонентів і зв'язків між ними для забезпечення перепрограмування системи на нову платформу. Найчастіше реверсна інженерія застосовується після того, як у код ПЗ було внесено багато змін і воно стало некерованим або змінилася платформа комп'ютера.
Рефакторинг – це реорганізація коду для поліпшення характеристик і показників якості об’єктно-орієнтованих і компонентних програм без зміни їх поведінки. Цей процес реалізується шляхом поступової зміни окремих операцій над текстами, інтерфейсами, середовищем програмування і виконання ПЗ, а також настроювання або внесення змін в інструментальні засоби підтримки ПЗ. Якщо при зміні зберігається формат існуючої системи, то рефакторинг – один з варіантів реверсної інженерії.
