Слайд 1Тема 2. Жизненный цикл программного продукта
Слайд 2О чем будем говорить?
Немного истории
ISO 12207 (15504) Жизненный цикл ПП:
структура и организация
Модель ЖЦ программного продукта
Модели ЖЦ MSF, RUP, XP
Слайд 3Немного истории
Кризис программирования
Жизненный цикл промышленного изделия
последовательность этапов (фаз, стадий),
состоящих из
технологических процессов, действий, операций
Жизненный цикл ПП (ПО)
1968 г. (Лондон) –
жизненный цикл ПО
1970 г. (Ройс) – идентификация нескольких процессов
Слайд 4История. Стандарты и проблемы ЖЦ ПО
Стандарты ЖЦ ПО
1985 (1988)г. DOD-STD-2167
А – Разработка программных средств для систем военного назначения –
8 фаз и 250 требований
1994г. MIL-STD-498. Разработка и документирование программного обеспечения – 75 дополнительных подразделов.
1995г. IEEE 1074. Процессы жизненного цикла для развития программного обеспечения – 6 базовых процессов, 16 частных, 65 работ.
Проблемы стандартизации ЖЦ ПО
требовало значительных средств, что не всегда окупалось.
все ли процессы надо выполнять и в какой мере
различные типы ПО, различные требования
высокая динамика отрасли и устаревание стандартов
терминологическая путаница
Слайд 5О чем будем говорить?
Немного истории
ISO 12207 (15504) Жизненный цикл ПП:
структура и организация
Модель ЖЦ ПП. Основные типы моделей
Модели ЖЦ MSF,
RUP, XP
Слайд 6Стандарт ISO/IEC 12207
1995 г. ISO/IEC 1207 - Information Technology
- Software Life Cycle Processes
2000 г. ГОСТ 12207. Процессы жизненного
цикла программных средств
Основные результаты ISO 12207:
Единая терминология по разработке и применению ПО
Разделение понятий ЖЦ ПО и модели ЖЦ ПО
Описание организации ЖЦ и его структуры (процессов)
Выделение процесса адаптации стандарта для построения конкретных моделей ЖЦ
Слайд 7ISO 12207. Основные определения
Определяет:
Программный продукт (software product):
Набор машинных программ,
процедур и, возможно, связанных с ними документации и данных.
Жизненный цикл
программного продукта (software life cycle):
непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации
Процесс (process):
набор взаимосвязанных работ, которые преобразуют исходные данные в выходные результаты.
Определяет организацию ЖЦ программного продукта: процессы – действия – задачи
Устанавливает структуру (архитектуру) ЖЦ
Слайд 9ISO 15504. Процессы ЖЦ ПО
1998г. ISO/IEC TR 15504: Software
Process Assessment (Оценка процессов разработки ПО)
Глава2, раздел 5 – новая
структура ЖЦ ПО:
24 процесса и 15 подпроцессов процессов вместо 17 в ISO 12207)
Типы процессов ЖЦ:
базовый — процесс из 12207;
расширенный — расширение процесса из 12207;
новый — процесс, не описанный в 12207;
составляющий — часть процесса из 12207;
расширенный составляющий
Слайд 10ISO 15504. Классификация процессов
Три группы и пять категорий процессов:
Основные
процессы:
CUS: Потребитель-поставщик
ENG: Инженерная
Вспомогательные процессы:
SUP: Вспомогательная
Организационные процессы:
MAN Управленческая
ORG: Организационная
Слайд 11ISO 15504. CUS: Потребитель-поставщик
Слайд 12ISO 15504. ENG: Инженерные процессы
Слайд 16О чем будем говорить?
Немного истории
ISO 12207 (15504) Жизненный цикл ПП:
структура и организация
Модель ЖЦ программного продукта
Модели ЖЦ MSF, RUP, XP
Слайд 17Модель ЖЦ программного продукта
Модель ЖЦ ПО
Основные типы моделей ЖЦ ПО:
Каскадная
модель
Спиральная модель
Другие типы моделей ЖЦ ПО:
Итерационная модель
V-образная модель
Инкрементная модель
Модель быстрого
прототипирования
Слайд 18Модель ЖЦ ПО
Жизненный цикл проекта
Набор обычно последовательных фаз
проекта, количество и состав которых определяется потребностями управления проектом организацией
или организациями, участвующими в проекте.
Фаза проекта
Объединение логически связанных операций проекта, обычно завершающихся достижением одного из основных результатов.
Процесс
Набор взаимосвязанных ресурсов и работ, благодаря которым входные воздействия преобразуются в выходные результаты.
Операция, работа
Элемент работ проекта. У операций обычно имеется ожидаемая длительность, потребность в ресурсах, стоимость. Операции могут далее подразделяться на задачи.
Источник: PMI. Глоссарий http://www.pmi.ru/glossary/
Слайд 19Схема модели ЖЦ ПО
Особенности схемы ЖЦ ПО:
Результат фазы - модель
ПО
Результат фазы – вход следующей фазы
Процессы могут выполняться на нескольких
фазах
Требования
Анализ
Проектиров.
Управление.
Документиров.
Фазы:
Процессы:
Р
Анализ
Р
Проектир.
Р
Модель ЖЦ (life cycle model):
структура, …включающих в себя разработку, эксплуатацию и сопровождение программного продукта, …
Слайд 20Каскадная модель. Принципы
Строго последовательное выполнение фаз:
Каждая фаза начинается только после
завершения предыдущей
У каждой фазы - критерии входа и выхода:
входные и выходные данные
Каждая фаза полностью документируется
Переход от одной фазы к другой - формальный обзор с участием заказчика
Основа модели – сформулированные требования (ТЗ)
Критерий качества – соответствие ТЗ.
Слайд 21Каскадная модель. Преимущества и недостатки
Преимущества:
Проста и понятна заказчикам
Удобна в применении:
процесс
разработки выполняется поэтапно
невысокие требования к исполнителям
способствует контролю управления проектом
Независимость стадий
(могут выполнять разные команды)
Точное планирование сроков и затрат
Недостатки:
Сбои и рост затрат при возврате на одну или две фазы назад
Высокая стоимость ошибок на фазе интеграции
Запаздывание с получением результатов
Разработка ПО циклична, когда нет требований или они могут меняться
Слайд 22Каскадная модель. Применимость
Четкие и не меняющиеся требования. Это задачи типа:
научно-вычислительного
характера
операционные системы и компиляторы
системы реального времени управления конкретными объектами
Повторная разработка
типового продукта
Выпуск новой версии существующего продукта (перенос на новую платформу)
Как элемент моделей других типов
Слайд 23Спиральная модель. Принципы
Циклический характер разработки ПО:
Ошибки разработчиков
Изменения требований («ошибки» заказчиков)
Спиральная модель (Боэм, 1988г):
Разработка вариантов продукта с возвратом к ранним
вариантам
Создание прототипов ПО для уточнения и выявления требований
Планирование вариантов с оценкой альтернатив и анализом рисков
Переход к следующему варианту до завершения предыдущего
Использование каскадной модели как схемы разработки очередного варианта
Активное привлечение заказчика к работе над проектом:
оценка очередного прототипа ПО
уточнении требований при переходе к следующему
оценка альтернатив очередного варианта и рисков
Слайд 25Спиральная модель. Преимущества и недостатки
Преимущества:
Более тщательное проектирование
Поэтапное уточнение требований
Участие заказчика
в выполнении проекта с использованием прототипов программы.
Планирование и управление рисками
Возможность
разработки ПО «по частям»
Недостатки – сложность:
Анализа и оценки рисков при выборе вариантов.
Поддержания версий продукта
Оценки точки перехода на следующий цикл
Бесконечность модели
Слайд 26Спиральная модель. Применимость
Пользователи не уверены в своих потребностях, требования слишком
сложны, необходимо прототипирование для анализа и оценки требований
Достижение успеха не
гарантировано и необходима оценка рисков продолжения проекта
Проект сложный, дорогостоящий и обоснование его финансирования возможно только в процессе его выполнения
Применение новых технологий
Выполнение очень больших проектов по частям
Слайд 30Модель быстрого прототипирования
Слайд 31Другие типы моделей ЖЦ
Рассел Арчибальд. Модели жизненного цикла высокотехнологичных проектов.
http://www.pmprofy.ru/content/rus/107/1073-article.asp. (Дата публикации: 17.01.2005)
Слайд 32О чем будем говорить?
Немного истории
ISO 12207 (15504) Жизненный цикл ПП:
структура и организация
Модель ЖЦ программного продукта
Модели жизненного цикла MSF, RUP,
XP
Слайд 33Microsoft Solution Framework. Схема модели
Слайд 34Rational Unified Process
Бизнес-моделирование
Определение требований
Анализ и проектирование
Реализация
Тестирование
Развертывание
Управл. конфигурац. и изменениями
Управление проектом
Управление
средой проекта
Дисциплины (процессы)
Слайд 35Extreme Programming. Схема модели
Слайд 36Extreme Programming. Принципы
Принципы «живой» разработки ПО:
Люди их общение более важны,
чем процессы и инструменты
Работающая программа более важна, чем исчерпывающая документация
Сотрудничество
с заказчиком более важно, чем обсуждение деталей контракта
Отработка изменений более важна, чем следование планам
Правила (техники) XP:
Живое планирование (planning game)
Частая смена версий (small releases)
Простые проектные решения (simple design)
Разработка на основе тестирования (test-driven development)
Постоянная переработка (refactoring)
Программирование парами (pair programming)
Постоянная интеграция (continuous integration)
40-часовая рабочая неделя
Слайд 37Вопросы для контроля
Что такое жизненный цикл программного продукта?
Что такое процесс,
действие, задача?
Какие типы процессов и конкретные процессы вы запомнили?
Что такое
модель жизненного цикла ПО?
Какие типы моделей вы знаете? В чем их преимущества, недостатки, область применимости?
Что вы можете сказать об особенностях моделей жизненного цикла MSF, RUP, XP?