Унифицированный процесс разработки программного обеспечения или унифицированный процесс — это итеративная и инкрементальная структура процесса разработки программного обеспечения . Наиболее известным и широко документированным усовершенствованием унифицированного процесса является рациональный унифицированный процесс (RUP). Другими примерами являются OpenUP и agile unified process .
Унифицированный процесс — это не просто процесс, а скорее расширяемая структура, которая должна быть настроена для конкретных организаций или проектов. Рациональный унифицированный процесс — это, аналогично, настраиваемая структура. В результате часто невозможно сказать, была ли доработка процесса получена из UP или из RUP, и поэтому эти названия, как правило, используются взаимозаменяемо.
Название унифицированный процесс в отличие от рационального унифицированного процесса обычно используется для описания общего процесса, включая те элементы, которые являются общими для большинства уточнений. Название унифицированный процесс также используется для того, чтобы избежать потенциальных проблем с нарушением товарных знаков, поскольку Rational Unified Process и RUP являются товарными знаками IBM . Первая книга, описывающая процесс, называлась The Unified Software Development Process ( ISBN 0-201-57169-2 ) и была опубликована в 1999 году Айваром Якобсоном , Грейди Бушем и Джеймсом Рамбо . С тех пор различные авторы, не связанные с Rational Software, публиковали книги и статьи, используя название унифицированный процесс , в то время как авторы, связанные с Rational Software, отдавали предпочтение названию Rational Unified Process .
В 2012 году была выпущена структура дисциплинированной гибкой доставки — гибридная структура, которая принимает и расширяет стратегии унифицированного процесса, Scrum , экстремального программирования и других методов.
Унифицированный процесс представляет собой итеративный и инкрементальный процесс разработки . Фазы разработки, построения и перехода делятся на ряд ограниченных по времени итераций. (Фаза начала также может быть разделена на итерации для большого проекта.) Каждая итерация приводит к инкременту , который является выпуском системы, содержащей добавленную или улучшенную функциональность по сравнению с предыдущим выпуском.
Хотя большинство итераций будут включать работу по большинству дисциплин процесса ( например, требования, проектирование, реализация, тестирование), относительные усилия и акценты будут меняться в ходе проекта.
Унифицированный процесс настаивает на том, что архитектура находится в центре усилий проектной группы по формированию системы. Поскольку ни одна модель не может охватить все аспекты системы, унифицированный процесс поддерживает несколько архитектурных моделей и представлений.
Одним из наиболее важных результатов процесса является исполняемая базовая архитектура, которая создается на этапе разработки. Эта частичная реализация системы служит для проверки архитектуры и выступает в качестве основы для оставшейся разработки.
Унифицированный процесс требует, чтобы команда проекта сосредоточилась на решении наиболее критических рисков на ранних этапах жизненного цикла проекта. Результаты каждой итерации, особенно на этапе разработки, должны быть выбраны для того, чтобы гарантировать, что самые большие риски будут рассмотрены в первую очередь.
Варианты использования являются основными инструментами моделирования для определения функциональных возможностей системы. Они также действуют как простые средства коммуникации для технических и нетехнических членов команды.
Единый процесс делит проект на четыре этапа:
Каждая фаза обычно содержит несколько итераций (названных I1, E1, E2, C1 и т. д. на иллюстрации фазы UP). Точное количество итераций в каждой фазе зависит от масштаба и характера проекта. Иллюстрация фазы UP здесь содержит ровно 1, 2, 4 и 2 итерации в четырех фазах, но это всего лишь пример того, как может выглядеть конкретный проект.
Начальная фаза — самая маленькая фаза в проекте, и в идеале она должна быть довольно короткой. Если начальная фаза длинная, то это может быть признаком чрезмерной предварительной спецификации, что противоречит духу единого процесса.
Разработайте приблизительное видение системы, составьте экономическое обоснование, определите объем работ, а также составьте приблизительную смету расходов и график проекта.
На этапе разработки команда проекта, как ожидается, охватить большую часть системных требований. Однако основными целями разработки являются рассмотрение известных факторов риска и установление и проверка архитектуры системы. Обычные процессы, выполняемые на этом этапе, включают создание диаграмм вариантов использования , концептуальных диаграмм ( диаграмм классов только с базовой нотацией) и диаграмм пакетов (архитектурных диаграмм).
Архитектура проверяется в первую очередь посредством реализации базовой линии исполняемой архитектуры. Это частичная реализация системы, которая включает основные наиболее значимые с точки зрения архитектуры компоненты. Она строится в серии небольших итераций с фиксированными сроками. К концу фазы разработки архитектура системы должна стабилизироваться, а базовая линия исполняемой архитектуры должна продемонстрировать, что архитектура будет поддерживать ключевые функциональные возможности системы и демонстрировать правильное поведение с точки зрения производительности, масштабируемости и стоимости.
Окончательным результатом этапа разработки является план (включая смету расходов и график) для этапа строительства. На этом этапе план должен быть точным и достоверным, поскольку он должен основываться на опыте этапа разработки и поскольку существенные факторы риска должны быть рассмотрены на этапе разработки.
Строительство — самая большая фаза проекта. На этой фазе остальная часть системы строится на основе, заложенной в ходе разработки. Функции системы реализуются в серии коротких, ограниченных по времени итераций. Каждая итерация приводит к исполняемому выпуску программного обеспечения. Обычно на этапе строительства пишутся полнотекстовые варианты использования, и каждый из них становится началом новой итерации. Диаграммы общего унифицированного языка моделирования (UML), используемые на этом этапе, включают диаграммы активности , диаграммы последовательности , диаграммы сотрудничества , диаграммы перехода состояний и диаграммы обзора взаимодействия . Выполняется итеративная реализация для более низких рисков и более простых элементов. Окончательным результатом этапа строительства является программное обеспечение, готовое к развертыванию на этапе перехода.
Финальная фаза проекта — переход. На этой фазе система развертывается для целевых пользователей. Отзывы, полученные от первоначального выпуска (или начальных выпусков), могут привести к дальнейшим улучшениям, которые будут включены в течение нескольких итераций фазы перехода. Фаза перехода также включает в себя преобразования системы и обучение пользователей.
Усовершенствования унифицированного процесса отличаются друг от друга тем, как они классифицируют дисциплины проекта или рабочие процессы . Рациональный унифицированный процесс определяет девять дисциплин: бизнес-моделирование , требования , анализ и проектирование , внедрение , тестирование , развертывание , управление конфигурацией и изменениями , управление проектами и окружающая среда . Унифицированный корпоративный процесс расширяет RUP за счет добавления восьми «корпоративных» дисциплин. Гибкие уточнения UP, такие как OpenUP/Basic и унифицированный гибкий процесс, упрощают RUP, сокращая количество дисциплин.
Уточнения также различаются по акценту, сделанному на различных артефактах проекта . Уточнения Agile оптимизируют RUP, упрощая рабочие процессы и сокращая количество ожидаемых артефактов.
Уточнения также различаются по спецификациям того, что происходит после фазы перехода. В рациональном унифицированном процессе за фазой перехода обычно следует новая начальная фаза. В унифицированном процессе предприятия за фазой перехода следует производственная фаза.
Число уточнений и вариаций унифицированного процесса бесчисленно. Организации, использующие унифицированный процесс, неизменно включают свои собственные модификации и расширения. Ниже приведен список некоторых наиболее известных уточнений и вариаций.