Softwareconfiguratiebeheer: gedetailleerde gids voor SCM

Beheer van softwareconfiguratie
HubSpot Blog

Software Configuration Management (SCM) is een methode in software-engineering die wijzigingen in documenten, codes en andere entiteiten in de hele levenscyclus van softwareontwikkeling systematisch beheert, organiseert en controleert. In dit bericht gaan we door het softwareconfiguratiebeheerproces en de tools, die helpen bij het volgen, beheren en reguleren van wijzigingen in configuratie-items gedurende de levenscyclus van softwareontwikkeling.

Wat is Software Configuration Management (SCM)?

Software Configuration Management (SCM) is een deelgebied van software-engineering dat tot doel heeft het proces van het verwerken, coördineren en reguleren van veranderingen in vereisten, codes, teams en andere factoren tijdens de levenscyclus van softwareprojectontwikkeling te verbeteren. De SCM houdt zich voornamelijk bezig met versieselectie, het bijhouden van wijzigingen en versiebeheer van softwareprojecten om de efficiëntie te maximaliseren en fouten of risico's te minimaliseren.

Wat is het doel van softwareconfiguratiebeheer?

Dit zijn de belangrijkste redenen om een ​​Technical Software Configuration Management System te implementeren:

  • Voortdurend updaten van de verschillende personen die aan software werken.
  • Een softwareconfiguratieproject kan verschillende versies, branches en auteurs bevatten, en het team kan geografisch verspreid zijn en gelijktijdig werken.
  • Wijzigingen in gebruikerseisen, beleid, budgetten en tijdlijnen moeten worden aangepast.
  • Software moet op verschillende platforms en besturingssystemen kunnen draaien.
  • Hulp bij de ontwikkeling van stakeholdercoördinatie
  • Het SCM-proces is ook nuttig voor het beheersen van de kosten van systeemwijzigingen.

Stappen van een softwareconfiguratiebeheerplan

Het softwareconfiguratiebeheerproces in software-engineering is een reeks procedures die bedoeld zijn om alle gebreken, middelen, codes, documentatie, hardware en budgetten van een project op te sporen en te beheren.

SCM is een multidisciplinair proces dat DevOps, ontwikkelaars, projectmanagers/eigenaren, SysAdmin en testers op alle niveaus omvat.

#1. Identificatie en planning

De eerste stap in het proces is planning en identificatie. Het doel van deze stap is het plannen van de ontwikkeling van het softwareproject en het identificeren van de zaken die binnen de scope vallen. Vergaderingen en brainstormsessies met uw team helpen u de basisvereisten voor de rest van het project uit te werken.

Onderdeel van dit proces is het bepalen van de voortgang van het project en het bepalen van de exitcriteria. Op deze manier zal uw team begrijpen wanneer alle doelstellingen van het project zijn bereikt.

Tijdens deze fase omvatten specifieke activiteiten:

  • Herkennen van testgevallen, specificatievereisten en codemodules
  • Elk configuratie-item van de computersoftware in het proces moet worden geïdentificeerd.
  • Verzamel basisinformatie over waarom, wanneer en welke wijzigingen zullen worden aangebracht, evenals wie verantwoordelijk is voor de implementatie ervan.
  • Maak een lijst van alle bronnen die je nodig hebt, zoals tools, bestanden en documenten.

#2. Basislijn en versiebeheer

Het versiebeheer en de baselinefase verzekeren de voortdurende integriteit van het product door een aanvaardbare versie van de software te bepalen. Deze baseline wordt vastgesteld op een bepaald punt in het SCM-proces en kan alleen via een formele methode worden gewijzigd.

Het doel van deze fase is om de wijzigingen aan het product bij te houden. Naarmate het project vordert, worden nieuwe baselines vastgesteld, wat resulteert in meerdere softwareversies.

