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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать документ)

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

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

 

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

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

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

 

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

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

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

 

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

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

Адаптированные  модели жизненного цикла  разработки ПО

 

     Иногда менеджер проекта выбирает модель жизненного цикла из какой-нибудь книги и затем руководствуется ею в процессе разработки. В других случаях может оказаться, что отсутствует именно та модель, которая в достаточной мере соответствовала бы потребностям проекта. Предположим, что требуется жизненный цикл, в котором предусмотрены возможные риски, но применение спиральной модели неоправданно. В этом случае нужно начать со спиральной модели и адаптировать ее к определенным потребностям. А если необходимо обеспечить функциональные возможности на уровне инкрементов, но также необходимо принять во внимание вопросы, связанные с надежностью системы? Тогда потребуется объединить инкрементную модель с V-образной моделью. Далее приведено несколько примеров адаптированных моделей.

    Быстрое отслеживание

 

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

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

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

    Параллельный  инжиниринг

 

     Процесс параллельного инжиниринга (Concurrent engineering, СЕ) заключается в создании продуктов более высокого качества за меньший период времени.

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

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

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

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

    Спиральная  модель "Win-Win"

 

     Спиральная  модель "Win-Win" содержит в себе больше фаз, в которых внимание сконцентрировано на участии заказчика в процессе разработки. Это достигается путем добавления к начальной фазе каждого цикла так называемых действий Теории W (Theory W activities). Теория W— это принцип менеджмента, при реализации которого особое значение придается ключевым организаторам совместного дела, выполняющим разработку системы (пользователь, заказчик, разработчик, наладчик, создатель интерфейсов и т.д.), которые станут "победителями", если проект окажется успешным.

     В этом методе, основанном на постоянном согласовании, циклы состоят из следующих  фаз или стадий:

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

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

     Спиральная  модель "win-win" имеет следующие преимущества:

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

    Эволюционный/инкрементный принцип

 

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

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