1. Was ist Softwarekonfigurationsmanagement?
Identifikation
Identifikation deckt die Struktur des Produkts ab, identifiziert einzelne Komponenten und ihre Art und stellt sicher, dass die Komponenten für andere Komponenten zugänglich sind. Identifikation findet hauptsächlich während der Spezifikationsphasen eines Projekts statt, doch mit neuen Spezifikationen ändert sich auch die Identifikation. Der Identifikationsaspekt spart Entwicklern sehr viel Zeit für das Projekt, da sie mit einer klaren Definition der Komponenten und ihrer Interaktionen anfangen können.
Kontrolle
Mit der Kontrolle werden alle Änderungen, die bei einem Projekt anfallen, verfolgt. Dazu gehört die Überwachung von neuen Versionen, Änderungen an einzelnen Komponenten und das Einhalten einer Ausgangsbasis, von der aus alle Anwender entwickeln können. Die Kontrolle geschieht in der Hauptsache in den Entwicklungsphasen des Projekts und erfolgt gewöhnlich in Form eines Versionsverwaltungssystems. Ein solches System sorgt für die Versionsverfolgung einer jeden Komponente, damit Fehler zurückverfolgt und behoben werden können. Durch Kontrolle erhöht sich die Effizienz und Produktivität der Entwickler, da sie dieselbe Aufgabe nicht zweimal ausführen müssen oder sich ihre Arbeit mit der von Kollegen überschneidet. Entwickler können mithilfe von Kontrollen schnelle, erfolgreiche Übergänge ausführen, wenn sich Spezifikationen ändern.
Überprüfung
Die Überprüfung fällt eigentlich eher in den Bereich der Testabteilung. Das Überprüfen beinhaltet die Validierung eines Produkts, um festzustellen, ob es den Spezifikationen entspricht und ob verifiziert werden kann, dass das Produkt Konsistenz wahrt. Folgende Fragen sollten Teil der Überprüfung sein:
- Bearbeiten alle Abschnitte Fehler auf dieselbe Weise?
- Sehen alle Benutzeroberflächen ähnlich aus?
- Überlappen die Komponenten?
Natürlich gibt es noch weitere Fragen, die in dieser Phase untersucht werden können. Die Überprüfung sorgt für ein extrem robustes Produkt und spart Zeit und Kosten bei der Freigabe.
Protokollierung
Die Protokollierung dient dem Sammeln von Statistiken zum Projekt. Beispiele für diese Statistiken sind etwa Arbeitsstunden (berechenbare Stunden), Zuteilung von Ausrüstung und Arbeitsfortschritt. Änderungsanforderungen an Spezifikationen können hier ebenfalls festgehalten werden, so dass der Anwender Planungen, Zahlungen und andere betroffene Bereiche aktualisieren kann. Die Protokollierung ermöglicht eine schnelle, präzise Nachverfolgung des Projekts, wodurch sich die Verantwortung eines Projektleiters erheblich vereinfachen kann.
2. Warum sollte Softwarekonfigurationsmanagement eingesetzt werden?
Es gibt viele Gründe für die Nutzung eines Systems für das Softwarekonfigurationsmanagement bei einem Softwareprojekt, die alle Zeit sparen, Kosten senken und Probleme reduzieren. Zum einen kann das Softwarekonfigurationsmanagement ein Sicherheitsnetz für ein Projekt sein, weil damit alle alten Daten, Anforderungen, Codes, Zeiten und andere Komponenten, die im Projekt Eingang fanden, nachverfolgt werden können. Sollte man in Zukunft auf diese Komponenten zurückgreifen wollen, sind die Informationen leicht auffindbar, da sie sich alle an einer Stelle befinden. Das kann besonders dabei hilfreich sein, Software noch Jahre nach der ursprünglichen Entwicklung des Projekts zu unterstützen, da somit die Informationen aufbewahrt werden, die bei der eigentlichen Projektentwicklung vorhanden waren.
Zum anderen ist durch regelmäßige Nutzung des Softwarekonfigurationsmanagements als Backup-System gewährleistet, dass ein konsistenter und korrekter Bericht über alle früheren Arbeitsschritte verfügbar ist. Diese Art von Backup-System kann viele Stunden Zeit einsparen, sollte ein Build fehlerhaft oder zerstört worden sein. Ohne ein gut dokumentiertes und ausgeführtes Backup-System könnte ein fehlerhafter Build eine wochenlange Ausfallzeit bedeuten.
Des Weiteren kümmert sich ein System für das Softwarekonfigurationsmanagement um viele der notwenigen Abschnitte eines Projekts (etwa die Rechnungsstellung), die sowieso erledigt werden müssten. Das System für das Softwarekonfigurationsmanagement verbindet diese notwendigen Komponenten so miteinander, dass die Berichterstellung über ein System erfolgen kann. Der Entwickler muss nicht extra ein Formular über die Arbeitsstunden und einen Arbeitszeiterfassungsbogen für das Projekt ausfüllen sowie etliche Systeme durchsuchen, um Rechnungen für die Kunden zu erstellen.
Überdies wird Softwarekonfigurationsmanagement mehr und mehr von US-Regierungsbehörden, der ISO und der FDA gefordert. Sie beauftragen ein Softwarekonfigurationsmanagement, weil Softwareprodukte, die unter Nutzung des Softwarekonfigurationsmanagements produziert wurden, robust und gut dokumentiert sind sowie einem hohen Grad an Überwachung unterliegen.
3. Softwarekonfigurationsmanagement mit LabVIEW und Perforce
Die Nutzung der Entwicklungsumgebung LabVIEW zusammen mit einem Werkzeug für das Softwarekonfigurationsmanagements wie z. B. Perforce kann dafür sorgen, dass viele der Anforderungen des Softwarekonfigurationsmanagements erfüllt werden können. LabVIEW verfügt über viele integrierte Werkzeuge zur Unterstützung der Implementierung des Softwarekonfigurationsmanagements, darunter Versionshistorie für ein virtuelles Instrument (VI), grafische Differenzierung von Quelldateien und Versionsverwaltungsfunktionen.
Versionshistorie
LabVIEW besitzt globale Einstellungen, die Informationen zur Versionshistorie innerhalb des VIs selbst hinzufügen können. Ein Entwickler kann LabVIEW so konfigurieren, dass VIs bei einer Speicheraktion immer um die Versionshistorie ergänzt werden. Die Versionshistorie umfasst viele wertvolle Informationen, so etwa Versionsnummer, Benutzername sowie Zeit- und Datumsstempel. Abbildung 1 zeigt ein Beispiel einer Versionshistorie.