Deze fase omvat de volgende activiteiten:

  • Identificeren en categoriseren van de componenten die onder het project vallen
  • Een middel ontwikkelen om de hiërarchie van verschillende versies van de software te volgen
  • De kritische verbindingen tussen verschillende componenten identificeren
  • Meerdere productbaselines maken, zoals ontwikkelings-, functionele en productbaselines
  • Een consistent etiketteringsschema creëren voor alle producten, revisies en bestanden, zodat iedereen op één lijn zit.
  • Wanneer een projectattribuut wordt gebaselined, worden formele controleprocessen voor configuratiewijzigingen geactiveerd in het geval dat deze attributen worden gewijzigd.

#3. Verander controle

Wijzigingsbeheer is het proces om ervoor te zorgen dat eventuele wijzigingen consistent zijn met de rest van het project. Het hebben van deze controles helpt bij de kwaliteitsborging en bij de goedkeuring en vrijgave van nieuwe basisgegevens (s). Het vermogen om veranderingen te managen is van cruciaal belang voor het succes van het project.

Verzoeken om configuraties te wijzigen worden bij het team ingediend en bij deze stap geautoriseerd of geweigerd door de softwareconfiguratiemanager. De meest voorkomende verzoeken zijn om verschillende configuratie-elementen toe te voegen of te bewerken, en om gebruikersrechten te wijzigen.

Deze procedure houdt in:

  • Beheer van door de klant aangevraagde ad-hocwijzigingen
  • De volledige impact van het wijzigingsverzoek op het project onderzoeken om de verdienste ervan te bepalen.
  • Geautoriseerde aanpassingen maken of uitleggen waarom verzoeken om wijzigingen zijn afgewezen

#4. Accounting voor configuratiestatus

De volgende stap is om te bevestigen dat het project zich ontwikkelt volgens het plan door te testen en te verifiëren volgens de vooraf gedefinieerde baselines. Het houdt in dat de release-opmerkingen en andere bijbehorende materialen worden beoordeeld om te bevestigen dat de software aan alle functionele vereisten voldoet.

Configuratiestatusaccounting bewaakt elke versie die tijdens het proces is uitgegeven en bepaalt wat er nieuw is in elke versie en waarom de wijzigingen nodig waren. Deze fase omvat de volgende activiteiten:

  • Bijhouden en beoordelen van veranderingen van de ene baseline naar de volgende
  • Alle wijzigingsverzoeken worden bijgehouden en opgelost.
  • Bijhouden van documentatie van elke wijziging die is aangebracht in reactie op wijzigingsverzoeken en het bereiken van een nieuwe baseline
  • Eerdere versies worden onderzocht en getest.

#6. Audits en evaluaties

De laatste fase is een technisch onderzoek van elke fase van de levenscyclus van softwareontwikkeling. Audits en beoordelingen onderzoeken het proces, de configuraties, de workflow, de wijzigingsverzoeken en al het andere dat in de loop van de ontwikkeling van het project is besteed aan het bouwen van elke baseline.

Het team analyseert de applicatie meerdere keren om de integriteit ervan te waarborgen en creëert ook de nodige begeleidende documentatie, zoals release-opmerkingen, gebruikershandleidingen en installatierichtlijnen.

De activiteiten van deze stap omvatten:

  • Ervoor zorgen dat de doelstellingen die zijn vastgesteld in de plannings- en identificatiestappen worden behaald
  • Ervoor zorgen dat de software voldoet aan de vastgestelde standaarden voor configuratiecontrole
  • Zorg ervoor dat wijzigingen ten opzichte van baselines overeenkomen met de rapporten
  • Valideren dat het project consistent en volledig is in relatie tot de projectdoelen.

Wie neemt deel aan het softwareconfiguratiebeheerproces?

SCM is een multidisciplinair proces waarbij bijna elk lid van het softwareontwikkelingsteam betrokken is.

#1. Configuratiebeheer

De configuratiemanager bepaalt gedurende het hele ontwikkelproces wie waarvoor verantwoordelijk is. Zij zorgen ervoor dat iedereen zich gedurende het hele project aan de SCM-procedure houdt en heeft het laatste woord over alle wijzigingsverzoeken.

# 2. Projectleider

