Предисловие
С момента появления унифицированного процесса (Unified Process) неоднократно доводилось слышать, как на конференциях, таких, как UML World, и на различных публичных форумах, таких, как список подписчиков Rational's Object Technology User Group (OTUG), его называют действительно объемным и сложным. Я согласен, что по сравнению с другими процессами он достаточно объемен, но, на мой взгляд, не настолько сложен, как считают многие.
В книге UML. Основные концепции мне удалось осветить базовые понятия, лежащие в основе унифицированного процесса, на десяти страницах. Во время работы над ней я подумал, что, возможно, мне хватило бы совсем небольшой книги, чтобы описать наиболее важные детали унифицированного процесса. Таким образом, я принялся за написание этой книги, чтобы, с одной стороны, разрушить представление о том, что процесс слишком сложен для понимания обычных людей, а с другой - доказать, что процесс ничего не добавляет к списку тех задач, которые так или иначе выполняются людьми, причастными к проекту.
Результатом стала настоящая книга, которую я, в частности, задумывал как продолжение книги UML. Основные концепции. Вместо того чтобы обучить вас принципам работы с UML, который унифицированный процесс интенсивно использует, я включил ссылки на главы и разделы первой книги, где уделяется внимание деталям различных диаграмм и техник UML, применяемых в процессе. Я также перенес в эту книгу часть диаграмм, чтобы сохранить связь между книгами и подчеркнуть их неразрывность. Как сказал Пикассо: "Хорошие художники заимствуют, а великие похищают".
Вот еще несколько ключевых особенностей этой книги.
- Основным предметом обсуждения являются вопросы моделирования предметной области и бизнес-моделирования, которым в других книгах, посвященных этому процессу, уделяется мало внимания; кроме того, рассматриваются связанные артефакты и виды деятельности технологического процесса управления требованиями.
- Сведен к минимуму материал по организации проекта. Книга Уокера Ройса (Walker Royce) Sofware Project Management: A Unified Framework (Addison-Wesley, 1998) является авторитетным трудом по вопросу организации проекта с использованием унифицированного процесса, и я не вижу необходимости вносить какие-либо дополнения к уже написанному.
- В главах 7-9 представлена история разработки и создания книжного Internet-магазина - проекта-примера, приведенного в книге. В то время как в главах 2-6 приводятся диаграммы из книги UML. Основы, относящиеся к этому примеру, в последующих главах объясняется, как команда разработчиков разбила программу на порции в ходе итеративной и пошаговой разработки. В книге Розенберга (Rosenberg) и Скотта (Scott) Applying Use Case Driven Object Modeling with UML (Addison-Wesley, 2001) предлагается другой взгляд на разработку такого же проекта. (Предлагаю выбрать тот вариант, который вы посчитаете нужным.)
Моей целью было написать книгу, которая прояснила бы понятие о том, что некоторые называют очень объемным процессом. Надеюсь, вы согласитесь с тем, что я предлагаю.
Как организована эта книга
Основной материал книги можно разделить на четыре части.
Первая часть включает главу 1, "Обзор", В ней приводится обзор унифицированного процесса в виде краткого описания, истории создания, исследования основных тем (понятие о процессе, управляемом прецедентами и основанном на архитектуре, итеративности и инкрементности) и определения основных терминов: технологических процессов, фазы, итерации и инкремента, а также артефактов, исполнителей и видов деятельности.
Ко второй части относятся главы 2-6. Здесь приводится детальное описание пяти технологических процессов (управление требованиями, анализ, проектирование, реализация и тестирования), которые определяются процессом. В каждой главе приводится следующая информация:
- введение, которое предлагает краткий обзор элементов, входящих в состав технологического процесса, и его основные задачи;
- описание различных артефактов, которые появляются в ходе технологического процесса;
- описание различных ролей в технологическом процессе, выраженных в терминах "исполнителей";
- описание различных видов деятельности, которые выполняют исполнители в ходе технологического процесса.
Каждый раздел, посвященный видам деятельности, содержит диаграмму, на которой представлена нелинейная природа данного технологического процесса. Сплошными линиями в диаграмме обозначена логическая последовательность выполнения действий; в некоторых случаях один вид деятельности предваряет другой, но в то же время встречаются случаи, когда работа, выполненная командой в отношении одного вида деятельности, потребует возвращения к видам деятельности, выполненным ранее. Пунктирные линии обозначают поток данных: содержание артефакта, который является результатом передачи информации законченного вида деятельности к следующему или предыдущему виду.
Третья часть включает главы 7-9. В них рассматриваются три из четырех фаз (исследование, уточнение планов и построение), определяемых процессом. Каждая глава содержит следующую информацию:
- введение, в котором предлагается короткий обзор действий, выполняемых командой проекта в ходе фазы, включая ее исходные цели и взгляд на то, как каждый из технологических процессов проявляется в отдельной фазе (здесь технологические процессы и фазы можно представить в виде таблицы, где технологические процессы будут расположены слева по вертикали, а фазы - вверху по горизонтали);
- описание задач, которые должен выполнить руководитель проекта, прежде чем команда разработчиков сможет приступить к действиям, определяемым фазой;
- описание видов деятельности, определяемых одним или более технологическим процессом, который выполняет команда проекта в ходе фазы. Описания даны в терминах того, что должно произойти в процессе фазы (вид деятельности, которым занимается команда, в большей или меньшей мере зависит от сути разрабатываемого проекта), и в терминах книжного Internet-магазина. Команда по созданию книжного магазина выполнила одну итерацию исследования, три уточнения плана и два построения; в каждой главе приводится описание части их работы, при этом предоставляется информация о том, какими видами деятельности они занимались в течение каждой итерации, и возможность выбора различных разработанных моделей.
В каждой главе также приводятся элементы отдельной фазы, подлежащие сдаче клиенту.
К четвертой части можно отнести главу 10, "Фаза развертывания". В ней речь идет о фазе, в ходе которой команда проекта передает систему в пользование заказчикам. Эта глава имеет такую же структуру, как и главы 7-9. Она была выделена в отдельную часть, так как виды деятельности технологических процессов проявляются на фазе развертывания совсем не так, как на остальных фазах, поскольку здесь нет обсуждения проекта книжного магазина.
В конце книги представлены следующие материалы.
- Приложение А, описывающее дополнения, которые привносит унифицированный процесс компании Rational (Rational Unified Process - RUP) в базовые принципы унифицированного процесса.
- Приложение Б, в котором унифицированный процесс компании Rational сравнивается и противопоставляется основным аспектам экстремального программирования (eXtreme Programming - XP).
- Приложение В, посвященное процессу ICONIX, который имеет то же происхождение, что и унифицированной процесс.
- Библиография включающая книги, на которые были сделаны ссылки, и еще несколько источников, к которым можно обращаться за справками.
- Глоссарий, в котором приводятся определения всех употребляемых терминов.
Благодарности
Я хотел бы поблагодарить 13 человек, которые принесли мне удачу (должен признать, что часть из них помогали мне и при написании книги UML. Основные концепции): Росса Винабла (Ross Venable) за то, что он дал мне заряд энергии для работы над книгой; Пола Бекера (Paul Becker) как терпеливого редактора, готового всегда оказать поддержку; Дуга Розенберга (Doug Rosenberg), который перестал бы давать мне работу, если бы я его не поблагодарил; моих рецензентов (Джима Коналлена (Jim Conallen), Джоэла Эриксона (Joel Erickson), Джеффрея Хаммонда (Jeffrey Hammond) и Джеффа Кантора (Jef Kantor)) за проницательные комментарии; Дафну Хэд (Daphne Head) просто потому что она есть; Айвара Джейкобсона (Ivar Jacobson) за слова поддержки; Расса Колемана (Russ Coleman) за то, что он не возражает, когда я предлагаю ему писать собственные книги; Кима Арни Малкэхи (Kim Arney Mulcahy) за помощь в оформлении моих книг; а еще Самсона и Смоки - собак, которые составили мне компанию в этой глуши.