De software configuration management ( SCM ), of software configuration management is een specialisatie van de configuratie management van alle activiteiten op het gebied van softwareontwikkeling .
SCM heeft verschillende doelen:
-
- Definitie en tracking van processen
- Documentatie van alle processen
- Versiebeheer en conflictafhandeling
- Beheer van vereisten
- Verhoogde efficiëntie bij het maken van geautomatiseerde applicaties
- Integratie van alle bestaande tools
- toegangscontrole
SCM wordt vaak aangeduid als versiebeheer software begrepen.
Gedeeltelijk worden de taken van een SCM handmatig afgehandeld. Een typisch bedrijfsscenario is versiebeheer, dat wordt aangevuld met databases op basis van Lotus Notes of Excel . Dit staat in contrast met krachtige tools die ook in de industrie worden gebruikt.
Basisoverwegingen
Er zijn in totaal drie generaties softwareversiebeheersystemen. De eerste twee generaties worden bepaald door centraal beheerd gegevensbeheer. De derde generatie is gedecentraliseerd, zie Git , Bazaar , Mercurial .
Academisch onderzoek over dit onderwerp heeft een beperkte reikwijdte en in het computerwetenschappelijk curriculum komt SCM vaak helemaal niet voor. Als gevolg hiervan zijn veel van de problemen die zich voordoen en in het algemeen moeten worden opgelost, niet aanwezig bij de jonge academici, wat op zijn beurt leidt tot geen vraag op de markt. Als gevolg hiervan ziet geen van de grote bedrijven de noodzaak om de markt voor zichzelf te bezetten en stellen ze daarom normen buiten de academische paden. Het resultaat is een sterke fragmentatie van de markt en elke onconventionele visie op bereik, concepten, integraties, beschikbaarheid en compatibiliteit.
Basisobjecten die door een SCM-tool moeten worden toegewezen , zijn Project , Bestand , Configuratie-eenheid , Baseline en Product .
Project
Een project wordt gekenmerkt door zijn begin, einde en reikwijdte. Omdat de ontwikkeling gewoonlijk iets groter wordt bedoeld, wordt dit onderdeel vaak subproject, wijziging, wijzigingsvolgorde, wijzigingsverzoek, taak o. Ä genoemd. Hoewel het mogelijk is om te beheren met slechts één hiërarchisch niveau, maar het werk is meestal omslachtig. Daarom bieden de hulpprogramma’s meerdere niveaus of kunnen ze vrij worden gedefinieerd om delegatie naar andere mensen of teams te garanderen. Typische hiërarchieën zijn subtaak voor projecttaken.
Bestand
In SCM wordt het bestand meestal beschouwd als het basisobject dat moet worden beheerd. Naast de eenvoudige versie-aanpassing, is het vaak noodzakelijk voor een versneld productieproces om de ontwikkeling te vertakken en opnieuw samen te voegen. In detail zijn er echter nog andere problemen die niet worden overwogen bij het selecteren van de SCM-tool, maar die achteraf problemen kunnen veroorzaken. Het begint met het onderwerp de naam van het bestand wijzigen, wat vaak niet mogelijk is met eenvoudige versiebeheersystemen. Naast het probleemgebied om naar een andere map te gaan of te verwijderen. Anders opgelost, soms zelfs genegeerd, zijn mappen. Deze laatste kunnen ofwel alleen in de afbeelding op het bestandssysteem worden weergegeven of kunnen in werkelijkheid worden gemoderniseerd als objecten.
De overdracht tussen de versies en het bestandssysteem veroorzaakt verdere complicaties als er meer dan één type besturingssysteem ismoet worden geleverd. Problemen zijn hoofdlettergevoelig en hun conflicten, evenals speciale typen zoals symbolische en harde links, apparaten, leidingen, enz. Andere plaatsen om te overwegen zijn lettertypen voor bestandsnamen en inhoud die afzonderlijk moeten worden behandeld, of tijdstempels. Omdat de besturingssystemen verschillende tijden ondersteunen, Windows z. Bijvoorbeeld, de Creation-Time, Unix niet, dergelijke dingen moeten worden behandeld, maar zijn verantwoordelijk voor de meeste producten. Er wordt echter vaker rekening gehouden met de wijzigingstijd omdat deze twee mogelijke waarden kan aannemen bij het afspelen in het bestandssysteem: de werkelijke tijd of de wijzigingstijd vóór de archivering. De tijd om te kiezen hangt af van het buildsysteem dat de gebruiker gebruikt.
Basislijn
Omdat er veel versies in het archief zijn, moet er een mechanisme zijn dat ook de gerelateerde versies identificeert. Dit wordt “tagging” of “baselining” genoemd. De mogelijke varianten die tot de creatie leiden zijn talrijk. Soms wordt een weergave gemaakt op de versies met regels en vervolgens gemarkeerd. Als alternatief kunnen er ook regels naar toe leiden. De meest verstandige methode, die zelden voldoende goed wordt ondersteund, is verandermanagement met behulp van projecten waarbij wijzigingen in processen alleen kunnen worden doorgevoerd als de processen zijn gerijpt.
Product
Het doel van softwareontwikkeling is een product dat meestal uit een of meer programma’s bestaat. De onderverdeling per product is noodzakelijk zodat de SCM-tool voor meerdere toepassingen kan worden gebruikt zonder meerdere keren te worden geïnstalleerd. Voor de meeste echte ontwikkelingen is de classificatie per product te grof. Dit is waarom subcategorieën meestal bestaan, waarbij deze hiërarchie vaak dient als hanger voor toegangsautorisaties.
Configuratie-eenheid
Configuratie-eenheid betekent in deze context “elke combinatie van hardware, software of service”. Configuratiemanagement is dus niet per se gebonden aan een bepaalde toepassingscontext en systeemconfiguratie.
zie Configuratiebeheer (KM)
Andere objecten
Praktisch immer existieren, abhängig von der Philosophie des Werkzeugs, weitere Objekte. Diese betreffen häufig die Beziehungen der Objekte untereinander oder die Sicht auf diese, insbesondere auf die Dateien (Views, Worksets). Es kann sich um Hilfestellungen für den Umgang mit bestimmten Betriebssystemen handeln, Gruppenberechtigungen, Delegationen, externe Prozesse etc. Ungelöst ist das Problem, wie Versionsänderungen an Datenbanken durchgeführt werden. Pragmatischer Ansatz ist die Verwaltung der SQL-Skripte, doch löst es nicht das Problem, dass sowohl die Datenmodelldifferenz zum Vorgänger als auch der Neuaufbau bereitgestellt werden müssen.
Reale Betrachtungen[Bearbeiten | Quelltext bearbeiten]
Gegevensbeheer
Hierboven is aangetoond dat de structuren in een SCM-tool meestal hiërarchisch onbepaald zijn, terwijl de afzonderlijke delen meestal de eigenschappen van objecten hebben. Dit maakt opslag in de veel gebruikte relationele databases moeilijk, omdat de structuren en flexibiliteit moeilijk te reproduceren zijn met hoge prestaties en onderhoudbaarheid. De geschiedenis van IBM met zijn SCM-tools maakt het duidelijk.
IBM gebruikte oorspronkelijk CMVC voor Windows en Unix met een relationele database. Zijn opvolger was TeamConnect , dat gebaseerd was op Objectstore , een objectgeoriënteerde database. De volgende versie is overgeschakeld naar DB2 . IBM sloot de lijn af en kocht het bedrijf Rational, dat Clearcase in zijn portefeuille had. De applicatie is gebaseerd op een zelfontwikkelde, object-georiënteerde database, terwijl de Rational ClearQuest- procestracerings digest verschillende relationele databases gebruikt.
Het product Dimensions contrast, maakt gebruik van Oracle als een relationele database , aangevuld met het bestandssysteem van de server naar versie archief. Het datamodel is slechts gedeeltelijk genormaliseerd .
Compatibiliteit
Der Mangel an akademischer Forschung und die fehlende Marktmacht eines einzelnen Herstellers sowie die oben nur angedeutete Komplexität, die sich auf der Zeitachse noch deutlich erhöht, sorgen für geringe Kompatibilität 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 aufwändig und in der Konsequenz meist unvollständig, weil die Kosten den Nutzen der Altdaten bei weitem übersteigen. Nach der Einführung sind weitere, erhebliche Investitionen zu tätigen, damit die SCM-Umgebung nutz- und wartbar ist. Die Situation ist den Herstellern bekannt und wird genutzt, um den Wettbewerb auf den Verkauf zu beschränken. Ein betriebenes System wird nur abgelöst, wenn Anforderungen und Lösungserbringung weit auseinanderklaffen.
Evenzo is de integratie in de ontwikkelomgeving altijd slecht. De enige standaard SCC van Microsoft is ontworpen voor pure versiebeheer, maar wordt door fabrikanten gebruikt voor veel complexere zaken. Dientengevolge vereisen ontwikkel- en managementtools vaak dat specifieke versiecombinaties moeten samenwerken. Als deze versies echter nog steeds afhankelijk zijn van andere factoren, kan de kruising snel de lege set zijn. Niet zelden is daarom een diepere integratie weggelaten of hebben de overgangen onderbrekingen, die meestal ook open veiligheidslekken vertonen (niet-officiële versies). Projectmanagement, SCM, ontwikkelomgevingen en testtools moeten worden geïntegreerd om het werkproces voor een groot deel te automatiseren.
Es bedeutet auch keine Schwierigkeit, ein SCM-Werkzeug für Windows und eine bekannte Unix-Variante zu bekommen (Linux, Solaris, AIX, HP-UX). Doch darüber hinausgehend sind Plattformen wie MVS, AS400, OS/2 oder noch exotischere nur vereinzelt, häufig gar nicht unterstützt, wenn man von Open-Source-Versionsverwaltungen absieht.
Abgrenzung[Bearbeiten | Quelltext bearbeiten]
SCM-systemen zijn zwaargewichten in softwareontwikkeling. Naast de hierboven uiteengezette minimumvereisten, die ze bieden in een zeer geavanceerde versie, bieden ze kleinschalig rechtenbeheer, variabel beheer en volwassen lifecycle management. Ze zijn aanzienlijk complexer dan de lichtgewicht versiebesturingssystemen .
Operationele introductie
Introductie tot operaties is moeilijk en meestal een strategische beslissing. De kosten zijn niet beperkt tot de aanschaf en het onderhoud van het eerste jaar, maar omvatten talrijke raadplegingen, die tegen hoge uurtarieven door de fabrikant worden verstrekt. Dit bedrijfsmodel wordt door de fabrikanten getolereerd of zelfs gezocht, omdat er geen secundaire literatuur over de producten bestaat. De productdocumentatie is meestal beperkt tot het uitleggen van de details, maar suggereert niet de interactie van de componenten met een gewenste bestemming. Bovendien zijn de kosten voor de training van gebruikers te verwachten, omdat de meeste producten niet vanzelfsprekend zijn in gebruik of, wat het gebruiksgemak van het basisproduct betreft,
Bovendien bemoeilijken ontwikkelingsteams de implementatie vaak omdat processen en werkwijzen vaak moeten worden gewijzigd, het bedrijf wordt verstoord en “het niet nodig is”. Het gebruik van de SCM-tool versnelt meestal het werk, maar de toegevoegde waarde is, omdat het meestal op kleinigheden is gebaseerd, kostenberekenbaar niet-detecteerbaar en dus niet argumentatief kan worden gebruikt. Zelden wordt ook gezien dat verplichte of gewenste rapporten automatisch kunnen worden aangemaakt.
Daarnaast is de goedkeuring van de ondernemingsraad in Duitsland verplicht, omdat alle wijzigingen voor werknemers worden vastgelegd. Hierdoor kan de SCM-tool worden gebruikt voor prestatieregeling.
Productoverzicht
Er zijn veel verschillende systemen op de markt. Een overzicht van meer bekende producten:
- AccuRev
- PREEvision
- EASEE
- BitKeeper
- ClearCase
- Team Foundation Server
- noodgedwongen
- PureCM
- Sablime
- Serena Dimensions CM
- SET-LIBER
- Smart Bear
- SpectrumSCM
- Surround SCM
- IBM Rational Synergy (voorheen Telelogic Synergy, Synergy / CM, former CM / Synergy, voorheen Continuus CM)
- MKS-bron
Open source:
- Trac
- Redmine
- Open Project
De volgende producten zijn geen SCM-systemen, maar alleen versiecontrolesystemen:
- CVS
- Git
- kwikmiddel
- Microsoft Visual SourceSafe
- RCS
- Serena PVCS-versiemanager
- SCCS
- omverwerping
Zie ook
- versioning
- Versiebeheer in documentbeheer
- worsteling om de bal