www.wikidata.de-de.nina.az
Dieser Artikel oder Abschnitt bedarf einer grundsatzlichen Uberarbeitung Naheres sollte auf der Diskussionsseite angegeben sein Bitte hilf mit ihn zu verbessern und entferne anschliessend diese Markierung Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Dieser Artikel behandelt das Konfigurationsmanagement fur Software Bezuglich der Thematik eines Konfigurationsmanagements aus der Sicht des Systems Engineering siehe stattdessen Konfigurationsmanagement Das Software Configuration Management SCM oder Software Konfigurationsmanagement ist eine Spezialisierung des Konfigurationsmanagements auf alle Aktivitaten und Ergebnisse im Bereich der Software Entwicklung sowie deren Nutzung in Produkten Dazu gehort unter anderem die geeignete Berucksichtigung andockender systemeigener Produktkomponenten und deren Varianten bspw uber Kompatibilitatsmatrizen uber den gesamten Produktlebenszyklus hinweg Inhaltsverzeichnis 1 Grundlegendes 2 Konfigurationen gemass internationalem Standard 3 Grundlegende Objekte des Software Konfigurationsmanagements 3 1 Projekt 3 2 Datei 3 3 Baseline 3 4 Produkt 3 5 SW Konfigurationseinheit 3 6 Weitere Objekte 4 Versionsverwaltungssysteme 5 Reale Betrachtungen 5 1 Datenhaltung 5 2 Kompatibilitat 5 3 Betriebseinfuhrung 6 Produktubersicht 6 1 Diverse Softwareentwicklungsprodukte 6 2 Versionsverwaltungssysteme 7 Siehe auch 8 LiteraturGrundlegendes BearbeitenSCM Systeme sind Schwergewichte unter den Werkzeugen zur Softwareentwicklung Neben Minimalforderungen die sie in stark fortgeschrittener Version bereitstellen bieten sie kleinteilige Rechteverwaltungen Variantenmanagement und ausgereifte Lifecycle Verwaltungen Sie sind deutlich komplexer als die leichtgewichtigen Versionsverwaltungssysteme SCM hat mehrere Ziele Definition und Verfolgung von Prozessen Dokumentation aller Vorgange Versionierung und Konfliktbehandlung Verwaltung von Voraussetzungen Effizienzsteigerungen bei der automatisierten Applikationserstellung Integration aller vorhandenen Werkzeuge ZugriffskontrolleEine akademische Forschung zu dem Thema findet nur in sehr bescheidenem Umfang statt im universitaren Lehrplan der Informatiker erscheint das Thema SCM oftmals uberhaupt nicht Infolgedessen sind viele der auftretenden und grundsatzlich zu losenden Problematiken den Jungakademikern nicht prasent was wiederum zu keiner Nachfrage am Markt fuhrt Dadurch sieht keine der grossen Firmen den Bedarf den Markt fur sich zu besetzen und damit abseits der akademischen Pfade Standards zu schaffen Die Folge ist somit eine starke Zersplitterung des Marktes und jeweils spezifische Ansichten uber Umfang Begriffe Integrationen Verfugbarkeit und Kompatibilitat Konfigurationen gemass internationalem Standard BearbeitenIn der 24765 2017 ISO IEC IEEE die als internationaler Standard Begriffe fur System und Software Engineering festlegt werden Konfigurationen wie folgt umschrieben Anordnung eines Computersystems oder einer Komponente die sich durch die Anzahl Art und Verbindungen seiner Bestandteile bestimmt die funktionellen und physikalischen Eigenschaften von Hardware oder Software wie sie in der technischen Dokumentation festgehalten oder in einem Produkt verwendet werden Anordnung eines Systems oder Netzwerks wie durch die Art Anzahl und Hauptmerkmale seiner Funktionseinheiten definiert ist Anforderungen Entwurf und Implementierung die eine bestimmte Version eines Systems oder einer Systemkomponente definieren Art und Weise in der die Hard und Software einer Informationsverarbeitung systematisch organisiert und miteinander verbunden sind Sammlung von Objekten die an Schnittstellen interagieren konnen Wer also uber Konfigurationen bzw Konfigurationsmanagement spricht sollte sicherstellen dass alle Gesprachsteilnehmer uber dasselbe terminologische Verstandnis zum Sachverhalt verfugen Bei der Produkt und Softwareentwicklung fallen viele unterschiedliche Arbeitsergebnisse an z B Programme und Komponenten Dateien wie Lastenhefte und Architekturskizzen Release Notes oder Changelogs Testspezifikationen und Testdaten Anderungsantrage oder Quellcode Das Konfigurationsmanagement verwaltet und labelt zusammengehorende Arbeitsergebnisse Konfigurationseinheiten als sogenannte Konfigurationen Grundlegende Objekte des Software Konfigurationsmanagements BearbeitenGrundlegende Objekte die ein SCM Werkzeug abbilden konnen muss sind Projekt Datei Konfigurationseinheit Baseline und Produkt Projekt Bearbeiten Ein Projekt zeichnet sich durch Anfang Ende und Umfang aus Weil in der Entwicklung gemeinhin damit etwas Umfangreiches gemeint ist wird haufig zwischen Teilprojekt Anderung Change Order Change Request Task o a unterschieden Es ist zwar moglich mit nur einer Hierarchiestufe auszukommen doch wird die Arbeit dadurch meist unubersichtlich Deshalb geben die Werkzeuge mehrere Stufen vor oder lassen es zu diese frei zu definieren um eine Delegation an andere Personen oder Teams zu ermoglichen Typische Hierarchien sind Project Task Subtask Datei Bearbeiten Beim SCM wird meist die Datei als Basisobjekt angesehen das verwaltet werden muss Neben der einfachen Versionierung ist es haufig fur einen beschleunigten Produktionsablauf notig die Entwicklung zu verzweigen und wieder zusammenzufuhren Im Detail treten jedoch weitere Probleme auf Wenn diese bei der Auswahl des SCM Werkzeugs nicht beachtet werden kann dies hinterher zu Problemen fuhren Ein solches ist z B die thematische Umbenennung der Datei die bei einfachen Versionsverwaltungen haufig nicht moglich ist Weiter gehoren zu dem Problemkreis das Verschieben in ein anderes Verzeichnis oder das Loschen Unterschiedlich gelost mitunter auch ignoriert sind Verzeichnisse Letztere konnen entweder lediglich in der Abbildung auf das Dateisystem erscheinen oder tatsachlich ebenfalls als Objekte versioniert werden Der Transfer zwischen der Versionsverwaltung und dem Dateisystem sorgt fur weitere Komplikationen wenn mehr als ein Betriebssystemtyp versorgt werden muss Problempunkte sind Gross und Kleinschreibung bzw deren Konflikte sowie Sondertypen wie symbolische und harte Links Devices Pipes etc Weitere Aspekte die beachtet werden mussen sind Zeichensatze fur Dateinamen und Inhalte die separat behandelt werden mussen oder Zeitstempel Weil die Betriebssysteme unterschiedliche Zeiten unterstutzen Windows z B die Creation Time Unix dagegen nicht mussten solche Dinge berucksichtigt werden entfallen jedoch bei den meisten Produkten Auf die Anderungszeit wird jedoch haufiger geachtet weil sie beim Aufspielen in das Dateisystem zwei mogliche Werte annehmen kann die tatsachliche Zeit oder die Anderungszeit vor dem Archivieren Welche Zeit gewahlt werden muss ist abhangig vom Build System ab das der Anwender benutzt Baseline Bearbeiten Weil sich im Archiv zahlreiche Versionen befinden muss es einen Mechanismus geben der die zusammengehorigen Versionen kennzeichnet Dies wird als Tagging oder Baselining bezeichnet Die moglichen Varianten die zur Erstellung fuhren sind zahlreich Mitunter wird eine Ansicht auf die Versionen mit Regeln erstellt und diese dann markiert Alternativ konnen auch Regeln dazu fuhren Die sinnvollste Methode allerdings nur selten ausreichend gut unterstutzt ist das Veranderungsmanagement mittels Projekten in denen Anderungen von Prozessen nur durchgefuhrt werden durfen wenn die Prozesse ausgereift sind Produkt Bearbeiten Ziel der Software Entwicklung ist ein Produkt das meist aus einem oder mehreren Programmen besteht Die Unterteilung nach Produkten ist notwendig damit das SCM Werkzeug fur mehrere Anwendungen genutzt werden kann ohne mehrfach installiert zu werden Fur die meisten realen Entwicklungen ist die Einteilung nach Produkten zu grob Deshalb existieren vorwiegend Unterkategorien wobei diese Hierarchie haufig den Zugriffsberechtigungen dient SW Konfigurationseinheit Bearbeiten SW Konfigurationseinheit meint in diesem Zusammenhang eine geeignete ausgewahlte zu anderen SW Konfigurationseinheiten abgegrenzte Einheit z B Betriebssystem Treiber u a Diese Konfigurationseinheit steht in Bezug zu einer beliebigen Kombination anderer Konfigurationseinheiten aus Hardware Software Infoware oder Dienstleistungen SW Konfigurationsmanagement ist somit nicht per se an einen bestimmten Anwendungskontext und eine spezifische Systemkonfiguration gebunden Siehe auch Konfigurationsmanagement Weitere Objekte Bearbeiten Praktisch immer existieren abhangig von der Philosophie des Werkzeugs weitere Objekte Diese betreffen haufig die Beziehungen der Objekte untereinander oder die Sicht auf diese insbesondere auf die Dateien Views Worksets Es kann sich um Hilfestellungen fur den Umgang mit bestimmten Betriebssystemen handeln Gruppenberechtigungen Delegationen externe Prozesse etc Ungelost ist das Problem wie Versionsanderungen an Datenbanken durchgefuhrt werden Pragmatischer Ansatz ist die Verwaltung der SQL Skripte doch lost es nicht das Problem sodass sowohl die Datenmodelldifferenz zum Vorganger als auch der Neuaufbau bereitgestellt werden mussen Versionsverwaltungssysteme BearbeitenDer Gebrauch von Versionsverwaltungssystemen ist mittlerweile in der Softwareentwicklung selbstverstandlich geworden Man spricht insgesamt von vier Generationen von Software Versionsverwaltungssystemen Die ersten zwei Generationen sind von zentral gehaltener Datenhaltung bestimmt Die dritte Generation ist dezentral orientiert siehe Git Bazaar Mercurial Speziell bei Open Source Projekten nimmt das dezentrale Versionsverwaltungssystem Git eine dominante Stellung ein Wahrend das Software Konfigurationsmanagement Teil des Softwaregestaltungsprozesses ist und damit zum Softwaredesign gehort ist die Versionsverwaltung von Software ein davon unabhangiges Unterfangen Teilweise werden die Aufgaben eines SCM in der Versionsverwaltung manuell gehandhabt Ein typisches in Unternehmen anzutreffendes Szenario ist die Versionsverwaltung die mit Datenbanken auf Basis von Lotus Notes oder Excel erganzt wird Dem stehen leistungsfahige Tools gegenuber die ebenfalls in der Industrie eingesetzt werden Reale Betrachtungen BearbeitenDatenhaltung Bearbeiten Oben wurde aufgezeigt dass die Strukturen in einem SCM Werkzeug meist hierarchisch in unbestimmter Tiefe gegliedert sind wahrend die einzelnen Teile meist die Eigenschaften von Objekten haben Das macht die Speicherung in den weit verbreiteten relationalen Datenbanken schwierig weil die Strukturen und Flexibilitat nur schwer performant und wartbar abzubilden sind Die Geschichte von IBM mit seinen SCM Werkzeugen macht dies deutlich IBM benutzte ursprunglich fur Windows und Unix CMVC mit einer relationalen Datenbank Sein Nachfolger war TeamConnect das auf Objectstore einer objektorientierten Datenbank basierte Die nachste Version wechselte zu DB2 IBM beendete die Linie und kaufte das Unternehmen Rational ein das Clearcase im Portfolio hatte Die Anwendung basiert auf einer selbstentwickelten objektorientierten Datenbank wahrend die Erganzung Rational ClearQuest fur die Prozessverfolgung verschiedene relationale Datenbanken benutzt Das Produkt Dimensions benutzt dagegen Oracle als relationale Datenbank erganzt um das Dateisystem des Servers als Versionsarchiv Das Datenmodell ist nur teilweise normalisiert Kompatibilitat Bearbeiten Der Mangel an akademischer Forschung und die fehlende Marktmacht eines einzelnen Herstellers sowie die oben nur angedeutete Komplexitat die sich auf der Zeitachse noch deutlich erhoht sorgen fur geringe Kompatibilitat zwischen den einzelnen Produkten Die Hersteller stellen zwar Werkzeuge bereit welche die Daten bei einem Wechsel in ihr Produkt bringen doch geschieht dies auf sehr niedrigem Niveau Eine Migration ist daher genau zu planen sehr aufwandig und in der Konsequenz meist unvollstandig weil die Kosten den Nutzen der Altdaten bei weitem ubersteigen Nach der Einfuhrung sind weitere erhebliche Investitionen zu tatigen damit die SCM Umgebung nutz und wartbar ist Die Situation ist den Herstellern bekannt und wird genutzt um den Wettbewerb auf den Verkauf zu beschranken Ein betriebenes System wird nur abgelost wenn Anforderungen und Losungserbringung weit auseinanderklaffen Ebenso ist die Integration in die Entwicklungsumgebung immer schlecht Der einzig verbreitete Standard SCC von Microsoft ist auf reine Versionsverwaltung ausgelegt wird aber von Herstellern fur deutlich komplexere Dinge benutzt Die Konsequenz ist dass Entwicklungs und Verwaltungswerkzeuge haufig bestimmte Versionskombinationen benotigen um zusammen zu funktionieren Sind diese Versionen jedoch noch von anderen Faktoren abhangig kann als Schnittmenge schnell die leere Menge herauskommen Nicht selten unterbleibt deshalb eine tiefere Integration oder die Ubergange weisen Bruche auf die meist auch Sicherheitslucken offnen inoffizielle Versionen Dabei sollten Projektverwaltung SCM Entwicklungsumgebungen sowie Testwerkzeuge integriert sein um den Arbeitsprozess weitgehend zu automatisieren Es ist auch nicht schwierig ein SCM Werkzeug fur Windows und eine bekannte Unix Variante zu erhalten Linux Solaris AIX HP UX Doch daruber hinausgehend sind Plattformen wie MVS AS 400 OS 2 oder noch exotischere nur vereinzelt haufig gar nicht unterstutzt wenn man von Open Source Versionsverwaltungen absieht Betriebseinfuhrung Bearbeiten Die Einfuhrung in den Betrieb ist schwierig und meist eine strategische Entscheidung Die Kosten beschranken sich nicht Alllein auf den Kauf und die Wartung fur das erste Jahr sondern beinhalten zahlreiche Beratungen die zu hohen Stundensatzen vom Hersteller erbracht werden Dieses Geschaftsmodell ist von den Herstellern geduldet oder gar gewollt weil Sekundarliteratur zu den Produkten nicht existiert Die Produktdokumentation beschrankt sich uberwiegend auf Erklarung der Einzelheiten lasst jedoch das Zusammenspiel der Komponenten zu einem gewunschten Ziel aussen vor Weiterhin sind Kosten fur die Schulungen der Anwender zu erwarten weil die meisten Produkte in der Benutzung nicht selbsterklarend sind oder soweit die Benutzerfreundlichkeit beim Basisprodukt gegeben ist die Unternehmensprozesse in ihrer Komplexitat nicht hinreichend einfach dargestellt werden konnen Daruber hinaus behindern meist die Entwicklungsteams die Einfuhrung weil haufig Prozesse und Arbeitsweisen geandert werden mussen das laufende Geschaft gestort wird und es nicht notwendig ist Die Benutzung des SCM Werkzeugs beschleunigt typischerweise die Arbeit doch der Mehrwert ist weil er grosstenteils auf Kleinigkeiten basiert kostenrechnerisch nicht darstellbar und damit argumentativ nicht zu nutzen Selten wird auch gesehen dass vorgeschriebene oder gewunschte Berichte automatisiert erstellt werden konnen In Deutschland ist zudem die Zustimmung des Betriebsrats zwingend notwendig weil alle Anderungen mitarbeiterbezogen protokolliert werden Dadurch kann das SCM Werkzeug zur Leistungskontrolle herangezogen werden Produktubersicht BearbeitenDiverse Softwareentwicklungsprodukte Bearbeiten Es gibt viele verschiedene Systeme auf dem Markt Eine Ubersicht uber bekanntere Produkte AccuRev PREEvision eASEE BitKeeper ClearCase Azure DevOps Server ehemals Team Foundation Server Perforce PureCM Sablime Serena Dimensions CM SET LIBER Smart Bear SpectrumSCM Surround SCM IBM Rational Synergy ehem Telelogic Synergy Synergy CM ehem CM Synergy ehem Continuus CM MKS Source in STEP BLUEOpen Source Trac Redmine OpenProjectVersionsverwaltungssysteme Bearbeiten Folgende Produkte sind keine SCM Systeme sondern lediglich Versionskontrollsysteme CVS Git Mercurial Microsoft Visual SourceSafe RCS Serena PVCS Version Manager SCCS SubversionSiehe auch BearbeitenVersionsverwaltung beim Dokumentenmanagement ScrumLiteratur BearbeitenGerhard Versteegen Konfigurationsmanagement Xpert press Springer Berlin 2003 ISBN 978 3 540 43622 5 Rainer Heinold Rechtzeitiges Konfigurationsmanagement In Gerhard Versteegen Hrsg Software Management Beherrschung des Lifecycles Xpert press Springer Berlin Heidelberg 2002 ISBN 978 3 642 56367 6 S 137 159 Jorg Noack Konfigurationsmanagement In ders Hrsg Techniken der objektorientierten Softwareentwicklung Xpert press Springer Berlin Heidelberg 2001 ISBN 978 3 642 63991 3 S 340 376 Abgerufen von https de wikipedia org w index php title Software Configuration Management amp oldid 239455400