Главная страница

Методологии разработки программного обеспечения. Методологии разработки программного обеспечения(2). Методологии разработки программного обеспечения Технология разработки программного обеспечения


Скачать 1.22 Mb.
НазваниеМетодологии разработки программного обеспечения Технология разработки программного обеспечения
АнкорМетодологии разработки программного обеспечения
Дата28.09.2022
Размер1.22 Mb.
Формат файлаpptx
Имя файлаМетодологии разработки программного обеспечения(2).pptx
ТипДокументы
#702525

Методологии разработки программного обеспечения

Технология разработки программного обеспечения


«Из всех трудностей, с которыми столкнулись НАСА, отправляя человека на Луну, управление было наверно самой сложной задачей»

— Роджер Лаунис, историк НАСА

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

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

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

КЛАССИФИКАЦИЯ

Ранее применялась классификация, разделяющая все методологии на два типа:
  • итерационные
  • водопадные

  • (исходя из применяемых моделей жизненного цикла).

    Сегодня используется современная общая классификация, разделяющаяся также на две группы:
  • прогнозируемые
  • адаптивные.

Классификация исходя из применяемых моделей жизненного цикла

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

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

Современная классификация



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

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

Основные методологии разработки ПО

  • Waterfall — традиционный подход.
  • RUP (Rational Unified Process) — рациональный.
  • Agile — общая методология гибкой разработки.
  • Crystal Clear — подход с уравниванием разработчиков в коллективе.
  • Spiral — спиральный метод.
  • DSDM (Dynamic Systems Development Model) — динамическая модель.
  • FDD (Feature Driven Development) — методология, рассматривающая будущие изменения.
  • JAD (Joint Application Development) — ориентированный на пользователя подход.
  • RAD (Rapid Application Development) — модель быстрой разработки.
  • Scrum — концепция работы в условиях сорванных сроков и идеологического кризиса.
  • XP (Extreme Programming) — экстремальная разработка в динамической среде.
  • LD (Lean Development) — метод, предполагающий бережное отношение ко всем участникам процесса.

«Waterfall Model» (каскадная модель или «водопад»)

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

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

«Waterfall Model» (каскадная модель или «водопад»)

Преимущества:

- децентрализация и строгий контроль над сроками и качеством исполнения

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

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

«Waterfall Model» (каскадная модель или «водопад»)

В Центре разработки программного обеспечения EDISON с помощью каскадной модели были созданы проекты:

средний — рентгеновский микротомограф,

мелкий — автообновление службы Windows на AWS.

Когда использовать каскадную методологию?

«V-Model»

Унаследовала структуру «шаг за шагом» от каскадной модели.

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



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

«V-Model»

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

В Центре разработки программного обеспечения EDISON с помощью каскадной модели были созданы проекты: средний — рентгеновский микротомограф, мелкий — автообновление службы Windows на AWS.

«V-Model»

Когда использовать V-модель?
  • Если требуется тщательное тестирование продукта, то V-модель оправдает заложенную в себя идею: validation and verification.
  • Для малых и средних проектов, где требования четко определены и фиксированы.
  • В условиях доступности инженеров необходимой квалификации, особенно тестировщиков.

«Incremental Model» (инкрементная модель)

Имеется несколько циклов разработки, и вместе они составляют жизненный цикл «мульти-водопад».



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

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

«Incremental Model» (инкрементная модель)

Инкрементные модели используются там, где отдельные запросы на изменение ясны, могут быть легко формализованы и реализованы.

В Центре разработки программного обеспечения EDISON с помощью этой модели создали «читалки» DefView, а следом и сети электронных библиотек Vivaldi. DefView подключалась к одному серверу документов, а теперь может подключаться ко многим. Появился корневой элемент архитектуры — центральный сервер Vivaldi, выступающий в роли единой поисковой системы по всем серверам хранения, установленным в различных учреждениях.

«Incremental Model» (инкрементная модель)

