Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПрИн LECT3_4

.pdf
Скачиваний:
6
Добавлен:
14.03.2016
Размер:
935.24 Кб
Скачать

МОДЕЛИ ПРОЦЕССА СОЗДАНИЯ ПО

Модели процесса разработки ПО

понентов.

Структура затрат на создание ПО

Эволюционная разработка

Совершенствование ПО

Заказное ПО

Каскадная модель жизненного цикла наиболее известна и применяется достаточно широко. Она по существу реализует принцип однократного выполнения каждого из базовых процессов и этапов в их естественных

Особенности:

Последовательная смена всех стадий ЖЦ ПО

Верификация/тестирование результатов группой после каждой стадии (иногда – с участием клиента)

обратная связь с ранними стадиями ЖЦ ПО

Преимущества:

Снижение затрат на коррекцию ПО (за счет feedback)

Недостатки:

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

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

В разной степени применима в ряде методологий

Плюсы и минусы

(+) легко понять и оценить

(+) хорошая видимость (легко отслеживать прогресс)

(-) затрудняет внесение изменений: когда этап завершен – он заморожен

(-) не моделирует итерации и эволюцию

V-модель(на базекаскадной)

 

Бизнес-анализ

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сбор требований

 

 

 

 

 

 

 

 

Приемка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функциональное

 

 

 

 

 

 

Системное

 

 

 

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

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Интеграционное

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Детальное

 

 

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

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

Кодирование

Модели ЖЦПО: Code-and-Fix

Построить первуюверсию

Модифицировать до удовлетворения клиента

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

Замена

Модели ЖЦ ПО: быстрое прототипирование

Особенности:

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

У клиента нет технических знаний для участия в обсуждении требований

Быстрый прототип с основной функциональностью ПО и ограниченной надежностью/производительностью

МоделиЖЦПО:«Зубьяакулы»/прототипирование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

клиент

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Системные

 

Прототип1

 

Прототип2

 

 

 

 

Приемка

 

 

 

требования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обзор

 

 

 

 

 

 

 

 

менеджер

 

 

 

 

 

 

 

 

Системное

 

 

 

 

 

 

 

проекта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ

 

 

 

 

 

 

 

 

 

 

 

разработчик

 

 

 

 

 

 

 

 

Интеграционное

 

 

 

требований

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проектирование в.у. Тестирование

частей

Детальное

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

Кодирование

Преимущества:

Базис идей для развития и обсуждения ПО с клиентом

Снижение технических рисков (дешевое выявление потенциальных проблем)

Недостатки:

Соблазн использования «нетехнологичного» кода

(низкое качество, недостаточное тестирование и документирование)

Модели ЖЦ ПО: Инкремент(аль)ная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

Кодирование и

 

Реализация, Интеграция,

 

 

 

 

 

 

 

 

 

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

 

Передача, Сопровождение /

 

 

 

 

 

 

 

верификация

 

 

 

 

 

 

 

 

 

 

 

 

верификация

 

верификация

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Инкремент 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

Кодирование и

 

Реализация, Интеграция,

 

 

Требования / верификация 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

Передача, Сопровождение /

 

 

 

 

 

 

верификация

 

 

 

 

 

 

 

 

 

 

 

 

верификация

 

верификация

 

 

 

2

 

 

 

 

 

 

 

 

 

n

 

Инкремент 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

Кодирование и

 

Реализация, Интеграция,

 

 

 

 

 

 

 

 

 

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

 

Передача, Сопровождение /

 

 

 

 

 

 

 

верификация

 

 

 

 

 

 

 

 

 

 

 

 

верификация

 

верификация

 

 

 

 

 

 

 

 

 

 

 

Инкремент 3

Каждый релиз включает детальное проектирование , реализацию, интеграцию, тестирование и передачу

Продукт поделен на подсистемы и поставляется в релизах (builds)

Каждый релиз включает обеспечение операционного качества подсистемы

С каждым новым релизом новая подсистема включается в предыдущий релиз

Особенности:

Разбивка ПО на последовательные релизы (каждый цикл разработки дает работоспособный продукт)

Преимущества:

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

Плавный ввод новой функциональности у клиента

Легкость сопровождения за счет «прямолинейного расширения» основных модулей

Недостатки:

Требует наращиваемого программного решения (не годится для ПО, требующего сразу полной функциональности)

Продукт должен «масштабироваться» по архитектуре

ПО должно предусматривать стабильный путь апгрейда

Не подходит для продуктов, которые быстро выходят за рамки исходной концепции (при этом вырождается в build- and-fix)

Модели ЖЦ ПО: синхростабилизации или Microsoft

Работа членов команды постоянно синхронизируется

Фаза планирования

Формулируется видение

Готовится документ спецификаций

График работ и формирование команды

Фаза разработки

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

Вторая треть функций

Последняя треть функций (наименее критичные функции)

Фаза стабилизации

Внутреннее тестирование

Внешнее тестирование

