Softwarekonfigurationsmanagement und LabVIEW

Veröffentlichungsdatum: Aug 20, 2009 | 0 Ratings | 0.00 out of 5 |  PDF

Übersicht

Dieses Tutorium ist Bestandteil unserer Technischen Bibliothek "Entwicklung umfangreicher Anwendungen mit NI LabVIEW".

Roger Pressman schreibt in seinem Buch Software Engineering: A Practitioner's Approach, dass es sich beim Softwarekonfigurationsmanagement (SKM) um einen „Satz von Aktivitäten [handelt], die entworfen wurden, um Änderungen durch Identifizierung der Arbeitsprodukte, die sich wahrscheinlich verändern werden, durch Etablierung von Beziehungen unter ihnen, durch Definition von Mechanismen für die Verwaltung unterschiedlicher Versionen dieser Arbeitsprodukte, durch Kontrolle der auferlegten Änderungen und durch Prüfung und Berichterstellung zu den gemachten Änderungen zu steuern“.1 Anders ausgedrückt ist das Softwarekonfigurationsmanagement eine Methodik zur Kontrolle und Verwaltung eines Softwareentwicklungsprojekts.

Inhaltsverzeichnis

  1. Was ist Softwarekonfigurationsmanagement?
  2. Warum sollte Softwarekonfigurationsmanagement eingesetzt werden?
  3. Softwarekonfigurationsmanagement mit LabVIEW und Perforce
  4. Zusammenfassung
  5. Literatur und weitere Informationen

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.

Back to Top

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.

Back to Top

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.

http:/zone.ni.com/cms/images/devzone/tut/a/41b26ce2505.gif

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.

Back to Top

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.

Back to Top

5. Literatur und weitere Informationen


Literatur

  1. Pressman, Roger S. (2001). Software Engineering: A Practitioner's Approach, 5th ed. New York, NY: McGraw-Hill. p. 225.
  2. Dart, Susan. (1991). "Concepts in Configuration Management Systems", Proceedings of the 3rd International Workshop on Software Configuration Management. pp. 1-18.
  3. Perforce Downloads. (n.d.). Retrieved July 30, 2003, from http://www.perforce.com/perforce/loadprog.html


Weitere Informationen

  1. Why Software Configuration Management? (n.d.). Retrieved July 23, 2003 from http://www.internetjournal.com/articles/200303/pij_03_12_03a.html
  2. Compton, Stephen B. and Guy R. Conner. (1994). Configuration Management for Software. New York, NY: Van Nostrand Reinhold.
  3. http://www.cmtoday.com/yp/configuration_management.html
  4. DoD (1989). MIL-STD-973, "Military Standard for Configuration Management." Department of Defense.
  5. Pressman, Roger S. (2001). Software Engineering: A Practitioner's Approach, 5th ed. New York, NY: McGraw-Hill.

 

Nach oben

Language

Bookmark & Share

Ratings

Rate this document

Answered Your Question?
Yes No

Submit