Методологии разработки ПО. Стоимость ошибок. Итерационная модель. Жизненный цикл. Структура деятельности

Страницы работы

Фрагмент текста работы

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

Лекции 5,6

(с) , 2010

ОБЗОР МЕТОДОЛОГИЙ

(с) , 2010

Самые популярные

  • Водопадная модель (Waterfall)
  • Экстремальное программирование (XP)
  • Унифицированный процесс (RUP)
  • SCRUM

(с) , 2010

ВОДОПАДНАЯ МОДЕЛЬ

(с) , 2010

А что это такое

Чем позднее найдена ошибка, тем дороже она обходится Качественный анализ бизнес-задач обеспечивает стабильность требований Традиции классической инженерии PMBOK 1.0 - 3.0

(с) , 2010

Стоимость ошибок

(с) , 2010

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

Разработка итерациями Риски распределены более равномерно 1970й и позже PMBOK 4.0

(с) , 2010

УНИФИЦИРОВАННЫЙ ПРОЦЕСС

(с) , 2010

Цель

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

(с) , 2010

Жизненный цикл

Жизненный цикл проекта (Фазы) Начало (Inception) Проектирование (Elaboration) Построение (Construction) Внедрение (Transition) Для каждой фазы определяется Цели Вехи (milestones) Состояние артефактов Действия в фазе (use cases)

(с) , 2010

Жизненный цикл

(с) , 2010

Деятельности

Основные деятельности Бизнес-моделирование (Business modeling) Управление требованиями (Requirements) Анализ и Проектирование (Analysis and Design) Реализация (Implementation) Тестирование (Test) Развертывание (Deployment) Вспомогательные Управление проектом (Project management) Управление изменениями (Change management) Среда (Environment)

(с) , 2010

Структура деятельности

Элементы деятельности Роли (Roles): кто? Действия (Tasks): как? Артефакты (Work Products): что получаем? Описание деятельностей (диаграммы) Краткий обзор действий (все действия и все роли, задействованные в деятельности) Краткий обзор артефактов (все артефакты и все роли) Детали деятельности (группировки действий, артефактов, ролей)

(с) , 2010

Ключевые практики

  • Итеративная разработка
  • Управление требованиями
  • Разбиение на компоненты
  • Визуализация моделей
  • Проверяемое качество
  • Управление изменениями

(с) , 2010

Ключевые особенности

  • Итеративный
  • Управляемый
  • Архитектуроцентричный
  • Оперирующий моделями, представлениями и прецедентами
  • C единым языком описания (UML)
  • Технологически ориентированный на ООП и компоненты
  • С инструментальная поддержка
  • Настраиваемый

(с) , 2010

Вариации и развития RUP

Agile Unified Process http://www.ambysoft.com/unifiedprocess/agileUP.html Essential Unified Process (EssUP) http://www.ivarjacobson.com/ OpenUP http://epf.eclipse.org/wikis/openup/index.htm Enterprise Unified Process http://epf.eclipse.org/wikis/openup/index.htm

(с) , 2010

ГИБКИЕ МЕТОДОЛОГИИ

(с) , 2010

Манифест

(с) , 2010

Гибкие методологии - принципы

Удовлетворение клиента за счёт ранней и бесперебойной поставки ценного ПО Приветствие изменения требований, даже в конце разработки. Это может повысить конкурентоспособность полученного продукта Частая поставка рабочего ПО (каждый месяц или неделю или ещё чаще) Тесное, ежедневное общение заказчика с разработчиками на протяжении всего проекта Проектом занимаются мотивированные личности, которые обеспечены нужными условиями работы, поддержкой и доверием. Рабочее ПО — лучший измеритель прогресса

(с) , 2010

Гибкие методологии – принципы

Рекомендуемый метод передачи информации это личный разговор (лицом к лицу) Спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределенный срок Постоянное внимание на улучшение технического мастерства и удобный дизайн Простота — искусство НЕ делать лишней работы Лучшие архитектура, требования и дизайн получаются у самоорганизованной команды Постоянная адаптация(улучшение эффективности работы) к изменяющимся обстоятельствам

(с) , 2010

ЭКСТРЕМАЛЬНОЕ ПРОГРАММИРОВАНИЕ

(с) , 2010

4 ценности XP

  • коммуникация (communication);
  • простота (simplicity);
  • обратная связь (feedback);
  • храбрость (courage).

(с) , 2010

Практики XP (ver 1.0)

  • • Игра в планирование (planning game)
  • • Небольшие версии (small releases)
  • • Метафора (metaphor)
  • • Простой дизайн (simple design)
  • • Тестирование (testing)
  • • Переработка (refactoring)
  • Программирование парами (pair programming)

(с) , 2010

Практики XP (ver 1.0)

