Konzept: Arbeitsbereiche
Ein Arbeitsbereich ist ein privater Bereich, der den Code enthält, den ein Entwickler relativ isoliert von anderen Entwicklern und in Übereinstimmung mit den vereinbarten Projektstandards codiert und testet.
Beziehungen
Hauptbeschreibung

Definition

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.

Erläuterung

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.

Abbildung zeigt 2 Integrationsarbeitsbereiche und einen überblendeten privaten Arbeitsbereich im Konfigurationsmanagementkubus

Die vorherige Abbildung zeigt private Arbeitsbereiche und Integrationsarbeitsbereiche im Gesamtkontext des Konfigurationsmanagementkubus.

Betriebsfähige Konfigurationen

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.

Sichten

Ü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.