logo
ТППС / Магистры / ТППС-лаб

Лабораторна робота № 3

Тема: Прототипування програмних систем

Ціль ‒ показати, як прототипування використовується в процесі розробки програмного забезпечення, і описати різні підходи до розробки прототипів.

Короткі теоретичні відомості:

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

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

Прототип ПЗ допомагає на двох етапах процесу розробки системних вимог.

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

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

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

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

Поряд з тим що прототипи допомагають формувати вимоги, вони мають і інші переваги.

  1. Різне тлумачення вимог розробниками ПЗ і користувачами можна виявити при демонстрації діючого прототипу системи.

  2. У процесі створення прототипу розробники можуть виявити неповні або неузгоджені вимоги.

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

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

Діючий прототип може також використовуватися для інших цілей.

  1. Навчання користувача.Прототип системи можна використовувати для навчання персоналу перед поставкою остаточного варіанта системи.

  2. Тестування системи.Прототипи дозволяють “прокручувати ” тести. Той самий тест запускається на прототипі і на системі. Якщо виходять однакові результати, це означає, що тест не виявив дефектів у системі. Якщо результати відрізняються, то необхідно досліджувати причини відмінності, що дозволяє виявити можливі помилки в системі.

Ефективність застосування прототипів при розробці ПЗ полягає в наступному.

  1. Поліпшуються експлуатаційні якості системи.

  2. Система більше відповідає потребам користувачів.

  3. Системна архітектура стає більш досконалою.

  4. Супровід системи спрощується і стає більш зручним.

  5. Скорочуються витрати на розробку системи.

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

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

Рис. 5.1. Процес розробки прототипу

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

Заключний етап процесу прототипування ‒ оцінювання створеного прототипу.