ClearCase - система конфигурационного и версионного контроля

Обзорная статья

Новичков Александр, rational@interface.ru

Более подробно о ClearCase: www.interface.ru/admail.asp?Url=/rational/ratline.htm

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

I. Введение

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

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

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

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

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

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

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

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

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

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

III. На чем основана программа

Для реализации полного контроля над версиями в специальную базу данных - 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"-файлах.

IV. Интеграция.

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

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

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

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

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

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

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

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

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

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

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

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

Требования для клиента:
Минимум: 64MB ОЗУ, 35MB Дискового пространства

Требования для сервера:
Минимум: 128MB ОЗУ, 70MB Дискового пространства

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

Поддерживаемые Web Серверы

Поддерживаемые операционные системы
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

VII. Заключение

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

По обучению и продаже обращайтесь в компанию "Интерфейс"
Тел: (095) 795-3186, 135-5500, 135-2519

http://www.interface.ru - CASE, OLAP, ERP & Client-Server Technology
http://www.olap.ru - OLAP and Decision Support Systems
http://www.job.com.ru - International Job Agency for IT-specialists
http://www.shop.org.ru - On-line Catalog of Instrumental Software
http://www.paybot.com - Secure Internet Payment System
http://subscribe.ru/catalog/comp.soft.others.itnews/ - IT News