РЕЦЕНЗИИ

Скотт К. UML: основные концепции: Пер. с англ. М.; СПб.; Киев: ИД "Вильямс", 2002. - 144 с.

Скотт К. Унифицированный процесс: основные концепции: Пер. с англ. М.; СПб.; Киев: ИД "Вильямс", 2002. - 160 с.

Программирование из высокого искусства, являющегося уделом одиночек, давным-давно уже превратилось в массовое ремесло. Само по себе это было неизбежно, ибо разработать огромную систему силами десятка человек, какими бы талантливыми они ни были, невозможно в принципе. Однако работа крупного коллектива над единой целью выдвигает на первый план совершенно новые проблемы, практически не возникающие в небольших командах. Важнейшая из них заключается в распределении обязанностей и согласовании усилий множества людей. Как прекрасно показал Фредерик Брукс в своем классическом труде "Мифический человекомесяц, или Как создаются программные системы", без решения этой проблемы ничего хорошего из программного проекта не получится независимо от любых других условий.

Крупные системы состоят из сотен и тысяч взаимодействующих друг с другом объектов. Без понимания их функций и связей невозможно управлять проектом, однако подготовить и изучить традиционную печатную документацию для продукта такого объема почти нереально. Еще более ситуацию усугубляет то, что сразу выяснить все тонкости и нюансы практически никогда не удается, из-за чего проект нуждается в постоянной доработке. В этой ситуации переход от текстовой модели системы к ее графическому представлению является и очевидным, и совершенно оправданным решением. В то же время необходимо, чтобы все участники проекта одинаково понимали условные графические обозначения, т. е. требуется унификация.

Унифицированный язык моделирования (UML) позволяет относительно просто и наглядно моделировать элементы, структуру и поведение сложных программных систем. Он появился уже давно, в середине 90-х годов, и публикации о нем встречаются довольно часто. Однако это по большей части издания, рассчитанные на технически "продвинутых" читателей, в то время как строить модель будущей системы без заказчика (зачастую очень далекого от вычислительной техники) значит резко повышать вероятность возникновения принципиальных ошибок из-за недопонимания требований к разрабатываемому продукту. Для российского читателя дело осложняется еще и тем, что переводной литературы по данной тематике не очень-то много.

Первая из рецензируемых книг представляет собой весьма краткое введение в UML. В десяти главах излагаются основные концепции этого графического языка, хотя все его возможности, конечно, не освещаются (хоть на обложке и красуется рекламная вывеска "Быстрое и вместе с тем исчерпывающее введение в UML"). Впрочем, изложенного материала вполне достаточно для освоения и практического применения языка. Материал дополнен глоссарием и предметным указателем.

Вторая книга тесно связана с первой. Она рассматривает унифицированный процесс (UP) разработки программного обеспечения и его связь с моделью системы, выполненной с помощью UML. Сам язык UML здесь не описывается - вместо этого имеются отсылки к соответствующим разделам предыдущей публикации. Здесь также десять глав, посвященных всем фазам разработки ПО в рамках UP и связанным с ними технологическим процессам. В трех приложениях кратко рассматривается унифицированный процесс компании Rational (RUP, см. PC Week/RE, N 4/2003, с. 20), проводится сравнение RUP и концепций "экстремального программирования" (XP), а также очень сжато описывается процесс ICONIX - попытка "скрестить" RUP и XP, чтобы избежать свойственных первому накладных расходов. Завершается книга библиографическим списком, словарем терминов и предметным указателем.

Обе книги в целом написаны вполне просто и ясно, однако новизна материала неизбежно создаст некоторые трудности, особенно на начальном этапе. Для освоения UML не требуется знания какого-либо языка программирования или объектно-ориентированного подхода, поэтому первая публикация доступна весьма широкому кругу читателей, не являющихся профессионалами в области разработки ПО. Вторая книга, хотя и ориентирована на "подготовленных разработчиков, руководителей проектов и архитекторов программных систем", также не предъявляет завышенных требований к читателю. Единственное непременное условие - терпение и настойчивость в изучении материала, без которых почти невозможно будет преодолеть возникающие на первых порах сложности. Небольшой же объем (менее 300 страниц в двух книгах) означает, что дойти до "победного конца" читатель сможет за довольно короткое время.

Версия для печати