Модели ЖЦ

Этап проектирования.

Входной информацией для проектирования являются спецификации, написанные по требованиям пользователя. Основываясь на целях проекта, требованиях к поведению, планируемой документации, спецификациях очень высокого уровня, различных выходных формах для пользователя, проектировщик осуществляет исследование структуры системы и логических взаимосвязей ее элементов.

Этап проектирования дает ответ на вопрос: «Как (каким образом) система будет удовлетворять предъявленным к ней требованиям?».

На этапе реализации (конструирования) выполняется разработка текстов программ.

Этап тестирования и отладки предусматривает, в том числе:

· Объединение подсистем;

· Сопряжение с реальной аппаратурой;

· Альфа тест (лабоpатоpные испытания);

· Бэта тестиpование (опытная эксплyатация);

· Пpиемочный тест.

Существует множество моделей процессов ЖЦ систем и программных средств, но три из них в международных стандартах и в ГОСТ Р ИСО/МЭК ТО 15271­2002 «Процессы жизненного цикла программных средств» (дата введения в действие 01.07.2003) квалифицируются как фундаментальные: каскадная, итеративная инкрементная и эволюционная.

Каждая из указанных моделей может быть использована самостоятельно или скомбинирована с другими для создания гибридной модели жизненного цикла конкретного проекта. При этом конкретную модель жизненного цикла системы или ПС следует выбирать так, чтобы процессы и задачи были связаны между собой, и определены их взаимосвязи с предшествующими процессами, видами деятельности и задачами.

Каскадная модель ЖЦ наиболее известна и применяется достаточно широко. Модель реализует принцип однократного выполнения каждого из базовых процессов и этапов в их естественных границах. На рис. 1 представлен пример этапов каскадной модели ЖЦ ПС Связь между этапами показана только сверху вниз, тогда как в реальных процессах жизненного цикла следует учитывать возможность возврата на предшествующие этапы, снизу вверх для их уточнения и корректировки результатов.

Рис.1. Каскадная модель жизненного цикла программного обеспечения

При использовании каскадной модели соответствующие работы и задачи процесса жизненного цикла обычно выполняют последовательно. Однако они могут быть частично выполнены параллельно в случаях перекрытия последовательных работ. Когда несколько компонентов разрабатывают одновременно, для них работы и задачи процесса разработки могут быть выполнены параллельно.

Процессы заказа и поставки, а также вспомогательные и организационные процессы выполняются параллельно с процессами разработки. Процессы сопровождения и эксплуатации обычно реализуются после процесса разработки.

Основным недостатком модели является тот факт, что работающая система появляется только на поздних этапах жизненного цикла. Кроме того, современные системы слишком велики, чтобы все работы по их созданию выполнять однократно.

Преимуществами использования модели являются:

· однократное представление всех возможностей (характеристик) системы;

· необходимость только единственной фазы перехода от старой системы к новой.

Итеративный инкрементный подход основывается на базовом формальном описании системы, дающем возможность создать первую исполняемую функциональную модель. Полученная модель проверяется на соответствие описанию системы, а затем расширяется далее, последовательно преобразуясь в новые модели, в которых отражается увеличение требований к системе и уточнение деталей их реализации (рис.2). Процесс продолжается до трансформации модели в реальную программную систему.

Рис.2. ЖЦ итеративной инкрементной разработки ПО

Итеративный подход предполагает разбиение жизненного цикла проекта на последовательность итераций, каждая из которых напоминает “мини-проект”, включая все этапы жизненного цикла ПО в применении к созданию меньших фрагментов функциональности, по сравнению с проектом, в целом (рис.3).

Цель каждой итерации – получение работающей версии (релиза) ПО, включающей функциональность всех предыдущих и текущей итерации. Результат финальной итерации содержит всю требуемую функциональность продукта. Таким образом, с завершением каждой итерации, продукт развивается инкрементно.

Рис.3. Выполнение разработки в соответствии с итеративной инкрементной моделью

Недостатками модели можно считать:

· предусмотрены сразу все возможности системы;

· возможны текущие изменения требований к системе;

· привлечение ресурсов (средств или персонала) на длительный срок ограничено.

Преимущества:

· необходимость изначального использования характеристик системы;

· пригодность для использования промежуточного продукта;

· естественное разделение системы на наращиваемые компоненты (инкременты);

· возможность наращивания привлекаемого персонала и средств.

Итеративный инкрементный подход к разработке ПО берет свое начало с середины 50-х годов прошлого столетия. В то время понятие «итеративная разработка» сводилась к исправлению уже сделанного. В контексте современных методов быстрой разработки этот термин означает нечто иное: не просто пересмотр проделанной работы, но и эволюционное продвижение вперед.

Особенностью эволюционной модели является создание эволюционирующих прототипов.

В эволюционной модели ЖЦ систему также разрабатывают в виде отдельных конструкций, но в отличие от инкрементной модели требования не могут быть полностью осознаны и установлены. В данной модели требования устанавливаются частично и уточняются в каждой последующей конструкции (рис.4).

Рис.4. Модель ЖЦ, сочетающая временные прототипы и инкрементную разработку

Недостатки модели:

· все возможности системы предопределены изначально;

· ограниченные возможности долговременного привлечения ресурсов (средств или персонала).

Преимущества:

· изначальное определение возможностей системы;

· пригодность для использования промежуточного продукта;

· естественное разделение системы на наращиваемые компоненты (инкременты);

· привлечение персонала и средств по мере необходимости;

· необходимая обратная связь с пользователем для полного понимания требований;

· упрощение надзора за изменением технологии.