90
2012

Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

2012

Page 2: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Программное обеспечение

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

Фаза проектирования ПО

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

Программный продукт

Ицыксон В.М. ТРПО © 2012 2

Page 3: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 3

Анализ и планирование

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

Разработка

Тестирование Эксплуатация/

Сопровождение

Документирование

Page 4: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Качество ◦ Реализованы все возможности

◦ Эти возможности реализованы с надлежащим качеством

Время ◦ Проект реализован вовремя

◦ Этапы проекта реализованы вовремя

Бюджет ◦ Проект уложился в планируемый бюджет

Ицыксон В.М. ТРПО © 2012 4

Page 5: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 5

Источник: The Standish Group International, Chaos reports

32

44

24 2009

Успех

Проблемы

Провал

28

49

23 2000

Успех

Проблемы

Провал

34

51

15 2004 Успех

Проблемы

Провал

Page 6: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Программная индустрия существенно отличается от других областей производства: ◦ Очень высокая сложность системы

◦ Менее предсказуем результат

◦ Хуже поддается планированию

◦ До сих пор в большей степени творчество, чем ремесло

Ицыксон В.М. ТРПО © 2012 6

Page 7: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Решаемая задача

Заказчик

Со стороны разработчика ◦ Команда разработки

◦ Инфраструктура

◦ Выбранная методология проектирования ПО

Ицыксон В.М. ТРПО © 2012 7

Page 8: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Методологии определяются: ◦ Составом и последовательностью работ

◦ Ролью участников проекта

◦ Составом и шаблонами документов

◦ Организацией и управлением требованиями

◦ Порядком контроля и проверки качества

◦ Способами взаимодействия участников

◦ …

Ицыксон В.М. ТРПО © 2012 8

Page 9: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Agile software development

Agile Unified Process (AUP)

Behavior Driven Development (BDD)

Big Design Up Front (BDUF)

Constructionist design methodology (CDM)

Design-driven development (D3)

Design Driven Testing (DDT)

Domain-Driven Design (DDD)

Dynamic Systems Development Method (DSDM)

Evolutionary Model

Extreme Programming (XP)

Feature Driven Development

Iterative and incremental development

Kaizen

Ицыксон В.М. ТРПО © 2012 9

Kanban

Lean software development

Microsoft Solutions Framework (MSF)

Model-driven architecture (MDA)

Open Unified Process

Rapid application development (RAD)

Rational Unified Process (RUP)

Scrum

Software Craftsmanship

Spiral model

Structured Systems Analysis and Design Method (SSADM)

Team Software Process (TSP)

Test-driven development (TDD)

Unified Process (UP)

V-Model

Waterfall model

Wheel and spoke model

Page 10: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Стратегия конструирования

Адаптивность процесса

Этапы и связи между ними

Формулировка требований

Ицыксон В.М. ТРПО © 2012 10

Page 11: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Однократные

◦ Определены все требования

◦ Один цикл конструирования

◦ Промежуточных версий нет

Инкрементные

◦ Иногда - инкрементно-итеративные

◦ Определены все требования

◦ Множество циклов конструирования

◦ Промежуточные версии могут распространяться

Эволюционные

◦ Иногда - эволюционно-итеративные

◦ Определены не все требования

◦ Множество циклов конструирования

◦ Промежуточные версии могут распространяются

Ицыксон В.М. ТРПО © 2012 11

Page 12: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Тяжеловесные (прогнозирующие) ◦ Фиксированные требования

◦ Большая команда

◦ Разная квалификация разработчиков

Адаптивные (облегченные) ◦ Постоянно меняющиеся требования

◦ Маленькая команда

◦ Высококвалифицированные разработчики

Ицыксон В.М. ТРПО © 2012 12

Page 13: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Классическая (водопадная) модель ◦ Общепринятая линейная модель ◦ Классическая итерационная ◦ Каскадная модель ◦ Строгая каскадная модель

Прототипирование (макетирование) Инкрементная модель Быстрая разработка приложений (RAD) Спиральная модель Rational Unified Process (RUP) Microsoft Solution Framework (MSF) Экстремальное программирование (XP) Scrum

Ицыксон В.М. ТРПО © 2012 13

Page 14: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 14

Стратегия Адаптивность Полнота

Классическая Однокр. Прогн. +

Прототипирование Эвол. Прогн. -

Спиральная Эвол. Прогн. +

Инкрементная Инкр. Прогн. +

RAD Инкр. Прогн. +

