Projekt-Management

Open-Source-Software strategisch einführen

Seite: 3/4

Anbieter zum Thema

Anforderungen an die einzelnen Komponenten

Die nächste Aufgabe liegt im Formulieren der Anforderungen an einzelne Komponenten. In diesem Zusammenhang sollte bereits definiert werden, wo das eigene Kern-Knowhow liegt und in welchen Softwaremodulen sich dieses ggf. abbildet. In der Regel wird dieses die Applikation sein. Das Betriebssystem oder systemnahe Bibliotheken und Tools sind nur höchst selten eigene Kernkompetenz. Bei einer späteren Implementierung ist dann darauf zu achten, dass die Kern-Komponenten nicht mit Open Source Code vermischt werden, um diese als eigenständig entwickelte und damit proprietäre Module zu schützen.

Als nächstes ist die Hardware- und Software Architektur zu formulieren. Im Zusammenhang mit dem Einsatz von Open Source Software ist hier eine Orientierung und eine Auswahl im Angebot von Board Support Packages (Distributionen) und Dienstleistungen sowie freien Projekten notwendig. Zur Auswahl stehen kostenpflichtige Standarddistributionen und Embedded Distributionen, Individual-Distributionen, Beratung und Schulung, System- und Treiberentwicklung, Applikationsentwicklung, Toolunterstützung sowie Reference Designs für Hard- und Software. Dabei kann flexibel zwischen Eigen- oder Fremdentwicklung entschieden werden.

Als nächstes folgt die Auswahl, Zusammenstellung und ggf. das Design von einzelnen Subsystemen. Zu diesem Schritt gehört die Planung von Anpassung oder Neuentwicklung von Modulen. Selbstverständlich müssen dabei technische Abhängigkeiten oder funktionale Wechselwirkungen berücksichtigt werden. Sollen zu einem späteren Zeitpunkt neu entwickelte oder veränderte Komponenten in die Community gegeben werden, so ist dieses bereits hier zu entscheiden. Für alle nachfolgenden Entwicklungsschritte resultiert dann die Anforderung einer Implementierung im Community Style, um die Akzeptanz und die Wiederverwendbarkeit zu erhöhen.

Komponenten konfigurieren, modifizieren oder neu entwickeln

In der Phase der Entwicklung ist jetzt der Schritt der konkreten Konfiguration, Modifikation und ggf. Neuentwicklung von Open oder Closed-Source-Komponenten erreicht. Für die späteren Schritte und insbesondere für die Phase der Wartung eines Softwarestandes ist der Einsatz eines Source Code Management Systems bzw. Software Repositorys unabdingbar.

Open-Source-Programme wie Subversion oder Git bieten die benötigten Funktionen wie einen organisierten gemeinsamen Zugriff auf Sourcen, die Nachvollziehbarkeit von Änderungen (hinzugefügt, geändert, gelöscht) im Sinne einer History-Funktion sowie die Verwaltung mehrerer Versionen des Codes in so genannten Branches. Zudem können Zustände des Softwaresystems über die Zeit exakt rekonstruiert werden (Versioning), und Zustände des Systems können zu einem bestimmten Zeitpunkt eingefroren (Tagging) werden.

Nach dem obligatorischen Test von einzelnen Komponenten erfolgen Integration, Kompilation und Test von Hardware- und Software zum Release einer Produktplattform. Gegenstand dieser Aufgabe ist damit die automatisierte, personen- und rechnerunabhängige sowie validierbare Zusammenstellung von genau definierten Komponenten mit definiertem Versionsstand und festgelegter Konfiguration in einer bestimmten Reihenfolge. Diese komplexe Aufgabe übernimmt typischerweise ein Build System wie beispielsweise e2 factory. In einem solchen Tool ist nicht nur der Prozess der Zusammenstellung und Kompilation der einzelnen Sourcen in Form von Stücklisten und Regeln hinterlegt. Der skizzierte Mechanismus bietet später auch die Möglichkeit einzelne Komponenten im Verlauf des Produktlebenszyklus selektiv zu aktualisieren oder bestimmte Produktionsstände auch noch nach Jahren eindeutig zu reproduzieren.

(ID:290847)