Модели разработки программных средств.
Жизненный цикл программного обеспечения — ряд событий, происходящих с системой в процессе ее создания и дальнейшего использования. Жизненный цикл программного обеспечения можно представить в виде моделей.
Модель жизненного цикла программного обеспечения— структура, содержащая процессы действия и задачи, которые осуществляются в ходе разработки, использования и сопровождения программного продукта.
Эти модели можно разделить на 3 основных группы:
- Инженерный подход;
- С учетом специфики задачи;
- Современные технологии быстрой разработки.
Каскадная модель жизненного цикла программного обеспечения (водопад).
Преимущества:
- Последовательное выполнение этапов проекта в строгом фиксированном порядке;
- Позволяет оценивать качество продукта на каждом этапе.
Недостатки:
- Отсутствие обратных связей между этапами;
- Не соответствует реальным условиям разработки программного продукта.
Относится к первой группе моделей.
Каскадная модель с промежуточным контролем (водоворот).
Данная модель является почти эквивалентной по алгоритму предыдущей модели, однако при этом имеет обратные связи с каждым этапом жизненного цикла, при этом порождает очень весомый недостаток: 10-ти кратное увеличение затрат на разработку. Относится к первой группе моделей.
V модель (разработка через тестирование).
Является одной из основных практик экстремального программирования.
Таким образом, в конце каждого этапа жизненного цикла разработки, а зачастую и в процессе выполнения этапа, осуществляется проверка взаимной корректности требований различных уровней. Данная модель позволяет более оперативно проверять корректность разработки, однако, как и в каскадной модели, предполагается, что на каждом этапе разрабатываются документы, описывающие поведение всей системы в целом.
Спиральный жизненный цикл.
Оба рассмотренных типа жизненных циклов предполагают, что заранее известны все требования пользователей или, по крайней мере, предполагаемые пользователи системы настолько квалифицированы, что могут высказывать свои требования к будущей системе, не видя ее перед глазами.
Естественно, такая картина достаточно утопична, поэтому постепенно появилось решение, исправляющее основной недостаток V-образного жизненного цикла - предположение о том, что на каждом этапе разрабатывается очередное полное описание системы. Этим решением стала спиральная модель жизненного цикла.
В спиральной модели разработка системы происходит повторяющимися этапами - витками спирали. Каждый виток спирали - один каскадный или V-образный жизненный цикл. В конце каждого витка получается законченная версия системы, реализующая некоторый набор функций. Затем она предъявляется пользователю, на следующий виток переносится вся документация, разработанная на предыдущем витке, и процесс повторяется.
Таким образом, система разрабатывается постепенно, проходя постоянные согласования с заказчиком. На каждом витке спирали функциональность системы расширяется, постепенно дорастая до полной.
Преимущества:
- Быстрое получение результата;
- Повышение конкурентоспособности;
- Изменяющиеся требования — не проблема.
Недостатки:
- Отсутствие регламентации стадий.
Третьей группе принадлежат такие модели как экстремальное программирование (XP), SCRUM.