RUP Инкр. / Эвол. Прогн. +

MSF Однокр. / Эвол. Прогн./Адапт +

XP Эвол. Адапт. +

SCRUM Эвол. Адапт. +

Page 15: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Выбор зависит от: ◦ Решаемых задач ◦ Сроков реализации ◦ Команды разработчиков:

Размер команды разработчиков

Опыт команды разработчиков

Сработанность команды разработчиков

Местонахождение разработчиков

Механизмы взаимодействия в команде разработчиков

◦ Заказчика: Требований заказчика

Механизмов взаимодействия с заказчиком

◦ и т.д.

Ицыксон В.М. ТРПО © 2012 15

Page 16: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Этапы ◦ Список этапов ◦ Последовательность этапов ◦ Связи между этапами ◦ Состав этапов ◦ Объемы (длительность) этапов

Требования ◦ Формулировка требований ◦ Корректировка требований

Команда ◦ Размер ◦ Роли участников проекта ◦ Способами взаимодействия участников

Ицыксон В.М. ТРПО © 2012 16

Page 17: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Артефакты ◦ Состав и содержание

◦ Время получения артефактов (например, версий)

◦ Объем и состав документации

Заказчик ◦ Квалификация заказчика

◦ Степень участия заказчика

Порядок контроля и проверки качества

Ицыксон В.М. ТРПО © 2012 17

Page 18: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 18

Page 19: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Предложена в 1960-х годах, впервые описана 1970 г., В. Ройсом

Водопадный (однократный) подход

Относится к прогнозирующим методологиям

Предполагает полное наличие всех требований на момент старта проекта

Требования не могут меняться в процессе проектирования

Программный продукт появляется по окончании проектирования

Промежуточные версии не предусмотрены

Ицыксон В.М. ТРПО © 2012 19

Page 20: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 20

Анализ и планирование

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

Разработка

Тестирование

Эксплуатация/ Сопрвождение

Page 21: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Анализ и планирование ◦ Сбор требований ◦ Анализ требований ◦ Планирование проекта

Проектирование ◦ Разработка архитектуры ◦ Разработка моделей данных ◦ Разработка алгоритмов

Реализация ◦ Кодирование ◦ Отладка

Тестирование/верификация Сопровождение

◦ Внедрение ◦ Эксплуатация ◦ Внесение изменений

Ицыксон В.М. ТРПО © 2012 21

Page 22: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Имеется несколько модификаций ◦ Общепринятая линейная модель

◦ Классическая итерационная Предложена У. Ройс, 1970 г.

Обратная связь после каждого этапа

◦ Каскадная модель Завершение каждого этапа проверкой

◦ Строгая каскадная модель Минимизация возвратов к пройденным этапам

Ицыксон В.М. ТРПО © 2012 22

Page 23: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 23

Анализ и планирование

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

Разработка

Тестирование

Эксплуатация/ Сопрвождение

Page 24: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 24

Сбор требований Подтверждение

Спец. требований Подтверждение

Проектирование Верификация

Разработка Тестирование

Эксплуатация Аттестация

Page 25: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 25

Сбор требований Подтверждение

Спец. требований Подтверждение

Проектирование Верификация

Разработка Тестирование

Эксплуатация Аттестация

Page 26: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Достоинства: ◦ Имеется план и график по всем этапам

конструирования

◦ Ход конструирования – упорядочен

◦ Имеется богатый опыт использования

Недостатки: ◦ Не всегда соответствует реальным проектам

(отсутствует гибкость)

◦ Часто всех требований на начальном этапе нет

◦ Результат доступен только в конце

Ицыксон В.М. ТРПО © 2012 26

Page 27: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Применятся, когда имеются не все требования

Позволяет быстро увидеть некоторые свойства продукта ◦ Удобство ◦ Внешний вид ◦ Применимость

Часто применятся при проектировании ◦ Информационных систем ◦ Программных продуктов с ГПИ

Используются средства быстрой разработки приложений

Ицыксон В.М. ТРПО © 2012 27

Page 28: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

1. Сбор и уточнение требований 2. Быстрое проектирование 3. Построение макета 4. Оценка макета заказчиком

Заказчик не удовлетворен Уточнение требований

Переход к п. 2

Заказчик удовлетворен Переход к п. 5

5. Конструирование продукта

Ицыксон В.М. ТРПО © 2012 28

Page 29: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 29

Сбор и уточнение

требований

Быстрое проектирование

