Обзор моделей жизненного цикла разработки программного обеспечения

Автор работы: Пользователь скрыл имя, 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 файл

Conspect.doc

— 660.50 Кб (Скачать документ)

    Преимущества  каскадной модели

 

    Нетрудно  заметить, что каскадная модель имеет  множество преимуществ, если ее использовать в проекте, для которого она достаточно приемлема. Ниже перечислены эти  преимущества:

  • модель хорошо известна потребителям, не имеющим отношения к разработке и эксплуатации программ, и конечным пользователям (она часто используется другими организациями для отслеживания проектов, не связанных с разработкой ПО);
  • она упорядочение справляется со сложностями и хорошо срабатывает для тех проектов, которые достаточно понятны, но все же трудно разрешимы;
  • она весьма доступна для понимания, так как преследуется простая цель — выполнить необходимые действия;
  • она проста и удобна в применении, так как процесс разработки выполняется поэтапно;
  • ее структурой может руководствоваться даже слабо подготовленный в техническом плане или неопытный персонал;
  • она отличается стабильностью требований;
  • она представляет собой шаблон, в который можно поместить методы для выполнения анализа, проектирования, кодирования, тестирования и обеспечения;
  • она хорошо срабатывает тогда, когда требования к качеству доминируют над требованиями к затратам и графику выполнения проекта;
  • она способствует осуществлению строгого контроля менеджмента проекта;
  • при правильном использовании модели дефекты можно обнаружить на более ранних этапах, когда их устранение еще не требует относительно больших затрат;
  • она облегчает работу менеджеру проекта по составлению плана и Комплектации команды разработчиков;
  • она позволяет участникам проекта, завершившим действия на выполняемой ими фазе, принять участие в реализации других проектов;
  • она определяет процедуры по контролю за качеством. Каждые полученные данные подвергаются обзору. Такая процедура используется командой разработчиков для определения качества системы;
  • стадии модели довольно хорошо определены и понятны;
  • ход выполнения проекта легко проследить с помощью использования временной шкалы (или диаграммы Гантта), поскольку момент завершения каждой фазы используется в качестве стадии.

    Недостатки  каскадной модели

 

    Но  при использовании каскадной  модели для проекта, который трудно назвать подходящим для нее, проявляются следующими недостатки:

  • в основе модели лежит последовательная линейная структура, в результате чего каждая попытка вернуться на одну или две фазы назад, чтобы исправить какую-либо проблему или недостаток, приведет к значительному увеличению затрат и сбою в графике;
  • она не может предотвратить возникновение итераций между фазами, которые так часто встречаются при разработке ПО, поскольку сама модель создается согласно стандартному циклу аппаратного инжиниринга;
  • она не отображает основное свойство разработки ПО, направленное на разрешение задач. Отдельные фазы строго связаны с определенными действиями, что отличается от реальной работы персонала или коллективов;
  • она может создать ошибочное впечатление о работе над проектом. Выражение типа "35 процентов выполнено" — не несет никакого смысла и не является показателем для менеджера проекта;
  • интеграция всех полученных результатов происходит внезапно в завершающей стадии работы модели. В результате такого единичного прохода через весь процесс, связанные с интегрированием проблемы, как правило, дают о себе знать слишком поздно. Следовательно, проявятся не обнаруженные ранее ошибки или конструктивные недостатки, повысить степень риска при небольшом задаче времени на восстановление продукта;
  • у клиента едва ли есть возможность ознакомиться с системой заранее, это происходит лишь в самом конце жизненного цикла. Клиент не имеет возможности воспользоваться доступными промежуточными результатами, и отзывы пользователей нельзя передать обратно разработчикам. Поскольку готовый продукт не доступен вплоть до окончания процесса, пользователь принимает участие в процессе разработки только в самом начале — при сборе требований, и в конце — во время приемочных испытаний;
  • пользователи не могут убедиться в качестве разработанного продукта до окончания всего процесса разработки. Они не имеют возможности оценить качество, если нельзя увидеть готовый продукт разработки;
  • у пользователя нет возможности постепенно привыкнуть к системе. Процесс обучения происходит в конце жизненного цикла, когда ПО уже запущено в эксплуатацию;
  • проект можно выполнить, применив упорядоченную каскадную модель, и привести его в соответствие с письменными требованиями, что, однако, не гарантирует его запуска в эксплуатацию;
  • каждая фаза является предпосылкой для выполнения последующих действий, что превращает такой метод в рискованный выбор для систем, не имеющих аналогов, так как он не поддается гибкому моделированию;
  • для каждой фазы создаются результативные данные, которые по его завершению считаются замороженными. Это означает, что они не должны изменяться на следующих этапах жизненного цикла продукта. Если элемент результативных данных какого-либо этапа изменяется (что встречается весьма часто), на проект окажет негативное влияние изменение графика, поскольку ни модель, ни план не были рассчитаны на внесение и разрешение изменения на более поздних этапах жизненного цикла;
  • все требования должны быть известны в начале жизненного цикла, но клиенты редко могут сформулировать все четко заданные требования на этот момент разработки. Модель не рассчитана на динамические изменения в требованиях на протяжении всего жизненного цикла, так как получаемые данные "замораживаются". Использование модели может повлечь за собой значительные затраты, если требования в недостаточной мере известны или подвержены динамическим изменениям во время протекания жизненного цикла;
  • возникает необходимость в жестком управлении и контроле, поскольку в модели не предусмотрена возможность модификации требований;
  • модель основана на документации, а значит, количество документов может быть избыточным;
  • весь программный продукт разрабатывается за один раз. Нет возможности разбить систему на части. В результате взятых разработчиками обязательств разработать целую систему за один раз могут возникнуть проблемы с финансированием проекта. Происходит распределение больших денежных средств, а сама модель едва ли позволяет повторно распределить средства, не разрушив при этом проект в процессе его выполнения;
  • отсутствует возможность учесть переделку и итерации за рамками проекта.

    Область применения каскадной  модели

 

    Из-за недостатков каскадной модели ее применение необходимо ограничить ситуациями, в которых требования и их реализация максимально четко определены и понятны.

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

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

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

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

V-образная модель жизненного цикла разработки ПО

 

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

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

 

    Рис. 4. V –образная модель жизненного цикла разработки ПО

    Фазы  V-образной модели

 

       Ниже  подано краткое описание каждой фазы V-образной модели, начиная от планирования проекта и требований вплоть до приемочных испытаний:

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

    Преимущества  V-образной модели

 

       При использовании V-образной модели при разработке проекта, для которого она в достаточной мере подходит, обеспечивается несколько преимуществ:

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

    Недостатки  V-образной модели

 

    При использовании V-образной модели в работе над проектом, для которого она не является в достаточной степени приемлемой, становятся очевидными ее недостатки:

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

Информация о работе Обзор моделей жизненного цикла разработки программного обеспечения