- •Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Ивановский государственный энергетический университет имени в.И. Ленина».
- •Иваново 2014
- •Оглавление
- •Предисловие
- •Введение
- •1.Предмет программной инженерии
- •1.1.Определение и свойства программного обеспечения
- •1.2.Проблемы разработки программного обеспечения
- •1.3.Процессы производства программного обеспечения
- •1.4.Понятие программного проекта
- •1.5. Стандартизация в области производства по
- •1.6.Определение программной инженерии и ее место в системе информационных технологий
- •2.Жизненный цикл программных продуктов
- •2.1.Понятие жизненного цикла
- •2.2.Процессы жизненного цикла программного обеспечения
- •2.3.Модели жизненного цикла
- •3.Виды деятельности в программной инженерии
- •3.1.Управление требованиями
- •3.1.1.Проблема
- •3.1.2.Цикл работы с требованиями
- •3.1.3.Виды и свойства требований
- •3.1.4.Варианты формализации требований
- •3.2.Проектирование программного обеспечения
- •3.2.1.Понятие
- •3.2.2.Принципы
- •3.2.3.Шаблоны
- •3.2.4.Моделирование по
- •3.2.5.Методологии
- •3.2.6.Оценка качества
- •3.3.Конструирование программного обеспечения
- •3.3.1.Определение
- •3.3.2.Связь с другими процессами
- •3.3.3.Принципы
- •3.3.4.Модели и методы
- •3.3.5.Языки конструирования
- •3.4.Конфигурационное управление
- •3.4.1.Проблемы управления активами программного проекта
- •3.4.2.Единицы конфигурационного управления
- •3.4.3.Управление версиями
- •3.4.4.Управление сборками
- •3.4.5.Понятие baseline
- •3.5.Тестирование программного обеспечения
- •3.5.1.Основные определения
- •3.5.2.Уровни тестирования (Test Levels)
- •3.5.3.Виды тестирования
- •3.5.4.Метрики
- •3.6.Сопровождение программного обеспечения
- •Эволюция программного обеспечения (Evolution of Software)
- •4.Методология объектно-ориентированного анализа и проектирования
- •4.1.Основные понятия
- •4.1.1.Объекты и классы
- •4.1.2.Принципы ооп
- •4.1.3.Разработка объектно-ориентированных программ
- •4.2.Язык uml
- •4.2.1.Что дает uml
- •4.2.2.Структура языка uml
- •4.2.3.Uml диаграммы
- •4.2.4.Программы поддержки языка uml
- •4.3.Вопросы для самоконтроля
- •5.Технологии разработки программного обеспечения
- •5.1.Тяжеловесные и облегченные технологии
- •5.2.Технология rup
- •5.3.Гибкие технологии
- •5.4.Технология msf
- •5.4.1. Управление рисками в msf for Agile Software Development1
- •5.4.2.Основные сведения о рисках
- •5.4.3.Планирование управления рисками
- •5.4.4.Процесс управления рисками
- •5.4.5.Управление рисками как составная часть жизненного цикла проекта
- •5.4.6.Учебный пример. Выделение рисков
- •5.5.Модель процессов msf for Agile Software Development2
- •5.5.1.Принципы модели процессов
- •5.5.2.Управление компромиссами
- •5.5.3.Схема процесса разработки
- •5.6.1. Подготовка проекта
- •5.6.2. Планирование проекта
- •5.6.3. Планирование спринта
- •5.6.4. Выполнение спринта
- •5.6.5. Отслеживание проекта
- •5.7.1. Каково назначение модели cmmi?
- •5.7.2. Как лучше использовать модель cmmi?
- •5.7.3. Элементы модели cmmi
- •Заключение Литература
- •153003, Г. Иваново, ул. Рабфаковская, 34.
5.6.5. Отслеживание проекта
По мере того как команда работает в спринтах для повышения готовности проекта, заказчики получают более полное представление об оставшихся потребностях и изменениях бизнес-среды, которые следует принять во внимание.Владелец продукт работает с заказчиками для анализа этих изменений.Владелец продукта ведет список невыполненных работ по продукту и обновляет план выпуска для документирования этих изменений и обеспечения команды всем необходимым для начала каждого спринта.Команда отслеживает ход разработки продукта в целом, чтобы убедиться в планомерном выполнении всех работ по проекту.
Подготовка к следующему спринту
Общее качество проекта и полнота его выполнения напрямую зависит от актуальности списка невыполненных работ по продукту.Список невыполненных работ должен регулярно обновляться, изменяться и пересматриваться для его подготовки к началу каждого спринта.
При подготовке списка невыполненных работ по продукту для следующего спринта владелец продукта выполняет следующие действия.
Обновляет пользовательские описания функциональности и их приоритеты в соответствии с изменениями потребностей заказчиков.
Разбивает пользовательские описания функциональности, которые, возможно, будут реализованы в следующем спринте.
После завершения спринта в начале списка невыполненных работ по продукту оказываются другие описания функциональности пользователей.Владелец продукта должен проанализировать и разбить описания функциональности, находящиеся в начале списка, чтобы команда могла реализовать их в следующем спринте.(Дополнительные сведения см. в подразделе Подготовка к первому спринту выше.) Майк Кон часто называет этот процесс "айсбергом невыполненных работ по продукту".По мере того как команда работает над набором функций, айсберг тает; новые рабочие поверхности и сам айсберг становятся меньше.В этом процессе возникают дополнительные подробности — вовремя и в достаточном количестве.
Владелец продукта должен понимать, что после начала работы над спринтом внимание команды к ведению учета невыполненных работ по продукту существенно снизится по сравнению с подготовкой первого спринта.Чтобы помочь владельцу продукта подготовить список невыполненных работ по продукту с минимальными помехами для работы в спринте, команда и владелец продукта проведут собрание для обсуждения невыполненных работ в течение спринта.
Отслеживание хода подготовки к выпуску
По мере перехода проекта от спринта к спринту, команда отслеживает общий ход подготовки к следующему выпуску.Команда также отслеживает ход выполнения для оценки и повышения своей производительности.Отслеживая ход работ, команда должна ответить на следующие вопросы.
Выполняется ли работа над наиболее оптимальными описаниями функциональности пользователей?В ходе реализации проекта в список невыполненных работ по продукту будут добавляться новые описания функциональности пользователей.Однако, если, несмотря на реализацию описаний функциональности пользователей в каждом спринте, общее число описаний в списке невыполненных работ не уменьшается, команда должна исследовать причины этого.Возможно, для реализации выбраны не самые лучшие описания функциональности.Команда должна определить концепцию и цель для каждого выпуска и обеспечить непосредственную связь описаний функциональности с требованиями заказчиков.
Накапливаются ли технические задолженности?Некоторые команды считают описание функциональности пользователя завершенным, даже если часть работ, например исправление ошибок, остается невыполненной.Этим команды создают техническую задолженность, которую приходится оплачивать позднее, часто по более высокой цене.
Visual Studio ALM предоставляет несколько отчетов, которые помогут командам отслеживать ход выполнения в течение нескольких спринтов.
Отчет "Состояние всех итераций" (гибкая разработка)
Отчет "Обзор описаний функциональности" (гибкая разработка)
Отчет "Ход выполнения описаний функциональности" (гибкая разработка)
Можно создавать настраиваемые отчеты и запросы рабочих элементов для отслеживания хода выполнения работ.Дополнительные сведения см. в разделах Создание и настройка отчетов для Visual Studio ALM, а также управление ими и Поиск ошибок, задач и прочих рабочих элементов.
Завершение выпуска
Если команда не накапливает техническую задолженность, она может выпустить продукт после завершения спринтов данного выпуска, не выполняя дополнительной работы.Команда и владелец продукта предоставляют заказчику продукт на проверку и проводят ретроспективное собрание для изучения выпуска в целом.
Однако технические задолженности создают сложные проблемы, которые не просто устранить командам.Если команда, как многие другие команды, по-прежнему накапливает техническую задолженность, перед выпуском продукта придется потратить время на дополнительную работу по завершению описаний функциональности пользователей.На ретроспективном собрании, посвященном выпуску, команда должна рассмотреть меры, которые необходимо предпринять в последующих спринтах, чтобы избежать накопления задолженности.
Нормативное руководство по CMMI для разработчиков опубликовано институтом Software Engineering Institute под названием "CMMI: Guidelines for Process Integration and Product Improvement." В этой работе подробно описана интеграция CMMI для разработки (CMMI-DEV) версии 1.2, представляющая собой одну из моделей в составе пакета продуктов CMMI на момент создания этого материала. Данная модель отличается высокой стабильностью и, вероятно, сохранит свою актуальность надолго. Существует еще одна полезная и доступная работа по этой теме — "CMMI Distilled: A Practical Introduction to Integrated Process Improvement". Дополнительные сведения об этих книгах см. в подразделе Дополнительные ресурсы далее в этом разделе.
5.7.CMMI
CMMI появилась в 1987 году как развитие методологии CMM, которая разрабатывалась научно-исследовательским центром Software Engineering Institute в университете Карнеги-Меллона. Этот центр был создан и финансировался на средства Министерства обороны США. Модель CMM for Software была впервые опубликована в 1991 году и основана на контрольном списке критически важных факторов успеха проектов по разработке программного обеспечения в конце 70-х и начале 80-х годов. Значительный вклад в развитие модели внесли специалисты по научным исследованиям корпорации IBM и ведущие эксперты по контролю качества 20-го века Филипп Кросби и У. Эдвард Деминг. Модель зрелости производственных процессов (Manufacturing Maturity Model), созданная Кросби, легла в основу пяти уровней поэтапного представления (см. далее в этом разделе) и дала имя модели зрелости процессов создания ПО (Capability Maturity Model). CMM использовалась в основном при реализации оборонных программ, прошла несколько редакций и итераций и теперь имеет довольно широкую область применения. Успех модели привел к разработке моделей CMM для других сфер деятельности, не связанных с программным обеспечением. Увеличение числа моделей вызывало путаницу, поэтому правительство профинансировало двухлетний проект с участием более 200 экспертов из области промышленности и науки с целью создания единой, расширяемой платформы, способно интегрировать системное проектирование, программное проектирование и разработку продуктов. В результате была создана модель CMMI.
Прежде всего, необходимо уяснить, что CMMI-DEV — это модель. Это не процедура или инструкция к действию. Это набор организационных поведений доказанной эффективности при разработке программного обеспечения и системном проектировании. Зачем использовать эту модель? Какова ее цель? Как лучше ее использовать? Это важнейшие вопросы о CMMI, вызывающие больше всего споров.
Зачем
использовать эту модель?
Отсутствие модели, характеризующей работу организации, необходимые функции и их взаимодействие в организации, не позволяет принимать меры по оптимизации деятельности. Модель позволяет получить представление об отдельных элементах организации, сформулировать терминологию и организовать обсуждение аспектов, требующих улучшения, и способов улучшения. Данная модель обеспечивает следующие преимущества.
Предоставляет общую платформу и язык для взаимодействия.
Основана на многолетнем опыте.
Помогает пользователям получить общее представление о происходящем, сконцентрировавшись на улучшении процессов.
Пользуется поддержкой тренеров и консультантов.
Может служить стандартом для разрешения противоречий.