Построение макета

Уточнение требований

Конструирование Заказчик

удовлетворен?

Page 30: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Достоинства: ◦ Обеспечивает определение полных требований к

ПО

Недостатки: ◦ По сути не является полным ЖЦ

◦ Заказчик может принять макет за продукт

◦ Разработчик может принять макет за продукт

Ицыксон В.М. ТРПО © 2012 30

Page 31: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Объединяет классический подход и макетирование

Весь проект делится на инкременты –версии продукта с определенной функциональностью

Для каждого инкремента выполняется: ◦ Анализ ◦ Проектирование ◦ Разработка ◦ Тестирование

Результат каждого инкремента – работающий продукт

Ицыксон В.М. ТРПО © 2012 31

Page 32: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

1-ый инкремент

Ицыксон В.М. ТРПО © 2012 32

A П Р Т Э 2-ой инкремент

N-ый инкремент

Page 33: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Достоинства: ◦ Имеется план и график по всем этапам

конструирования

◦ Промежуточные версии доступны заказчику

Недостатки: ◦ Часто всех требований на начальном этапе нет

◦ Не всегда можно заранее спланировать содержание версий

◦ Отсутствует гибкость

Ицыксон В.М. ТРПО © 2012 34

Page 34: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Предложена Б. Боемом, 1988г

Базируется: ◦ На классическом ЖЦ ◦ На макетировании

Дополнена анализом рисков

Основные компоненты ◦ Планирование ◦ Анализ ◦ Конструирование ◦ Реализация ◦ Оценивание

Ицыксон В.М. ТРПО © 2012 35

Page 35: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 36

Page 36: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 37

Page 37: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Достоинства: ◦ Адекватно отражает эволюционный характер

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

витке эволюции ◦ Использует моделирование

Недостатки: ◦ Высокие требования к заказчику ◦ Трудность контроля времени разработки и

управления им

Ицыксон В.М. ТРПО © 2012 38

Page 38: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Быстрая разработка приложений (RAD)

RAD = Rapid Application Development

Инкрементная стратегия конструирования

Использование компонентно-ориентированного конструирования

Обеспечение очень короткого цикла разработки (60-90 дней)

Ориентирована в основном на разработку ИС

Ицыксон В.М. ТРПО © 2012 39

Page 39: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Бизнес-моделирование

Моделирование данных

Моделирование обработки

Генерация приложения

Тестирование и объединение

Ицыксон В.М. ТРПО © 2012 40

Page 40: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Моделируется информационный поток между бизнес-функциями

Определяется: ◦ Какая информация

создается ◦ Кто ее создает ◦ Кто ее обрабатывает ◦ Где информация

применяется

Ицыксон В.М. ТРПО © 2012 41

Page 41: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

По информационному потоку формируется набор объектов данных

Определяются свойства объектов

Специфицируются отношения между объектами

Ицыксон В.М. ТРПО © 2012 42

Page 42: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Определение преобразований объектов данных

Создаются описания для ◦ добавления объектов данных

◦ модификации объектов данных

◦ удаления объектов данных

◦ поиска объектов данных

Ицыксон В.М. ТРПО © 2012 43

Page 43: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Использование ЯП 4-го поколения

Использование готовых компонентов

Создание повторно используемых компонентов

Использования средств автоматизации

Ицыксон В.М. ТРПО © 2012 44

Page 44: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Тестирование упрощается из-за повторного использования компонентов ◦ Они не требуют автономного

тестирования

Используется интеграционное тестирование

Ицыксон В.М. ТРПО © 2012 45

Page 45: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Область применения – проектирование информационных систем

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

Можно привлечь достаточно разработчиков

Отсутствуют технические риски

Ицыксон В.М. ТРПО © 2012 46

Page 46: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Авторы: ◦ А. Якобсон ◦ Г. Буч ◦ Дж. Рембо

Продвигается IBM Rational

Начало разработки -1995 г.

Первая версия RUP -1998 г.

Наиболее глубоко проработанная методология

Ицыксон В.М. ТРПО © 2012 47

Page 47: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Инкрементная и эволюционная методология

Базируется на широком использовании UML

На всех стадиях используются программные метрики

Процесс делится на этапы (стадии) Каждый этап состоит из итераций Итерация – законченный цикл разработки,

вырабатывающий промежуточный продукт

Ицыксон В.М. ТРПО © 2012 48

Page 48: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 49

Page 49: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Бизнес-моделирование Управление требованиями Анализ и проектирование

