
- •Тема 3. Модели жизненНого цикЛа программного обеспечения
- •3.1. Модели жизненного цикла по
- •3.1.1. Модели и стадии жц по
- •Стадия формирования требований к по.
- •Стадия проектирования.
- •Классический жизненный цикл
- •Итерационная модель
- •Макетирование
- •Инкрементная модель
- •Спиральная модель
- •Компонентно-ориентированная модель
- •Подход rad
- •Стратегии конструирования по
- •Тяжеловесные и облегченные процессы
- •Хр-процесс
- •3.2. Понятия метода и технологии проектирования по
- •3.2.1. Определение метода и технологии
- •3.2.2. Требования к технологии
- •Рекомендации по документированию систем менеджмента качества
- •Введение
- •Руководство по качеству
- •Документированные процедуры
Инкрементная модель
Инкрементная модель является классическим примером инкрементной стратегии конструирования (рис. 3.4). Она объединяет элементы последовательной водопадной модели с итерационной философией макетирования.
Каждая линейная последовательность здесь вырабатывает поставляемый инкремент ПО.
Например, ПО для обработки слов в 1-м инкременте реализует функции базовой обработки файлов, функции редактирования и документирования;
во 2-м инкременте — более сложные возможности редактирования и документирования;
в 3-м инкременте — проверку орфографии и грамматики;
в 4-м инкременте — возможности компоновки страницы.
Первый инкремент приводит к получению базового продукта, реализующего базовые требования (правда, многие вспомогательные требования остаются нереализованными).
План следующего инкремента предусматривает модификацию базового продукта, обеспечивающую дополнительные характеристики и функциональность.
По своей природе инкрементный процесс итеративен, но, в отличие от макетирования, инкрементная модель обеспечивает на каждом инкременте работающий продукт.
Рис. 3.8. Инкрементная модель
Забегая вперед, отметим, что современная реализация инкрементного подхода — экстремальное программирование ХР (Кент Бек, 1999) . Оно ориентировано на очень малые приращения функциональности.
Спиральная модель
Для преодоления перечисленных проблем в середине 80-х гг. (автор Барри Боэм, 1988) была предложена спиральная модель ЖЦ (рис. 3.9).
Рис. 3.9. Спиральная модель жизненного цикла программного обеспечения
Ее принципиальной особенностью является следующее:
прикладное ПО создается не сразу, как в случае каскадного подхода, а по частям с использованием метода прототипирования.
Под прототипом понимается действующий программный компонент, реализующий отдельные функции и внешние интерфейсы разрабатываемого ПО. Создание прототипов осуществляется в несколько итераций, или витков спирали.
Каждая итерация соответствует созданию фрагмента или версии ПО, на ней уточняются цели и характеристики проекта, оценивается качество полученных результатов и планируются работы следующей итерации.
На каждой итерации производится тщательная оценка риска превышения сроков и стоимости проекта, чтобы определить необходимость выполнения еще одной итерации, степень полноты и точности понимания требований к системе, а также целесообразность прекращения проекта.
Спиральная модель избавляет пользователей и разработчиков ПО от необходимости полного и точного формулирования требований к системе на начальной стадии, поскольку они уточняются на каждой итерации. Таким образом, углубляются и последовательно конкретизируются детали проекта, и в результате выбирается обоснованный вариант, который доводится до реализации.
Разработка итерациями отражает объективно существующий спиральный цикл создания системы. Неполное завершение работ на каждой стадии позволяет переходить на следующую стадию, не дожидаясь полного завершения работы на текущей.
При итеративном способе разработки недостающую работу можно будет выполнить на следующей итерации.
Главная же задача — как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Спиральная модель не исключает использования каскадного подхода на завершающих стадиях проекта в тех случаях, когда требования к системе оказываются полностью определенными.
Основная проблема спирального цикла — определение момента перехода на следующую стадию. Для ее решения необходимо ввести временные ограничения на каждую из стадий жизненного цикла. Переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. План составляется на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.