Подготовка релиза

Особенности:

3-4 инкрементных версии ПО, включающих:

Синхронизацию (проверка, сборка, тестирование)

Стабилизацию(устранение ошибок, найденных тестами)

«Заморозку» - работающий «срез» ПО

Преимущества:

«частое и раннее» тестирование (и выявление ошибок)

Постоянная интероперабельность (модули тестируются в сборе => всегда есть работающая версия ПО => связи между модулями легко тестировать)

Ранняя коррекция проекта (полная «сборка» ПО первых версий позволяет выявить недочеты проекта до полномасштабной реализации и снизить стоимость редизайна)

Недостатки:

Подходит не для всех типов ПО (скажем, только для поддерживающих автоматизацию тестирования)

Необходимо уделять время синхростабилизации (а не только проектированию)

Нужны частые циклы сборки/тестирования (еженедельно или ежемесячно)

Редко используется вне корпорации Microsoft

Модели ЖЦ ПО: Спиральная (Boehm, 1987)

Разновидность эволюционной или итерационной модели

1 2

 

 

 

 

Риск?

Прототипы

 

 

Риск?

Операции

 

 

Риск?

 

 

 

3

 

 

 

 

 

 

 

 

Обзор/Приемка

Риск?

1

2

 

Модели

 

 

 

 

 

 

 

 

Упр. Треб.

Концепция

Проект Дет.

 

 

Пров.

Упр.

ПО

проект

 

План разраб.

Треб.

 

Код

 

 

Треб.

 

 

 

План интегр. и

К и П

Unit

 

проекта

test

 

 

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

 

 

 

 

Интегр.

 

 

 

 

 

 

 

 

4

 

 

 

и тест.

 

3

Устано

Прием.

 

 

вка

тест.

 

 

 

 

Каждый виток состоит из 4 фаз:

1.Определить цели:

определить продукт, определить деловые цели, понять ограничения, предложить альтернативы

2.Оценить альтернативы:

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

3.Разработатьпродукт:

детальный проект, код, unit test, интеграция

4.Спланироватьследующий цикл: оценка клиентом, планирование проектирования, поставка клиенту, внедрение

Модель с акцентом на задачи (активности)

Работает с изменением задач и итерациями

Фокус на управление риском

Расширяет каждую активность каскадной модели в цикл

Каждый цикл состоит из 4 этапов

Определить цели, альтернативы и указать ограничения

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

Реализовать и проверить текущий цикл

Спланировать следующий цикл

Особенности:

4 основных вида деятельности на каждой стадии:

Определение целей, альтернатив, ограничений

Оценка альтернатив, выявление и разрешение рисков

Разработка и верификация ПО следующего уровня

Планирование следующей фазы

Преимущества:

Возможность повторного использования (за счет анализа и оценки альтернатив)

Обоснование тестирования (за счет анализа рисков)

«Бесшовный» переход к сопровождению (благодаря цикличности в разработке ПО до сдачи)

Недостатки:

Только для внутренних проектов (т.к. требует предварительной оценки требований и рисков)

Только для больших проектов (оценка рисков затратна)

Требует опыта оценки рисков

Модели ЖЦ ПО: Agile

Модели ЖЦ ПО: Сложность проекта

 

Большая

 

 

техничесая

 

 

сложность

 

Встроенные

 

 

Система

 

 

вооружений

приложения

 

Телекоммуни-

МО

для

Коммерческий

 

кационный

 

автомобиля

 

компилятор

переключатель

Меньшая

 

 

 

управленческая

 

 

Модель

сложность

 

 

большого

Небольшая

 

 

масштаба

 

 

 

научная модель

Информационная

 

 

Веб

система

Онлайновая

 

приложение

предприятия

 

 

 

система торговли

через Интернет

Бизнес таблица

Меньшая

техничесая

сложность

Может ли одна модель ЖЦ подойти для всех случаев?

Национальная

система контроля за воздушными сообщениями

Большая

управленческая

сложность

Модели ЖЦ ПО: сравнительный анализ и выводы

1. Модель ЖЦ

Преимущества

Недостатки

Build-and-Fix

Хороша для небольших, не требующих

Абсолютно непригодна для нетривиальных

сопровождения проектов

проектов

 

Водопадная

Четкая дисциплина проекта, документно-

ПО может не соответствовать требованиям

управляемая

клиента

 

Быстрого

Обеспечивает соответствие ПО

Вызывает соблазн повторного использования

прототипирования

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

кода, который следует заново реализовать

 

Максимально ранний возврат

Требует открытой архитектуры; может

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

инвестиций; способствует

выродиться в Build-and-fix

 

сопровождаемости

 

 

Синхронизации и

Удовлетворяет будущим потребностям

 

клиента; обеспечивает интеграцию

Не получила широкого применения вне

стабилизации

компонент

Microsoft

 

Спиральная

Объединяет хар-ки всех перечисленных

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

выше моделей

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

 

 

 

управлением рисками