◦ Создание статического и динамического представления системы

Реализация ◦ Создание программного кода

Тестирование ◦ Проверка системы в целом

Ицыксон В.М. ТРПО © 2012 50

Page 50: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 51

Page 51: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Назначение ◦ Запуск проекта

Цели ◦ Определение области применения

◦ Определение элементов Use Case, критических для системы

◦ Определение общих черт архитектуры

◦ Определение общей стоимости и плана проекта

◦ Идентификация основных элементов риска

Ицыксон В.М. ТРПО © 2012 52

Page 52: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Формулировка области применения проекта ◦ Выявление требований и ограничений

Планирование ◦ Подготовка основного варианта развития и альтернатив

развития для управления риском ◦ Определение персонала ◦ Определение проектного плана ◦ Определение зависимостей между стоимостью,

планированием и полезностью

Синтез предварительной архитектуры ◦ Развитие решений проектирования ◦ Определения используемых компонентов (разработка,

покупка, повторное использование)

Ицыксон В.М. ТРПО © 2012 53

Page 53: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Спецификация основных проектных требований

Начальная модель Use Case (20%)

Начальный словарь проекта

Начальная оценка риска

Проектный план с этапами и итерациями

Ицыксон В.М. ТРПО © 2012 54

Page 54: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 55

Page 55: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Назначение ◦ Создать архитектурный базис

Цели ◦ Определение оставшихся требований

Функциональные требования выражаются с помощью Use Case

◦ Определение архитектурной платформы системы

◦ Отслеживание рисков, устранение наибольших рисков

◦ Разработка плана итераций этапа «Конструирование»

Ицыксон В.М. ТРПО © 2012 56

Page 56: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Развитие спецификации

Формирование критических элементов Use Case, задающих дальнейшие решения

Развитие архитектуры, выделение ее компонентов

Ицыксон В.М. ТРПО © 2012 57

Page 57: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Модель Use Case (80%) Дополнительные (том числе

нефункциональные) требования

Описание программной архитектуры Действующий архитектурный макет Переработанный список элементов рисков

План разработки всего проекта, включающий все итерации и критерий развития для каждой итерации

Ицыксон В.М. ТРПО © 2012 58

Page 58: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 59

Page 59: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Назначение ◦ Создание программного продукта с начальной

функциональностью

Цели ◦ Минимизация стоимости разработки

◦ Быстрое получение требуемого качества

◦ Быстрое получение версий

Ицыксон В.М. ТРПО © 2012 60

Page 60: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Управление ресурсами, контроль ресурсов

Оптимизация процессов

Полная разработка компонентов и их тестирование

Оценивание реализаций продукта

Ицыксон В.М. ТРПО © 2012 61

Page 61: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Программный продукт, пригодный для отчуждения от разработчиков (альфа-, бета-версия и т.п.)

Описание текущей реализации

Руководство пользователя

Ицыксон В.М. ТРПО © 2012 62

Page 62: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 63

Page 63: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Назначение ◦ Отдать программный продукт пользователям

◦ Завершить выпуск продукта

Действия в каждой итерации ◦ Выпуск бета-версий или релизов

◦ Исправление найденных в процессе бета-тестирования ошибок

Результат ◦ Законченный продукт

Ицыксон В.М. ТРПО © 2012 64

Page 64: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Наиболее продуманная методология

Подходит для больших и очень больших проектов (реже средних)

Требует высокой квалификации участников

Ицыксон В.М. ТРПО © 2012 65

Page 65: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Основные особенности ◦ Отказ от классических «неповоротливых»

подходов

◦ Направленность на проекты с постоянно меняющимися требованиями

◦ Небольшие команды

◦ (!)Высокая значимость не только технических составляющих процесса, но и организационных, социальных и т.п.

Ицыксон В.М. ТРПО © 2012 66

Page 66: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Люди и взаимодействие Работающий продукт Сотрудничество с заказчиком Готовность к изменениям

Ицыксон В.М. ТРПО © 2012 67

процессов и инструментов исчерпывающей документации согласования условий контракта следования первоначальному плану

ВАЖНЕЕ

Page 67: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Scrum

Экстремальное программирование (XP)

Бережливая разработка ПО (Lean Software Development)

Agile Unified Process (AUP)

Feature Driven Development (FDD)

Kanban

Ицыксон В.М. ТРПО © 2012 68