• Коллективное владение (collective ownership • Непрерывная интеграция (continuous integration) • 40-часовая неделя (40-hour week) • Заказчик на месте разработки (on-site customer) • Стандарты кодирования (coding standards)

(с) , 2010

Роли в XP

  • Программист
  • Заказчик
  • Тестер
  • Ревизор
  • Инструктор
  • Консультант
  • Менеджер

(с) , 2010

Ключевые слова

Автоматизированный тест (automated test) Версия (release) График выполнения работ (commitment schedule) Заказчик (customer) Игра в планирование (Planning Game) Идеальное время программирования (Ideal programming time) Инженерная задача (engineering task) Инструктор (coach) Исследование (exploration)

(с) , 2010

Ключевые слова

История (story) Итерация (iteration) Менеджер (manager). Партнер (partner) Переоценка (reestimation) Переработка (refactoring) План итерации (iteration plan) Программирование парами (pair programming) Программист (programmer)

(с) , 2010

Ключевые слова

Производство (production) Ревизор (tracker) Регенерация (recovery) Системная метафора (system metaphor) Скорость команды (team speed). Тест модуля (unit test) Тестовый случай (test case) Фактор (коэффициент) нагрузки (load factor) Функциональный тест (functional test). Энтропия (entropy)

(с) , 2010

XP 2.0 - Ценности

  • Общение
  • Простота
  • Обратная связь
  • Храбрость
  • Уважение

(с) , 2010

XP 2.0 - Принципы

Человечность Economics Взаимная выгода Сходство Все лучше и лучше Разнообразие Обдумывание

Поток Новые возможности Избыточность Неудачи Качество Малые шажки Ответственность

(с) , 2010

XP 2.0 - Практики

Рассказы Еженедельный цикл Ежеквартальный цикл Слабые задачи

Доверие Ритм Инкрементное программирование Сначала тесты Программирование по-ковбойски Слаженность и единство

(с) , 2010

XP 2.0 - Практики

Работа в одном помещении Команда как одно целое Информативность окружения Энергичная работа Парное программирование

Десятиминутная сборка Постоянная интеграция

(с) , 2010

XP 2.0 – дополнительные практики

Непосредственное вовлечение заказчика Инкрементная поставка продукта Контракт с оговоренным объемом работ Плата за использование Код и тесты Общий код Единая база кода Ежедневная поставка системы

Постоянство «Усушка и утряска» Анализ причин и следствий

(с) , 2010

SCRUM

(с) , 2010

Жизненный цикл

Sprint – основной цикл разработки

(с) , 2010

Роли

Pigs ScrumMaster Product Owner Team Chickens Users Stakeholders Experts

(с) , 2010

Артефакты

Артефакты Product backlog Sprint backlog Burn down Собрания Planning meeting Daily Scrum Demo meeting Retrospective Meeting

(с) , 2010

Практики

  • Заказчик должен быть рядом с разработчиками
  • Регулярное предоставление работоспособных версий
  • Постоянное управление рисками – дело команды
  • Прозрачность планов и результатов
  • Как можно чаще встречаться с заинтересованными лицами
  • Обеспечить предсказание возможных отклонений от графика
  • Не заметать проблемы под ковер
  • Работа должна быть энергичной, но не чрезмерной.

(с) , 2010

ЛЮДИ В РАЗРАБОТКЕ ПО

(с) , 2010

Человек – нелинейный и наиболее важный компонент при создании программного обеспечения Алистер Коуберн

(с) , 2010

И простой вывод

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

(с) , 2010

Практики

  • Набирайте лучших
  • Никаких сверхурочных
  • Лучшие инструменты, которые можно купить
  • Лучшие рабочие места, которые можно позволить
  • Лучше обучать, чем использовать
  • Лучше любить, чем воспитывать

(с) , 2010

Поиск людей

  • Что такое хорошо:
    • Хороший текст вакансии
    • Личное собеседование
    • Максимум открытости
    • Обязательная обратная связь
    • Вежливость
    • Бесплатная помощь

(с) , 2010

Поиск людей

  • И что такое плохо:
    • Кандидат – повод для повышения самооценки
    • Переносить ответственность за решение
    • Давать глупые задачи
    • Давать трудозатратные тестовые задания

(с) , 2010

Карьера

  • Капитализация сотрудника – сумма всех профессиональных доходов, которые он получит до выхода на пенсию, отнесенная к годам, оставшимся до пенсии.
  • Карьеры:
    • вертикальная управленческая
    • вертикальная техническая
    • горизонтальная
    • смена ролей

(с) , 2010

Чем удержать

  • зарплата
  • драйв
  • свобода
  • развитие
  • обучение
  • соц. пакет
  • комфорт
  • бонус
  • ЧСВ (конференции, публикации, патенты)
  • стабильность

(с) , 2010

Заметки россыпью

  • Нужно не забывать, что:

(с) , 2010

Ссылки и литература

Общее Алистер Коуберн «Каждому проекту – своя методология» RUP Крачтен «Введение в RUP» XP Кент Бек «Экстремальное программирование» Scrum http://www.infoq.com/minibooks/scrum-xp-from-the-trenches http://scrumtrek.ru/files/bibitchev_scrum.pdf

(с) , 2010

Ссылки и литература

Алистер Коуберн «Люди, как неленейные и наиболее важные компоненты в создании

Похожие материалы

Информация о работе