Слайд 1 -...

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

Transcript of Слайд 1 -...

Page 1: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

2014

Page 2: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 2

Page 3: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 3

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

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

Разработка

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

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

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

Page 4: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 4

Page 5: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 5

(*) The Standish Group International, Chaos reports, 2013

Page 6: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 6

Page 7: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

Заказчик

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 7

Page 8: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

◦ …

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 8

Page 9: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 9

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

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 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 10

Page 11: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Однократные

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

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

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

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

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

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

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

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 11

Page 12: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

требования

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 12

Page 13: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 13

Page 14: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 14

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

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

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

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

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

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

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

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

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

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

Page 15: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Выбор зависит от:

◦ Решаемых задач

◦ Сроков реализации

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

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

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

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

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

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

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

Квалификации заказчика

◦ и т.д.

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 15

Page 16: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Этапы ◦ Список этапов

◦ Последовательность этапов

◦ Связи между этапами

◦ Состав этапов

◦ Объемы (длительность) этапов

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

◦ Корректировка требований

Команда ◦ Размер

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 16

Page 17: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 17

Page 18: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 18

Source: Forrester/Dr. Dobb’s Global Developer Technographics® Survey, Q3 2009

Page 19: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 19

Source: Forrester/Dr. Dobb’s Global Developer Technographics® Survey, Q3 2009

Page 20: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 20

Page 21: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 21

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

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

Разработка

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

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

Page 22: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 22

Page 23: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

В исходном виде мало подходит к современным проектам

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 23

Page 24: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 24

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

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

Разработка

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

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

Page 25: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 25

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

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

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

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

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

Page 26: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 26

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

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

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

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

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

Page 27: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

◦ Понятна «большим» заказчикам: государственным, военным, финансовым организациям

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 27

Page 28: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 28

Page 29: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 29

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

требований

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

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

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

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

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

Page 30: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

к ПО

◦ Наглядно для заказчика

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 30

Page 31: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 31

Page 32: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 32

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

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

Page 33: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 33

Page 34: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

◦ На макетировании

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

Основные компоненты ◦ Планирование

◦ Анализ

◦ Конструирование

◦ Реализация

◦ Оценивание

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 34

Page 35: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 35

Page 36: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 36

Page 37: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 37

Page 38: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

RAD = Rapid Application Development

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 38

Page 39: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 39

Page 40: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

применяется

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 40

Page 41: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 41

Page 42: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 42

Page 43: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 43

Page 44: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 44

Page 45: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 45

Page 46: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 46

Page 47: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 47

Page 48: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 48

Page 49: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

Управление требованиями

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

представления системы

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 49

Page 50: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 50

Page 51: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 51

Page 52: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 52

Page 53: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Начальный план развития

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 53

Page 54: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 54

Page 55: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 55

Page 56: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 56

Page 57: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Модель Use Case (80%)

Дополнительные (том числе нефункциональные) требования

Описание программной архитектуры

Действующий архитектурный макет

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 57

Page 58: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 58

Page 59: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 59

Page 60: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 60

Page 61: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 61

Page 62: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 62

Page 63: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 63

Page 64: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 64

Page 65: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

подходов

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 65

Page 66: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 66

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

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

ВАЖНЕЕ

Page 67: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Scrum

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

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

Agile Unified Process (AUP)

Feature Driven Development (FDD)

Kanban

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 67

Page 68: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

Автор – Кент Бек, 1999 г

Ориентирован на группы до 10 чел.

Группа размещается в одном помещении

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 68

Page 69: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 69

Page 70: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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 (Стандарты кодирования)

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 70

Page 71: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

◦ Приоритет

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

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

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

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

◦ Процесс

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 71

Page 72: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 72

Page 73: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 73

Page 74: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 74

Page 75: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 75

Page 76: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 76

Page 77: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 77

Page 78: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 78

Page 79: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 79

Page 80: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 80

Page 81: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 81

Page 82: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 82

Page 83: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 83

Page 84: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

выполнить

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 84

Page 85: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 85

Page 86: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

Остальные ◦ Пользователи

◦ Представители заказчика

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

◦ …

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 86

Page 87: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 87

Page 88: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

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

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

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

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

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 88

Page 89: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

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

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

производительность? Участвовать могут все, говорить только

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

проблемы По окончании спринта – встреча с

руководителями и заказчиками

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 89

Page 90: Слайд 1 - kspt.icc.spbstu.rukspt.icc.spbstu.ru/media/files/2014/course/se/SE2014_01_LifeCycle.… · Разработка Тестирование Эксплуатация/ Сопровождение

Ицыксон В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2014 90

Кл

асси

ческая

Пр

ото

ти

ро

ван

ие

Сп

ир

ал

ьн

ая

Ин

кр

ем

ен

тн

ая

RA

D

RU

P

XP

SC

RU

M

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

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

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

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

Низк Низк

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

ИС - - - - + + + +