Borland® StarTeam® 2006 - Borland Technical Publications

Borland® StarTeam® 2006 - Borland Technical Publications Borland® StarTeam® 2006 - Borland Technical Publications

techpubs.borland.com
von techpubs.borland.com Mehr von diesem Publisher
22.11.2013 Aufrufe

Projekte autonom halten Die auf einer starken Kohäsion und geringen Abhängigkeiten basierenden Programmierungsgrundsätze gelten auch für StarTeam-Projekte. Je unabhängiger Ihre StarTeam-Projekte sind, desto einfacher ist es, sie zu sichern, zu verwalten und sie bei Bedarf von der ursprünglichen StarTeam-Konfiguration zu trennen. Wenn Sie Projekte autonom halten, reduzieren Sie projektübergreifende Verknüpfungen und Freigaben auf ein Minimum bzw. vermeiden Sie diese vollständig. Nachfolgend finden Sie einige Richtlinien für die Entscheidung, welche Elemente im selben Projekt vorhanden sein sollten: ♦ Ein Projekt sollte verwendet werden, um die Lebenszyklusartefakte einer zusammenhängenden Anwendungsgruppe oder einer Anwendungskomponentengruppe zu verwalten. Beispiele sind im Handel erhältliche Software-Produkte oder Packages mit Bibliotheken für Grundkomponenten. Mehrere Anwendungsoder Komponentengruppen können in einem Projekt verwaltet werden, wenn sie zusammenhängen und in der Regel zusammen verbessert und veröffentlicht werden. ♦ Ein Projekt sollte alle Artefakte enthalten, die zum Verwalten des Lebenszyklus der unterstützten Anwendungen oder Komponenten erforderlich sind. Dazu gehören frühe Lebenszyklusartefakte, z. B. Anforderungsdokumente, Modeling-Diagramme und Design-Dokumente sowie Artefakte der Konstruktionsphase, z. B. Quelltextdateien. ♦ Dateien, die für das Authoring erforderlich sind. Dies umfasst beispielsweise alle Dateien, die von den IDEs erzeugt wurden, z. B. Arbeitsbereichs-/Projektdateien, Quellcode- und Ressourcendateien. Außerdem gehören dazu "Eingabedateien", z. B. .h-, .lib-, .jar-, oder .dll-Dateien, die an anderer Stelle erstellt oder generiert werden, aber für die IDEs oder den Build-Prozess des Projekts erforderlich sind. Eingabedateien können von Drittanbietern oder aus anderen Projekten in derselben oder anderen StarTeam-Konfigurationen stammen. (Das Übertragen von Artefakten aus einem Projekt in ein anderes wird an anderer Stelle beschrieben.) ♦ Dateien, die direkt aus geschriebenen Dateien generiert werden, z. B. .OBJ-, .CLASS,- und .LIB-Dateien, müssen in der Regel nicht in das Projekt eingecheckt werden. Es ist jedoch üblich, die "endgültigen" Binärdateien einzuchecken, z. B. .jar-, .war- und .exe-Dateien, die für andere Projekte, Engineering-Tests, QA oder andere Deployment-Phasen vorgesehen sind. Der Bedarf, generierte Dateien der Versionskontrolle zu unterstellen, ist stark abhängig von Ihren eigenen Entwicklungs-, Test- und Freigabemethoden. ♦ Ein Projekt sollte eine langfristige Sicht auf die Produkte oder Komponenten haben, die es unterstützt. Dies bedeutet, dass alle über mehrere Iterationen des Lebenszyklus hinweg generierten Artefakte enthalten sein sollten. Dies bedeutet weiterhin, dass das Projekt mehrere Versionen seiner Anwendungen oder Komponenten unterstützt, die die gesamte Historie dieser Module darstellen. ♦ StarTeam funktioniert am besten, wenn die zusätzlichen Objekte (Änderungsanforderungen, Tasks, Themen und Anforderungen), die mit den Dateien eines Projekts in Zusammenhang stehen, im selben Projekt gespeichert werden. Dies ermöglicht beispielsweise, dass eine Änderungsanforderung eingegeben, verfolgt und mit den Dateien im selben Projekt verknüpft werden kann, auf die sich die Änderungsanforderung bezieht. Dieser Ansatz erfordert einige Überlegungen zu Aktivitäten wie das "Sichten von Änderungsanforderungen" und die projektübergreifende Berichtserstellung. Diese Themen werden weiter hinten erläutert. Einige Kunden haben versucht, Projekte zu verwenden, um Entwicklungsphasen (z. B. Design und Entwicklung) oder Entwicklungsartefakttypen (wie Dateien und Änderungsanforderungen) zu trennen. Diese Artefakte werden anschließend mittels zahlreicher Verknüpfungen oder Freigaben miteinander verbunden. Die Erfahrung hat jedoch gezeigt, dass die übermäßige Verwendung von Freigaben – speziell von projektübergreifenden Freigaben – zu Schwierigkeiten bei der Versionskontrolle, Berichtserstellung, Sicherheit und sogar der Leistung führt. Es hat sich gezeigt, dass Artefakte, die mit denselben Anwendungen und Komponenten verknüpft sind, obwohl von unterschiedlichen Typen und/oder unterschiedlicher Lebenszyklusrelevanz, effektiver in einem einzigen selben Projekt verwaltet werden können. 208

