Обзорная статья по Rational ClearCase - системе конфигурационного и версионного контроля

Новичков Александр

В материале представлено описание предметной области SCM (Source Code Management), дано общее введение в продукт ClearCase. Рассмотрены основные функциональные возможности и области применения. Приведены рекомендации по использованию.

Введение

Компания Rational является лидирующей компанией в области создания методологий и программных решений, ориентированных на программистов, аналитиков, тестировщиков. Спектр выпускаемого обеспечения целиком покрывает потребность всех участников проекта: от аналитиков до разработчиков и внедренцев. Все программно-методологические решения - плод многолетнего труда аналитиков и разработчиков как самой Rational, так и ее партнеров. В итоге, все решения были собраны воедино. Так появился RUP - Rational Unified Process - методологическая энциклопедия, в которой описаны все шаги, необходимые для создания качественного программного продукта. Пользуясь подобной энциклопедией и применяя соответствующие инструменты, рекомендуемые Rational, команда будет создавать обеспечение качественно и в срок.

Особое место в RUP занимает Source Code Management - управление исходным текстом. SCM описывает способ контроля и сопровождения информации и текущем состоянии каждого файла, составляющего программный проект. SCM - это методология, которую всецело поддерживает продукт ClearCase, чьей обязанностью и является от-слеживание и детальное протоколирование всего, что связанно с разработкой проекта. В командной разработке регламентируется использование SCM отдельными участниками команды. Но если подойти к делу неформально, то рекомендация по использова-нию данного продукта и методологии может выглядеть так: ClearCase рекомендуется всем участникам проекта, кто должен обмениваться информацией с другими, и точно знать, кто и когда из коллег внес изменения. Ведь в современных условиях скоростной разработки кода большими командами просто необходимо иметь надежное и мощное средство по отслеживанию изменений, позволяющее всем участникам команды видеть текущее положение дел в разработке проекта.

Описание возможностей

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

Продукт совмещает полный SCM, включая контроль над версиями, управление рабочим пространством с помощью уникального инвариантного подхода. Посредством ClearCase команда разработчиков может ускорить циклы разработки, убедиться в точности релизов, создавая новые, надежные в эксплуатации продукты, а также дораба-тывать и поддерживать ранее реализованные продукты, организовывать эффективный процесс разработки - и все это без изменения среды, инструментальных средств и подхода к работе.

Продукт обеспечивает продвинутое управление версиями исходных текстов, библиотек и исходников на протяжении всего жизненного цикла проекта, позволяя тем самым разработчику вернуться к любой версии редактируемого файла и откорректировать его, создав новую версию.

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

В дополнение к описанным возможностям, ClearCase позволяет объединять географи-чески удаленные команды разработчиков посредством MultiSite - специального модуля, осуществляющего репликацию (передачу) текущего состояния проекта на указан-ный сайт.

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

ClearCase обеспечивает наиболее тесную интеграцию как с продуктами самой Rational (Rose, SoDA, ClearQuest, Requisite PRO) так и с продукцией компании Microsoft (Visual C++, Visual Basic).

На чем основан продукт

Для реализации полного контроля над версиями в специальную базу данных - VOB (Version Object Base) заносятся все изменения над всеми данными. Для проекта на сервере создается один или несколько VOB, куда, в процессе работы, заносятся все промежуточные данные. Каждый элемент VOB'а имеет свою уникальную версию. При создании VOB получает определенный набор характеристик, по которым в дальнейшем можно определить (при наличии соответствующих полномочий) историю его создания. То есть, возможно получение справочной информации. Все данные, помещаемые в VOB, автоматически сжимаются.

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

Только через систему видов возможны все операции, присущие не только ClearCase, но и любой другой программе версионного контроля. Это такие операции как: постановка файлов под контроль, при котором для каждого элемента создается дерево версий, операции "Check-in" и "Check-out", позволяющие производить редактирование отдельного файла, создавая увесистое дерево версий, на котором отражена полная история развития отдельного элемента.

