Ключевые моменты.
А Организационно все виды работ подразделяются на семь основных рабочих процессов: управление, среда, требования, проектирование, реализация, оценка и внедрение.
А Эти работы выполняются параллельно, с изменяющимися по ходу жизненного цикла уровнями трудозатрат и уделяемого внимания.
А Процесс управления состоит в основном из трех дисциплин: планирование, контроль за ходом проекта и организация.
Один из самых тонких пороков традиционного процесса создания ПО заключался в представлении макропроцесса жизненного цикла в виде последовательно выполняемых работ: от анализа требований к проектированию, кодированию, тестированию и внедрению. Если говорить абстрактно, то в успешных процессах реализовывалась именно такая последовательность, однако границы между стадиями были размыты, и это принималось как данность неантагонистически настроенными заинтересованными сторонами. Неудачные проекты, с другой стороны, обычно увязали в попытках строго определить границы между стадиями. Например, типичная проектная команда могла добиваться замораживания.
100% основных требований до перехода к проектированию либо могла пытаться создать проектную документацию во всех деталях, прежде чем перейти к кодированию. В результате чрезмерные усилия распылялись по мелочам, в то время как прогресс в принятии важных рабочих решений тормозился или даже останавливался.
В современном процессе стараются не давать стадиям названия в соответствии с доминирующими видами деятельности. Названия стадий — начальная стадия, уточнение, конструирование, ввод в действие — скорее определяют состояние проекта, чем последовательность действий, аналогичную водопадной модели. Делается это с намерением явно признать непрерывность работ во всех стадиях и отойти от последовательного движения от требований к проектированию, кодированию, тестированию и внедрению.
8.1 РАБОЧИЕ ПРОЦЕССЫ.
В предыдущих главах были введены понятия «макропроцесс жизненного цикла» и «фундаментальные комплекты рабочих продуктов». Макропроцесс состоит из дискретных стадий и итераций, но не из дискретных видов работ. Непрерывность различных видов работ присуща каждой стадии и итерации. Процессы более низкого уровня описываются как микропроцессы, или рабочие процессы (workflow), в результате которых возникают рабочие продукты. Термин «рабочий процесс» используется для обозначения потока связных и в основном последовательных действий. Рабочим процессам соответствуют рабочие продукты (см. главу 6) и команды, работающие над проектом (см. главу 11). Существуют семь рабочих процессов самого верхнего уровня:.
1.
Процесс управления проектом: контроль за ходом работ и гарантия условий достижения успеха для всех заинтересованных сторон.
2.
Процесс создания рабочей среды: автоматизация процесса и развитие среды сопровождения и эксплуатации.
3.
Процесс управления требованиями: анализ проблемной области и совершенствование рабочих продуктов требований.
4.
Процесс проектирования: моделирование решения и совершенствование архитектуры и рабочих продуктов проектирования.
5.
Процесс реализации: программирование компонентов и совершенствование рабочих продуктов реализации и внедрения.
6.
Процесс оценки: оценки тенденций и качества продукта.
7.
Процесс внедрения: передача конечных продуктов пользователю.
На рис. 8.1 показаны относительные уровни трудозатрат, которые, как предполагается, потребуются на протяжении различных стадий для каждого из рабочих процессов верхнего уровня. Здесь дается одно из ключевых представлений современной схемы процесса п предлагается точка зрения, относительно которой мы будем обсуждать некоторые из базовых принципов, введенных в главе 4.
Рис. 8.1. Интенсивность отдельных видов работ на протяжении различных стадий жизненного цикла.
1 - Подход с упреждающей разработкой архитектуры. Всесторонний анализ требований, проектирование, реализация и оценка выполняются до начала стадии конструирования, когда в центре внимания находится полномасштабная реализация. Внимание, уделяемое на ранних стадиях жизненного цикла реализации и тестированию архитектуры, должно предшествовать как началу полномасштабной разработки и тестированию всех компонентов, так и рассмотрению вопросов завершенности и качества функциональных возможностей продукта.
2.
Итерационностъ процесса жизненного цикла. На рис. 8.1 для каждой стадии описывается как минимум по две итерации для каждого рабочего процесса. Предполагается, что это значение является декларативным, а не предписывающим. Для некоторых проектов может потребоваться всего одна итерация на протяжении стадии, для других — несколько итераций. Суть заключается в том, что для отдельных работ и рабочих продуктов любого рабочего процесса может понадобиться более одного прохода для достижения адекватных результатов.
3.
«Круговая» разработка. Появление рабочей среды на верхнем уровне процесса создания весьма важно. Среда представляет собой осязаемое воплощение процесса, методов и нотаций, используемых для создания рабочих продуктов проекта.
4.
Подход, основанный на демонстрациях. Работы по реализации и оценке инициируются на ранних стадиях жизненного цикла, отражая то внимание, которое уделяется созданию исполняемых компонентов архитектуры.
Некоторые ключевые для традиционного процесса темы не попали в перечень основных рабочих процессов. Это отсутствие тоже важно. Опущена документация — потому, что она должна являться побочным продуктом других видов работ. Контроль качества исключен по той причине, что он входит во все виды работ, а не выделяется в отдельный рабочий процесс, который выполняется независимо от разработки или управления проектом.
В таблице 8.1 показано распределение рабочих продуктов и основного внимания, уделяемого каждому рабочему процессу на всех стадиях жизненного цикла: начальной стадии, уточнения, конструирования и ввода в действие.
Таблица 8.1.
Рабочие продукты и то, чему уделяется основное внимание на протяжении жизненного цикла для каждого рабочего процесса
Рабочий. процесс | Рабочие продукты | Основное внимание на стадиях жизненного цикла |
Управление. проектом | Бизнес-план План разработки ПО Оценки состояния Концепция Декомпозиция работ | Начальная стадия: подготовка бизнес-плана и концепции. Уточнение: разработка плана Конструирование: мониторинг и контроль разработки. Ввод в действие: мониторинг и контроль внедрения |
Создание рабочей среды | Среда. База данных с запросами на внесение изменений | Начальная стадия: определение среды разработки и инфраструктуры управления изменениями. Уточнение: инсталляция среды разработки и формирование базы данных для управления изменениями. Конструирование: сопровождение среды разработки и базы данных управления изменениями. Ввод в действие: Сопровождение среды внедрения и базы данных управления изменениями |
Управление. требованиями | Комплект требований Спецификации версии Концепция | Начальная стадия: определение аспектов функционирования системы Уточнение: определение целей архитектуры Конструирование: определение целей итерации Ввод в действие: уточнение целей версии |
Проектирование | Комплект проектирования Описание архитектуры | Начальная стадия: формулирование концепции архитектуры. Уточнение: формирование базовой архитектуры Конструирование: проектирование компонентов Ввод в действие: уточнение архитектуры и компонентов |
Таблица 8.1. (продолжение).
Рабочие продукты и то, чему уделяется основное внимание на протяжении жизненного цикла для каждого рабочего процесса_
Рабочий. процесс | Рабочие продукты | Основное внимание на стадиях жизненного цикла |
Реализация | Комплект реализации Комплект внедрения | Начальная стадия: поддержка прототипов архитектуры. Уточнение: создание базовой архитектуры Конструирование: создание всех необходимых компонентов. [. Ввод в действие: сопровождение компонентов |
Оценка | Спецификации версии Описания версии Руководство пользователя Комплект внедрения | Начальная стадия: планы оценки, концепция, прототипы. Уточнение: архитектура оценок Конструирование: оценка промежуточных версий Ввод в действие: оценка версий продукта |
Внедрение | Комплект внедрения | Начальная стадия: анализ сообщества пользователей. Уточнение: определение руководства пользователя. Конструирование: подготовка материалов. для ввода в действие. Ввод в действие: передача продукта. пользователю |
Рабочие процессы управления требованиями, проектирования, реализации и оценки подробно освещаются в других книгах по UML. Основное внимание процессам управления проектом и создания рабочей среды уделено в части III. Обсуждение внедрения сведено к минимуму, поскольку обычно оно весьма специфично для каждого проекта.