Beispiel 1: Eine einfache Client-/Server-Anwendung Szenario: Eine kommerzielle Software-Anwendung besteht aus einer Serverkonfiguration, die in C++ geschrieben ist, und einem einzelnen Client, der ebenfalls in C++ geschrieben ist. Des Weiteren wird ein Großteil des Quellcodes und der IDE-Projekte, die die allgemeinen DLLs generieren, von den Client- und Servermodulen gemeinsam genutzt. Die Client- und Servermodule werden in der Regel zusammen verbessert und veröffentlicht. In diesem Szenario sollte ein einzelnes StarTeam-Projekt verwendet werden, um die kombinierten Dateien des Client- und Servermoduls zu verwalten. Die gemeinsame Nutzung des Quellcodes und die Zeitpläne für die gemeinsame Veröffentlichung legen nahe, dass die Module zusammenhängende Teile einer einzigen Anwendung sind. Anforderungen, Designdokumente, Änderungsanforderungen und andere Objekte, die für alle Lebenszyklusphasen des Client- und Servermoduls erforderlich sind, sollten im selben Projekt verwaltet werden. Beispiel 2: Ein unabhängiges Client-Modul Szenario: Eine neue Java-Client-Anwendung wird entwickelt, die denselben Server wie in Beispiel 1 verwendet. Die Build-Erzeugung und das Compilieren des Java-Clients erfordern, dass einige der vom Server verwendeten Header- Dateien und eine der DLLs einen JNI-Wrapper, jedoch keine weiteren Quelldateien erstellen. Des Weiteren greift die Java-Anwendung auf Server von Drittanbietern zu und wird in der Regel unabhängig von den Client- und Servermodulen verbessert und veröffentlicht. In diesem Szenario bietet es sich an, ein separates StarTeam-Projekt zu verwenden, um die Artefakte des Java- Clients zu verwalten. Die neuesten Header-Dateien und generierten DLLs, die vom Java-Client benötigt werden, werden von dem im Client-/Serverprozess verwendeten Build-Prozess in einen Ordner für externe Komponenten eingecheckt. Alle mit dem Java-Client in Zusammenhang stehenden Änderungsanforderungen, Tasks und anderen Lebenszyklusobjekte werden im selben Projekt verwaltet. Beispiel 3: Eine komplexe Finanzanwendungs-Suite Szenario: Eine komplexe Anwendungs-Suite besteht aus mehreren Grundkomponenten und nahezu 100 separaten Anwendungen, die in fünf Funktionsbereiche aufgeteilt sind: Buchhaltung, Versicherung, Prognose usw. Die Anwendungen werden von unterschiedlichen Teams entwickelt und alle verwenden die Grundkomponenten, die von den Entwicklungsteams gemeinsam verwaltet werden. Die Anwendungen innerhalb eines Funktionsbereichs sind eng miteinander verbunden, die Anwendungen zwischen den einzelnen Funktionsbereichen sind jedoch relativ unabhängig voneinander. Die Bibliothek der Grundkomponenten wird nach einem eigenen Zeitplan verbessert und veröffentlicht, die gesamte Anwendungs-Suite wird jedoch als kommerzielles Produkt in koordinierten Versionen veröffentlicht. Obwohl die einzelnen Komponenten der gesamte Anwendungs-Suite miteinander verknüpft sind, sollten aufgrund der Gesamtgröße der Anwendungs-Suite mehrere Projekte verwendet werden. Die Grundkomponenten werden in einem Projekt und jeder der fünf Funktionsbereiche wird in einem separaten Projekt verwaltet, um die entsprechenden Anwendungen zu verwalten (sechs Projekte insgesamt). Das Grundprojekt wird verbessert, erzeugt und anschließend in den einzelnen Funktionsbereichsprojekten bereitgestellt, indem die generierten .JAR-Dateien eingecheckt werden. Jedes Entwicklungsteam öffnet in der Regel nur ein Projekt, um die momentane Arbeit auszuführen. Es wird jedoch ein spezielles Build-Skript (mit dem StarTeam-SDK) verwendet, um Dateien aus mehreren Projekten zu extrahieren und vollständige Suite-Builds zu generieren. Das Build-Skript automatisiert zudem die Verwaltung der allgemeinen, projektübergreifenden Ansichts-Labels und Heraufstufungsstatuswerte. 209

Projekte autonom halten<br />

Die auf einer starken Kohäsion und geringen Abhängigkeiten basierenden Programmierungsgrundsätze gelten auch<br />

für StarTeam-Projekte. Je unabhängiger Ihre StarTeam-Projekte sind, desto einfacher ist es, sie zu sichern, zu<br />

verwalten und sie bei Bedarf von der ursprünglichen StarTeam-Konfiguration zu trennen. Wenn Sie Projekte<br />

