Розвиток програмної інженерії

В світі розроблено декілька десятків методологій і підходів до організації процесів створення програмного продукту. Умовно їх можна поділити на важкі (наприклад, RUP компанії Rational або CMM-SE інституту програмної інженерії при університеті Карнеги — Меллона) і легкі (звані також екстремальними, гнучкими або моторними).

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

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

Класична методологія створення ПО, використовувана в світі вже не один десяток років, складається з шести послідовних етапів — аналіз вимог, проектування, кодування, збірка, тестування, впровадження/супровід. На її основі розроблені конкретні популярні моделі.

Модель «Водопад» передбачає послідовний перехід від фази до фази — по черзі виконуються визначення системних вимог, аналіз вимог до продукту, попереднє і детальне проектування, кодування, тестування, об'єднання модулів, перевірка роботи всієї системи, комплексне і системне тестування і впровадження.

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

Головна проблема подібних підходів — експоненціальне зростання часу на усунення помилок, що виявляються на останніх етапах (особливо якщо вони пов'язані з невірно спроектованою архітектурою системи або з погано сформульованими вимогами).

На основі послідовної моделі була розроблена еволюційна (або спіральна) методологія. Вона орієнтована на використання в умовах, коли всі вимоги не вдається сформулювати наперед. При цьому відбувається багатократне повторення циклу «аналіз — проектування — кодування — тестування


Начальника нужно слушать даже тогда, когда он молчит.

Програмна інженерія - www.programming.com.ua

2008 © Програмна інженерія