Добавлен: 25.04.2023
Просмотров: 144
Скачиваний: 2
Недостатки:
- Предполагается, что требования системы могут быть заморожены.
- Очень сложно вернуться на какой-либо этап после его завершения.
- Немного гибкости и настройки объема сложно и дорого.
- Дорого и требует больше времени, помимо подробного плана.
V-образная модель — это расширение модели водопада. Вместо линейного перемещения ступени процесса после фазы реализации и кодирования сгибаются вверх, чтобы сформировать типичную V-образную форму. Основным различием между V-образной моделью и моделью водопада является раннее планирование испытаний в V-образной модели.
Требования к программному обеспечению четко определены и известны.
Преимущества:
- Простой и удобный в использовании
- Каждый этап имеет конкретные результаты.
- Более высокие шансы на успех по модели водопада из-за разработки планов испытаний в начале жизненного цикла.
- Хорошо работает там, где требования легко понять.
- Проверка и валидация продукта на ранних этапах разработки продукта.
Недостатки:
- Очень негибкий, как модель водопада.
- Регулировка объема сложна и дорога. [8, 11]
- Программное обеспечение разрабатывается на этапе реализации, поэтому ранние прототипы программного обеспечения не производятся.
- Модель не дает четкого пути для проблем, обнаруженных на этапах тестирования.
- Дорого и требует больше времени, в дополнение к детальному плану.
Модель прототипирования — это относится к деятельности по созданию прототипов программных приложений, например, неполных версий разрабатываемой программы. Это действие, которое может происходить при разработке программного обеспечения, и оно используется для визуализации некоторого компонента программного обеспечения, чтобы ограничить разрыв в неправильном понимании требований заказчика командой разработчиков. Это также уменьшит количество итераций, которые могут возникнуть в подходе с водопадом, и его трудно реализовать из-за негибкости подхода с водопадом. Таким образом, при разработке окончательного прототипа требование считается замороженным. [2]
Он имеет несколько типов, таких как:
- Быстрое прототипирование: прототипы, которые в конечном итоге отбрасываются, а не становятся частью окончательно поставляемого программного обеспечения
- Одноразовое прототипирование
- Эволюционное прототипирование: прототипы, которые эволюционируют в конечную систему благодаря итеративному включению отзывов пользователей.
- Эволюционное прототипирование
- Инкрементальное прототипирование: конечный продукт создается как отдельные прототипы. В итоге отдельные прототипы объединяются в общий дизайн.
Инкрементная модель — экстремальное прототипирование: в основном используется в веб-приложениях. По сути, он разбивает веб-разработку на три этапа, каждый из которых основан на предыдущем. Первый этап - это статический прототип, который состоит в основном из HTML-страниц. На втором этапе экраны программируются и полностью функционируют с использованием уровня имитируемых сервисов. На третьем этапе услуги внедряются.
Этот процесс может использоваться с любой моделью жизненного цикла разработки программного обеспечения. Хотя это должно быть выбрано, когда вы разрабатываете систему взаимодействия с пользователем. Таким образом, если система не имеет взаимодействия с пользователем, например, система выполняет некоторые вычисления, не должно иметь прототипов.
Преимущества:
- Сокращение времени и затрат, но это может быть недостатком, если разработчик теряет время на разработку прототипов.
- Улучшено и увеличено участие пользователей.
Недостатки:
- Недостаточный анализ. Путаница пользователя с прототипом и готовой системой.
- Недопонимание разработчиком целей пользователя.
- Избыточное время разработки прототипа.
- Это дорого для реализации прототипов
Спиральная модель — он объединяет элементы как проектирования, так и поэтапного создания прототипа, стремясь объединить преимущества концепций сверху вниз и снизу-вверх. Эта модель развития сочетает в себе особенности модели прототипа и модели водопада. Спиральная модель предпочтительна для больших, дорогих и сложных проектов. Эта модель использует многие из тех же этапов, что и модель водопада, в основном в том же порядке, разделенных планированием, оценкой риска и созданием прототипов и симуляций. [5]
Он используется в больших приложениях и системах, которые встроены в небольшие фазы или сегменты.
3.3 Использование гибких методологий при разработке ПО
История Agile начинается с публикации в 2001 году «Манифеста гибкой разработки ПО», состоящего из 12 принципов. Конечно, отдельные положения Agile-подхода появились появлялись и до этого, но только этот документ систематизировал и изложил их в достаточной для использования мере. Каждый год под манифестом подписываются новые компании, IT-специалисты и проектные менеджеры. Появляются новые методы и модификации гибкой системы разработки. [3, 9, 15]
Agile — итеративная модель разработки, в которой программное обеспечение создают инкрементально с самого начала проекта, в отличии от каскадных моделей, где код доставляется в конце рабочего цикла.
Основа гибкой методологии — разбиение проектов на маленькие рабочие кусочки, называемые пользовательскими историями. Согласно приоритетности задачи, решают в рамках коротких двухнедельных циклов (итераций).
12 принципов, которые составляют Agile Methodology, можно поделить на 4 главные идеи:
- Приоритет людей и общения над инструментами и процессами;
- Приоритет работающего продукта над полной документацией;
- Приоритет сотрудничества с заказчиков над утверждением контракта;
- Приоритет готовности меняться над следованием первоначально созданному плану.
Своему термину «Scrum» обязан регби, в котором это слово означает метод командной игры в виде построения трех линий каждым из соперников и попытке захватить мяч. Для успешного перехвата нужна не только хорошая физическая подготовка, но и слаженность каждого участника схватки и четкое понимание цели.
Метод успешно применяют такие компании как Microsoft, Yahoo, Siemens Healthcare, а проектный менеджер в Amazon даже описал кейс внедрения Scrum на основе полученного опыта.
Так как скрам — каркас разработки, в каждом последующем примере он может значительно отличаться от предыдущего. [3]
Джефф Сазерленд, автор книги «Scrum. Революционный метод управления проектами» выделил 8 шагов по использованию методики:
- Выберите владельца продукта — он знает о цели проекта и ожидаемом результате.
- Соберите команду — до 10 человек с необходимыми для создания работоспособного продукта навыками.
- Найдите скрам-мастера — он следит за ходом проекта, помогает проектной команде бороться с трудностями.
- Составьте бэклог продукта — на Agile-доске расставьте приоритеты по каждому требованию к продукту. В этом большую роль играет владелец продукта, который собирает пожелания к продукту для оценки командой бэклога.
- Запланируйте спринты (итерации) — отрезки времени на выполнение определенного ряда задач.
- Организовывайте ежедневные пятнадцатиминутные «мит-апы» — задавайте по 3 вопроса каждому из команды: что делал вчера, что будет сегодня, что мешает выполнить задачу.
- Делайте обзоры рабочих частей продукта — с вовлечением в просмотр и обсуждение стейкхолдеров.
- Проводите ретроспективу — обсуждение проблемы и поиск решения после каждого спринта. Полученный план изменения внедряете на следующем спринте.
В скрам есть 4 ключевых элемента:
- Product Backlog — список требований по проекту
- Sprint Backlog — список требований, которые нужно выполнить в ближайший спринт
- Sprint Goal — цель спринта
- Sprint Burndown Chart — диаграмма, которая обновляется по мере завершения задач. По ней легко понять динамику и уровень продвижения команды в проекте. [5]
Разработчик методики, Кент Бек, создал метод экстремального программирования, цель которого — справиться с постоянно меняющимися требованиями к программному продукту и повысить качество разработки.
Он применим исключительно в сфере разработки ПО, и строится вокруг 4 процессов:
- кодирование — согласно единым в команде стандартам оформления;
- тестирование — тесты пишутся самими программистами до написания кода, который будут тестировать;
- планирование — как финального билда, так и отдельных итераций. Последнее проходит в среднем раз в две недели.
- слушание — как разработчиков, так и клиента, в ходе которого исчезают неясности, определяются требования и ценности.
Малоизвестное на отечественных просторах проектного менеджмента семейство методологий, разработанное Алистером Кокберном, одним из автором «Манифеста гибкой разработки ПО». Классификацию Кокберн предлагает проводить по цветам за критерием количества человек в команде: от 2 (Crystal Clear) до 100 (Crystal Red). Под более масштабные проекты выделены цвета Maroon, Blue и Violet. [15]
Crystal-проекты должны соответствовать 3 основным показателям:
- быстрая доставка рабочего кода — развитие идеи итеративной модели разработки Agile.
- совершенство через рефлексию — новая версия ПО улучшается на основе данных о предыдущей.
- «осмотическое» взаимодействие — нововведение Алистера, метафора коммуникации и обмена информацией между разработчиками ПО в одной комнате.
Над разработкой DSDM трудился не один человек и даже не команда, а консорциум из 17 английских компаний. DSDM, как и экстремальное программирование, используется преимущественно для создания программного обеспечения.
Особая роль отводится участия конечного потребителя (пользователя) в процессе разработки. Помимо этого, принципа, к базовым относятся:
- частые выпуски рабочих версий продукта
- автономность разработчиков в плане принятия решений
- тестирование на протяжении всего рабочего цикла.
DSDM делится на версии, которые обновляются по мере развития технологий, появления новых требований к разработке ПО. Последняя на сегодня — DSDM Atern, выпущенная в 2007 году, хотя предыдущая (2003 года) еще в строю.
В начале команда изучает реальность разработки приложения и область применения. Дальше работа делится на три взаимосвязанных цикла:
- цикл функциональной модели — создание аналитической документации и прототипов. [15]
- цикл проектирования и конструирования — приведение системы в рабочее состояние.
- цикл реализации — развертывание системы.
FDD тоже применяется итерационная модель разработки, от Agile она отличается в следующем:
- больше внимания предварительному моделированию
- повышенная (по сравнению с Agile) важность построения отчётности и графиков
- нацелено на корпоративную разработку.
Feature Driven Development состоит из таких цикличных этапов:
- Создание общей модели — видение проекта на основе предварительных данных.
- Разработка списка свойств — аналог product backlog в методике скрам.
- Планирование по свойствам — оценка сложности свойств каждым членом команды.
- По каждому свойству — технический дизайн и реализация — финальная стадия, по окончанию которой свойство уходит в продукт и цикл повторяется.
Lean Software Development — скорее не методология, а набор принципов бережливого производства, который направлен на повышение эффективности процесса разработки, минимизацию затрат. [15]
В набор входят следующие 7 принципов:
- избавление от потерь — всё, что не прибавляет ценности продукту для конечного потребителя.
- постоянное обучение — непрерывное развитие команды увеличивает возможности эффективного выполнения задач.
- принятие решения так поздно, как только можно — приоритет не спонтанным решениям, а продуманным, разработанным на основе полученных знаний.
- быстрая доставка — по сути основа итеративной модели.
- усиление команды — один из принципов «Манифеста...» гласит, что люди и взаимодействие важнее процессов и инструментов. Проектная команда — основа успешного завершения задач.
- целостность и качество — нужно изначально делать качественный продукт, чтобы не тратить время и ресурсы на дальнейшее тестирование и избавление от багов.
- видение цельной картины — разбиение проекта на отдельные части невозможно без понимания текущего статуса разработки, целей, концепции и стратегии разрабатываемого ПО.
Agile Modeling — набор ценностей, принципов и практик для моделирования программного обеспечения.
AM используют как составляющую полноценной методики разработки ПО — например, экстремального программирования или Rapid Application Development.
Принципы Agile Modeling таковы:
- эффективное взаимодействие между проектными стейкхолдерами
- стремление разработать наиболее простое из возможных решений, которое подойдет всем требованиям
- постоянное получение обратной связи
- смелость принимать и отвечать за решения
- понимание, что команда не знает абсолютно всё.
AUP — упрощённая версия другой методологии разработки ПО — Rational Unified Process (RUP). С 2012 года её заменили на Disciplined Agile Delivery (DAD), но кое-где AUP еще встречается.