SlideShare uma empresa Scribd logo
1 de 17
Методологии разработки ПО
Хронология
• 1970 — статья Уинстона Ройса «Managing the Development of
  Large Software Systems» [Royce, 1987]; первое упоминание о
  методике, близкой к современной «модели водопада»,
  название «модель водопада» в статье не использовано.
• 1976 — опубликована работа Тома Гилба Software Metrics, где
  впервые использовался термин «эволюционная методология».
  [Ларман, Базили, 2003]
• 1986 — статья Барри Боэма «A spiral model of software
  development and enhancement» [Boehm, 1986]; посвящена
  спиральной модели разработки программного обеспечения.
• 1998, июнь — Rational Corporation выпускает новую версию
  продукта Rational Unified Process 5.0 [Якобсон и др., 2002]
• 2001, февраль — появление Manifesto for Agile Software
  Development [Manifesto for Agile Software Development, 2001],
  где закреплены основные положения гибких методов.
Водопадная модель
 Сокращенная модель
Водопадная модель
   Полная модель
Водопадная модель
Историческая перспектива
Итеративная / инкрементная
             модель
• С точки зрения структуры жизненного
  цикла модель итеративная, так как
  представима серией многократных
  повторений одинаковой операции.
• С точки зрения развития продукта модель
  инкрементная, то есть основанная на
  приращениях продукта.
• В основе лежит цикл PDSA.
Итеративная / инкрементная
               модель
«‘Эволюция’ — прием, предназначенный для создания
   видимости стабильности. Шансы успешного создания
   сложной системы будут максимальными, если она
   реализуется в серии небольших шагов и если каждый
   шаг заключает в себе четко определенный успех, а
   также возможность ‘отката’ к предыдущему успешному
   этапу в случае неудачи. Перед тем, как пустить в дело
   все ресурсы, предназначенные для создания системы,
   разработчик имеет возможность получать из реального
   мира сигналы обратной связи и исправлять возможные
   ошибки в проекте...»
                                                  Том Гилб
                                   «Software metrics», 1976
Итеративная / инкрементная
                  модель
•   Жизненный цикл проекта разбивается на мини-проекты, которые сами по
    себе также зачастую являются полным жизненным циклом, только
    охватывающим меньший функционал.
•   В сжатые сроки можно проанализировать, в какой момент времени были
    приняты неправильные или неоптимальные решения, и, при необходимости,
    вернуться не на исходные позиции, а на соответствующий этап.
•   При наличии ресурсов, возможна организация параллельной разработки на
    ряде этапов (см. «Deadline. Роман об управлении проектами» Тома ДеМарко).
•   Возможность раннего начала тестирования (как профессионального, так и
    пользовательского), соответственно и нахождения критичных ошибок на
    начальных этапах.
•   Возможность маневрирования, многократной смены приоритетов в течение
    процесса разработки и, как следствие, наличие возможности сдачи в
    эксплуатацию не законченного или не соответствующего изначально
    определенным требованиям, но работающего проекта, удовлетворяющего
    заказчика.
•   Снижение неопределенности и соответственно рисков.
Спиральная модель (1986)
Спиральная модель (2003)
Спиральная модель
• Может возникнуть потребность в генерации большого
  количества сопровождающей разработку документации.
• Есть вероятность потратить несоразмерное объему работ
  количество времени на первоначальных витках спирали.
• Необходимы навыки риск-менеджера.
• При определенных условиях может быть вполне успешна,
  например неполном или сложном наборе требований со
  стороны заказчика.
• В отличие от инкрементальной и водопадной моделей,
  рассмотренных ранее и являющихся скорее каркасами,
  спиральная модель выдвигает ряд принципиальных условий,
  которые, для успешного применения методологии, следует
  выполнять.
Agile / гибкие методологии
• 11-13 февраля 2001 года ряд 17 «лидеров гибких
  методологий» сформировали группу под
  названием Agile Alliance.
