- •Характер кризи програмного забезпечення.
- •Характеристика змісту поняття «срібна пуля».
- •Роль і значення моделювання життєвого циклу.
- •4. Еволюційні моделі життєвого циклу.
- •Сутність програмної еволюції.
- •Складові досліджень програмної еволюції.
- •Супроводження програмного забезпечення, як осередок еволюції.
- •Складові супроводження.
- •Сутність, процеси та проблеми супроводження.
- •Межі та інтерфейси супроводження.
- •Модель процесів супроводження. Інженерія еволюції.
- •Методи еволюції программного забезпечення.
- •Базові поняття еволюції.
- •Властивості, механізми та наслідки еволюції.
- •Еволюція і програмне забезпечення – родові терміни.
- •Програми як моделі. Типи програм.
- •Теорія еволюції програмного забезпечення.
- •Закони Лемана.
- •Аналіз еволюції програмного забезпечення.
- •Моделювання еволюційних процесів.
- •Методи та засоби реалізації еволюційних процесів.
- •Еволюція відкритого версійного программного забезпечення.
- •Індекс супроводжуваності.
- •Модель зрілості супроводження програмного забезпечення (sммм).
- •Характеристика росту розміру та складності програмного забезпечення.
- •Розрахунок витрат на еволюцію програмного забезпечення.
- •Метрики супроводження програмного забезпечення.
- •Зворотна інженерія та ре інженерія програмного забезпечення.
- •Версійність програмного забезпечення.
- •Гнучкі технології.
Межі та інтерфейси супроводження.
Модель процесів супроводження. Інженерія еволюції.
Процес супроводу складається з робіт і завдань, виконуваних персоналом супроводу. Даний процес реалізується при змінах (модифікаціях) програмного продукту та відповідної документації, викликаних проблемами, що виникли або потребами в модернізації або налаштуванні. Метою процесу є зміна існуючого програмного продукту при збереженні його цілісності. Даний процес охоплює питання переносимості та зняття програмного продукту з експлуатації. Процес закінчується зняттям програмного продукту з експлуатації.
A0) Контекстна діаграма;
. Рисунок 2 - Процес супроводження за стандартом ISO/IEC 14764
Роботи з супроводу в стандарті розбиті на завдання:
Process Implementation - реалізація процесу;
Problem and Modification Analysis - аналіз проблем і модифікацій;
Modification Implementation - проведення модифікацій;
Maintenance Review / Acceptance - оцінка і прийняття при супроводі;
Migration - міграція (на модифіковану або нову версію програмного забезпечення);
Software Retirement - виведення з експлуатації (припинення експлуатації програмного забезпечення).
Методи еволюції программного забезпечення.
Серед методів евоюції ПЗ виділють зовнішні і внутрішні методи:
Внутрішні методи (реверсина інженерія, реінженерія та рефакторінг);
Зовнішні методи представлені оброкою компонент, тобто додавання, об’єднання, видалення, переробка та заміщення.
Реверсивна інженерія - це процес аналізу ПЗ з метою ідентифікації програмних компонетів і зв’язків між ними, а також формування уявлення про ПЗ з подальшим перебудовуванням в новій формі. Є пасивним прпускаючи відсутність діяльності по зміні або створенню нового ПЗ. Один із типів обрененої інженерії є створення нової документації на існуючу систему(редокументування). ДРугим типом можу виступати відновлення дизайну системи. Обрнена інженерія - діяльність по дослідженню деякого пристрою або програми, а також документації на неї з метою розуміння принципу йог роботи. І найчастіше відтворення пристрою або програми, але без копіювання як такої!
Рефакторінг - цетрансформація програмного забезпечення в процесі якої програмна система реорганізується з мтеою покращення структури без зміни поведінки.
Рефактоірнг отримав розвиток в об’єктно оріжнтованому програмуванні у зв’язку з широким застосуванням інтерфейсів шаблонів проекутвання та методів поліпшення коду. Процеси рефакторінгу може бути орієнтованим на отримання нових компонетів, які включають настпні операції з організації проведення змін:
додавання ново реалізації до інсуючого та нового інтерфесу;
заміна інсуючої реалізації новою з еквівалентною функціоральністю;
додавання нового інтерфейсу;
розширення інсуючого інтерфесу.
Кожна операція рефакторінгу - це базова атомарна функція перетворення що зберігає цілісність компонета, тобто правила і залежності між складовими елементами компонета, що довзоляє роглядати компонент як єдину та цілісну структуру зі своїми властивостями та характеристиками.
Реінженерія - визначається як жетальна оцінка і перебудова ПЗ для формування, розуміння, відтворення та подальшої реалізації у новій формі. Це еволюція програми чи системи шляхом їїї зміни з метою підвищення зручності її експлуатації, супроводу або зміни її функцій. Вона включає в себе процеси реорганізації та реструктуризації системи, перекладу окремих компонетів системи на іншу більш сучасну мову програмування, а також процеси модифікації та можрнізації структури, при цьому архітектура систем може залишатися не змінною. У порівнянні з іншими підходами до вдосконалення систем реінженерія має ряж переваг, зокрема: зниження ризику при повторній розробці ПЗ в той же час існує ризик отримання незадовільного результату пи внесенні помилок у специфікацію або при зміні функціональності деяких програм; зниження витрат за рахунок використання компонетів багатократного використання при розробці нової програмної системи.
Основна відмінність між реінженерією і новою розробкою системи є в тому що написання системних специфікацій починається не з 0, аз розгляду можливостей старої успадкованої системи. До оснвних етапів процесу реінженерії відносять:
перклад вихідного коду із старої мови програмування на сучансу версію цієї мови або на іншу мову програмування;
аналіз програм за дукоментованою структурою і за функціональними можливостями системи;
модифікація стркутури програми дл янарощування нових властивостей та можливостей;
розбиття системи на модулі для їх групування та усунення надмірності.
В загальному вигляді реінженерія в ПЗ вимагає виконання двох процесів двох інденерій(прямої та зворотньої інженерії). На вхід хворотньої інженерії поступає наслідуване програмне забезпечення та додаткова інформація відносно предметної області(домену). В результаті викоання процесу будується модель - представлення по домену. Дана модель використовується в процесах прямої інженерії для створення нового ПЗ.