autonom halten, reduzieren Sie projektübergreifende Verknüpfungen und Freigaben auf ein Minimum bzw.<br />

vermeiden Sie diese vollständig.<br />

Nachfolgend finden Sie einige Richtlinien für die Entscheidung, welche Elemente im selben Projekt vorhanden sein<br />

sollten:<br />

♦ Ein Projekt sollte verwendet werden, um die Lebenszyklusartefakte einer zusammenhängenden<br />

Anwendungsgruppe oder einer Anwendungskomponentengruppe zu verwalten. Beispiele sind im Handel<br />

erhältliche Software-Produkte oder Packages mit Bibliotheken für Grundkomponenten. Mehrere Anwendungsoder<br />

Komponentengruppen können in einem Projekt verwaltet werden, wenn sie zusammenhängen und in der<br />

Regel zusammen verbessert und veröffentlicht werden.<br />

♦ Ein Projekt sollte alle Artefakte enthalten, die zum Verwalten des Lebenszyklus der unterstützten<br />

Anwendungen oder Komponenten erforderlich sind. Dazu gehören frühe Lebenszyklusartefakte, z. B.<br />

Anforderungsdokumente, Modeling-Diagramme und Design-Dokumente sowie Artefakte der<br />

Konstruktionsphase, z. B. Quelltextdateien.<br />

♦ Dateien, die für das Authoring erforderlich sind. Dies umfasst beispielsweise alle Dateien, die von den IDEs<br />

erzeugt wurden, z. B. Arbeitsbereichs-/Projektdateien, Quellcode- und Ressourcendateien. Außerdem<br />

gehören dazu "Eingabedateien", z. B. .h-, .lib-, .jar-, oder .dll-Dateien, die an anderer Stelle erstellt<br />

oder generiert werden, aber für die IDEs oder den Build-Prozess des Projekts erforderlich sind. Eingabedateien<br />

können von Drittanbietern oder aus anderen Projekten in derselben oder anderen StarTeam-Konfigurationen<br />

stammen. (Das Übertragen von Artefakten aus einem Projekt in ein anderes wird an anderer Stelle<br />

beschrieben.)<br />

♦ Dateien, die direkt aus geschriebenen Dateien generiert werden, z. B. .OBJ-, .CLASS,- und .LIB-Dateien,<br />

müssen in der Regel nicht in das Projekt eingecheckt werden. Es ist jedoch üblich, die "endgültigen"<br />

Binärdateien einzuchecken, z. B. .jar-, .war- und .exe-Dateien, die für andere Projekte, Engineering-Tests,<br />

QA oder andere Deployment-Phasen vorgesehen sind. Der Bedarf, generierte Dateien der Versionskontrolle<br />

zu unterstellen, ist stark abhängig von Ihren eigenen Entwicklungs-, Test- und Freigabemethoden.<br />

♦ Ein Projekt sollte eine langfristige Sicht auf die Produkte oder Komponenten haben, die es unterstützt. Dies<br />

bedeutet, dass alle über mehrere Iterationen des Lebenszyklus hinweg generierten Artefakte enthalten sein<br />

sollten. Dies bedeutet weiterhin, dass das Projekt mehrere Versionen seiner Anwendungen oder Komponenten<br />

unterstützt, die die gesamte Historie dieser Module darstellen.<br />

♦ StarTeam funktioniert am besten, wenn die zusätzlichen Objekte (Änderungsanforderungen, Tasks, Themen<br />

und Anforderungen), die mit den Dateien eines Projekts in Zusammenhang stehen, im selben Projekt<br />

gespeichert werden. Dies ermöglicht beispielsweise, dass eine Änderungsanforderung eingegeben, verfolgt<br />

und mit den Dateien im selben Projekt verknüpft werden kann, auf die sich die Änderungsanforderung bezieht.<br />

Dieser Ansatz erfordert einige Überlegungen zu Aktivitäten wie das "Sichten von Änderungsanforderungen"<br />

und die projektübergreifende Berichtserstellung. Diese Themen werden weiter hinten erläutert.<br />

Einige Kunden haben versucht, Projekte zu verwenden, um Entwicklungsphasen (z. B. Design und Entwicklung)<br />

oder Entwicklungsartefakttypen (wie Dateien und Änderungsanforderungen) zu trennen. Diese Artefakte werden<br />

anschließend mittels zahlreicher Verknüpfungen oder Freigaben miteinander verbunden. Die Erfahrung hat jedoch<br />

gezeigt, dass die übermäßige Verwendung von Freigaben – speziell von projektübergreifenden Freigaben – zu<br />

Schwierigkeiten bei der Versionskontrolle, Berichtserstellung, Sicherheit und sogar der Leistung führt. Es hat sich<br />

gezeigt, dass Artefakte, die mit denselben Anwendungen und Komponenten verknüpft sind, obwohl von<br />

unterschiedlichen Typen und/oder unterschiedlicher Lebenszyklusrelevanz, effektiver in einem einzigen selben<br />

Projekt verwaltet werden können.<br />

208

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!