Borland® StarTeam® 2006 - Borland Technical Publications
Borland® StarTeam® 2006 - Borland Technical Publications Borland® StarTeam® 2006 - Borland Technical Publications
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
- Seite 157 und 158: Diagramme Mit dem Cross-Platform Cl
- Seite 159 und 160: Felder StarTeamenthält sowohl allg
- Seite 161 und 162: Serverübergreifende Konfiguration/
- Seite 163 und 164: Serveradministrations-Tool Dieses T
- Seite 165 und 166: Anzeigefenster Wenn Sie über das M
- Seite 167 und 168: Cross-Platform-Client - Übersicht
- Seite 169 und 170: anzuzeigen, wählen Sie die Element
- Seite 171 und 172: ♦ Der Status von StarTeamMPX. Ein
- Seite 173 und 174: Diagrammlegende Die Diagrammlegende
- Seite 175 und 176: Der Layoutbereich des Formulars Der
- Seite 177 und 178: Ansichten vergleichen/zusammenführ
- Seite 179 und 180: ♦ Die Testperspektive enthält di
- Seite 181 und 182: Verwandte Konzepte Übersicht über
- Seite 183 und 184: Die Hauptversion von File Compare/M
- Seite 185 und 186: Ordner vergleichen/zusammenführen
- Seite 187 und 188: FCM-Menüs und -Symbolleiste Die ei
- Seite 189 und 190: Toolbar-Dienstprogramm Dieses Thema
- Seite 191 und 192: StarTeam Web Edition Dieser Abschni
- Seite 193 und 194: Komponentenregister Die Komponenten
- Seite 195 und 196: StarTeam Layout Designer-Benutzerob
- Seite 197 und 198: Borland Search Dieses Thema beschre
- Seite 199 und 200: Workflow Designer Dieses Thema besc
- Seite 201 und 202: Widerrufen Stellt eine zuvor rückg
- Seite 203 und 204: Konzepte 203
- Seite 205 und 206: Allgemeines Dieser Abschnitt enthä
- Seite 207: Übersicht über Projekte In einem
- Seite 211 und 212: Projektübergreifende Dateiabhängi
- Seite 213 und 214: Projektübergreifende Aktivitäten
- Seite 215 und 216: Übersicht zu Ansichten Beim Erstel
- Seite 217 und 218: "Verzweigen bei Änderung" für den
- Seite 219 und 220: Varianzansicht Schreibgeschützte R
- Seite 221 und 222: Ansichtstyp Referenz im Gegensatz z
- Seite 223 und 224: enötigen nicht Tausende Ansichten.
- Seite 225 und 226: ausschließlich um Behebungen kriti
- Seite 227 und 228: Die Schlüsselpunkte dieses Szenari
- Seite 229 und 230: Übersicht über Ordner und Pfade I
- Seite 231 und 232: Verwandte Konzepte Übersicht über
- Seite 233 und 234: ♦ Manuell zeigt an, dass die Auto
- Seite 235 und 236: Allgemeines zu Standardordnern und
- Seite 237 und 238: Übersicht über Ein- und Auscheckv
- Seite 239 und 240: Konsistente Ein- und Auscheckvorgä
- Seite 241 und 242: Auscheckvorgänge von Dateien über
- Seite 243 und 244: einigen nicht übereinstimmenden Da
- Seite 245 und 246: Übersicht über das Vergleichen/Zu
- Seite 247 und 248: Übersicht über das Vergleichen/Zu
- Seite 249 und 250: Festschreibungsphase In der Festsch
- Seite 251 und 252: Typen und Regeln für das Vergleich
- Seite 253 und 254: Szenarios für das Zusammenführen
- Seite 255 und 256: 6 Es wird eine Replizierung ausgef
- Seite 257 und 258: andere Aktion setzen, die ausgefüh
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