Методи проектування програмного забезпечення

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

Для інженерного підходу до проектування програмного забезпечення (ПЗ) були запропоновані моделі його розробки

Мал. 1. 1 - Аналіз вимог, специфікація, 2 - архітектурне проектування, 3 - детальне проектування, 4 - кодування, 5 - тестування, 6 - створення тимчасових прототипів.

Ще одна модель життєвого циклу – спіральна модель управління ризиками (рис. 2.). У цій моделі життєвий цикл не закінчується, а триває його модернізація. Аналіз ризиків полягає у визначенні витрат у разі помилок, допущених на першому етапі. Для зниження ризиків пропонуються додаткові роботи, наприклад, створення тимчасових прототипів.

Ще одна модель життєвого циклу - спіральна модель управління ризиками

Мал. 2. 1 - Визначення цілей, альтернатив та обмежень; 2 - аналіз ризику; 3 - розробка та верифікація; 4 - планування наступного циклу.

Один з найпопулярніших методів проектування програмного забезпечення - метод низхідного проектування. Він передбачає послідовне розкладання загальної функції обробки даних на прості функціональні елементи. В результаті виходить ієрархічна модель, яка відображає склад та підпорядкованість окремих функцій. Ця схема носить назву функціональної структури алгоритму (ФСА) програми. Недоліком ФСА є те, що кожен її рівень є єдиним цілим і не може розроблятись паралельно групою розробників.

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

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

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

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

Інструменти