Спиральная модель жизненного цикла информационной системы

 

Итерационная модель.Создание комплексных ЭИС предпо­лагает проведение увязки проектных решений, получаемых при реализации отдельных задач. Подход к проектированию «снизу-вверх» обусловливает необходимость таких итерационных возвра­тов, когда проектные решения по отдельным задачам комплекту­ются в общие системные решения и при этом возникает потреб­ность в пересмотре более ранних требований. Как правило, вследствие большого числа итераций возникают рассог­ласования в выполненных проектных решениях и документации. Запутанность функциональной и системной архитектуры создан­ной ЭИС, трудность в использовании проектной документации вызывают на стадиях внедрения и эксплуатации сразу необходи­мость перепроектирования всей системы. Длительный жизненный цикл разработки ЭИС заканчивается этапом внедрения, за кото­рым начинается жизненный цикл создания новой ЭИС.

Спиральная модель.Используется подход к организации про­ектирования ЭИС «сверху-вниз», когда сначала определяется со­став функциональных подсистем, а затем постановка отдельных задач. Соответственно сначала разрабатываются такие общесис­темные вопросы, как организация интегрированной базы данных, технология сбора, передачи и накопления информации, а затем технология решения конкретных задач.

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

В основе спиральной модели жизненного цикла лежит при­менение прототипной технологии или RAD-технологии (rapid application development – технологии быстрой разработки приложений) – J. Martin. Rapid Application Development. New York: Macmillan, 1991. Согласно этой технологии ЭИС разрабатывает­ся путем расширения программных прототипов, повторяя путь от детализации требований к детализации программного кода. Естественно, что при прототипной технологии сокращается чис­ло итераций и меньше возникает ошибок и несоответствий, ко­торые необходимо исправлять на последующих итерациях, а само проектирование ЭИС осуществляется более быстрыми темпами, упрощается создание проектной документации. Для более точ­ного соответствия проектной документации разработанной ЭИС все большее значение придается ведению общесистемного репозитория и использованию CASE-технологий.

Жизненный цикл при использовании RAD-технологии пред­полагает активное участие на всех этапах разработки конечных пользователей будущей системы и включает четыре основные стадии информационного инжиниринга:

анализ и планирование информационной стратегии. Пользова­тели вместе со специалистами-разработчиками участвуют в идентификации проблемной области;

проектирование. Пользователи принимают участие в техничес­ком проектировании под руководством специалистов-разра­ботчиков;

конструирование. Специалисты-разработчики проектируют ра­бочую версию ЭИС с использованием языков 4-го поколения;

внедрение. Специалисты-разработчики обучают пользователей работе в среде новой ЭИС.

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

Каждая итерация представляет собой законченный цикл разработки, приводящий к выпуску внутренней или внешней версии изделия (или подмножества конечно­го продукта), которое совершенствуется от итерации к итерации, чтобы стать за­конченной системой (рис. 18).

Рис.18.Спиральная модель жизненного цикла информационной системы

 

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

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

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

Преимущества итерационного подхода заключается в следующим:

· Итерационная разработка существенно упрощает внесение изменений в проект при изменение требований заказчика.

· При использовании спиральной модели отдельные элементы информационной системы интегрируются в единое целое постепенно. При итерационном подхо­де интеграция производится фактически непрерывно. Поскольку интеграция начинается с меньшего количества элементов, то возникает гораздо меньше проблем при ее проведении (по некоторым оценкам, при использовании кас­кадной модели разработки интеграция занимает до 40 % всех затрат в конце проекта).

· Уменьшение уровня рисков. Данное преимущество является следствием пре­дыдущего, так как риски обнаруживаются именно во время интеграции. Поэто­му уровень рисков максимален в начале разработки проекта. По мере продви­жения разработки ожидаемый риск уменьшается. Данное утверждение спра­ведливо при любой модели разработки, однако при использовании спиральной модели уменьшение уровня рисков происходит с наибольшей скоростью. Это связано с тем, что при итерационном подходе интеграция выполняется уже на первой итерации и при выполнении начальных итераций выявляются многие аспекты проекта, такие как пригодность используемых инструментальных средств и программного обеспечения, квалификация разработчиков и т. п. На рис. 19 приведены в сравнении графики зависимости уровня рисков от времени разра­ботки при использовании каскадного и итерационного подходов.

Рис. 19.Зависимость рисков от времени разработки

· Итерационная разработка обеспечивает большую гибкость в управлении про­ектом, давая возможность внесения тактических изменений в разрабатываемое изделие. Например, можно сократить сроки разработки за счет уменьшения функциональности системы или использовать в качестве составных частей си­стемы продукцию сторонних фирм вместо собственных разработок. Это может быть актуальным в условиях конкурентной борьбы, когда необходимо противостоять продвижению изделия, предлагаемого конкурентами.

· итерационный подход упрощает повторное использование компонентов (по­зволяет использовать компонентный подход к программированию – более по­дробно об этом мы будем говорить в следующей главе). Это обусловлено тем, что гораздо проще выявить (идентифицировать) общие части проекта, когда они уже частично разработаны, чем пытаться выделить их в самом начале про­екта. Анализ проекта после проведения нескольких начальных итераций по­зволяет выявить общие, многократно используемые компоненты, которые на последующих итерациях будут совершенствоваться;

· спиральная модель позволяет получить более надежную и устойчивую систе­му. Это связано с тем, что по мере развития системы ошибки и слабые места обнаруживаются и исправляются на каждой итерации. Одновременно могут корректироваться критические параметры эффективности, что при использо­вании каскадной модели выполняется только перед внедрением системы;

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

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

Планирование работ обычно проводится на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.