Автор работы: Пользователь скрыл имя, 06 Июня 2012 в 12:50, лабораторная работа
Существует множество различных моделей или представлений жизненного цикла разработки ПО. Все они представляют собой логически построенную последователь¬ность действий, начиная с определения потребности и заканчивая производством ПО. Каждая модель представляет собой процесс, который структурно состоит из эта¬пов, направленных на обеспечение целостности соответствующих субкомпонентных действий. Каждая фаза снижает степень риска при выполнении проекта, что достига¬ется благодаря применению критериев входа и выхода для определения дальнейшего хода действий. По завершении каждой фазы получают внутренние или результатив¬ные внешние действия.
Жизненные циклы разработки ПО иногда называют методиками менеджмента жиз¬ненных циклов. Эти методики охватывают все стандарты и процедуры, оказывающие влияние на планирование, сбор требований и анализ, разработку проекта, конструиро-вание и внедрение программной системы. С целью обеспечения эффективности произ-вольного жизненного цикла его потребуется аккуратно выбрать и зачастую настроить (подогнать и разработать) в соответствии с задачами и целями определенного проекта.
Вместо того чтобы начать разработку "с нуля", в некоторых популярных, обоб-щенных моделях обеспечиваются готовые начальные схемы. Каждая модель имеет присущие ей преимущества и недостатки, определяющие ее применение для опреде-ленных типов проектов.
Модель, выбранная для какого-либо проекта, должна обеспечивать потребности организации, соответствовать типу выполняемых работ, а также навыкам и инстру-ментальным средствам, которые имеются у специалистов-практиков.
Убедившись в эффективности использования моделей жизненного цикла в рамках процесса, вы можете помочь вашей организации достичь гибкости при выполнении проекта. В каждом проекте, выполняемом организацией, можно применить отдельную модель жизненного цикла, которая подвергается настройке. Однако интеграция моде¬лей жизненного цикла с "каркасом" процесса — это уже другая стадия в ходе достижения более высокого уровня завершенности процесса разработки ПО. Организация должна осознать то, что разрабатываемые программы должны обладать постоянными характе-ристиками. В то же время реализация этого процесса должна быть гибкой, что обеспе-чивается с помощью настраиваемых моделей жизненного цикла разработки ПО.
Модели жизненного цикла разработки ПО 4
Модели жизненного цикла разработки ПО 4
Определение модели ЖЦ разработки ПО 4
Каскадная модель жизненного цикла разработки ПО 6
Краткое описание фаз каскадной модели 8
Преимущества каскадной модели 9
Недостатки каскадной модели 10
Область применения каскадной модели 11
V-образная модель жизненного цикла разработки ПО 12
Фазы V-образной модели 12
Преимущества V-образной модели 13
Недостатки V-образной модели 14
Область применения V-образной модели 14
Модель прототипирования жизненного цикла разработки ПО 14
Определения прототипирования 16
Описание структурной модели эволюционного прототипирования 16
Преимущества структурной эволюционной модели быстрого прототипирования 18
Недостатки структурной эволюционной модели быстрого прототипирования: 19
Область применения структурной эволюционной модели быстрого прототипирования 20
Модель быстрой разработки приложений RAD (Rapid Application Development) 21
Фазы модели RAD 21
Преимущества модели RAD 22
Недостатки модели RAD 23
Область применения модели RAD 23
Инкрементная модель жизненного цикла разработки ПО 24
Фазы инкрементной модели ЖЦ разработки ПО 25
Преимущества инкрементной модели 25
Недостатки инкрементной модели 26
Область применения инкрементной модели 26
Спиральная модель жизненного цикла разработки ПО 27
Стадии разработки спиральной модели 28
Преимущества спиральной модели 29
Недостатки спиральной модели 30
Область применения спиральной модели 30
Адаптированные модели жизненного цикла разработки ПО 31
Быстрое отслеживание 31
Параллельный инжиниринг 32
Спиральная модель "Win-Win" 32
Эволюционный/инкрементный принцип 33
Принцип V-образной инкрементной модели 33
Выбор приемлемой модели жизненного цикла разработки ПО 34
Отличительные категории проекта 34
Подгонка модели жизненного цикла разработки ПО 37
Резюме 38
Инкрементная разработка представляет собой процесс частичной реализации всей системы и медленного наращивания функциональных возможностей. Этот подход позволяет уменьшить затраты, понесенные до момента достижения уровня исходной производительности. С помощью этой модели ускоряется процесс создания функционирующей системы. Этому способствует применяемый принцип компоновки из стандартных блоков, благодаря которому обеспечивается контроль над процессом разработки изменяющихся требований.
Инкрементная модель действует по принципу каскадной модели с перекрытиями, благодаря чему функциональные возможности продукта, пригодные к эксплуатации, формируется раньше. Для этого может понадобиться полный заранее сформированный набор требований, которые выполняются в виде последовательных, небольших по размеру проектов, либо выполнение проекта может начаться с формулирования общих целей, которые затем уточняются и реализуются группами разработчиков.
Подобное
усовершенствование каскадной модели
одинаково эффективно при использовании
как в случае чрезвычайно больших, так
и небольших проектов.
А теперь будет рассмотрен небольшой пример продукта, разработанного в результате выполнения трех инкрементных этапов. Здесь на инкременте 1 определяются базовые алгоритмы и выходные данные, на инкременте 2 добавляются некоторые ценные возможности производственного типа, такие как возможность занесения в файл и выборки результатов предыдущих прогонов программы, а на инкременте 3 добавляются различные полезные свойства к пользовательскому интерфейсу, а также к заранее определенным вычислительным свойствам системы.
Инкрементная
модель описывает процесс, при выполнении
которого первостепенное внимание уделяется
системным требованиям, а затем их реализации
в группах разработчиков. Как правило,
со временем инкременты уменьшаются и
реализуют каждый раз меньшее количество
требований. Каждая последующая версия
системы добавляет к предыдущей определенные
функциональные возможности до тех пор,
пока не будут реализованы все запланированные
возможности. В этом случае можно уменьшить
затраты, контролировать влияние изменяющихся
требований и ускорить создание функциональной
системы благодаря использованию метода
компоновки из стандартных блоков.
Предполагается, что на ранних этапах жизненного цикла (планирование, анализ и разработка проекта) выполняется конструирование системы в целом. На этих этапах определяются относящиеся к ним инкременты и функции.
Каждый инкремент затем проходит через остальные фазы жизненного цикла: кодирование, тестирование и поставку.
Сначала выполняется конструирование, тестирование и реализация набора функций, формирующих основу продукта, или требований первостепенной важности, играющих основную роль для успешного выполнения проекта либо снижающих степень риска. Последующие итерации распространяются на ядро системы, постепенно улучшая ее функциональные возможности или рабочую характеристику. Добавление функций осуществляется с помощью выполнения существенных инкрементов с целью в комплексного удовлетворения потребностей пользователя. Каждая дополнительная функция аттестуется в соответствии с целым набором требований.
Применяя инкрементную модель при разработке проекта, для которого она подходит в достаточной мере, можно убедиться в следующих ее преимуществах:
При использовании этой модели относительно проекта, для которого она подходит не в достаточной мере, проявляются следующие недостатки:
Менеджер проекта может быть уверен в целесообразности применения модели, если для этого имеются следующие причины:
Спиральная модель воплощает в себе преимущества каскадной модели. При этом в нее также включены анализ рисков, управление ими, а также процессы поддержки и менеджмента. Здесь также предусмотрена разработка программного продукта при использовании метода прототипирования или быстрой разработки приложений посредством применения языков программирования и средств разработки четвертого поколения (и выше).
Модель
отображает базовую концепцию, которая
заключается в том, что каждый цикл представляет
собой набор операций, которому соответствует
такое же количество стадий, как и в модели
каскадного процесса. Причем принимается
во внимание каждая составляющая часть
продукта, и каждый уровень сложности,
начиная с общей формулировки потребностей
и заканчивая кодированием каждой отдельной
программы.
Рис.
6. Спиральная модель
Как показано на рис., в каждый квадрант модели входят целевые и вспомогательные действия. Ниже перечислены эти квадранты.
Выполняется определение целей, таких как рабочая характеристика, выполняемые функции, возможность внесения изменений, решающих факторов достижения успехам и аппаратного/программного интерфейса. Определяются альтернативные способы реализации этой части продукта (конструирование, повторное использование, покупка, субдоговор, и т.п.). Определяются ограничения, налагаемые на применение альтернативных вариантов (затраты, график выполнения, интерфейс, ограничения, относящиеся к среде и др.). Создается документация, подтверждающая риски, связанные с недостатком опыта в данной сфере, применением новой технологии, жесткими графиками, плохо организованными процессами и т.д.;
Выполняется оценка альтернативных вариантов, относящихся к целям и ограничениям. Выполняется определение и разрешение рисков (менеджмент рисков, методика экономически выгодного выбора источников разрешения, оценка остальных связанных с риском ситуаций, когда деньги могут быть потеряны из-за продолжения разработки системы (решения о прекращении/продолжении работ над проектом, и т.п.);
Типичные действия, выполняемые на этой стадии, могут включать в себя создание проекта, критический анализ проекта, разработку кода, проверку кода, тестирование и компоновку продукта. Первая создаваемая версия продукта основывается на том, что попадает в поле зрения заказчика. Затем начинается фаза планирования: программа возвращается в исходное состояние с целью учета реакции клиента. Каждая последующая версия более точно воплощает требования заказчика. Степень вносимых изменений от одной версии программы к следующей уменьшается с каждой новой версией, что в конечном счете приводит к получению функциональной системы;
Типичные
действия на этой стадии могут
включать в себя разработку плана проекта,
разработку плана менеджмента конфигурацией,
разработку плана тестирования и разработку
плана установки программного продукта.
Чтобы лучше понять спиральную модель, изображенную на рис., нужно начинать с центра в квадранте 1 (определение целей, альтернативных вариантов и ограничений), исследовать риски, составить план их разрешения, подготовиться к следующей итерации и переместиться вправо.
Для каждой итерации следует определить цели, альтернативные варианты и ограничения; установить и разрешить риски; дать оценку альтернативным вариантам разработать результативные данные для этой итерации и подтвердить их правильность; спланировать следующую итерацию. Затем следует выбрать метод осуществления следующей итерации в случае, если требуется ее выполнять.
В квадрантах отсутствует заданное количество циклов. Их количество нужно выбрать по необходимости, а итерации можно адаптировать под определенный проект.
Следует отметить тот факт, что кодирование выполняется значительно позже, чем в других моделях. Смысл заключается в том, чтобы минимизировать риск посредством последовательных уточнений требований, выдвигаемых пользователем. В каждом "мини-проекте" (движении по спирали) рассматривается один или несколько главных факторов риска, начиная с фактора наивысшего риска. Типичные риски включают в себя неправильно истолкованные требования, архитектуру, потенциальные проблемы, связанные с эксплуатацией продукта, проблемы в базовой технологии и т.д.
При использовании принципа прототипирования разработчики могут избегать проверенных практических методов разработки системы и неправильно использовать модель, мотивируя это причиной разработки "на скорую руку". Надлежащее использование спиральной модели или одного из ее вариантов поможет избежать "хакерства" и нарушения дисциплины. Как показано на рис., после проведения анализа и оценки рисков в большом объеме в "хвосте" спиральной модели изображены этапы процесса, напоминающие каскадную модель.
Информация о работе Обзор моделей жизненного цикла разработки программного обеспечения