Softwareconfiguratiebeheer in software-engineering
Wat is softwareconfiguratiebeheer?
Bij software-engineering, Softwareconfiguratiebeheer (SCM) is een proces voor het systematisch beheren, organiseren en controleren van de wijzigingen in de documenten, codes en andere entiteiten tijdens de levenscyclus van softwareontwikkeling. Het primaire doel is om de productiviteit te verhogen met minimale fouten. SCM maakt deel uit van het interdisciplinaire veld van configuratiemanagement en kan nauwkeurig bepalen wie welke revisie heeft uitgevoerd.
Waarom hebben we configuratiebeheer nodig?
De belangrijkste redenen voor het implementeren van een technisch softwareconfiguratiebeheersysteem zijn:
- Er werken meerdere mensen aan software die voortdurend wordt bijgewerkt
- Het kan een geval zijn waarbij meerdere versies, vertakkingen en auteurs betrokken zijn bij een softwareconfiguratieproject, en het team geografisch verspreid is en gelijktijdig werkt
- Er moet rekening worden gehouden met veranderingen in gebruikersvereisten, beleid, budget en planning.
- Software moet op verschillende machines kunnen draaien Operasystemen
- Helpt de coördinatie tussen belanghebbenden te ontwikkelen
- Het SCM-proces is ook gunstig voor het beheersen van de kosten die gepaard gaan met het aanbrengen van wijzigingen in een systeem
Elke wijziging in de softwareconfiguratie-items heeft invloed op het eindproduct. Daarom moeten wijzigingen in configuratie-items worden gecontroleerd en beheerd.
Taken in het SCM-proces
- Configuratie-identificatie
- baselines
- Verander controle
- Configuratie Status Boekhouding
- Configuratie-audits en Revieuws
Configuratie-identificatie
Configuratie-identificatie is een methode om de reikwijdte van het softwaresysteem te bepalen. Met behulp van deze stap kunt u iets beheren of controleren, zelfs als u niet weet wat het is. Het is een beschrijving die het CSCI-type (Computer Software Configuration Item), een project-ID en versie-informatie bevat.
Activiteiten tijdens dit proces:
- Identificatie van configuratie-items zoals broncodemodules, testcaseen specificatie van eisen.
- Identificatie van elke CSCI in de SCM-repository, door gebruik te maken van een objectgeoriënteerde aanpak
- Het proces begint met basisobjecten die worden gegroepeerd in geaggregeerde objecten. Details van wat, waarom, wanneer en door wie er wijzigingen in de test worden aangebracht
- Elk object heeft zijn eigen kenmerken die de naam identificeren die expliciet is voor alle andere objecten
- Lijst met benodigde bronnen, zoals het document, het bestand, de hulpmiddelen, enz.
Voorbeeld:
In plaats van een bestand login.php te noemen, zou het login_v1.2.php moeten heten, waarbij v1.2 staat voor het versienummer van het bestand
In plaats van de map “Code” te noemen, moet deze de naam “Code_D” krijgen, waarbij D staat voor code waarvan dagelijks een back-up moet worden gemaakt.
Baseline
Een baseline is een formeel geaccepteerde versie van een softwareconfiguratie-item. Het wordt op een specifiek tijdstip aangewezen en vastgesteld tijdens het uitvoeren van het SCM-proces. Het kan alleen worden gewijzigd via formele wijzigingscontroleprocedures.
Activiteiten tijdens dit proces:
- Faciliteren van de constructie van verschillende versies van een applicatie
- Het definiëren en bepalen van mechanismen voor het beheren van verschillende versies van deze werkproducten
- De functionele basislijn komt overeen met de herziene systeemvereisten
- Veelgebruikte basislijnen omvatten functionele, ontwikkelings- en productbasislijnen
In eenvoudige bewoordingen betekent baseline: klaar voor release.
Verander controle
Wijzigingsbeheer is een procedurele methode die kwaliteit en consistentie garandeert wanneer er wijzigingen worden aangebracht in het configuratieobject. In deze stap wordt het wijzigingsverzoek ingediend bij de softwareconfiguratiemanager.
Activiteiten tijdens dit proces:
- Beheer ad-hocveranderingen om een stabiele softwareontwikkelomgeving te bouwen. Wijzigingen worden vastgelegd in de repository
- Het verzoek wordt gecontroleerd op basis van de technische merites, mogelijke bijwerkingen en de algehele impact op andere configuratieobjecten.
- Het beheert wijzigingen en stelt configuratie-items beschikbaar tijdens de levenscyclus van de software
Configuratie Status Boekhouding
Configuratiestatusaccounting volgt elke release tijdens het SCM-proces. In deze fase wordt bijgehouden wat elke versie heeft en welke wijzigingen tot deze versie leiden.
Activiteiten tijdens dit proces:
- Houdt een overzicht bij van alle wijzigingen die in de vorige basislijn zijn aangebracht om een nieuwe basislijn te bereiken
- Identificeer alle items om de softwareconfiguratie te definiëren
- Bewaken van de status van wijzigingsverzoeken
- Volledige lijst van alle veranderingen sinds de laatste basislijn
- Maakt het mogelijk de voortgang naar de volgende basislijn te volgen
- Maakt het mogelijk om eerdere releases/versies te controleren die moeten worden uitgepakt voor testen
Configuratie-audits en Revieuws
Softwareconfiguratie-audits verifiëren dat alle softwareproducten voldoen aan de basisbehoeften. Het zorgt ervoor dat wat gebouwd wordt, ook geleverd wordt.
Activiteiten tijdens dit proces:
- Configuratie-audit wordt uitgevoerd door auditors door te controleren of gedefinieerde processen worden gevolgd en ervoor te zorgen dat aan de SCM-doelen wordt voldaan.
- Om de naleving van de configuratiecontrolenormen te verifiëren. het controleren en rapporteren van de aangebrachte wijzigingen
- SCM-audits zorgen er ook voor dat de traceerbaarheid tijdens het proces behouden blijft.
- Zorgt ervoor dat wijzigingen in een basislijn voldoen aan de configuratiestatusrapporten
- Validatie van volledigheid en consistentie
Deelnemer aan het SCM-proces
Hieronder staan de belangrijkste deelnemers aan SCM
1. Configuratiemanager
- Configuration Manager is het hoofd dat verantwoordelijk is voor het identificeren van configuratie-items.
- CM zorgt ervoor dat het team het SCM-proces volgt
- Hij/zij moet wijzigingsverzoeken goedkeuren of afwijzen
2. Ontwikkelaar
- De ontwikkelaar moet de code wijzigen volgens standaard ontwikkelingsactiviteiten of wijzigingsverzoeken. Hij is verantwoordelijk voor het onderhouden van de configuratie van de code.
- De ontwikkelaar moet de wijzigingen controleren en conflicten oplossen
3. revisor
- De auditor is verantwoordelijk voor SCM-audits en beoordelingen.
- Het is noodzakelijk om de consistentie en volledigheid van de release te garanderen.
4. Projectmanager:
- Zorg ervoor dat het product binnen een bepaald tijdsbestek wordt ontwikkeld
- Bewaakt de voortgang van de ontwikkeling en herkent knelpunten in het SCM-proces
- Genereer rapporten over de status van het softwaresysteem
- Zorg ervoor dat processen en beleid worden gevolgd voor het maken, wijzigen en testen
5. Gebruiker
De eindgebruiker moet de belangrijkste SCM-termen begrijpen om er zeker van te zijn dat hij over de nieuwste versie van de software beschikt
Beheerplan voor softwareconfiguratie
De SCMP-procesplanning (Software Configuration Management Planning) begint in de vroege codeerfasen van een project. Het resultaat van de planningsfase is het SCM-plan dat tijdens het project kan worden uitgebreid of herzien.
- Het SCMP kan een openbare standaard volgen, zoals de IEEE 828 of een organisatiespecifieke standaard
- Het definieert de soorten documenten die moeten worden beheerd en een documentnaamgeving. Voorbeeld Test_v1
- SCMP definieert de persoon die verantwoordelijk zal zijn voor het gehele SCM-proces en het creëren van baselines.
- Beleid voor versiebeheer en wijzigingsbeheer repareren
- Definieer tools die kunnen worden gebruikt tijdens het SCM-proces
- Configuratiebeheerdatabase voor het vastleggen van configuratie-informatie.
Beheerprogramma's voor softwareconfiguratie
Elke software voor wijzigingsbeheer moet de volgende 3 hoofdkenmerken hebben:
Gelijktijdigheidsbeheer:
Wanneer twee of meer taken tegelijkertijd plaatsvinden, wordt dit gelijktijdige bewerking genoemd. Gelijktijdigheid in de context van SCM betekent dat hetzelfde bestand door meerdere personen tegelijkertijd wordt bewerkt.
Als gelijktijdigheid niet correct wordt beheerd met SCM-tools, kan dit voor veel urgente problemen zorgen.
Versiebeheer:
SCM gebruikt de archiveringsmethode of slaat elke wijziging op die in het bestand is aangebracht. Met behulp van de archiverings- of opslagfunctie is het mogelijk om terug te gaan naar de vorige versie in geval van problemen.
Synchronisatie:
Gebruikers kunnen meer dan één bestand of een hele kopie van de repository uitchecken. De gebruiker werkt vervolgens aan het benodigde bestand en checkt de wijzigingen terug in de repository. Ze kunnen hun lokale kopie synchroniseren om op de hoogte te blijven van de wijzigingen die door andere teamleden zijn aangebracht.
Hieronder staan populaire tools
1.Git: Git is een gratis en open source tool die versiebeheer ondersteunt. Het is ontworpen om alle soorten projecten snel en efficiënt af te handelen.
Download link: https://git-scm.com/
2. team Foundation server: Team Foundation is een groep tools en technologieën waarmee het team kan samenwerken en coördineren bij het bouwen van een product.
Download link: https://azure.microsoft.com/en-us/services/devops/server/
3. Niet mogelijk: Het is een open source softwareconfiguratiebeheertool. Naast configuratiebeheer biedt het ook applicatie-implementatie en taakautomatisering.
Download link: https://www.ansible.com/
Bekijk meer SW-configuratietools: https://www.guru99.com/software-configuration-management-tools.html
Conclusie
- Best practices voor configuratiemanagement helpen organisaties bij het systematisch beheren, organiseren en controleren van de wijzigingen in de documenten, codes en andere entiteiten tijdens de Levenscyclus van softwareontwikkeling.
- Het primaire doel van het SCM-proces is het verhogen van de productiviteit met minimale fouten
- De belangrijkste reden achter het configuratiebeheerproces is dat er meerdere mensen aan software werken die continu wordt bijgewerkt. SCM helpt bij het tot stand brengen van gelijktijdigheid, synchronisatie en versiebeheer.
- Een baseline is een formeel geaccepteerde versie van een softwareconfiguratie-item
- Wijzigingsbeheer is een procedurele methode die kwaliteit en consistentie garandeert wanneer er wijzigingen worden aangebracht in het configuratieobject.
- Configuratiestatusaccounting volgt elke release tijdens het SCM-proces
- Softwareconfiguratie-audits verifiëren dat alle softwareproducten voldoen aan de basisbehoeften
- Projectmanager, configuratiemanager, ontwikkelaar, auditor en gebruiker zijn deelnemers aan het SCM-proces
- De SCM-procesplanning begint in de vroege fasen van een project.
- Git, Team Foundation Server en Ansible zijn enkele populaire SCM-tools.