Модели ЖЦ.Сравнительный анализ моделей.

ЖЦ-весь период времени начиная с момента возникновения замысла(идеи)и заканчивая моментом выхода ПС из эксплуатации.ЖЦ включает все процессы создания и использования ПС.Различают следующие стадии ЖЦ ПС:разработку ПС,производство программных изделий (ПИ) и эксплуатацию ПС.каскадная модель ЖЦ(“водопад”),подразумевавшая переход на последующие этапы ЖЦ только после полного окончания работ на предыдущих этапах.Модель предполагает следующие свойства взаимодействия этапов:модель состоит из последовательно расположенных этапов;каждый этап полностью заканчивается до того как начнется следующий;этапы не перекрываются во времени, т.е. следующий этап не начинается пока не завершится предыдущий;возврат к предыдущим этапам не предусматривается или крайне ограничен;результат появляется только в конце разработки.

Рассмотрим подробнее отдельные этапы ЖЦ

1.стратегическое планирование:определение целесообразности разработки,определение необходимых ресурсов для решения задачи;2.анализ требований:спецификация требований к системе в виде“что она должна делать”,но не в виде “как это реализовать”;проверка корректности и реализуемости требований3Проектирование:создается структура будущей программой системы.Можно определить следующие фазы проектирования:проектирование архитектуры,спецификация подсистем,проектирование интерфейса,проектирование компонентов,проектирование структур данных,проектирование алгоритмов.

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

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

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

На смену каскадной модели,жестко регламентирующей последовательность этапов и критерии переходов м/д ними,пришла поэтапная модель с промежуточным контролем.Это итерационная модель разработки ПС с обратными связями м/д этапами.Проверки и корректировки разрабатываемой ИС проводятся на каждом из этапов,что позволяет существенно снизить трудоемкость отладки по сравнению с каскадной моделью.Итерационность модели проявляется в обработке ошибок выявленных промежуточным контролем.Если на каком-либо из этапов в ходе промежуточной проверки обнаружилась ошибка,допущенная на б.ранней стадии разработки, работы этапа,повлекшего ошибку,необходимо провести повторно.При этом,анализируются причины ошибки и корректируются,по необходимости,исх.данные этапа или перечень проводимых работ.Аналог.ситуация возникает если в ходе разработки ИС возникают новые требования заказчика или изменяются какие-либо условия функционирования ИС.Спиральная модель особое внимание уделяется начальным этапам проектирования:анализу требований,проектированию спецификаций,предварительному проектированию и детальному проектированию.Каждый виток спирали соответствует поэтапной модели создания фрагмента или версии ПС,уточняются цели и требования к ПС,оценивается качество разработанного фрагмента или версии ПС и планируются работы следующего витка.То,углубляются и конкретизируются все детали проектируемого ПС,и в результате получается вариант,кот удовлетворяет всем требованиям заказчика.

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