Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Жизненный цикл.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Вопрос 8.Экстремальное программирование

Основные действия: ◦Кодирование ◦Тестирование ◦Выслушивание заказчика ◦Проектирование

Динамика определяется: ◦Непрерывностью связи с заказчиком ◦Простотой – выбирается простейшее решение ◦Быстрой обратной связью ◦Профилактика проблем

Методы

1.Planning game (Игра в планирование)

Заказчик:◦Объем работ ◦Приоритет ◦Композиция версий ◦Сроки выпуска версий

Разработчик: ◦Временные оценки ◦Последствия ◦Процесс ◦Подробный график работ

2.Small releases (Небольшие версии)

Быстрый запуск простой системы

Версия маленькая, насколько это возможно

Версия должна быть завершенной

Обычно выпуск версии 1 раз в 2 недели

3.Metaphor (Метафора)

Глобальное «видение» проекта, понятное всем

«Замена» большой архитектуры

В данном контексте – основная идея проекта, сведения об архитектуре

4.Simple design (Простой дизайн)

Правильный дизайн:

Выполняются все тесты

Нет дублирующей логики

Выражаются все важные идеи

Минимальное число классов и методов

Добавляется в дизайн то, что нужно, только тогда, когда нужно

5.Testing (Тестирование)

Для любой возможности существуют автоматические тесты

Модульные тесты – разработчики

Функциональные тесты – заказчики

Репозиторий тестов постоянно увеличивается

Код разрабатывается вместе с тестами (или после тестов)

6.Refactoring (Рефакторинг)

Изменение программы для упрощения добавления новой возможности

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

Программы до и после рефакторинга функционально эквивалентны

7.Pair programming (Парное программирование)

Разработчики работают парами

Партнер с клавиатурой и мышью думает о реализации

Партнер без клавиатуры и мыши думает стратегически:

◦Сработает ли данный подход?

◦Какие еще тесты нужно разработать?

Состав пар меняется динамически

Эффективность ПП очень высокая

8.Collective ownership (Коллективное владение)

Код – общая собственность

При необходимости код модифицируется немедленно, независимо от авторства кода

9.Continuous integration (Непрерывная интеграция)

Код интегрируется раз в несколько часов. Не реже 1-го раза в день

Интеграция нового кода заканчивается после прохождения системой всех тестов

Ответственны за интеграцию пара, которая внесла изменения

10.40-hour week (40-часовая неделя)

Сверхурочные – крайне нежелательны

Если постоянно требуется переработка – неправильно организован проект

Отпуск – обязателен

11.On-site customer (Локальный заказчик)

В составе команды – представитель заказчика

Представитель – пользователь системы

Представитель отвечает на вопросы разработчиков и расставляет мелкие приоритеты

12.Coding standards (Стандарты кодирования)

Единый стандарт кодирования

Стандарт должен способствовать коммуникациям

Стандарт должен быть добровольно воспринят командой

Вопрос 9.Scrum

Артефакты

Backlog ◦Список работ, которые необходимы выполнить

Backlog sprint ◦набор требований, которые могут быть реализованы за один этап (спринт)

Планирование

Спринт (Sprint) ◦30-тидневный (обычно) промежуток за который выполняется реализация заданной функциональности

Планирование спринта ◦Происходит в начале спринта

Scrum ◦Ежедневная встреча разработчиков

Демонстрация ◦Происходит в конце спринта

Роли

Основные ◦Владелец продукта ◦Руководитель (ScrumMaster) ◦Команда (!)

Остальные ◦Пользователи ◦Клиенты ◦Эксперты-консультанты

Заказчик определяет и периодически меняет функциональные требования

Руководитель проекта расставляет приоритеты

Формируются небольшие группы (1-6, реже до 9) человек для реализации небольших частей проекта

Формируется backlog проекта

Формируется sprint backlog для каждой группы

Выполнение sprint происходит группой автономно. Руководитель не вправе влиять на sprint

Каждая группа ежедневно выполняет схватки (scrum) (10-30 мин):

◦Что сделано каждым в предыдущий день?

◦Что будет сделано каждым в следующий день?

◦Что мешает работать или повышать производительность?

Участвовать могут все, говорить только основные участники

Задача руководителя группы – решать проблемы

По окончании спринта – встреча с руководителями и заказчиками

9 Классическая

Прототирование

Спиральная

Инкрементная

RAD

RUP

XP

SCRUM

Стратегия

О

Э

Э

И

И

И+Э

Э

Э

Вид

Пр

Пр

Пр

Пр

Пр

Пр

Ад

Ад

Команда

1..∞

≤ 10

1..∞

1..∞

1..∞

1..∞

≤ 10

≤ 6(9)

Продолжительность

Выс

Низк

Выс

Низк

Низк

Сред,Выс

Низк

Низк

Промеж. версии

-

-

+/-

+

+/-

+

+

+

ИС

-

-

-

-

+

+

+

+