Виды в программе представлены двумя типами: "Dynamic" и "Snapshot", имеющими свои достоинства и недостатки, но при совместном использовании, способные открыть новые возможности в контроле над файлами. Специфика вида "Dynamic" заключается в том, что данный вид полностью использует все возможности операционных систем NT и UNIX, создавая виртуальную файловую систему, на которой размещаются все подконтрольные данные. Сама файловая система размещается также на виртуальном диске, физически размещаясь на сервере. Данный способ позволяет вести контроль над файлами в реальном масштабе времени, но пользователь с локальной станции имеет дело не с физическими объектами.

"Snapshot" - оправдывает свое название - фотография - делая снимок текущего состояния проекта на локальной машине. Разработчик получает на своем диске точную копию либо всего проекта, либо только необходимой части: файла, группы файлов… Важным моментом при такой работе является синхронизация локальных данных с общим проектам, которая в данном случае выполняется не автоматически, а по команде пользователя, что делает возможным удаленную работу над проектом, позволяя любому разработчику взять материал "на дом", после чего вернуть новые версии файлов в проект. "Snapshot" - не зависит от типа операционной системы и от производительно-сти интранет, поскольку не нагружает так локальную сеть, как "Dynamic View".

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

Как говорилось ранее, для каждого файла создается дерево версий. Дерево состоит из основной ветви - корня, и остальных "листьев" - версионных ответвлений - бренчей, здесь следует отметить две разновидности ответвлений: простое ответвление (Branch) - создаваемое для отдельного файла и в любых количествах, и главное ответвление (Private Branch) - ответвление для всего проекта, когда создается новая ветвь для всех файлов, составляющих проект, но ветвь может быть только одной.

Последняя возможность позволяет создавать новую версию для всех файлов, с последующим обязательным возвращением в основное русло разрабатываемого проекта.

Для объединения версий в ClearCase предусмотрена специальная утилита - MergeManager - менеджер слияний, который, под контролем менеджера проекта, собирает из двух предоставленных файлов один. Сборка осуществляется либо автоматически (тривиальная сборка), когда файлы не сильно отличаются, либо менеджер сам выбирает строки кода для слияния (нетривиальная сборка). По окончании слияния на дереве создается новая версия, которую далее также можно править, сливать и делать ответвления.

Слияние файлов можно производить как из GUI, так и из командной строки. Допускается слияние только текстовых файлов.

Еще одной из продвинутых возможностей ClearCase можно назвать возможность создания видов на базе профилей, что может слегка усложнить и дерево версий и понимание самой программы, зато позволяет особым образом настраивать систему видов для каждого участника проекта в отдельности: для разработчиков - одно, для тестировщиков - другое.

Программа обладает развитым интерфейсом и полностью использует возможности современных операционных систем. В наследство от старых версий и для обеспечения максимальной производительности ClearCase, помимо графического интерфейса обладает богатым набором команд для работы из командной строки. Так или иначе, все ресурсы программы доступны как из GUI, так и из командной строки, что дает определенную волю участникам проекта, и открывает новые возможности в скорости и мобильности управления проектом.

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

Интеграция

ClearCase относится к той группе инструментов, которые, при очень богатых собственных возможностях, все же не способны полностью раскрыть собственные функциональные возможности без интеграции со средствами разработки. ClearCase позволяет интегрироваться с таким популярным средством разработки, как Visual Studio.

При совместном использовании двух продуктов появляется дополнительная возможность по управлению версиями, не выходя из среды разработки. ClearCase встраивается в рабочее пространство VisualStudio, дополняя своими функциями меню программы.

Таким же образом интеграция происходит с Microsoft Word и Microsoft Front Page. В последних двух случаях появляется возможность слияния не только текстовых файлов, но и файлов с расширением DOC, XML, HTML.

В этих пакетах встраивание выглядит также как и в Visual Studio - все функции кон-троля версий доступны через верхнее меню.