Page 68: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Экстремальное программирование (XP) Автор – Кент Бек, 1999 г Ориентирован на группы до 10 чел. Группа размещается в одном помещении Процесс:

◦ гибкий и динамичный ◦ наиболее пригоден для проектов с

изменяющимися требованиями ◦ итеративный

Ицыксон В.М. ТРПО © 2012 69

Page 69: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Основные действия: ◦ Кодирование

◦ Тестирование

◦ Выслушивание заказчика

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

Динамика определяется: ◦ Непрерывностью связи с заказчиком

◦ Простотой – выбирается простейшее решение

◦ Быстрой обратной связью

◦ Профилактика проблем

Ицыксон В.М. ТРПО © 2012 70

Page 70: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

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

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

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

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

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

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

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

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

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

Ицыксон В.М. ТРПО © 2012 71

Page 71: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Заказчик: ◦ Объем работ

◦ Приоритет

◦ Композиция версий

◦ Сроки выпуска версий

Разработчик: ◦ Временные оценки

◦ Последствия

◦ Процесс

◦ Подробный график работ

Ицыксон В.М. ТРПО © 2012 72

Page 72: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

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

Ицыксон В.М. ТРПО © 2012 73

Page 73: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

Ицыксон В.М. ТРПО © 2012 74

Page 74: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

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

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

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

Ицыксон В.М. ТРПО © 2012 75

Page 75: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

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

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

Ицыксон В.М. ТРПО © 2012 76

Page 76: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

Ицыксон В.М. ТРПО © 2012 77

Page 77: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Разработчики работают парами Партнер с клавиатурой и мышью думает о

реализации Партнер без клавиатуры и мыши думает

стратегически: ◦ Сработает ли данный подход? ◦ Какие еще тесты нужно разработать?

Состав пар меняется динамически Эффективность ПП очень высокая

Ицыксон В.М. ТРПО © 2012 78

Page 78: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

Ицыксон В.М. ТРПО © 2012 79

Page 79: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

Ицыксон В.М. ТРПО © 2012 80

Page 80: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

Ицыксон В.М. ТРПО © 2012 81

Page 81: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

Ицыксон В.М. ТРПО © 2012 82

Page 82: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

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

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

Ицыксон В.М. ТРПО © 2012 83

Page 83: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Предложена в 1995, Оксфорд

Scrum – схватка Управление хаосом Итерационный процесс Применима к любым

этапам и особенностям разработки (в основном – разработка и сопровождение)

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

Ицыксон В.М. ТРПО © 2012 84

Page 84: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

Backlog sprint ◦ набор требований, которые могут быть

реализованы за один этап (спринт)

Ицыксон В.М. ТРПО © 2012 85

Page 85: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Спринт (Sprint) ◦ 30-тидневный (обычно) промежуток за который

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

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

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

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

Ицыксон В.М. ТРПО © 2012 86

Page 86: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Основные ◦ Владелец продукта (Product Owner)

◦ Руководитель (ScrumMaster)

◦ Команда (Scrum Team)

Остальные ◦ Заказчик

◦ Пользователи

◦ Эксперты-консультанты

◦ …

Ицыксон В.М. ТРПО © 2012 87

Page 87: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 88

Page 88: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

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

Владелец продукта расставляет приоритеты

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

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

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

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

Ицыксон В.М. ТРПО © 2012 90

Page 89: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Каждая группа ежедневно выполняет схватки (scrum) (10-30 мин): ◦ Что сделано каждым в предыдущий день? ◦ Что будет сделано каждым в следующий день? ◦ Что мешает работать или повышать

производительность?

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

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

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

Ицыксон В.М. ТРПО © 2012 91

Page 90: Слайд 1 - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/se/SE2012_01...Быстрая разработка приложений (RAD) Спиральная модель Rational

Ицыксон В.М. ТРПО © 2012 92

Кл

асси

ческая

Пр

ото

ти

ро

ван

ие

Сп

ир

ал

ьн

ая

Ин

кр

ем

ен

тн

ая

RA

D

RU

P

XP

SC

RU

M

Стратегия О Э Э И И И+Э Э Э

Вид Пр Пр Пр Пр Пр Пр Ад Ад

Команда 1..∞ ≤ 10 1..∞ 1..∞ 1..∞ 1..∞ ≤ 10 ≤ 6(9)

Продолжительность Выс Низк Выс Низк Низк Сред,Выс

Низк Низк

Промеж. версии - - +/- + +/- + + +

ИС - - - - + + + +