De rol van de projectmanager is cruciaal voor het SCM-proces. Ze definiëren de tijdlijn van het project om te garanderen dat het op tijd wordt voltooid, en ze maken ook updates over de voortgang van het team. Een andere cruciale verantwoordelijkheid van de projectmanager is om te garanderen dat elk lid van het team zich houdt aan de gestelde criteria voor het ontwikkelen, wijzigen en testen van de software.

#3. Software ontwikkelaars

Ontwikkelaars zijn verantwoordelijk voor het schrijven van code en het inwilligen van geaccepteerde wijzigingsverzoeken tijdens de ontwikkeling.

#4. auditor

Deze functie is verantwoordelijk voor alle audits en beoordelingen en is verantwoordelijk om ervoor te zorgen dat de definitieve release alomvattend en consistent is.

Topconfiguratiebeheersoftware en -hulpmiddelen

#1. Git

Git is het meest populaire versiebeheersysteem in de branche voor het volgen van codewijzigingen. Het opnemen van configuratiebeheergegevens in een Git-repository met code biedt een uitgebreid versiebeheeroverzicht van een heel project. Git is een essentiële tool voor configuratiebeheer op een hoger niveau. De volgende configuratiebeheertools zijn bedoeld om te worden opgeslagen in een Git-repository en om Git-versiebeheertracking te gebruiken.

#2. Dokwerker

Containerisatie, zoals een configuratievergrendeling, werd door Docker voorgesteld als een geavanceerd type configuratiebeheer. Docker is gebaseerd op Dockerfiles, dit zijn configuratiebestanden die een lijst met opdrachten bieden die worden beoordeeld om de beoogde momentopname van de status van het besturingssysteem te reconstrueren. Docker gebruikt deze Dockerfiles om containers te genereren die snapshots zijn van een vooraf ingestelde toepassing. Dockerfiles zijn vastgelegd in een Git-repository voor versiebeheer en vereisen extra configuratiebeheer voordat ze op een infrastructuur kunnen worden geïmplementeerd.

#3. Terravorm

HasiCorp's Terraform is een open-source softwareconfiguratiebeheerplatform. IaC wordt door Terraform gebruikt om clusters, cloudinfrastructuur en services in te richten en te beheren. Terraform is compatibel met AWS, Microsoft Azure en andere cloudplatforms. Voor veelgebruikte infrastructuurcomponenten zoals servers, databases en wachtrijen heeft elk cloudplatform zijn eigen weergave en interface. Terraform creëerde een abstractielaag van configuratietools voor cloudplatforms waarmee teams bestanden kunnen produceren die reproduceerbare beschrijvingen van hun infrastructuur zijn.

#4. Chef, Marionet, Ansible, Zout Stapel

IT-automatiseringskaders omvatten Ansible, Salt Stack, Chef en Puppet. Veel typische systeembeheerdersprocessen worden door deze frameworks geautomatiseerd. Elk framework maakt gebruik van een set configuratiegegevensbestanden, meestal YAML of XML, die worden geanalyseerd door een uitvoerbaar bestand.

De configuratiegegevensbestanden beschrijven de stappen die moeten worden genomen om een ​​systeem te configureren. Het programma voert vervolgens de acties uit. De taal van het uitvoerbare bestand varieert tussen systemen: Chef is geschreven in Ruby, terwijl Ansible en Salt Stack zijn geschreven in Python. Deze methode is analoog aan het uitvoeren van ad-hoc shellscripts, maar biedt een meer gestructureerde en verfijnde ervaring via de ecosystemen van de respectieve platforms. Deze tools zorgen voor de automatisering die nodig is om CI/CD te realiseren.

Wat zijn de voordelen van het implementeren van softwareconfiguratiebeheer en -hulpprogramma's?

