Жизненный цикл программного обеспечения (ПО) – период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации.
Для облегчения проектирования, создания и выпуска качественного программного продукта существуют различные модели жизненного цикла ПО.
Требования к проекту являются определяющими при выборе подхода к циклу разработки. В данной статье мы рассмотрим основные методологии в разработке ПО.
Каскадная или водопадная модель (Waterfall model)
При такой модели каждая из фаз проекта проводится единожды, следуя одна за другой. Для того, чтобы начать следующую стадию, необходимо полное завершение предыдущей.
Плюсы:
- все стадии проекта выполняются в строгой последовательности;
- строгость этапов позволяет планировать сроки завершения всех работ и соответствующие ресурсы (денежные и человеческие);
- требования остаются неизменными в течение всего цикла.
Минусы:
- сложности при формулировке четких требований и невозможность их изменения;
- тестирование начинается только с середины развития проекта;
- до завершения процесса разработки пользователи не могут убедиться, качествен ли разрабатываемый продукт.
V-образная модель (V-model)
Данная модель стала последователем каскадной модели, так как с ее помощью можно устранить недостатки, которые были ранее.
Суть этой модели состоит в том, что процессы на всех этапах контролируются, чтобы убедиться в возможности перехода на следующий уровень. Уже на стадии написания требований начинается процесс тестирования.
Плюсы:
- строгая этапизация;
- минимизация рисков и устранение потенциальных проблем за счет того, что тестирование появляется на самых ранних стадиях;
- усовершенствованный тайм-менеджмент.
Минусы:
- невозможность адаптироваться к измененным требованиям заказчика;
- длительное время разработки (иногда длится до нескольких лет) приводит к тому, что продукт может быть уже не нужен заказчику, поскольку его потребности меняются;
- нет действий, направленных на анализ рисков.
Инкрементная модель (Incremental model)
При инкрементной модели (англ. increment – увеличение, приращение) программное обеспечение разрабатывается с линейной последовательностью стадий, но в несколько инкрементов (версий). Таким образом улучшение продукта проходит запланировано все время пока жизненный цикл разработки ПО не завершится.
Требования к системе определяются в самом начале работы, после чего процесс разработки проводится в виде последовательности версий, каждая из которых является законченным и работоспособным продуктом.
Плюсы:
- заказчик может дать свой отзыв касательно каждой версии продукта;
- есть возможность пересмотреть риски, которые связаны с затратами и соблюдением графика;
- привыкание заказчика к новой технологии происходит постепенно.
Минусы:
- функциональная система должна быть полностью определена в начале жизненного цикла для выделения итераций;
- при постоянных изменениях структура системы может быть нарушена;
- сроки сдачи системы могут быть затянуты из-за ограниченности ресурсов (исполнители, финансы).
Спиральная модель (Spiral model)
В спиральной модели жизненный путь разрабатываемого продукта изображается в виде спирали, которая, начавшись на этапе планирования, раскручивается с прохождением каждого следующего шага. Таким образом, на выходе из очередного витка получаем готовый протестированный прототип, который дополняет существующую сборку. Прототип, удовлетворяющий всем требованиям, готов к выпуску.
Плюсы:
- управлению рисками уделяется особое внимание;
- дополнительные функции могут быть добавлены на поздних этапах;
- есть возможность гибкого проектирования.
Минусы:
- оценка рисков на каждом этапе является довольно затратной;
- постоянные отзывы и реакция заказчика может провоцировать все новые и новые итерации, которые могут приводить к временному затягиванию разработки продукта;
- более применима для больших проектов.
Гибкая модель (Agile model)
Представляет собой совокупность различных подходов к разработке ПО.
Включает серии подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки (в Scrum итерации называются спринтами), динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля. Отдельная итерация представляет собой миниатюрный программный проект. Одной из основных идей Agile является взаимодействие внутри команды и с заказчиком лицом к лицу.
Плюсы:
- быстрое принятие решений за счет постоянных коммуникаций;
- минимизация рисков;
- облегченная работа с документацией.
Минусы:
- большое количество митингов и бесед, что может увеличить время разработки продукта;
- сложно планировать процессы, так как требования постоянно меняются;
- редко используется для реализации больших проектов.
Скрам (Scrum)
Скрам – это гибкая модель разработки ПО, в которой делается акцент на качественном контроле процесса разработки.
Роли в методологии (Scrum Master, Product Owner, Team) позволяют четко распределить обязанности в процессе разработки. За успех Scrum в проекте отвечает Scrum Master и является связующим звеном между менеджментом и командой. За разработку продукта отвечает Product Owner, который также ставит задачи и принимает окончательные решения для команды.
Команда – это единое целое, в ней результаты оцениваются не по каждому отдельному участнику, а по тому, что получается в итоге у всех. Спринты в данной методологии длятся от 1 до 4 недель. После каждого спринта команда предоставляет вариант законченного продукта.
Плюсы:
- быстрая обратная связь от специалистов в разных сферах (дизайнеров, архитекторов, тестировщиков и пр.);
- благодаря вовлеченности тестировщика в работу происходит быстрое добавление нового функционала и быстрый запуск продукта с минимальными функциями;
- самостоятельная и самоорганизованная команда.
Минусы:
- некоторые люди, знающие продукт, становятся незаменимыми, так как документация не предоставляется в процессе разработки;
- невозможно спланировать точную дату завершения, так как всё уточняется по результатам предыдущего спринта;
- заказчики не всегда могут понять суть данной методологии и необходимо потратить время на “ликбез”.
Существует множество вариантов моделей разработки ПО. Выбор того или иного варианта зависит от особенностей и требований проекта, моделей оплаты. Частично методологии пересекаются и похожи друг на друга, но тем не менее, каждая находит своих почитателей.
Источник: https://training.qatestlab.com/blog/technical-articles/popular-software-development-life-cycles/
Модели жизненного цикла программного обеспечения
Здравствуйте, уважаемые хабровчане! Думаю будет кому-то интересно вспомнить какие модели разработки, внедрения и использования программного обеспечения существовали ранее, какие модели в основном используются сейчас, зачем и что это собственно такое.
В этом и будет заключаться моя небольшая тема. Собственно, что же такое жизненный цикл программного обеспечения — ряд событий, происходящих с системой в процессе ее создания и дальнейшего использования.
Говоря другими словами, это время от начального момента создания какого либо программного продукта, до конца его разработки и внедрения. Жизненный цикл программного обеспечения можно представить в виде моделей.
Модель жизненного цикла программного обеспечения — структура, содержащая процессы действия и задачи, которые осуществляются в ходе разработки, использования и сопровождения программного продукта.
Эти модели можно разделить на 3 основных группы:
- Инженерный подход
- С учетом специфики задачи
- Современные технологии быстрой разработки
Теперь рассмотрим непосредственно существующие модели (подклассы) и оценим их преимущества и недостатки.
Модель кодирования и устранения ошибок
Совершенно простая модель, характерная для студентов ВУЗов. Именно по этой модели большинство студентов разрабатывают, ну скажем лабораторные работы.
Данная модель имеет следующий алгоритм:
- Постановка задачи
- Выполнение
- Проверка результата
- При необходимости переход к первому пункту
Модель также ужасно устаревшая. Характерна для 1960-1970 гг.
, по-этому преимуществ перед следующими моделями в нашем обзоре практически не имеет, а недостатки на лицо. Относится к первой группе моделей.
Каскадная модель жизненного цикла программного обеспечения (водопад)
Алгоритм данного метода, который я привожу на схеме, имеет ряд преимуществ перед алгоритмом предыдущей модели, но также имеет и ряд весомых недостатков.
Преимущества:
- Последовательное выполнение этапов проекта в строгом фиксированном порядке
- Позволяет оценивать качество продукта на каждом этапе
Недостатки:
- Отсутствие обратных связей между этапами
- Не соответствует реальным условиям разработки программного продукта
Относится к первой группе моделей.
Каскадная модель с промежуточным контролем (водоворот)
Данная модель является почти эквивалентной по алгоритму предыдущей модели, однако при этом имеет обратные связи с каждым этапом жизненного цикла, при этом порождает очень весомый недостаток: 10-ти кратное увеличение затрат на разработку. Относится к первой группе моделей.
V модель (разработка через тестирование)
Данная модель имеет более приближенный к современным методам алгоритм, однако все еще имеет ряд недостатков. Является одной из основных практик экстремального программирования.
Модель на основе разработки прототипа
Данная модель основывается на разработки прототипов и прототипирования продукта.
Прототипирование используется на ранних стадиях жизненного цикла программного обеспечения:
- Прояснить не ясные требования (прототип UI)
- Выбрать одно из ряда концептуальных решений (реализация сцинариев)
- Проанализировать осуществимость проекта
Классификация протопипов:
- Горизонтальные и вертикальные
- Одноразовые и эволюционные
- бумажные и раскадровки
Горизонтальные прототипы — моделирует исключительно UI не затрагивая логику обработки и базу данных. Вертикальные прототипы — проверка архитектурных решений. Одноразовые прототипы — для быстрой разработки. Эволюционные прототипы — первое приближение эволюционной системы. Модель принадлежит второй группе.
Спиральная модель жизненного цикла программного обеспечения
Спиральная модель представляет собой процесс разработки программного обеспечения, сочетающий в себе как проектирование, так и постадийное прототипирование с целью сочетания преимуществ восходящей и нисходящей концепции.
Преимущества:
- Быстрое получение результата
- Повышение конкурентоспособности
- Изменяющиеся требования — не проблема
Недостатки:
- Отсутствие регламентации стадий
Третьей группе принадлежат такие модели как экстремальное программирование (XP), SCRUM, инкриментальная модель (RUP), но о них я бы хотел рассказать в отдельном топике.
Большое спасибо за внимание!
Источник: https://habr.com/post/111674/
Жизненный цикл программного обеспечения
Следует начать с определения, Жизненный цикл программного обеспечения (Software Life Cycle Model) — это период времени, который начинается с момента принятия решения о создании программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО.
Модели Жизненного цикла программного обеспечения
Жизненный цикл можно представить в виде моделей. В настоящее время наиболее распространенными являются: каскадная, инкрементная (поэтапная модель с промежуточным контролем) и спиральная модели жизненного цикла.
Каскадная модель
Каскадная модель (англ. waterfall model) — модель процесса разработки программного обеспечения, жизненный цикл которой выглядит как поток, последовательно проходящий фазы анализа требований, проектирования. реализации, тестирования, интеграции и поддержки.
Процесс разработки реализуется с помощью упорядоченной последовательности независимых шагов. Модель предусматривает, что каждый последующий шаг начинается после полного завершения выполнения предыдущего шага.
На всех шагах модели выполняются вспомогательные и организационные процессы и работы, включающие управление проектом, оценку и управление качеством, верификацию и аттестацию, менеджмент конфигурации, разработку документации.
В результате завершения шагов формируются промежуточные продукты, которые не могут изменяться на последующих шагах.
Жизненный цикл традиционно разделяют на следующие основные этапы:
- Анализ требований,
- Проектирование,
- Кодирование (программирование),
- Тестирование и отладка,
- Эксплуатация и сопровождение.
Каскадная модель Жизненного цикла
Достоинства модели:
- стабильность требований в течение всего жизненного цикла разработки;
- на каждой стадии формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности;
- определенность и понятность шагов модели и простота её применения;
- выполняемые в логической последовательности этапы работ позволяют планировать сроки завершения всех работ и соответствующие ресурсы (денежные. материальные и людские).
Каскадная модель хорошо зарекомендовала себя при построении относительно простых ПО, когда в самом начале разработки можно достаточно точно и полно сформулировать все требования к продукту.
Недостатки модели:
- сложность чёткого формулирования требований и невозможность их динамического изменения на протяжении пока идет полный жизненный цикл;
- низкая гибкость в управлении проектом;
- последовательность линейной структуры процесса разработки, в результате возврат к предыдущим шагам для решения возникающих проблем приводит к увеличению затрат и нарушению графика работ;
- непригодность промежуточного продукта для использования;
- невозможность гибкого моделирования уникальных систем;
- позднее обнаружение проблем, связанных со сборкой, в связи с одновременной интеграцией всех результатов в конце разработки;
- недостаточное участие пользователя в создании системы — в самом начале (при разработке требований) и в конце (во время приёмочных испытаний);
- пользователи не могут убедиться в качестве разрабатываемого продукта до окончания всего процесса разработки. Они не имеют возможности оценить качество, т.к.нельзя увидеть готовый продукт разработки;
- у пользователя нет возможности постепенно привыкнуть к системе. Процесс обучения происходит в конце жизненного цикла, когда ПО уже запущено в эксплуатацию;
- каждая фаза является предпосылкой для выполнения последующих действий, что превращает такой метод в рискованный выбор для систем, не имеющих аналогов, т.к. он не поддается гибкому моделированию.
Реализовать Каскадную модель жизненного цикла затруднительно ввиду сложности разработки ПС без возвратов к предыдущим шагам и изменения их результатов для устранения возникающих проблем.
Область применения Каскадной модели
Ограничение области применения каскадной модели определяется её недостатками. Её использование наиболее эффективно в следующих случаях:
- при разработке проектов с четкими, неизменяемыми в течение жизненного цикла требованиями, понятными реализацией и техническими методиками;
- при разработке проекта, ориентированного на построение системы или продукта такого же типа, как уже разрабатывались разработчиками ранее;
- при разработке проекта, связанного с созданием и выпуском новой версии уже существующего продукта или системы;
- при разработке проекта, связанного с переносом уже существующего продукта или системы на новую платформу;
- при выполнении больших проектов, в которых задействовано несколько больших команд разработчиков.
Инкрементная модель
(поэтапная модель с промежуточным контролем)
Инкрементная модель (англ. increment — увеличение, приращение) подразумевает разработку программного обеспечения с линейной последовательностью стадий, но в несколько инкрементов (версий), т.е. с запланированным улучшением продукта за все время пока Жизненный цикл разработки ПО не подойдет к окончанию.
Поэтапная модель с промежуточным контролем
Разработка программного обеспечения ведется итерациями с циклами обратной связи между этапами. Межэтапные корректировки позволяют учитывать реально существующее взаимовлияние результатов разработки на различных этапах, время жизни каждого из этапов растягивается на весь период разработки.
В начале работы над проектом определяются все основные требования к системе, подразделяются на более и менее важные. После чего выполняется разработка системы по принципу приращений, так, чтобы разработчик мог использовать данные, полученные в ходе разработки ПО. Каждый инкремент должен добавлять системе определенную функциональность.
При этом выпуск начинают с компонентов с наивысшим приоритетом. Когда части системы определены, берут первую часть и начинают её детализировать, используя для этого наиболее подходящий процесс. В то же время можно уточнять требования и для других частей, которые в текущей совокупности требований данной работы были заморожены.
Если есть необходимость, можно вернуться позже к этой части. Если часть готова, она поставляется клиенту, который может использовать её в работе. Это позволит клиенту уточнить требования для следующих компонентов. Затем занимаются разработкой следующей части системы.
Ключевые этапы этого процесса — простая реализация подмножества требований к программе и совершенствование модели в серии последовательных релизов до тех пор, пока не будет реализовано ПО во всей полноте.
Жизненный цикл данной модели характерен при разработке сложных и комплексных систем, для которых имеется четкое видение (как со стороны заказчика, так и со стороны разработчика) того, что собой должен представлять конечный результат. Разработка версиями ведется в силу разного рода причин:
- отсутствия у заказчика возможности сразу профинансировать весь дорогостоящий проект;
- отсутствия у разработчика необходимых ресурсов для реализации сложного проекта в сжатые сроки;
- требований поэтапного внедрения и освоения продукта конечными пользователями. Внедрение всей системы сразу может вызвать у её пользователей неприятие и только “затормозить” процесс перехода на новые технологии. Образно говоря, они могут просто “не переварить большой кусок, поэтому его надо измельчить и давать по частям”.
Достоинства и недостатки этой модели (стратегии) такие же, как и у каскадной (классической модели жизненного цикла). Но в отличие от классической стратегии заказчик может раньше увидеть результаты.
Уже по результатам разработки и внедрения первой версии он может незначительно изменить требования к разработке, отказаться от нее или предложить разработку более совершенного продукта с заключением нового договора.
Достоинства:
- затраты, которые получаются в связи с изменением требований пользователей, уменьшаются, повторный анализ и совокупность документации значительно сокращаются по сравнению с каскадной моделью;
- легче получить отзывы от клиента о проделанной работе — клиенты могут озвучить свои комментарии в отношении готовых частей и могут видеть, что уже сделано. Т.к. первые части системы являются прототипом системы в целом.
- у клиента есть возможность быстро получить и освоить программное обеспечение — клиенты могут получить реальные преимущества от системы раньше, чем это было бы возможно с каскадной моделью.
Недостатки модели:
- менеджеры должны постоянно измерять прогресс процесса. в случае быстрой разработки не стоит создавать документы для каждого минимального изменения версии;
- структура системы имеет тенденцию к ухудшению при добавлении новых компонентов — постоянные изменения нарушают структуру системы. Чтобы избежать этого требуется дополнительное время и деньги на рефакторинг. Плохая структура делает программное обеспечение сложным и дорогостоящим для последующих изменений. А прерванный Жизненный цикл ПО приводит еще к большим потерям.
Схема не позволяет оперативно учитывать возникающие изменения и уточнения требований к ПО.
Согласование результатов разработки с пользователями производится только в точках, планируемых после завершения каждого этапа работ, а общие требования к ПО зафиксированы в виде технического задания на всё время её создания. Таким образом, пользователи зачастую получаю ПП, не удовлетворяющий их реальным потребностям.
Спиральная модель
Спиральная модель: Жизненный цикл — на каждом витке спирали выполняется создание очередной версии продукта, уточняются требования проекта, определяется его качество и планируются работы следующего витка. Особое внимание уделяется начальным этапам разработки — анализу и проектированию, где реализуемость тех или иных технических решений проверяется и обосновывается посредством создания прототипов.
Спиральная модель жизненного цикла
Данная модель представляет собой процесс разработки программного обеспечения, сочетающий в себе как проектирование, так и постадийное прототипировнаие с целью сочетания преимуществ восходящей и нисходящей концепции, делающая упор на начальные этапы жизненного цикла: анализ и проектирование. Отличительной особенностью этой модели является специальное внимание рискам, влияющим на организацию жизненного цикла.
На этапах анализа и проектирования реализуемость технических решений и степень удовлетворения потребностей заказчика проверяется путем создания прототипов. Каждый виток спирали соответствует созданию работоспособного фрагмента или версии системы.
Это позволяет уточнить требования, цели и характеристики проекта, определить качество разработки, спланировать работы следующего витка спирали.
Таким образом углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который удовлетворяет действительным требованиям заказчика и доводится до реализации.
Жизненный цикл на каждом витке спирали — могут применяться разные модели процесса разработки ПО. В конечном итоге на выходе получается готовый продукт. Модель сочетает в себе возможности модели прототипирования и водопадной модели.
Разработка итерациями отражает объективно существующий спиральный цикл создания системы. Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не дожидаясь полного завершения работы на текущем.
Главная задача — как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Достоинства модели:
- позволяет быстрее показать пользователям системы работоспособный продукт, тем самым, активизируя процесс уточнения и дополнения требований;
- допускает изменение требований при разработке программного обеспечения, что характерно для большинства разработок, в том числе и типовых;
- в модели предусмотрена возможность гибкого проектирования, поскольку в ней воплощены преимущества каскадной модели, и в то же время разрешены итерации по всем фазам этой же модели;
- позволяет получить более надежную и устойчивую систему. По мере развития программного обеспечения ошибки и слабые места обнаруживаются и исправляются на каждой итерации;
- эта модель разрешает пользователям активно принимать участие при планировании, анализе рисков, разработке, а также при выполнении оценочных действий;
- уменьшаются риски заказчика. Заказчик может с минимальными для себя финансовыми потерями завершить развитие неперспективного проекта;
- обратная связь по направлению от пользователей к разработчикам выполняется с высокой частотой и на ранних этапах модели, что обеспечивает создание нужного продукта высокого качества.
Недостатки модели:
- если проект имеет низкую степень риска или небольшие размеры, модель может оказаться дорогостоящей. Оценка рисков после прохождения каждой спирали связана с большими затратами;
- Жизненный цикл модели имеет усложненную структуру, поэтому может быть затруднено её применение разработчиками, менеджерами и заказчиками;
- спираль может продолжаться до бесконечности, поскольку каждая ответная реакция заказчика на созданную версию может порождать новый цикл, что отдаляет окончание работы над проектом;
- большое количество промежуточных циклов может привести к необходимости в обработке дополнительной документации;
- использование модели может оказаться дорогостоящим и даже недопустимым по средствам, т.к. время. затраченное на планирование, повторное определение целей, выполнение анализа рисков и прототипирование, может быть чрезмерным;
- могут возникнуть затруднения при определении целей и стадий, указывающих на готовность продолжать процесс разработки на следующей и
Основная проблема спирального цикла — определение момента перехода на следующий этап.
Для её решения вводятся временные ограничения на каждый из этапов жизненного цикла и переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена.
Планирование производится на основе статистических данных, полученных в предыдущих проектах и личного опыта разработчиков.
Область применения спиральной модели
Применение спиральной модели целесообразно в следующих случаях:
- при разработке проектов, использующих новые технологии;
- при разработке новой серии продуктов или систем;
- при разработке проектов с ожидаемыми существенными изменениями или дополнениями требований;
- для выполнения долгосрочных проектов;
- при разработке проектов, требующих демонстрации качества и версий системы или продукта через короткий период времени;
- при разработке проектов. для которых необходим подсчет затрат, связанных с оценкой и разрешением рисков.
Источник: https://qaevolution.ru/zhiznennyj-cikl-programmnogo-obespecheniya/
15. Модели жизненного цикла разработки программного обеспечения. Каскадная, спиральная модели. Особенности, достоинства, недостатки. Способы применения
Международный стандарт ISOIES 12207 регламентирует структуру жизненного цикла, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания программного обеспечения. По этому стандарту жизненный цикл программного обеспечения базируется на трех группах процессов:
-
основные процессы жизненного цикла, то есть приобретение, поставка, разработка, эксплуатация и сопровождение;
-
вспомогательные процессы, обеспечивающие выполнение основных процессов, то есть документирование, верификация, аттестация, оценка качества и другие;
-
организационные процессы, то есть управление проектами, создание инфраструктуры проекта и обучение.
Разработка включает в себя все работы по созданию программного обеспечения в соответствии с заданными требованиями. Сюда включаются оформление проектной и эксплуатационной документации, подготовка материалов, необходимых для проверки работоспособности и качества программных продуктов.
Основные этапы процесса разработки:
-
анализ требований заказчика;
-
проектирование;
-
реализация (программирование).
- Процесс эксплуатации включает в себя работы по внедрению программного обеспечения в эксплуатацию, в том числе конфигурирование рабочих мест, обучение персонала, локализация проблем эксплуатации и устранение причин их возникновения, модификация программного обеспечения в рамках установленного регламента и подготовка предложений по модернизации системы.
- Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными данными и результатами.
- Жизненный цикл программного обеспечения носит, как правило, итерационный характер, то есть реализуются этапы, начиная с самых ранних, которые циклически повторяются в соответствии с изменением требований внешних условий и введением ограничений.
Модели жизненного цикла программного обеспечения
Существует несколько моделей жизненного цикла, которые определяют порядок исполнения этапов разработки и критерии перехода от этапа к этапу. К настоящему времени наибольшее распространение получили две модели жизненного цикла: каскадная и спиральная.
В существующих ранее однородных информационных системах каждое приложение представляло собой единое целое. Для разработки таких приложений применялась каскадная модель жизненного цикла, которую также называют классической или водопадной.
При использовании каскадной модели разработка рассматривалась как последовательность этапов, причем переход на следующий более низкий этап происходит только после того, как полностью завершены все работы на текущем этапе. Подразумевается, что в каскадной модели разработка начинается на системном уровне и происходит через анализ, проектирование, кодирование, тестирование и сопровождение.
Рисунок 1– Основные этапы разработки каскадной модели
1. Системный анализ задает роль каждого элемента в компьютерной системе и взаимодействие элементов друг с другом. Поскольку программное обеспечение рассматривается как часть большой системы, то анализ начинается с определения требований по всем системным элементам.
Необходимость системного анализа явно проявляется, когда формируется интерфейс программного обеспечения с другими элементами, т.е. с аппаратурой или базами данных. На этом же этапе начинается решение задач планирования проекта.
В ходе планирования проекта определяется объем проектных работ и их риск, необходимые трудозатраты, формируются рабочие задачи и план-график работ.
Анализ требований относится к отдельному программному элементу. На этом этапе уточняются и детализируются функции каждого элемента, его характеристики и интерфейс. На этом же этапе завершается решение задачи планирования проекта.
2. Проектирование состоит в создании:
-
архитектуры программного обеспечения;
-
модульной структуры программного обеспечения;
-
алгоритмической структуры программного обеспечения;
-
структуры данных;
-
входного/выходного интерфейса (входных/выходных форм данных).
При решении задач проектирования основное внимание уделяется качеству будущего программного продукта.
3. Кодирование или разработка состоит в переводе результатов проектирования в код программы.
4. Тестирование – это выполнение программы на выявление дефектов в функциях, логике и форме реализации программного продукта.
5. Сопровождение – это внесение изменений в эксплуатируемое программное обеспечение с целью:
-
исправления ошибок;
-
адаптации к изменениям внешней для программного обеспечения среды;
-
усовершенствование программного обеспечения в соответствии с требованиями заказчика.
Достоинства применения каскадной модели:
-
дает план и временной график по всем этапам проекта, упорядочивая, таким образом, ход разработки;
-
на каждом этапе формируется законченный набор проектной документации, проверенный на полноту и согласованность;
-
выполняемые в логической последовательности этапы работы позволяют планировать сроки завершения всех работ и соответствующие затраты.
Каскадная модель хорошо себя зарекомендовала при построении информационных систем, для которых в самом начале разработки можно достаточно точно сформулировать все требования в системе, например, сложные расчетные системы, различные системы реального времени и т.д.
Недостатки каскадной модели:
-
реальные проекты часто требуют отклонений от стандартной последовательности шагов;
-
каскадная модель основана на точной формулировке исходных требований к программному обеспечению, однако реально в ряде случаев в начале проекта требования заказчика определены только частично;
-
результаты реализации проекта доступны заказчику только после завершения всех работ.
Из-за необходимости в процессе создания программного обеспечения постоянного возврата к предыдущим этапам и уточнения или пересмотра ранее принятых решений реальный процесс разработки программного обеспечения на основе каскадной модели может быть представлен следующей схемой (рис.2).
Рисунок 2 – Процесс разработки программного обеспечения на основе каскадной модели
Ограничение области применения каскадной модели определяется ее недостатками. Ее использование наиболее эффективно в следующих случаях:
-
при разработке проектов с четкими, неизменяемыми в течение ЖЦ требованиями, понятными реализацией и техническими методиками;
-
при разработке проекта, ориентированного на построение системы или продукта такого же типа, как уже разрабатывались разработчиками ранее;
-
при разработке проекта, связанного с созданием и выпуском новой версии уже существующего продукта или системы;
-
при разработке проекта, связанного с переносом уже существующего продукта на новую платформу;
-
при выполнении больших проектов, в которых задействовано несколько больших команд разработчиков.
Спиральная модель жизненного цикла
- Спиральная модель является классическим примером эволюционной стратегии конструирования программного обеспечения.
- Спиральная модель базируется на лучших свойствах каскадной модели жизненного цикла и макетирования, к которым добавляется анализ риска.
- Спиральная модель включает четыре основных этапа, которые периодически повторяются:
-
планирование – это определение целей, вариантов и ограничений;
-
анализ риска – это анализ вариантов и распознавание риска;
-
конструирование – это разработка программного продукта следующего уровня;
-
оценивание – это оценка заказчика текущих результатов конструирования.
При движении по спирали строятся все более полные версии программного обеспечения при продвижении от центра к периферии.
В первом витке спирали определяются начальные цели, варианты и ограничения, распознается и анализируется риск.
Если анализ риска показывает неопределенность требований, то на помощь заказчику и разработчику приходит макетирование. Заказчик оценивает инженерную или конструкторскую работу и вносит предложения по модификации.
Следующая фаза планирования и анализа риска базируется на предложении заказчика. Если риск слишком велик, проект может быть остановлен. В большинстве случаев движение по спирали продолжается, с каждым шагом продвигая разработчиков к более общей модели системы. Количество действий по разработке возрастает по мере продвижения от центра спирали.
Рисунок 4 – Этапы спиральной модели
Достоинства спиральной модели:
-
наиболее реально отображает процесс разработки программного обеспечения;
-
позволяет явно учитывать риск на каждом витке эволюции разработки;
-
использует моделирование для уменьшения риска и совершенствования программного продукта.
Недостатки спиральной модели:
-
повышенное требование к заказчику;
-
трудности контроля и управления временем разработки.
Область применения спиральной модели
- Менеджер проекта может быть уверен в целесообразности применения спиральной модели, если для этого существует хотя бы одна из следующего перечня причин:
- ∙когда создание прототипа представляет собой подходящий тип разработки продукта;
- ∙когда важно сообщить, каким образом будет происходит увеличение затрат, и подсчитать затраты, связанные с выполнением действий из квадранта риска;
- ∙когда организация обладает навыками, требуемыми для адаптации модели;
- ∙для проектов, выполнение которых сопряжено со средней и высокой степенью риска;
- ∙когда нет смыла браться за выполнение долгосрочного проекта из-за потенциальных изменений, которые могут произойти в экономических приоритетах, и когда такая неопределенность может вызвать ограничение во времени;
- ∙когда речь идет о применении новой технологии и когда необходимо протестировать базовые концепции;
- ∙когда пользователи не уверены в своих потребностях;
- ∙когда требования слишком сложные;
- ∙при разработке новой функции или новой серии продуктов;
- ∙когда ожидаются существенные изменения, например, при изучении или исследовательской работе;
Источник: https://skarlupka.ru/articles.php?id=37
Модели жизненного цикла программных средств студент
1 Модели жизненного цикла программных средств студент: Ермолович И.С. Группа: ИТ-33
2 Жизненный цикл программного средства — это непрерывный процесс, который начинается с момента принятия решения о необходимости создания ПС и заканчивается в момент его полного изъятия из эксплуатации.
Модель жизненного цикла — структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач, выполняемых на протяжении ЖЦ. Наибольшее распространение получили две основные модели ЖЦ: каскадная модель (70-80 гг.
); спиральная модель (86-90 гг.); ОБЩИЕ СВЕДЕНИЯ
3 КАСКАДНАЯ МОДЕЛЬ Каскадная схема разработки программного средства Схема реального процесса разработки ПС по каскадной схеме
4 ПРЕИМУЩЕСТВА И НЕДОСТАТКИ КАСКАДНОЙ МОДЕЛИ Преимущества каскадной модели: на каждой стадии формируется законченный набор проектной документации, отвечающей критериям полноты и согласованности; выполняемые в логической последовательности стадии работ позволяют планировать сроки завершения всех работ и соответствующие затраты.
Недостатки каскадной модели: выявление и устранение ошибок производится только на стадии тестирования, которое может существенно растянуться; реальные проекты часто требуют отклонения от стандартной последовательности шагов; цикл основан на точной формулировке исходных требований к ПС, реально в начале проекта требования заказчика определены лишь частично; результаты работ доступны заказчику только по завершении проекта.
5 СПИРАЛЬНАЯ МОДЕЛЬ Спиральная модель – классический пример применения эволюционной стратегии конструирования. Модель (автор Б. Боэм, 1988) базируется на лучших свойствах классического жизненного цикла и макетирования, к которым добавляется новый элемент – анализ риска, отсутствующий в этих парадигмах.
Модель определяет четыре действия, представляемые четырьмя квадрантами спирали. 1. Планирование – определение целей, вариантов и ограничений. 2. Анализ риска – анализ вариантов и распознавание/выбор риска. 3. Конструирование – разработка продукта следующего уровня. 4.
Оценивание – оценка заказчиком текущих результатов конструирования.
6 ПРЕИМУЩЕСТВА И НЕДОСТАТКИ СПИРАЛЬНОЙ МОДЕЛИ Преимущества спиральной модели: наиболее реально (в виде эволюции) отображает разработку программного обеспечения; позволяет явно учитывать риск на каждом витке эволюции разработки; включает шаг системного подхода в итерационную структуру разработки; использует моделирование для уменьшения риска и совершенствования программного изделия. Недостатки спиральной модели: сравнительная новизна (отсутствует достаточная статистика эффективности модели); повышенные требования к заказчику; трудности контроля и управления временем разработки.
7 ДОПОЛНИТЕЛЬНЫЕ МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА Эволюционная модель V-образная модель
8 СПАСИБО ЗА ВНИМАНИЕ
Источник: http://www.myshared.ru/slide/1331196/
Жизненный цикл проекта. Фазы, модели
Проект представляет собой совокупность действий, направленных на достижение одной цели. От производственной системы он отличается тем, что имеет однократный характер. Система же предполагает цикличность. Жизненный цикл (ЖЦП) предполагает протяженность исполнения проекта.
Что собой представляет жизненный цикл проекта
Проект – это не рутинная производственная деятельность. Он отличается ограниченными сроками исполнения. Понятие ЖЦП особенно распространено в экономике и менеджменте из-за специфики проектов.
Жизненный цикл предполагает комплекс последовательных фаз. Их особенности зависят от потребностей компании, особенностей управленческих процессов.
Цикл включает в себя различные этапы, которые реализуются в процессе исполнения проекта.
ЖЦП подразделяется на фазы. Это большие промежутки времени, которые выделяются по ряду характеристик. Фазы, в свою очередь, подразделяются на этапы. Точное количество фаз и этапов определить невозможно. Это зависит от особенностей конкретного проекта. Одновременно с этим составляющие цикла отличаются общими признаками. На основании фаз и этапов производится управление проектом.
Начало и окончание
Для определения жизненного цикла нужно установить его начало и окончание. Началом исполнения можно считать следующие действия:
- Начало финансирования деятельности.
- Формирование идеи.
- Дату инициирования исполнения запланированных работ.
Рассмотрим признаки завершения проекта:
- Ввод объекта, полученного в ходе выполнения проекта, в эксплуатацию.
- Исполнение ранее сформированных целей.
- Завершение периода окупаемости трат.
- Завершение финансирования.
- Роспуск команды сотрудников, которые трудились над проектом.
- Ликвидация.
Жизненный цикл – это протяженность времени от начала до окончания работ.
Фазы жизненного цикла
Фазы зависят от особенностей проекта. Рассмотрим фазы инвестиционного проекта:
- Подготовка. В этой фазе проводятся исследования, подбирается наилучший вариант проекта. Ведутся переговоры с контрагентами.
- Инвестирование. В этой фазе продаются акции или прочие финансовые инструменты. Компания получает средства для реализации идеи.
- Проект начинает эксплуатироваться в соответствии с планом.
- Постинвестиционное исследование, предполагающее анализ эффективности деятельности.
В большинстве проектов реализуется именно 4 фазы. Однако могут быть и двухфазные, и трехфазные проекты.
Стадии жизненного цикла
Нужно иметь в виду, что стадия может делиться над подстадию. Подобная разбивка нужна для удобства исполнения. Цикл делится на 4 стадии:
- Концептуальная стадия. На этом этапе проект только инициируется. Сформированная идея тщательно изучается. Составляется прогноз относительно прибыльности. Задаются цели и задачи проекта, определяется команда, на которую будет возложена работа. Менеджеру также необходимо определить источники финансирования. Это крайне важный этап. Если в этой стадии не будет проведен полноценный анализ, результаты деятельности могут быть неудовлетворительными.
- Планирование. Планирование представляет собой формирование плана проекта. План представляет собой заранее созданный порядок деятельности, перечень предстоящих задач, последовательность их решения. На этом этапе формируется стратегия, политика проекта, а также комплекс действий, которые нужны для достижения поставленных целей. Планирование также может включать в себя анализ прибыльности проекта, выявление возможных рисков. В дальнейшем деятельность работников будет сверяться именно с составленным проектом. Планирование касается всех стадий жизненного цикла. Сформированные решения должны обеспечивать достижение цели, реализацию проекта в сжатые сроки с минимальными затратами. Без планирования невозможна согласованная деятельность всех участников проекта. Именно на основании плана проводятся контрольные мероприятия, учет, а также оперативное управление. План должен быть утвержден руководителем.
- Реализация проекта. После того как план утвержден руководителем, его положения начинают реализовываться. Руководитель должен контролировать деятельность сотрудников. Как проводятся контрольные мероприятия? Менеджер осуществляет сбор информации о ходе работ, после чего полученные сведения сверяются с планом. Отклонения от плана должны быть исключены. Однако нужно иметь в виду, что полностью ликвидировать их нельзя. Существует допустимый уровень отклонений, который несущественно влияет на результаты деятельности. Если зафиксирован критический уровень отклонений, на их устранение могут быть выделены дополнительные ресурсы.
- Окончание проекта. Проект будет завершен тогда, когда истекут ранее установленные сроки. Однако для определения окончания работы нельзя ориентироваться только на сроки. Следует принимать во внимание также достижение поставленных целей. В некоторых случаях проект завершается раньше времени. Связано это может быть с ликвидацией, прекращением финансирования. В любом случае завершение проекта предполагает совершение определенных действий. Точный перечень этих действий зависит от особенностей проекта. Это может быть инвентаризация, передача оборудования на склад, сверка результатов подрядных проектов положениям договора. Крайне важной частью мероприятий по завершению проекта является формирование заключительного отчета.
Это самый примерный перечень стадий жизненного цикла. Точный перечень определяется спецификой проекта.
Особенности организации системы контроля
Ключевую роль в ЖЦ играют контрольные мероприятия. Эффективная система контроля базируется на этих принципах:
- Формирование четкого плана. Контроль предполагает сверку плановых и фактических показателей. По этой причине так важно составлять план. Это база для реализации контрольных мероприятий. Если требуется, положения плана можно менять. Однако коррекция не должна осуществляться слишком часто, так как это снизит эффективность контроля.
- Формирование четкой системы отчетности. В отчет вносятся сведения о состоянии проекта. Фактические показатели сравниваются с плановыми. Результаты должны быть зафиксированы в отчетности. В рамках сравнения используются одинаковые критерии. Важно оговорить сроки сдачи того или иного отчета. Информация, изложенная в документах, выносится на коллегиальное обсуждение.
- Создание полноценной системы анализа реальных показателей. Если в результате сверки фактических и плановых показателей обнаружились отклонения от плана, рассматривается их серьезность. Существуют допустимые отклонения, несущественно влияющие на конечные результаты деятельности. Однако важно обратить пристальное внимание на серьезные отклонения. Они могут негативно сказаться на итогах проекта. Как правило, ход проекта анализируется с точки зрения двух ключевых аспектов – сроки и стоимость. Некоторые задачи выполняются слишком долго. На реализацию других нужно слишком много средств.
- Создание системы анализа тенденций. Менеджер должен прогнозировать намечающиеся тенденции. То есть специалист определяет риски и проблемы, которые могут появиться в дальнейшем. К примеру, из компании ушел дизайнер. Менеджер понимает, что дизайнерская часть работы будет простаивать. То есть сроки исполнения этой задачи могут быть сорваны. Менеджер также прогнозирует увеличение затрат.
- Разработка эффективной системы реагирования. Последний этап контрольных мероприятий – действия, направленные на ликвидацию обнаруженных отклонений. Не все отклонения можно убрать. Если их ликвидация невозможна, план проекта редактируется.
Рекомендуется контролировать деятельность сотрудников на каждом этапе. Своевременное обнаружение мелких ошибок позволяет быстро их устранить и не допустить возникновения крупных недочетов.
Пример фаз жизненного цикла
Как уже говорилось ранее, структура ЖЦ зависит от конкретного проекта. Рассмотрим пример фаз для строительной компании:
- Прединвестиционная. Проводятся предварительные исследования, включающие анализ развития региона, создание инвестиционной идеи, ее согласование с руководителями, составление оферт. Оценивается жизнеспособность проекта, проводятся экспертизы. Формируется предварительный план. Вторая подфаза – создание проектно-сметной документации и подготовка к работам. На этом этапе формируется план проектно-изыскательных работ, согласуется проект, утверждается рабочая документация. На этой же фазе приобретается земельный участок под строительство. Требуется получить разрешение на строительные работы.
- Инвестиционная или строительная. Первая подфаза – составление контрактов, тендеров. Вторая подфаза – сами строительно-монтажные работы. На этом этапе формируется оперативный план строительства, графики работы оборудования. На этой фазе обязателен контроль деятельности сотрудников. Оплачивается работа подрядчиков. Третья подфаза – окончание строительной фазы. Включает в себя пуско-наладочные работы, сдачу-приемку, анализ итогов работы.
- Эксплуатационная. Включает в себя непосредственно эксплуатацию объекта, ремонтные работы.
- Завершение. Предполагает вывод объекта из эксплуатации, демонтаж.
Это стандартный проект на 4 фазы, в котором есть начало и завершение.
Структура жизненного цикла
Структура цикла проекта включает в себя различные процессы:
- Организационные. Включают в себя управление проектом, формирование инфраструктуры, анализ жизненного цикла, учебные мероприятия.
- Основные. Включают в себя покупку ресурсов и их поставку, разработку, ввод в эксплуатацию и в эксплуатацию, сопроводительные мероприятия.
- Вспомогательные. Это документооборот, управление конфигураций, работа над повышением качества, верификация, аттестация, оценка и работа с проблемными моментами.
Все эти процессы взаимосвязаны. Грамотность организационных процессов обеспечивает успешность прочих процессов.
Главные процессы и их характеристика
Рассмотрим базовые процессы, входящие в структуру жизненного цикла:
- Приобретение. Заказчик выявляет потребности, которые могут возникнуть в ходе проекта, и делает соответствующие покупки.
- Поставка. Составляется договор, формируется ОСУ проекта, а также технические требования. Производится поставка в соответствии с положениями, указанными в договоре.
- Разработка. Происходит работа над объектом проекта.
- Эксплуатация. Включает в себя формирование эксплуатационных стандартов, тестирование.
КСТАТИ! Процессы также могут быть вспомогательными. К ним относится документирование, контроль над качеством, аттестация.
Модели жизненного цикла
Модель жизненного цикла помогает понять особенности исполнения работы. В частности, модель – это подробное описание последовательности необходимых действий. Это совокупность действий, нужных для достижения цели. Модели зависят от специфики проекта. Общие модели выявить достаточно трудно. Рассмотрим модели цикла, актуальные при разработке программного обеспечения:
- Каскадные. Включают в себя традиционную, итерационную модель.
- Эволюционные. Это модель оперативного прототипирования, спиральная модель.
- Инкрементная. Относится к типу фундаментальных моделей.
Это лишь малая часть моделей жизненного цикла. Рассмотрим модели подробнее:
- Каскадная модель. Предполагает последовательное исполнение действий. Характеризуется наличием четкого плана, комплекса задач по каждому действию, наличием промежуточных этапов, по окончании каждого из которых проводится контроль.
- Спиральная модель. Актуальна для цикличной работы. На каждом витке анализируется эффективность разработки и ее соответствие фактическим затратам. Основное отличие спиральной модели – наличие определенного риска. Это может быть недостаток в специалистах, большие затраты, риск сорвать сроки, утрата актуальности идеи за время ее реализации, отсутствие необходимых ресурсов, несогласованная работа подразделений.
- Инкрементная модель. Она используется в том случае, если работа идет над масштабным проектом, в который вовлечено множество сотрудников. Предполагает разделение рабочего процесса на мелкие составляющие. Преимуществом этой модели является возможность разделения финансирования. Для реализации проекта не обязательно получать ресурсы на первом этапе. Финансирование может производиться поэтапно. Инкрементная модель обеспечивает надежный контроль над каждым этапом работ, а также уменьшение рисков.
Как выбрать подходящую модель? Подбор зависит от ресурсов компании, масштабности проекта, особенностей финансирования.
Что дает определение жизненного цикла проекта
Определение цикла проекта обеспечивает достижение следующих целей:
- Создание структуры проекта, которая облегчает работу.
- Прогнозирование сроков исполнения проекта.
- Осуществление всех работ по запуску: поиск партнеров, подготовка сотрудников, работа над документацией.
- Осуществление всех работ по завершению: инвентаризация, контроль и оценка результатов работы.
- Понимание сотрудниками масштабов предстоящей работы.
- Обеспечение согласованности деятельности всех подразделений.
- Анализ достаточности ресурсов компании для исполнения проекта.
Понимание жизненного цикла играет важную роль в организационной деятельности. Менеджер должен ясно понимать структуру проекта. Это способствует установлению адекватных сроков работы, помогает прогнозировать результаты.
Функции участников проекта
Над проектом работает команда сотрудников. Рассмотрим подробнее ключевые фигуры, участвующие в работе:
- Инвестор. Это ЮЛ или ФЛ, которые финансируют проект с целью извлечения прибыли в дальнейшем.
- Проектировщики. Эти сотрудники, которые работают над проектно-сметной документацией. Лица, ответственные за эту деятельность, – это инженеры или архитекторы.
- Поставщик. Это лицо, обеспечивающее проект оборудованием и материалами.
- Консультанты. Как правило, это представители сторонних компаний.
- Руководитель. ЮЛ, которому передаются функции по управлению проектом.
- Команда проекта. Формируется для эффективной согласованной деятельности.
- Лицензиар. Лицо, владеющее лицензией на научно-техническую разработку, используемую в рамках проекта.
Участником также может являться банковское учреждение, финансирующее деятельность. Чем масштабнее проект, тем больше лиц принимает в нем участие. Сотрудников не должно быть больше, чем нужно, так как это увеличит затраты. Однако недостаток специалистов – это серьезный недостаток ресурса.
Скопировать урл
Распечатать
Источник: https://assistentus.ru/vedenie-biznesa/zhiznennyj-cikl-proekta/