Прототипування програмного забезпечення (від англ. Prototyping) - етап розробки програмного забезпечення (ПО), процес створення прототипу програми - макета (чорновий, пробної версії) програми, зазвичай - з метою перевірки придатності пропонованих для застосування концепцій, архітектурних і / або технологічних рішень, а також для представлення програми замовнику на ранніх стадіях процесу розробки.
Прототип дозволяє також отримати зворотній зв'язок від майбутніх користувачів, причому, саме тоді, коли це найбільш необхідно: на початку проекту ще є можливість виправити помилки проектування практично без втрат.
Процес створення прототипу зазвичай складається з кроків:
- Визначення початкових вимог
- Розробка першого варіанту прототипу, який містить тільки призначений для користувача інтерфейс системи
- Вивчення прототипу замовником і кінцевими користувачами, отримання зворотного зв'язку про необхідні зміни та доповнення
- Переробка та поліпшення прототипу: з урахуванням отриманих зауважень і пропозицій змінюються як специфікації так і прототип, після цього кроки 3 і 4 можуть повторюватися.
типи прототипирования
Прототипування має безліч різних варіантів. Проте, все методи в якійсь мірі засновані на двох основних типах.
швидке прототипування
При швидкому прототіпірованії (англ. Rapid prototyping або throwaway prototyping) передбачається, що ми створюємо макет, який на якомусь етапі буде залишений ( «викинутий») і не стане частиною готової системи.
Основна перевага такого підходу - в швидкості: у відповідь на свої вимоги замовник майже відразу отримує прототип інтерфейсу, і відразу може уточнити вимоги, до того як розпочато написання робочого коду системи. Вартість зміни вимог на цьому етапі дуже низька, оскільки немає коду, який потрібно було б переписувати.
Дуже важливо, щоб таке прототипирование було виконано в найкоротші терміни, оскільки в даному випадку витрачаються час і ресурси на код, який не буде в подальшому використаний.
Швидке прототипування не обов'язково виконується в рамках тієї ж платформи і тих же технологій, що й розробляється система. Для прототипу графічного інтерфейсу користувача (GUI) можуть використовуватися як стандартні HTML-сторінки, або прототип може готуватися в програмі, спеціально призначеної для створення макетів (наприклад: Axure RP. Microsoft Expression Blend і ін.).
еволюційний прототипирование
Еволюційний прототипирование (англ. Evolutionary prototyping) ставить собі за мету послідовно створювати макети системи, які будуть все ближче і ближче до реального продукту.
Такий підхід має ту перевагу, що на кожному кроці ми маємо в своєму розпорядженні працюючою системою, нехай і не володіє всією необхідною функціональністю, але поліпшується з кожною итерацией. При цьому, не витрачаються ресурси на код, який буде «викинуто».
Еволюційний підхід до прототіпірованію може бути обраний, виходячи з припущення, що всі необхідні вимоги до моменту початку розробки невідомі, і будуть визначатися в міру створення програми; тоді на кожному етапі ми реалізуємо лише ті вимоги, які відомі і зрозумілі. Іноді при цьому розробники зосереджуються на роботі тільки над тими модулями системи, вимоги на які вже визначені.
У деяких випадках, коли мова йде про продукт під певну незайняту нішу, користувачі починають використовувати систему ще до того, як вона повністю дописана, в очікуванні готової системи, оскільки «недописана система - це краще, ніж її повна відсутність».