Когда использовать инкрементную модель?
  • Когда основные требования к системе четко определены и понятны.
  • Некоторые детали могут дорабатываться с течением времени.
  • Требуется ранний вывод продукта на рынок.

«RAD Model»

(rapid application development model или быстрая разработка приложений)

RAD-модель — разновидность инкрементной модели.

В RAD-модели компоненты или функции разрабатываются несколькими высококвалифицированными командами параллельно, будто несколько мини-проектов.

Созданные модули затем интегрируются в один рабочий прототип.

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

«RAD Model» (rapid application development model или быстрая разработка приложений)

Модель быстрой разработки приложений включает следующие фазы:

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

«RAD Model»

(rapid application development model или быстрая разработка приложений)

Когда используется RAD-модель? - Может использоваться только при наличии высококвалифицированных и узкоспециализированных архитекторов. - Бюджет проекта большой, чтобы оплатить этих специалистов вместе со стоимостью готовых инструментов автоматизированной сборки. - RAD-модель может быть выбрана при уверенном знании целевого бизнеса и необходимости срочного производства системы в течение 2-3 месяцев.

«Agile Model» (гибкая методология разработки)

В 2001 году в штате Юта в США группой разработчиков был создан и обнародован "Манифест agile-методологии разработки ПО", известный как Agile Manifesto.

В манифесте сформулированы четыре ценности методологии:
  • Люди важнее вещей и процессов.
  • Продукт важнее документации, которую никто не читает.
  • Сотрудничество важнее контракта.
  • Постоянная готовность к изменениям.

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

«Agile Model» (гибкая методология разработки)

Agile — метод гибкой разработки программного обеспечения, предполагающий большое количество итераций.

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

Agile Model» (гибкая методология разработки)

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

  • Недостаток:

из- за отсутствия конкретных формулировок результатов сложно оценить трудозатраты и стоимость, требуемые на разработку

«Agile Model» (гибкая методология разработки)

В основе такого типа методологии лежат процессы:

«Scrum» - непродолжительные ежедневные встречи , на которых участники команды обсуждают:
  • отчёт о проделанной работе с момента последнего Scrum’a;
  • список задач, которые сотрудник должен выполнить до следующего собрания;
  • затруднения, возникшие в ходе работы.

  • «Sprint - регулярно повторяющиеся собрания (раз в неделю, раз в две недели или раз в месяц),

«Agile Model» (гибкая методология разработки)

В Центре разработки программного обеспечения EDISON с помощью данной методологии был реализован проект:

Электронная Система Медицинских Осмотров, созданная для проведения массовых медосмотров в считанные минуты

Когда использовать Agile?

Когда потребности пользователей постоянно меняются в динамическом бизнесе.

«Iterative Model» (итеративная или итерационная модель)

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



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

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

«Iterative Model» (итеративная или итерационная модель)

Итерационная модель:

в первой итерации есть лишь набросок Джоконды, во второй — появляются цвета, а третья итерация добавляет деталей, насыщенности и завершает процесс.

Инкрементная модель:

функционал продукта наращивается по кусочкам, продукт составляется из частей. В отличие от итерационной модели, каждый кусочек представляет собой целостный элемент.

«Iterative Model» (итеративная или итерационная модель)

Пример итерационной разработки:

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

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



«Spiral Model» (спиральная модель)

«Спиральная модель» похожа на инкрементную, но с акцентом на анализ рисков.

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

Спиральная модель предполагает 4 этапа для каждого витка:
  • планирование;
  • анализ рисков;
  • конструирование;
  • оценка результата и при удовлетворительном качестве переход к новому витку.

«Spiral Model» (спиральная модель)

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

ИТОГИ
  • В современной практике модели разработки программного обеспечения многовариантны.
  • Нет единственно верной для всех проектов, стартовых условий и моделей оплаты.
  • Методологии частично пересекаются в средствах и отчасти похожи друг на друга


написать администратору сайта