• Слово agile (быстрый, ловкий, стремительный)
  отражало в целом их подход к разработке ПО,
  основанный на богатом опыте участия в
  разнообразных проектах в течение многих лет.
• Этот подход под названием "Быстрая разработка
  ПО" (Agile software development) базируется на
  четырех идеях, сформулированных ими в
  документе «Манифест быстрой разработки ПО"
  (Agile Alliance's Manifesto).
Agile Alliance’s Manifesto
4 положения:
• индивидуумы и взаимодействия между ними ценятся выше
   процессов и инструментов;
• работающее программное обеспечение ценится выше
   всеобъемлющей документации;
• сотрудничество с заказчиками ценится выше формальных договоров;
• реагирование на изменения ценится выше строгого следования
   плану.
4 условия успешности:
• если позволяет людям легче выразить свои мысли;
• если выполняет задачи, невыполнимые вручную;
• если автоматизирует утомительные и подверженные ошибкам
   действия;
• если облегчает общение между людьми.
SCRUM
• Takeuchi H., Nonaka I. The new product
  development game (1986)
• Scrum – термин, означающий схватку
  вокруг мяча регби.
• Процесс формализован в 1995 году Кеном
  Швабером
SCRUM
Методология определяет правила:
• планирования и управления списком требований к продукту для достижения
  максимальной прибыльности от реализованной функциональности;
• планирования итераций для максимальной заинтересованности команды
  в результате;
• взаимодействия участников команды для максимально быстрой реакции на
  существующую ситуацию;
• анализа и корректировки процесса разработки для совершенствования
  взаимодействия внутри команды.

•   3 роли
•   3 практики
•   3 документа

Подробнее: http://www.scrum.org/
eXtreme Programming (XP)
•   Бек К. Экстремальное программирование. СПб.: Питер, 2002. — 224 с.
•   12 подходов:
    –   разработка через тестирование (Test Driven Development);
    –   игра в планирование (Planning Game);
    –   заказчик всегда рядом (Whole Team, Onsite Customer);
    –   парное программирование (Pair Programming);
    –   непрерывная интеграция (Continuous Integration);
    –   рефакторинг (Design Improvement, Refactoring);
    –   частые небольшие релизы (Small Releases);
    –   простота (Simple Design);
    –   метафора системы (System Metaphor);
    –   коллективное владение кодом (Collective Code Ownership);
    –   стандарт кодирования (Coding Standard or Coding conventions);
    –   40-часовая рабочая неделя (Sustainable Pace, 40-hour week).
См. также
• Rational Unified Process - http://www-
  01.ibm.com/software/awdtools/rup/
• Feature Driven Development -
  http://www.featuredrivendevelopment.com/
• Chaos Model -
  http://info.psu.edu.sa/psu/cis/biq/se501/files/ch
  aos93.pdf
• The Cathedral and the Bazaar -
  http://www.amazon.com/Cathedral-Bazaar-Eric-
  S-Raymond/dp/1607962284

Mais conteúdo relacionado

Mais procurados

пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрамMagneta AI
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015Alexander Gornik
 
Собираем кубик Рубика
Собираем кубик РубикаСобираем кубик Рубика
Собираем кубик РубикаCEE-SEC(R)
 
Инструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / ScrumИнструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / ScrumDenis Tuchin
 
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?SQALab
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПОAnton Konushin
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Ontico
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAlexey Deryushkin
 
кузнецов Dual-track agile.pptx
кузнецов   Dual-track agile.pptxкузнецов   Dual-track agile.pptx
кузнецов Dual-track agile.pptxMagneta AI
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработкеMagneta AI
 
эволюция методологий управления (водопад, Rup, Agile) башакин
эволюция методологий управления (водопад, Rup, Agile)   башакинэволюция методологий управления (водопад, Rup, Agile)   башакин
эволюция методологий управления (водопад, Rup, Agile) башакинWRider
 
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)Denis Tuchin
 
Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileAlexey Krivitsky
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU
 