Дополнительные возможности

Компания Rational посредством RUP регламентирует все этапы разработки программного обеспечения, воплощая в себе все знания и опыт. Для каждого, из приведенных в RUP этапов, той же Rational создано специальное ПО - в частности ClearCase. Дополнив его еще некоторыми программными продуктами или дополнительными модулями, можно открыть абсолютно новые возможности.

Рассмотрим продукты и модули, которые можно использовать совместно с ClearCase:

MultiSite. Специальный модуль, позволяющий вести разработку регионально удаленным группам разработчиков. Работа производится посредством передачи (репликации) текущего состояния проекта на указанный сайт (через Интернет). Обмен данными может осуществляться как между двумя сайтами, так и между любым количеством. Син-хронизация проекта при использовании MultiSite осуществляется как вручную, так и автоматически - по усмотрению администратора. Важным преимуществом модуля является возможность реплицирования проекта не только на указанный IP-адрес, но и в простой файл, который также можно перенести на любую машину любым традиционным способом.

SoDA. Система автоматизирования генерации проектной документации. Данная программа генерирует определенный набор шаблонов, выбирая все нужные данные из VOB или из отдельных файлов. Программа встраивается в Word, где создает шаблон, основанный на определенных данных. Использования программы значительно упрощает ведение проектной документации, давая техническому писателю или менеджеру проекта все необходимые данные в стандартном виде на основе выбранного шаблона. Пользователю останется только дополнить нужными комментариями сгенерированный документ.

ClearQuest. Позволит создать специальную базу данных, куда будут вноситься все изменения, которые были внесены в проект за указанный промежуток времени.

Отличительные черты ClearCase:

  • Это высокопроизводительное средство клиент-сервер масштаба предприятия
  • Ведет полный учет всего относящегося к проекту
  • Создает дерево версий для каждого элемента проекта
  • Позволяет проводить параллельную работу над одним файлом нескольким участникам команды
  • Позволяет каждому участнику проекта настраивать собственное рабочее пространство и видимый круг подконтрольных элементов
  • Позволяет разработчику на время выходить из общего русла проекта
  • При наличии MultiSite объединяет регионально удаленные команды разработчиков
  • Хранит весь проект, включая: исходные файлы, двоичные файлы, библиотеки, до-кументацию, Web приложения, модели и директории
  • Имеет Web-интерфейс для удаленного доступа
  • Конвертирует данные из PVCS в собственный формат
  • Имеет удобный и понятный интерфейс

Спецификации

Поддерживаемые Web-броузеры

Microsoft Internet Explorer Netscape

Поддерживаемые Web-серверы:

  • Apache
  • Microsoft IIS
  • Netscape

Поддерживаемые операционные системы:

Windows 2000, Windows NT,Windows 95/98 (client only)
Compaq Tru64 UNIX
Hewlett-Packard HP-UX
IBM, AIX, NCR MP-RAS
Red Hat Linux
SCO UnixWare
Siemens Reliant UNIX
Silicon Graphics IRIX
Sun Solaris SPARC
Solaris Intel

Интеграция:

IBM VisualAge for Java
Microsoft Visual Studio
Visual Basic
Visual C++
Visual J++
Visual InterDev
Adobe FrameMaker
Sybase PowerBuilder
IBM WebSphere Studio
Microsoft FrontPage
Microsoft Word
All SCC-compliant tools

Заключение

ClearCase на сегодняшний день является самой продвинутой системой версионного и конфигурационного управления, снабженной самыми последними достижениями в области SCM. Поскольку ClearCase является системой корпоративного уровня, то рекомендовать ее можно всем предприятиям, число разработчиков в которых более 5. Все свои мощные возможности программа раскрывает при использовании ее на крупных предприятиях с большим количеством разработчиков. ClearCase становится неза-менимым продуктом когда речь заходит об объединении регионально удаленных команд разработчиков.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=4829