Оглядова стаття з 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:



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

Підтримувані 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


Висновок

ClearCase на сьогоднішній день є найбільш просунутою системою версійного і конфігураційного управління, забезпеченою самими останніми досягненнями в області SCM. Оскільки ClearCase є системою корпоративного рівня, то рекомендувати її можна всім підприємствам, число розробників у яких більше 5. Всі свої потужні можливості програма розкриває при використанні її на великих підприємствах з великою кількістю розробників. ClearCase стає неза-менімим продуктом коли мова заходить про об'єднання регіонально віддалених команд розробників.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*