Abb. 1: Fenster zur Versionshistorie
Diese Optionen bieten dem Anwender viele unterschiedliche Möglichkeiten, Versionsinformationen im Fenster History eines VIs zu ergänzen. Diese Informationen können auch über ein Programm aus dem VI gewonnen werden, so dass die Gewinnung von Versionsinformationen für Audits und Codeüberprüfungen ganz einfach ist.
Versionsverwaltung mit Perforce
Obwohl VIs binäre Quelldateien sind, können sie mithilfe der in LabVIEW integrierten grafischen Differenzierung verglichen werden. Anhand dieser Funktion kann der Anwender zwei VIs auswählen und einen Vergleich sowohl der Frontpanel-Objekte als auch des Blockdiagrammcodes durchführen. Die Unterschiede zwischen den Dateien werden hervorgehoben und erklärt, ganz ähnlich einem textbasierten Differenzierungsprogramm. Diese Funktion ist besonders für Entwickler oder Manager nützlich, da sie sehr detaillierte und beschreibende Daten liefert, die für die Versionshistorie, die Quellcodeverfolgung oder Fehleruntersuchungen eingesetzt werden kann.
LabVIEW kann auch so konfiguriert werden, dass es mit der Perforce-Client-Anwendung auf allen LabVIEW-Plattformen funktioniert. Als vollständiges System für das Softwarekonfigurationsmanagement empfiehlt National Instruments Perforce. Perforce ist, wie LabVIEW, eine ausgezeichnete Wahl für Projekte mit mehreren Betriebssystemen von Windows bis Solaris. Bei LabVIEW ist Perforce in die Entwicklungsumgebung integriert, daher ist es ein leichter Übergangsschritt für jeden LabVIEW-Entwickler. Perforce ist ideal für jedes größere Projekt mit einer beliebigen Anzahl an Entwicklern. Bei nur zwei Entwicklern kann Perforce kostenlos heruntergeladen und (ohne Einschränkungen)3 genutzt werden. Perforce kann für mehr als nur ein System für das Softwarekonfigurationsmanagement verwendet werden. Weitere Informationen bietet die Perforce-Website.
Weitere Werkzeuge für die Versionsverwaltung mit LabVIEW
Neben der Einsatzmöglichkeit von Perforce verfügt LabVIEW auch über eine integrierte Schnittstelle zu Microsoft Visual SourceSafe (VSS). VSS ist Bestandteil der Enterprise-Editionen von Microsoft Visual Studio. Da VSS ein reines Versionsverwaltungssystem ist, ist es gut geeignet, wenn bereits ein Konzept für das Softwarekonfigurationsmanagement vorhanden ist, aber noch ein Versionsverwaltungssystem fehlt. VSS ist für Projekte beliebiger Größe mit einer beliebigen Anzahl an Entwicklern nützlich.
LabVIEW verfügt ebenfalls über eine integrierte Versionsverwaltung, die sich für kleine Projekte von etwa 10 VIs mit einem Entwickler eignet. Dieses Werkzeug ist hilfreich, wenn noch kein anderes Versionsverwaltungssystem vorhanden ist. Es eignet sich nicht für die Entwicklung großer Projekte oder für Projekte, die strenge Konfigurationsanforderungen haben, da ihm die Funktionen und Vorteile vieler handelsüblicher Produkte zur Versionsverwaltung fehlen.
4. Zusammenfassung
Das Softwarekonfigurationsmanagement besteht aus vier Teilen: Identifikation, Kontrolle, Überprüfung und Protokollierung. Es ist die Grundlage dafür, wie ein Projekt organisiert, spezifiziert, entwickelt, erstellt und veröffentlicht wird. Viele Softwareverträge erfordern heutzutage die Erfüllung eines Standards für die Entwicklung von Software. Das Softwarekonfigurationsmanagement kann dazu beitragen, diesen Anforderungen gerecht zu werden.
Die Programmiersprache LabVIEW eignet sich gut für die Implementierung eines Konzepts für das Softwarekonfigurationsmanagement. LabVIEW speichert Versionsinformationen, was die Wartung von Programmcode vereinfacht. Die Software interagiert mit Anwendungen zur Versionsverwaltung, um einen dauerhaften Nachweis der Entwicklung zu erhalten, und bietet grafische Differenzierung, damit Änderungen am Programmcode einer Anwendung leichter erkannt werden können. Dank dieser umfangreichen Funktionen kann ein Projekt reibungsloser abgewickelt werden, weniger kosten und effizienter sein. Das hat Vorteile für den Anwender und macht Unternehmen wettbewerbsfähiger, was die Einführung von Produkten auf dem Markt betrifft.
5. Literatur und weitere Informationen
Literatur
- Pressman, Roger S. (2001). Software Engineering: A Practitioner's Approach, 5th ed. New York, NY: McGraw-Hill. p. 225.
- Dart, Susan. (1991). "Concepts in Configuration Management Systems", Proceedings of the 3rd International Workshop on Software Configuration Management. pp. 1-18.
- Perforce Downloads. (n.d.). Retrieved July 30, 2003, from http://www.perforce.com/perforce/loadprog.html
Weitere Informationen
- Why Software Configuration Management? (n.d.). Retrieved July 23, 2003 from http://www.internetjournal.com/articles/200303/pij_03_12_03a.html
- Compton, Stephen B. and Guy R. Conner. (1994). Configuration Management for Software. New York, NY: Van Nostrand Reinhold.
- http://www.cmtoday.com/yp/configuration_management.html
- DoD (1989). MIL-STD-973, "Military Standard for Configuration Management." Department of Defense.
- Pressman, Roger S. (2001). Software Engineering: A Practitioner's Approach, 5th ed. New York, NY: McGraw-Hill.

