Arbeitsbereiche sind 'private' Bereiche, in denen Entwickler in Übereinstimmung mit den Projektstandards relativ
isoliert von anderen Entwicklern Code implementieren und testen können. Der Konfigurationsmanager muss für jeden
Entwickler im Projekt einen Arbeitsbereich erstellen.
Ein Arbeitsbereich stellt jedem Entwickler eine konsistente, flexible, kosteneffiziente und reproduzierbare Umgebung
bereit, die die entsprechende Version jeder Datei auswählt und darstellt. Der Arbeitsbereich muss eine differenzierte
Steuerung von gemeinsamer Nutzung und Isolation unterstützen. Dies ist erforderlich, weil Entwickler in den meisten
Projekten isoliert von der Arbeit anderer Entwickler bleiben, gleichzeitig aber in der Lage sein müssen, ihre
Änderungen mit den Änderungen, die von bestimmten anderen Entwicklern vorgenommen werden, Einheitentests zu
unterziehen.
Bei der Pflege älterer Releases muss ein Entwickler die älteren Versionen, binären Dateien, Dokumente, Tests, Tools und
andere Objekte sehen können. In diesem Fall dient der Arbeitsbereich als "Zeitmaschine", die alles in der Umgebung,
nicht nur die Quellen, genauso wie in der Vergangenheit erscheinen lässt.
Jeder Entwicklerarbeitsbereich muss isoliert werden, damit Editier-, Kompilier-, Test- und Debug-Aktivitäten ausgeführt
werden können. Die Isolation des Arbeitsbereichs muss jedoch relativ und nicht absolut sein:
-
Es muss möglich sein, dass andere die Arbeit eines Entwicklers verfolgen und selektiv in ihren eigenen
Arbeitsbereich integrieren können.
-
Es muss möglich sein, dass andere die Änderungen, die sich für ihre Arbeit als destabilisierend erweist, bis zu
einer nachfolgenden Integrationsphase ausschließen können.
Ein Arbeitsbereich kann ein vollständig privater Bereich für einen einzelnen Entwickler sein oder gemeinsam von einen
Team von Entwicklern über ein Netz genutzt werden.
Ein Arbeitsbereich muss nicht nur den Zugriff auf Quellenversionen ermöglichen, sondern auch einen privaten
(isolierten) Speicherbereich für Dateien bereitstellen, die während der Softwareentwicklung generiert werden:
-
funktionierende (ausgecheckte) Versionen von Quellendateien,
-
ausführbare Dateien,
-
andere Arbeitsbereichsobjekte wie Quellcode, Testunterverzeichnisse und Testdatendateien.
Der private Speicher eines Arbeitsbereichs befindet sind gewöhnlich im Ausgangsverzeichnis eines Entwicklers auf einer
Workstation. Ein Arbeitsbereich, der von mehreren Entwicklern gemeinsam genutzt wird, kann einen privaten
Speicherbereich auf einem zentralen Dateiserver haben. Die eigentliche Position des privaten Speichers ist jedoch
weitgehend irrelevant. Aus der Perspektive des Entwicklers muss der private Speicher des Arbeitsbereichs vollständig
integriert sein.
Die vorherige Abbildung zeigt private Arbeitsbereiche und Integrationsarbeitsbereiche im Gesamtkontext des
Konfigurationsmanagementkubus.
Betriebsfähige Konfigurationen (Arbeitsbereichsprofile) beziehen sich auf bestimmte Subsysteme, die eine
betriebsfähige Gruppe für das Projekt bilden. Eine betriebsfähige Gruppe ist eine Liste spezieller
Versionen von Subsystemen, die referenziert oder modifiziert werden müssen, um eine Arbeitseinheit zu
implementieren. Diese Liste kann das gesamte System oder einen Teil des Systems darstellen.
Über eine Sicht kann auf Dateien im Projekt-Repository zugegriffen werden. Außerdem ermöglicht eine Sicht den Zugriff
auf bestimmte Versionen dieser Dateien:
-
Eine neue Entwicklungssicht kann den Zugriff auf die aktuellen Versionen der Dateien ermöglichen.
-
Eine weitere neue Entwicklungssicht kann den Zugriff auf die Versionen ermöglichen, die von einem Team verwendet
werden, das an einer neuen Benutzerschnittstelle für Ihr Produkt arbeitet.
-
Eine Wartungssicht kann den Zugriff auf die Versionen der Dateien ermöglichen, die verwendet wurden, um ein
bestimmtes Release des Produkts zu erstellen.
Ein Arbeitsbereich, manchmal auch Sicht genannt, ermöglicht Entwicklern, Änderungen im Privaten vorzunehmen und zu
testen, bevor die Änderungen dem Rest des Teams bereitgestellt werden. Es gibt zwei Typen von Sichten:
-
statische Sichten
-
dynamische Sichten
Eine statische Sicht liefert dem Entwickler eine stabile, unveränderliche Arbeitsumgebung. Sie entspricht der
Verzeichnisstruktur eines Computers. Eine statische Sicht wird mit Kopien der entsprechenden Dateiversionen aus einem
oder mehreren Projekt-Repositorys gefüllt. Manche verwenden den Begriff "Sandbox" (engl. für Sandkasten) für eine
solche Verzeichnisstruktur. Wenn ein Entwickler die Änderungen sehen möchte, die von anderen Teammitgliedern
vorgenommen wurden, aktualisiert er seine Sicht. Dieser Arbeitsstil entspricht einem Extraktionsmodell, da hier
die relevanten Informationen aktiv extrahiert werden und nicht durch automatische Aktualisierungsmechanismen sofort
verfügbar sind.
Eine dynamische Sicht ist eine virtuelle Datenstruktur, das sie alle Entwicklungsdaten enthält. Dynamische
Sichten erstellen keine lokalen Kopien von Dateien, sondern stützen sich auf Direktaktualisierung über das Netz.
Dynamische Sichten bieten sich für die folgenden Situationen an:
-
Der Plattenspeicherplatz auf Clientseite ist beschränkt.
-
Sie möchten abgeleitete Objekte gemeinsam nutzen.
-
Das Entwicklungsteam muss mit den aktuellen Versionen des Codes arbeiten. Dieses Feature ist besonders hilfreich
für die Integration, wo die aktuelle Version einer bestimmten Software vorausgesetzt wird.
|