In software-engineering zijn verschillende tools beschikbaar om te helpen bij het softwareconfiguratiebeheerproces. Het doel van deze instrumenten is om typisch handmatige activiteiten te automatiseren, wat zorgt voor verbeterde nauwkeurigheid, snelheid en controle. Zij kunnen specifiek helpen bij:

  1. Alarmen en rapporten: Als er afwijkingen zijn van de overeengekomen baseline, stuurt een competente SCM-tool waarschuwingen en rapporten. Deze gegevens worden bijna realtime verzonden, zodat het management snel kan handelen als er iets misgaat.
  2. Spoorwissel: SCM-tools zullen automatisch wijzigingen aan servers of applicaties volgen en zullen ook menselijke invoer van dergelijke gegevens mogelijk maken. De uitvoer van bewakingsscripts kan ook worden gebruikt voor het controleren van wijzigingen.
  3. Configuratie vergelijkingen: Met de beste tools voor softwareconfiguratiebeheer kunt u verschillen tussen configuraties opsporen.
  4. fouten: Fouten en problemen worden snel ontdekt, waardoor technici actie kunnen ondernemen voordat het probleem verergert.
  5. Voorraad bijhouden: De meeste SCM-tools zullen een mechanisme bevatten om hardware- en softwareactiva te volgen, waardoor het niet langer nodig is om een ​​handgeschreven inventaris bij te houden.
  6. Patchbeheer: SCM-tools kunnen u helpen bij het bijhouden van alle fijne kneepjes van patchbeheer terwijl u bijgewerkte software levert.

Is er iets negatiefs aan het gebruik van een softwareconfiguratiebeheertool?

Overweeg de volgende punten voordat u een SCM-tool implementeert:

  1. Afvoer van middelen: U moet de middelen hebben om het proces van begin tot eind te ondersteunen.
  2. Kennisbeperkingen: Iedereen die deelneemt, moet goed thuis zijn in de softwarebeheertools die worden gebruikt.
  3. MKB-nadeel: De omvang van wat nodig is om deze tools effectief te gebruiken, kan een uitdaging zijn voor een kleine organisatie om te ondersteunen.
  4. Hardwarevereisten: Om de procedure succesvol te laten werken, is snelle en fijn afgestemde hardware essentieel.

Wat is het primaire doel van het beheer van softwareconfiguratie?

Het houdt toezicht op nieuwe producten en hun iteraties en houdt deze bij. Bovendien herkent en beheert het de configuratie van de hardware, software en tools die tijdens de ontwikkelingscyclus worden gebruikt.

Wat is configuratiebeheer in de SDLC?

Om de consistentie van de functionele, prestatie- en fysieke kenmerken van een product met zijn vereisten, ontwerp en operationele informatie vast te stellen en te behouden gedurende de levenscyclus van het product, is configuratiebeheer een cruciale procedure in systeem- en software-engineering.

Welke toepassingen heeft CE-configuratie?

In radiofrequentiecircuits worden ook common-emitter-versterkers gebruikt, bijvoorbeeld om zwakke signalen die door een antenne worden opgevangen te versterken. In deze situatie wordt vaak een afgestemd circuit gebruikt in plaats van de belastingsweerstand. Dit zou kunnen worden gedaan om de bandbreedte te verkleinen tot een kleine band die is gecentreerd rond de operationele frequentie.

Conclusie

Configuratiebeheer is een essentieel hulpmiddel voor het beheer van gecompliceerde softwaresystemen. Een gebrek aan configuratiebeheer in software-engineering kan leiden tot grote problemen met systeembetrouwbaarheid, uptime en schaalbaarheid. Veel moderne softwareontwikkelingstools bieden functionaliteit voor configuratiebeheer.

Veelgestelde vragen over softwareconfiguratiebeheer

Wat zijn de 4 belangrijkste functies van softwareconfiguratiebeheer?

Identificatie, controle, audit en statusboekhouding

Wat zijn softwareconfiguratie-items?

Een configuratie-item (CI) is een servicecomponent, infrastructuuronderdeel of andere zaken die moeten worden beheerd om services met succes te kunnen leveren. Elke CI heeft de volgende kenmerken: Een categorisering of categorie van iets dat de aard ervan aangeeft.

Wat is een configuratiebeheerstrategie?

Een configuratiemanagementstrategie wordt gebruikt om te bepalen hoe en wie de producten van het project zal controleren en beveiligen. Het geeft antwoord op de volgende vragen: Hoe en waar worden de producten van het project opgeslagen? Welke opslag- en ophaalbeveiliging wordt geïmplementeerd?

Referenties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *

Dit vind je misschien ook leuk