Обзор Agile - эволюция процессов
Обзор Agile - эволюция процессовОбзор Agile - эволюция процессов
Обзор Agile - эволюция процессовNikita Filippov
 
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...CEE-SEC(R)
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?CEE-SEC(R)
 
О чем стоит подумать, приступая к разработке высоконагруженной системы (Артем...
О чем стоит подумать, приступая к разработке высоконагруженной системы (Артем...О чем стоит подумать, приступая к разработке высоконагруженной системы (Артем...
О чем стоит подумать, приступая к разработке высоконагруженной системы (Артем...Ontico
 

Mais procurados (20)

Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрам
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015
 
Собираем кубик Рубика
Собираем кубик РубикаСобираем кубик Рубика
Собираем кубик Рубика
 
Инструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / ScrumИнструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / Scrum
 
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПО
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)
 
Scrum: Introduction
Scrum: IntroductionScrum: Introduction
Scrum: Introduction
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в Райффайзенбанке
 
кузнецов Dual-track agile.pptx
кузнецов   Dual-track agile.pptxкузнецов   Dual-track agile.pptx
кузнецов Dual-track agile.pptx
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработке
 
эволюция методологий управления (водопад, Rup, Agile) башакин
эволюция методологий управления (водопад, Rup, Agile)   башакинэволюция методологий управления (водопад, Rup, Agile)   башакин
эволюция методологий управления (водопад, Rup, Agile) башакин
 
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
 
Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с Agile
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
 
Обзор Agile - эволюция процессов
Обзор Agile - эволюция процессовОбзор Agile - эволюция процессов
Обзор Agile - эволюция процессов
 
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?
 
О чем стоит подумать, приступая к разработке высоконагруженной системы (Артем...
О чем стоит подумать, приступая к разработке высоконагруженной системы (Артем...О чем стоит подумать, приступая к разработке высоконагруженной системы (Артем...
О чем стоит подумать, приступая к разработке высоконагруженной системы (Артем...
 

Destaque

Сеть электронных бибилиотек Vivaldi (ЭБС) с аннотацией
Сеть электронных бибилиотек Vivaldi (ЭБС) с аннотациейСеть электронных бибилиотек Vivaldi (ЭБС) с аннотацией
Сеть электронных бибилиотек Vivaldi (ЭБС) с аннотациейEDISON Software Development Centre
 
Андроид для чайников
Андроид для чайниковАндроид для чайников
Андроид для чайниковArseniy Finbeкg
 
07 Архитектура информационных систем. Принципы GRASP
07 Архитектура информационных систем. Принципы GRASP07 Архитектура информационных систем. Принципы GRASP
07 Архитектура информационных систем. Принципы GRASPEdward Galiaskarov
 
02 Архитектура информационных систем. Основы
02 Архитектура информационных систем. Основы02 Архитектура информационных систем. Основы
02 Архитектура информационных систем. ОсновыEdward Galiaskarov
 
03 Архитектура информационных систем. Принципы проектирования архитектуры
03 Архитектура информационных систем. Принципы проектирования архитектуры03 Архитектура информационных систем. Принципы проектирования архитектуры
03 Архитектура информационных систем. Принципы проектирования архитектурыEdward Galiaskarov
 
Архитектурные стили и шаблоны
Архитектурные стили и шаблоныАрхитектурные стили и шаблоны
Архитектурные стили и шаблоныVlad Andrusenko
 
Краткая характеристика основных архитектурных стилей
Краткая характеристика основных архитектурных стилейКраткая характеристика основных архитектурных стилей
Краткая характеристика основных архитектурных стилейинна ветрова
 
06 Архитектура информационных систем. Паттерны и фреймворки
06 Архитектура информационных систем. Паттерны и фреймворки06 Архитектура информационных систем. Паттерны и фреймворки
06 Архитектура информационных систем. Паттерны и фреймворкиEdward Galiaskarov
 
04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стилиEdward Galiaskarov
 
Книга Scrum Time
Книга Scrum TimeКнига Scrum Time
Книга Scrum TimeScrum Time
 
Португальский язык. Базовый курс
Португальский язык. Базовый курсПортугальский язык. Базовый курс
Португальский язык. Базовый курсинна ветрова
 
01 Архитектура информационных систем. Общие понятия
01 Архитектура информационных систем. Общие понятия01 Архитектура информационных систем. Общие понятия
01 Архитектура информационных систем. Общие понятияEdward Galiaskarov
 
2013.08.24 Антон Киселёв семинар "Agile (Scrum)"
2013.08.24 Антон Киселёв семинар "Agile (Scrum)"2013.08.24 Антон Киселёв семинар "Agile (Scrum)"
2013.08.24 Антон Киселёв семинар "Agile (Scrum)"Alexey Fedorov
 
05 Архитектура информационных систем. Атрибуты качества. Метод ADD
05 Архитектура информационных систем. Атрибуты качества. Метод ADD05 Архитектура информационных систем. Атрибуты качества. Метод ADD
05 Архитектура информационных систем. Атрибуты качества. Метод ADDEdward Galiaskarov
 
Спецификация на примерах или как научить людей общаться
Спецификация на примерах или как научить людей общатьсяСпецификация на примерах или как научить людей общаться
Спецификация на примерах или как научить людей общатьсяSQALab
 
креативное мышление
креативное мышлениекреативное мышление
креативное мышлениеJaneKozmina
 
Семинары и тренинги по делопроизводству, документообороту и архиву предприятия
Семинары и тренинги по делопроизводству, документообороту и архиву предприятияСеминары и тренинги по делопроизводству, документообороту и архиву предприятия
Семинары и тренинги по делопроизводству, документообороту и архиву предприятияProfi-Cariera
 
Cовременные командные принципы
Cовременные командные принципыCовременные командные принципы
Cовременные командные принципыgaperton
 

Destaque (20)

Доступ к электронной библиотечной системе Vivaldi
Доступ к электронной библиотечной системе VivaldiДоступ к электронной библиотечной системе Vivaldi
Доступ к электронной библиотечной системе Vivaldi
 
Сеть электронных бибилиотек Vivaldi (ЭБС) с аннотацией
Сеть электронных бибилиотек Vivaldi (ЭБС) с аннотациейСеть электронных бибилиотек Vivaldi (ЭБС) с аннотацией
Сеть электронных бибилиотек Vivaldi (ЭБС) с аннотацией
 
Андроид для чайников
Андроид для чайниковАндроид для чайников
Андроид для чайников
 
07 Архитектура информационных систем. Принципы GRASP
07 Архитектура информационных систем. Принципы GRASP07 Архитектура информационных систем. Принципы GRASP
07 Архитектура информационных систем. Принципы GRASP
 
02 Архитектура информационных систем. Основы
02 Архитектура информационных систем. Основы02 Архитектура информационных систем. Основы
02 Архитектура информационных систем. Основы
 
03 Архитектура информационных систем. Принципы проектирования архитектуры
03 Архитектура информационных систем. Принципы проектирования архитектуры03 Архитектура информационных систем. Принципы проектирования архитектуры
03 Архитектура информационных систем. Принципы проектирования архитектуры
 
Архитектурные стили и шаблоны
Архитектурные стили и шаблоныАрхитектурные стили и шаблоны
Архитектурные стили и шаблоны
 
Краткая характеристика основных архитектурных стилей
Краткая характеристика основных архитектурных стилейКраткая характеристика основных архитектурных стилей
Краткая характеристика основных архитектурных стилей
 
06 Архитектура информационных систем. Паттерны и фреймворки
06 Архитектура информационных систем. Паттерны и фреймворки06 Архитектура информационных систем. Паттерны и фреймворки
06 Архитектура информационных систем. Паттерны и фреймворки
 
04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили
 
Книга Scrum Time
Книга Scrum TimeКнига Scrum Time
Книга Scrum Time
 
Португальский язык. Базовый курс
Португальский язык. Базовый курсПортугальский язык. Базовый курс
Португальский язык. Базовый курс
 
01 Архитектура информационных систем. Общие понятия
01 Архитектура информационных систем. Общие понятия01 Архитектура информационных систем. Общие понятия
01 Архитектура информационных систем. Общие понятия
 
2013.08.24 Антон Киселёв семинар "Agile (Scrum)"
2013.08.24 Антон Киселёв семинар "Agile (Scrum)"2013.08.24 Антон Киселёв семинар "Agile (Scrum)"
2013.08.24 Антон Киселёв семинар "Agile (Scrum)"
 
05 Архитектура информационных систем. Атрибуты качества. Метод ADD
05 Архитектура информационных систем. Атрибуты качества. Метод ADD05 Архитектура информационных систем. Атрибуты качества. Метод ADD
05 Архитектура информационных систем. Атрибуты качества. Метод ADD
 
Спецификация на примерах или как научить людей общаться
Спецификация на примерах или как научить людей общатьсяСпецификация на примерах или как научить людей общаться
Спецификация на примерах или как научить людей общаться
 
креативное мышление
креативное мышлениекреативное мышление
креативное мышление
 
Семинары и тренинги по делопроизводству, документообороту и архиву предприятия
Семинары и тренинги по делопроизводству, документообороту и архиву предприятияСеминары и тренинги по делопроизводству, документообороту и архиву предприятия
Семинары и тренинги по делопроизводству, документообороту и архиву предприятия
 
Что такое Scrum
Что такое ScrumЧто такое Scrum
Что такое Scrum
 
Cовременные командные принципы
Cовременные командные принципыCовременные командные принципы
Cовременные командные принципы
 

Semelhante a Методологии разработки по

Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2Denis Umnov
 
Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1Andrii Gakhov
 
Course User interface — Lesson 11
Course User interface — Lesson 11Course User interface — Lesson 11
Course User interface — Lesson 11Oleksandr Lisovskyi
 
Лекция 2 тестирование и жизненный цикл ПО
Лекция 2 тестирование и жизненный цикл ПОЛекция 2 тестирование и жизненный цикл ПО
Лекция 2 тестирование и жизненный цикл ПОSergey Chuburov
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворковМодуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворковYana Brodetski
 
Восьмая лекция курса "Введение в системную инженерию"
Восьмая лекция курса "Введение в системную инженерию"Восьмая лекция курса "Введение в системную инженерию"
Восьмая лекция курса "Введение в системную инженерию"Anatoly Levenchuk
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovMaxim Tsepkov
 
Эффективные ретроспективы
Эффективные ретроспективыЭффективные ретроспективы
Эффективные ретроспективыBoris Volfson
 
DevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почемуDevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почемуAndrey Rebrov
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахDanil Dintsis, Ph. D., PgMP
 
гибкая методология разработки по
гибкая методология разработки погибкая методология разработки по
гибкая методология разработки поpoverhnost
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...Ievgenii Katsan
 

Semelhante a Методологии разработки по (20)

Scrum framework
Scrum frameworkScrum framework
Scrum framework
 
Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2
 
Team workflow
Team workflowTeam workflow
Team workflow
 
Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1
 
Course User interface — Lesson 11
Course User interface — Lesson 11Course User interface — Lesson 11
Course User interface — Lesson 11
 
Лекция 2 тестирование и жизненный цикл ПО
Лекция 2 тестирование и жизненный цикл ПОЛекция 2 тестирование и жизненный цикл ПО
Лекция 2 тестирование и жизненный цикл ПО
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворковМодуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
 
Lection 3 4_pm
Lection 3 4_pmLection 3 4_pm
Lection 3 4_pm
 
Восьмая лекция курса "Введение в системную инженерию"
Восьмая лекция курса "Введение в системную инженерию"Восьмая лекция курса "Введение в системную инженерию"
Восьмая лекция курса "Введение в системную инженерию"
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
Эффективные ретроспективы
Эффективные ретроспективыЭффективные ретроспективы
Эффективные ретроспективы
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
DevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почемуDevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почему
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
 
гибкая методология разработки по
гибкая методология разработки погибкая методология разработки по
гибкая методология разработки по
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Введение в методы agile
Введение в методы agileВведение в методы agile
Введение в методы agile
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
 

Mais de JaneKozmina

Шаблоны оформления требований
Шаблоны оформления требованийШаблоны оформления требований
Шаблоны оформления требованийJaneKozmina
 
Нотации оформления требований
Нотации оформления требованийНотации оформления требований
Нотации оформления требованийJaneKozmina
 
Социальная инженерия
Социальная инженерияСоциальная инженерия
Социальная инженерияJaneKozmina
 
Плохой против хорошего консультанта
Плохой против хорошего консультантаПлохой против хорошего консультанта
Плохой против хорошего консультантаJaneKozmina
 
Требования к по
Требования к поТребования к по
Требования к поJaneKozmina
 
Системное мышление
Системное мышлениеСистемное мышление
Системное мышлениеJaneKozmina
 

Mais de JaneKozmina (7)

Шаблоны оформления требований
Шаблоны оформления требованийШаблоны оформления требований
Шаблоны оформления требований
 
Нотации оформления требований
Нотации оформления требованийНотации оформления требований
Нотации оформления требований
 
Спам
СпамСпам
Спам
 
Социальная инженерия
Социальная инженерияСоциальная инженерия
Социальная инженерия
 
Плохой против хорошего консультанта
Плохой против хорошего консультантаПлохой против хорошего консультанта
Плохой против хорошего консультанта
 
Требования к по
Требования к поТребования к по
Требования к по
 
Системное мышление
Системное мышлениеСистемное мышление
Системное мышление
 

Методологии разработки по

  • 2. Хронология • 1970 — статья Уинстона Ройса «Managing the Development of Large Software Systems» [Royce, 1987]; первое упоминание о методике, близкой к современной «модели водопада», название «модель водопада» в статье не использовано. • 1976 — опубликована работа Тома Гилба Software Metrics, где впервые использовался термин «эволюционная методология». [Ларман, Базили, 2003] • 1986 — статья Барри Боэма «A spiral model of software development and enhancement» [Boehm, 1986]; посвящена спиральной модели разработки программного обеспечения. • 1998, июнь — Rational Corporation выпускает новую версию продукта Rational Unified Process 5.0 [Якобсон и др., 2002] • 2001, февраль — появление Manifesto for Agile Software Development [Manifesto for Agile Software Development, 2001], где закреплены основные положения гибких методов.
  • 4. Водопадная модель Полная модель
  • 6. Итеративная / инкрементная модель • С точки зрения структуры жизненного цикла модель итеративная, так как представима серией многократных повторений одинаковой операции. • С точки зрения развития продукта модель инкрементная, то есть основанная на приращениях продукта. • В основе лежит цикл PDSA.
  • 7. Итеративная / инкрементная модель «‘Эволюция’ — прием, предназначенный для создания видимости стабильности. Шансы успешного создания сложной системы будут максимальными, если она реализуется в серии небольших шагов и если каждый шаг заключает в себе четко определенный успех, а также возможность ‘отката’ к предыдущему успешному этапу в случае неудачи. Перед тем, как пустить в дело все ресурсы, предназначенные для создания системы, разработчик имеет возможность получать из реального мира сигналы обратной связи и исправлять возможные ошибки в проекте...» Том Гилб «Software metrics», 1976
  • 8. Итеративная / инкрементная модель • Жизненный цикл проекта разбивается на мини-проекты, которые сами по себе также зачастую являются полным жизненным циклом, только охватывающим меньший функционал. • В сжатые сроки можно проанализировать, в какой момент времени были приняты неправильные или неоптимальные решения, и, при необходимости, вернуться не на исходные позиции, а на соответствующий этап. • При наличии ресурсов, возможна организация параллельной разработки на ряде этапов (см. «Deadline. Роман об управлении проектами» Тома ДеМарко). • Возможность раннего начала тестирования (как профессионального, так и пользовательского), соответственно и нахождения критичных ошибок на начальных этапах. • Возможность маневрирования, многократной смены приоритетов в течение процесса разработки и, как следствие, наличие возможности сдачи в эксплуатацию не законченного или не соответствующего изначально определенным требованиям, но работающего проекта, удовлетворяющего заказчика. • Снижение неопределенности и соответственно рисков.
  • 11. Спиральная модель • Может возникнуть потребность в генерации большого количества сопровождающей разработку документации. • Есть вероятность потратить несоразмерное объему работ количество времени на первоначальных витках спирали. • Необходимы навыки риск-менеджера. • При определенных условиях может быть вполне успешна, например неполном или сложном наборе требований со стороны заказчика. • В отличие от инкрементальной и водопадной моделей, рассмотренных ранее и являющихся скорее каркасами, спиральная модель выдвигает ряд принципиальных условий, которые, для успешного применения методологии, следует выполнять.
  • 12. Agile / гибкие методологии • 11-13 февраля 2001 года ряд 17 «лидеров гибких методологий» сформировали группу под названием Agile Alliance. • Слово agile (быстрый, ловкий, стремительный) отражало в целом их подход к разработке ПО, основанный на богатом опыте участия в разнообразных проектах в течение многих лет. • Этот подход под названием "Быстрая разработка ПО" (Agile software development) базируется на четырех идеях, сформулированных ими в документе «Манифест быстрой разработки ПО" (Agile Alliance's Manifesto).
  • 13. Agile Alliance’s Manifesto 4 положения: • индивидуумы и взаимодействия между ними ценятся выше процессов и инструментов; • работающее программное обеспечение ценится выше всеобъемлющей документации; • сотрудничество с заказчиками ценится выше формальных договоров; • реагирование на изменения ценится выше строгого следования плану. 4 условия успешности: • если позволяет людям легче выразить свои мысли; • если выполняет задачи, невыполнимые вручную; • если автоматизирует утомительные и подверженные ошибкам действия; • если облегчает общение между людьми.
  • 14. SCRUM • Takeuchi H., Nonaka I. The new product development game (1986) • Scrum – термин, означающий схватку вокруг мяча регби. • Процесс формализован в 1995 году Кеном Швабером
  • 15. SCRUM Методология определяет правила: • планирования и управления списком требований к продукту для достижения максимальной прибыльности от реализованной функциональности; • планирования итераций для максимальной заинтересованности команды в результате; • взаимодействия участников команды для максимально быстрой реакции на существующую ситуацию; • анализа и корректировки процесса разработки для совершенствования взаимодействия внутри команды. • 3 роли • 3 практики • 3 документа Подробнее: http://www.scrum.org/
  • 16. eXtreme Programming (XP) • Бек К. Экстремальное программирование. СПб.: Питер, 2002. — 224 с. • 12 подходов: – разработка через тестирование (Test Driven Development); – игра в планирование (Planning Game); – заказчик всегда рядом (Whole Team, Onsite Customer); – парное программирование (Pair Programming); – непрерывная интеграция (Continuous Integration); – рефакторинг (Design Improvement, Refactoring); – частые небольшие релизы (Small Releases); – простота (Simple Design); – метафора системы (System Metaphor); – коллективное владение кодом (Collective Code Ownership); – стандарт кодирования (Coding Standard or Coding conventions); – 40-часовая рабочая неделя (Sustainable Pace, 40-hour week).
  • 17. См. также • Rational Unified Process - http://www- 01.ibm.com/software/awdtools/rup/ • Feature Driven Development - http://www.featuredrivendevelopment.com/ • Chaos Model - http://info.psu.edu.sa/psu/cis/biq/se501/files/ch aos93.pdf • The Cathedral and the Bazaar - http://www.amazon.com/Cathedral-Bazaar-Eric- S-Raymond/dp/1607962284