# Rational ClearCase

Rational ClearCase ist eine skalierbare Software für das Konfigurationsmanagement und enthält Funktionen für Versionsverwaltung, Parallele Entwicklung, Workspace-Management sowie Build- und Release-Management. Es stellt Funktionalitäten zur Verfügung, die zur Erstellung, Aktualisierung, Erzeugung (Build), Verteilung und Wiederverwendung aller Arten von Artefakten hilfreich sind. ClearCase ist verfügbar für Linux, Windows, Unix sowie auf Mainframe-Computern (z/OS) und ermöglicht somit eine plattformübergreifende Anwendungsentwicklung. Durch die optionale Erweiterung Multisite oder die Verwendung des ClearCase Remote Clients (CCRC) wird parallele Softwareentwicklung über geographisch verteilte Umgebungen hinweg ermöglicht.

## Geschichte

ClearCase wurde im Jahr 1990 von David Leblang und Howard Spilke, Mitarbeitern des Unternehmens Millennium Teamware, entwickelt und kam nach etwa anderthalb Jahren Entwicklungszeit im Jahr 1992 als Atria ClearCase zunächst für Unix-Betriebssysteme auf den Markt. ClearCase war nach VAX CMS und Apollo DSEE bereits das dritte SCM-Werkzeug, an dem Leblang gearbeitet hatte.
Atria Software (ursprünglich Atria, aus rechtlichen Gründen umbenannt) wurde 1996 von Pure Software aufgekauft und firmierte seither als PureAtria. Später übernahm Rational Software das Unternehmen PureAtria, bevor Rational Software im Jahr 2003 von IBM übernommen wurde.

## Releases

| Release | Erscheinungsdatum | Bemerkungen |
| 9.0 | Mai 2016 | Threadsicherheit in Kernbibliotheken, Smart Card Support für den ClearCase Remote Client, verbesserte Cadence Virtuoso Integration |
| 8.0 | Oktober 2011 | |
| 7.1.2 | Oktober 2010 | |
| 7.1.1 | Dezember 2009 | Atomic Commit eingeführt. |
| 7.1 | Dezember 2008 | Einführung des IBM Installation Manager, Umstellung der Web-Plattform auf den auf dem WebSphere Application Server basierenden CM Server, Einführung der Java-basierenden CM-API sowie Unterstützung von UTF-8. |

## Besonderheiten

Alle versionierten Objekte, genannt Artefakte, werden bei ClearCase in einem eigenen Repository gespeichert, welches als VOB (Versioned Object Base) bezeichnet wird. Um dann bestimmte Versionen dieser Artefakte bearbeiten zu können, verfügt ClearCase über einen Mechanismus, der mittels eines sogenannten Views (im Sinne einer „Sicht“ in den VOB) realisiert wird. Diese Sichten verhalten sich auf dem Client-Computer wie ein weiteres Dateisystem, das sich transparent z. B. in die Dateimanager integriert, sodass der Zugriff auf versionierte sowie nicht-versionierte Dateien in gleicher Art und Weise erfolgt.
ClearCase speichert Dateiversionen nach dem sogenannten in-line delta storage-Prinzip. Die Änderungen zwischen einzelnen Versionen einer Datei werden mit einer speziellen Notation innerhalb der Datei selbst gespeichert. Auf diese Weise kann jede beliebige Version gleich schnell angezeigt werden.
Neben der Integration in den Dateimanager wird die Arbeit mit versionierten Dateien über Integrationen in eine Vielzahl anderer Produkte und Entwicklungsumgebungen (Microsoft Visual Studio, Eclipse IDE, Microsoft Word, Code::Blocks, NetBeans, …) erleichtert. ClearCase verfügt auch über Integrationen in andere IBM Rational Produkte wie z. B. Rational ClearQuest, Rational Rose, Rational Application Developer, die als Basis für die Nachverfolgbarkeit von Änderungen über den gesamten Entwicklungsprozess – von der Anforderung bis hin zu den entsprechenden Testfällen – dienen.
Zusätzlich bietet ClearCase die Möglichkeit, ohne Installation einer Client-seitigen Software über einen Browser verwendet zu werden. Auf Basis der Webtechnologie steht ab der Version 6 auch ein Eclipse-basierter ClearCase Remote Client (CCRC) zur Verfügung.
ClearCase unterstützt prinzipiell zwei verschiedene Arbeitsweisen, die als Base ClearCase sowie UCM (Unified Change Management) bezeichnet werden. Hierbei bietet Base ClearCase die größere Flexibilität, erfordert dafür jedoch mehr Aufwand bei der Implementierung der Vorgehensweise. UCM, das auf Base ClearCase aufsetzt, unterstützt mit einer vorgefertigten Vorgehensweise eine einfachere Inbetriebnahme, die jedoch weniger Flexibilität bietet.

### Integriertes Softwarebuildmanagement (Base ClearCase)

    ClearCase erlaubt durch die integrierten Build-Tools omake und clearmake die Nutzung von „derived objects“. Die beim Kompilieren entstehenden Objekte können im View oder VOB zwischengespeichert und beim nächsten Build wiederverwendet werden, sodass die Performance eines Softwarebuilds deutlich zunehmen kann. Auch kann man beim Build einen Configuration Record erstellen lassen, wo z. B. sämtliche für den Build verwendete Dateien mit entsprechender Versionsangabe gespeichert werden.

### UCM (Unified Change Management)

    Unified Change Management ist ein von Rational vordefinierter Prozess, der die Softwareentwicklung allgemein unterstützt. Das UCM Project enthält in der Regel mehrere Komponenten, die wiederum mehrere Dateien umfassen können. Der Entwickler arbeitet unter UCM auf eigenen Streams. Die Arbeitsaufträge (Activities) können mehrere zu ändernde Dateien umfassen. Definierte Stände (z. B. Releasestand) werden durch Baselines markiert, ähnlich dem Label unter ClearCase.

## Multisite

Die Erweiterung ClearCase Multisite repliziert die in den VOBs gespeicherten Daten des ClearCase-Systems an beliebig viele andere Standorte (Sites) und soll so das Arbeiten von verteilten Teams an gemeinsam genutzten Daten erleichtern.
Beim Hinzufügen eines neuen Standortes werden initial einer oder mehrere VOBs an den oder die anderen Standorte übertragen (Replikation). Im laufenden Betrieb werden dann regelmäßig lediglich diejenigen Daten versendet (synchronisiert), die an einem der Standorte geändert wurden.
Um konkurrierende Bearbeitung an einer Version eines Artefakts kontrollieren zu können, gibt es das Prinzip der Mastership. Hierbei liegt die Mastership eines Versions-Zweigs eines Artefaktes zu einem Zeitpunkt an genau einem Standort. Nur der Standort, der die Mastership hat, kann neue Versionen auf diesem Zweig erzeugen. Alle anderen Standorte können (zu diesem Zeitpunkt) auf diesen Zweig im Versionsbaum nur lesend zugreifen. Das Bearbeiten von Versionen in anderen Zweigen desselben Artefakts bleibt hiervon unberührt und ist weiterhin jederzeit möglich. Die Mastership kann beliebig an einen anderen übertragen bzw. von einem Standort angefordert (Request for Mastership) werden.