Понятие модели жизненного цикла. Модели жизненного цикла: каскадная, модель с промежуточным контролем, спиральная
Модель жизненного цикла – структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач, выполняемых на протяжении ЖЦ.
Стандарт ISO/IEC 12207 не предлагает конкретную модель ЖЦ и методы разработки ПО. Стандарт ISO/IEC 12207 описывает структуру процессов ЖЦ ПО, но не конкретизирует в деталях, как реализовать или выполнить действия и задачи, включенные в эти процессы. Его регламенты являются общими для любых моделей ЖЦ, методологий и технологий разработки.
Модель жизненного цикла отражает различные состояния системы, начиная с момента возникновения необходимости в данной ИС и заканчивая моментом ее полного выхода из употребления. Модель ЖЦ зависит от специфики, масштаба, сложности проекта и специфики условий, в которых система создаётся и функционирует.
В настоящее время наибольшее распространение получили следующие модели жизненного цикла: каскадная, спиральная, итерационная.
Каскадная модель
Каскадная модель также носит название «водопад». Классическими представителями реализации данной методологии являются стандарты ISO и CMM.
Модель предполагает следующие свойства взаимодействия этапов:
• модель состоит из последовательно расположенных этапов;
• каждый этап полностью заканчивается до того, как начнется следующий;
• этапы не перекрываются во времени: следующий этап не начинается до тех пор, пока не завершится предыдущий;
|
|
• возврат к предыдущим этапам не предусмотрен либо всячески ограничен;
• исправление ошибок происходит лишь на стадии тестирования;
• результат появляется только в конце разработки.
Критерием появления результата является отсутствие ошибок и точное соответствие продукта первоначальной спецификации.
Каскадная модель(характерна для периода 1970-1985 гг.). Его основной характеристикой является разбиение всей разработки на стадии (этапы) и последовательное выполнение всех стадий проекта в строго фиксированном порядке. Переход на следующую стадию означает полное завершение работ на предыдущей стадии.
Можно выделить следующие положительные стороны применения каскадного подхода:
§ на каждой стадии формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности; на заключительных этапах разрабатывается пользовательская документация, охватывающая все предусмотренные стандартами виды обеспечения ИС;
§ выполняемые в логической последовательности стадии работ позволяют планировать сроки завершения всех работ и соответствующие затраты.
Каскадный подход хорошо зарекомендовал себя при построении относительно простых ИС, когда в самом начале разработки можно достаточно точно и полно сформулировать все требования к системе.
|
|
Основным недостатком этого подхода является то, что реальный процесс создания системы никогда полностью не укладывается в такую жесткую схему, постоянно возникает потребность в возврате к предыдущим стадиям и уточнении или пересмотре ранее принятых решений. В результате реальный процесс создания ИС оказывается соответствующим итерационной модели.
Недостатки:
§ задержка получения результатов;
§ возврат на предыдущую стадию;
§ сложность параллельного ведения работ;
§ информационная перенасыщенность;
§ сложность управления проектом
Поэтапная модель с промежуточным контролем (итерационная модель)
Модель еще известна как итерационная модель или «водоворот».
Модель характеризуется следующими свойствами взаимодействия этапов:
• модель состоит из последовательно расположенных этапов (точно так же, как и «водопад»);
• каждый этап имеет обратную связь с предыдущими этапами;
• исправление ошибок происходит на каждом из этапов, сразу при выявлении проблемы — это промежуточный контроль;
• этапы перекрываются во времени по причине наличия обратной связи: следующий этап не начинается, пока не завершится предыдущий; при первом проходе по модели вниз, как только обнаружена ошибка, осуществляется возврат снизу вверх к предыдущим этапам, которые повлекли ошибку; таким образом, фактически этапы оказываются растянутыми во времени;
|
|
• результат появляется только в конце разработки, как и в модели «водопад».
Критерием появления результата является приемлемое качество продукта, то есть такое состояние продукта, когда наиболее критические для клиента ошибки устранены, а с наличием непринципиальных для жизнедеятельности системы ошибок клиент согласилcя — данные ошибки описаны в документации и фактически переведены таким образом в разряд особенностей системы.
Итерационная модель.Итеративная модель предполагает разбиение жизненного цикла проекта на последовательность итераций, каждая из которых напоминает “мини-проект”, включая все фазы жизненного цикла в применении к созданию меньших фрагментов функциональности, по сравнению с проектом, в целом.
Цель каждой итерации – получение работающей версии программной системы, включающей функциональность, определенную интегрированным содержанием всех предыдущих и текущей итерации. Результата финальной итерации содержит всю требуемую функциональность продукта
|
|
Это каскадная модель с промежуточным контролем. Ошибки или недоработки предыдущих стадий, обнаруженные на последующих стадиях, устраняются путем возврата к предыдущим стадиям, т.е. итерационным путем.
Различные варианты итерационного подхода реализованы в большинстве современных технологий и методов: Rational Unified Process (RUP), Microsoft Solutions Framework (MSF), Extreme Programming (XP).
RUPпредлагает итеративную модель разработки, включающую 4 фазы: начало, исследование, построение и внедрение. Каждый цикл (прохождение 4-х фаз) завершается генерацией версии системы. Суть работы – это создание и сопровождение моделей, а не бумажных документов, поэтому этот процесс привязан к использованию конкретных средств моделирования (UML), а также конкретной технологии проектирования и разработки (объектно-ориентированный анализ, объектно-ориентированное программирование).
MSF также включает 4 фазы: анализ, проектирование, разработка, стабилизация. В большей степени ориентирована на разработку бизнес-приложений.
Экстремальное программирование (Extreme Programming, XP) – облегченный (подвижный) процесс (или методология).
XP (экстремальное программирование) является самым новым среди рассматриваемых методологий (1996). В основе методологии лежит командная работа, эффективная коммуникация между заказчиком и исполнителем в течение всего проекта по разработке ИС, а разработка ведется с использованием последовательно дорабатываемых прототипов.
ХР-процесс ориентирован на группы малого и среднего размера, строящие ПО в условиях неопределенных или быстро меняющихся требований.
Основная идея ХР – устранить высокую стоимость изменения, характерную для приложений с использованием объектов, паттернов и реляционных БД.
Однако и эта модель не позволяет оперативно учитывать возникающие изменения и уточнения требований к системе. Согласование результатов разработки с пользователями производится только в точках, планируемых после завершения каждой стадии работ, а общие требования к ИС зафиксированы в виде технического задания на все время ее создания. Таким образом, пользователи зачастую получают систему, не удовлетворяющую их реальным потребностям.
Недостатки:
§ увеличение времени жизни каждого из этапов на вес период разработки;
§ рассогласования в выполненных проектных решениях и документации;
§ запутанность функциональной и системной архитектуры созданной ИС.
Для преодоления перечисленных проблем была предложена спиральная модель ЖЦ.
Спиральная модель.
Коммерческими представителями данной методологии являются RUP (Rational Unified Process), MSF (Microsoft Consulting Services).
Результат появляется фактически на каждом витке спирали. Этот результат, который является промежуточным, анализируется, а затем выявленные недостатки продукта становятся поводом для инициирования следующего витка спирали. Таким образом, углубляются и последовательно конкретизируются детали проекта и в итоге выбирается обоснованный вариант, который доводится до реализации. Спираль завершается тогда, когда клиент и разработчик приходят к согласию относительно результата.
Модель предполагает также свойства взаимодействия этапов:
• модель состоит из последовательно расположенных этапов (как и «водопад») в пределах одного витка спирали;
• внутри витка спирали этапы не имеют обратной связи; анализ результата осуществляется в конце витка и инициирует новый виток спирали;
• исправление ошибок происходит на этапе тестирования на каждом из витков спирали; фактически часть ошибок исправляется в пределах одного витка посредством связи этапов кодирования и тестирования; ошибки, которые не могут быть исправлены и требуют более глубоких структурных изменений, инициируют новый виток спирали;
• этапы могут перекрываться во времени в пределах одного витка спирали;
• результат появляется в конце каждого витка спирали и подвергается подробному анализу, анализируются новые требования заказчика и инициируется новый виток спирали;
• при переходе от витка к витку происходит накопление и повторное использование программных средств, моделей и прототипов;
• процесс ориентирован на развитие и модификацию системы в процессе ее проектирования, на анализ рисков и издержек в процессе проектирования.
Отметим, что основная особенность данной методологии состоит в концентрации сложности на начальных этапах жизненного цикла ПО (анализ, проектирование); при этом сложность и трудоемкость последующих этапов в пределах одного витка спирали относительно невысокие. По этой методологии предлагается способ снижения затрат в целом при разработке ПО за счет предотвращения потенциальных ошибок на этапах анализа и проектирования. Этап определения стратегии присутствует на первом витке спирали либо «склеен» с этапом анализа первого витка спирали.
На каждом витке спирали выполняется создание очередной версии продукта, уточняются требования проекта, определяется его качество, и планируются работы следующего витка. Особое внимание уделяется начальным стадиям разработки – анализу и проектированию, где реализуемость тех или иных технических решений проверяется и обосновывается посредством создания прототипов (макетирования).
Макетирование (прототипирование) – это процесс создания модели требуемого программного продукта.
Основная цель макетирования – снять неопределенности в требованиях заказчика
Таким образом, углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который удовлетворяет действительным требованиям заказчика и доводится до реализации.
Спиральная модель позволяет переходить на следующий этап, не дожидаясь полного завершения работы на текущем и решить главную задачу – как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Основная проблема спирального цикла – определение момента перехода на следующую стадию. Для ее решения вводятся временные ограничения на каждой из стадий жизненного цикла, и переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. Планирование производится на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.
Спиральная модель (86-90 г.г.) – делает упор на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проверяется и обосновывается реализуемость технических решений путем создания прототипов. Каждый виток спирали соответствует поэтапно модели создания фрагмента или версии программного изделия, на нем уточняются цели и характеристики проекта, определяется его качество, планируются работы следующего витка спирали. Таким образом, углубляются и последовательно конкретизируются детали проекта, и в результате выбирается обоснованный вариант, который доводится до реализации.
Спиральная модель обладает такими преимуществами:
§ Накопление и повторное использование программных средств, моделей и прототипов
§ Ориентация на развитие и модификацию ПО в процессе его проектирования
§ Анализ риска и издержек в процессе проектировании.
На спиральной модели основана технология быстрой разработки приложений (RAD-технология).
На практике наибольшее распространение получили две основные модели жизненного цикла: каскадная и спиральная модель.
Дата добавления: 2018-02-15; просмотров: 1819; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!