Top Banner
Жизненный цикл ПО 2012
26

2012 03 06_se_intro_lecture04

Dec 18, 2014

Download

Documents

CS Center

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2012 03 06_se_intro_lecture04

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

2012

Page 2: 2012 03 06_se_intro_lecture04

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

Scrum – схватка

Управление хаосом

Итерационный процесс

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

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

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

Page 3: 2012 03 06_se_intro_lecture04

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

выполнить

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

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

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

Page 4: 2012 03 06_se_intro_lecture04

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

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

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

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

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

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

Page 5: 2012 03 06_se_intro_lecture04

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

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

◦ Команда (!)

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

◦ Клиенты

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

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

Page 6: 2012 03 06_se_intro_lecture04

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

Page 7: 2012 03 06_se_intro_lecture04

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

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

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

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

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

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

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

Page 8: 2012 03 06_se_intro_lecture04

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

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

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

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

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

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

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

Page 9: 2012 03 06_se_intro_lecture04

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

Кл

асси

ческая

Пр

ото

ти

ро

ван

ие

Сп

ир

ал

ьн

ая

Ин

кр

ем

ен

тн

ая

RA

D

RU

P

XP

SC

RU

M

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

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

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

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

Низк Низк

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

ИС - - - - + + + +

Page 10: 2012 03 06_se_intro_lecture04

Инженерия требований

2012

Page 11: 2012 03 06_se_intro_lecture04

«Самой сложной задачей при создании программной системы является точное определение того, что требуется создать… Ни одна задача не приносит такого же вреда конечной системе в случае ошибки. И нет ни одной задачи настолько же сложной в исправлении последствий.»

Фредерик Брукс

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 12: 2012 03 06_se_intro_lecture04

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 13: 2012 03 06_se_intro_lecture04

Разработка требований – самая сложная часть проектирования ПО

Требования постоянно меняются

Требования могут быть ◦ неясны ◦ двусмысленны ◦ противоречивы

Спецификации могут быть неполны

Пользователи, излагающие требования, непредставительны

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 14: 2012 03 06_se_intro_lecture04

Определение требований

Разработка требований ◦ Выявление требований

◦ Анализ требований

Документирование и организация требований

Изменение требований

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

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 15: 2012 03 06_se_intro_lecture04

Требование по IEEE 1990: Условие или возможность, необходимые

пользователю для решения его задач или достижения цели.

Условие или возможность, которым должна отвечать или которыми должна обладать система или ее компонента, чтобы удовлетворить контракт, стандарт, спецификацию или иной формальный документ.

Документированное представление условия или возможности, указанное в (1) или (2)

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 16: 2012 03 06_se_intro_lecture04

Корректность (correct)

Однозначность (unambiguous)

Полнота (complete)

Непротиворечивость (consistent)

Приоритезация (prioritized)

Проверяемость (verifiable)

Модифицируемость (modifiable)

Отслеживаемость (traceable)

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 17: 2012 03 06_se_intro_lecture04

Виды требований: ◦ Функциональные требования

Бизнес-требования

Пользовательские требования

◦ Нефункциональные требования Ограничения

Требования к качеству

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 18: 2012 03 06_se_intro_lecture04

Бизнес-требования ◦ Формулируются заказчиками

◦ Описывают цели, которые требуется достичь с данной системой

Требования пользователей ◦ Какие задачи можно решить с помощью системы

Собственно функциональные требования ◦ Определяются функциональность, которую

необходимо реализовать

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 19: 2012 03 06_se_intro_lecture04

Требования к характеристикам качества ◦ Требования к надежности

◦ Требования к совместимости

◦ Требования к эффективности

◦ Требования к гибкости

◦ Требования к эргономике

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

◦ Бюджет

◦ Сроки

◦ Предопределенные архитектурные решения

◦ …

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 20: 2012 03 06_se_intro_lecture04

Мы сделаем проект: ◦ Быстро

◦ Качественно

◦ Недорого

Выберите 2 из 3-х

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 21: 2012 03 06_se_intro_lecture04

Детали архитектуры

Детали реализации

Сведения о планировании

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

Проектная информация: ◦ Инфраструктура разработки

◦ Процесс разработки

◦ Команда разработки

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 22: 2012 03 06_se_intro_lecture04

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 23: 2012 03 06_se_intro_lecture04

Выявление требований

Анализ требований

Результат - спецификация требований

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 24: 2012 03 06_se_intro_lecture04

Заинтересованные лица ◦ Заказчики ◦ Менеджеры ◦ Пользователи Операторы Менеджеры …

◦ Разработчики ◦ Служба поддержки ◦ Другие лица

ВАЖНО: заказчик ≠пользователь

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 25: 2012 03 06_se_intro_lecture04

Планирование ◦ Цели выявления требований ◦ Стратегии и процессы выявления требований ◦ Результаты усилий по выявлению требований ◦ Оценки календарного плана и ресурсов ◦ Риски, связанные с выявлением требований

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012

Page 26: 2012 03 06_se_intro_lecture04

Проблемы определения требований: ◦ Ожидания пользователей

◦ Умение оценить противоречивые требования

◦ Недостаточные требования

◦ Умение понять требования пользователей

ИЦЫКСОН В.М. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ © 2012