Softwareconfiguratiebeheer in software-engineering

โšก Slimme samenvatting

Softwareconfiguratiebeheer (SCM) is een proces om wijzigingen in documenten, code en andere items systematisch te beheren, organiseren en controleren gedurende de gehele softwareontwikkelingslevenscyclus. Het primaire doel is om de productiviteit te verhogen en tegelijkertijd de controle te behouden.ping Fouten tot een minimum beperken.

  • โš™๏ธ Definitie: SCM beheert en controleert systematisch wijzigingen in documenten, code en entiteiten gedurende de gehele ontwikkelingscyclus.
  • ๐ŸŽฏ Waarom het uitmaakt: Het coรถrdineert meerdere ontwikkelaars, versies en branches en beheert tegelijkertijd de kosten van wijzigingen.
  • ๐Ÿ—‚๏ธ Vijf kerntaken: Configuratie-identificatie, basislijnen, wijzigingsbeheer, statusregistratie en audits.
  • ๐Ÿ‘ฅ Belangrijkste deelnemers: Configuratiemanager, ontwikkelaar, auditor, projectmanager en eindgebruiker.
  • ๐Ÿ“‹ SCM-plan: De planning volgt standaarden zoals IEEE 828 en definieert tools, naamgeving en verantwoordelijkheden.
  • ๏ธ Populaire hulpmiddelen: Git, Team Foundation Server en Ansible bieden ondersteuning voor versiebeheer en automatisering.

Beheer van softwareconfiguratie

Wat is softwareconfiguratiebeheer?

Bij software-engineering, Softwareconfiguratiebeheer (SCM) SCM is een proces om de wijzigingen in documenten, code en andere entiteiten tijdens de softwareontwikkelingslevenscyclus systematisch te beheren, organiseren en controleren. Het primaire doel is om de productiviteit te verhogen met minimale fouten. SCM is onderdeel van het multidisciplinaire vakgebied configuratiebeheer en kan nauwkeurig vaststellen 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 continu wordt bijgewerkt.
  • Het kan voorkomen dat er meerdere versies, branches en auteurs betrokken zijn bij een softwareconfiguratieproject, en dat 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 bij het ontwikkelen van coรถrdinatie tussen belanghebbenden.
  • Het SCM-proces is ook nuttig om de kosten te beheersen die gepaard gaan met het aanbrengen van wijzigingen in een systeem.

Configuratiebeheer nodig

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 een 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 met behulp van een objectgeoriรซnteerde aanpak.
  • Het proces begint met basisobjecten die worden gegroepeerd tot samengestelde objecten. Details over wat, waarom, wanneer en door wie er wijzigingen in de test worden aangebracht.
  • Elk object heeft zijn eigen kenmerken die de naam ervan identificeren, een naam die voor alle andere objecten expliciet is.
  • Lijst met benodigde middelen, zoals het document, het bestand, tools, 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 een map de naam " te gevenCodeโ€, het zou de naam โ€œ moeten hebbenCode_Dโ€ waarbij D aangeeft dat de code dagelijks moet worden geback-upt.

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:

  • Het bouwen van verschillende versies van een applicatie vereenvoudigen.
  • Het definiรซren en vaststellen van mechanismen voor het beheren van verschillende versies van deze werkproducten.
  • De functionele basislijn komt overeen met de beoordeelde systeemvereisten.
  • Veelgebruikte basiswaarden zijn onder andere functionele basiswaarden, ontwikkelingsbasiswaarden en productbasiswaarden.

In eenvoudige bewoordingen betekent baseline: klaar voor release.

Verander controle

Wijzigingsbeheer is een procedurele methode die de kwaliteit en consistentie waarborgt wanneer er wijzigingen worden aangebracht in het configuratieobject. In deze stap wordt het wijzigingsverzoek ingediend bij de softwareconfiguratiebeheerder.

Activiteiten tijdens dit proces:

  • Beheer ad-hocwijzigingen om een โ€‹โ€‹stabiele softwareontwikkelomgeving te creรซren. Wijzigingen worden vastgelegd in de repository.
  • Het verzoek wordt beoordeeld op basis van de technische merites, mogelijke neveneffecten en de algehele impact op andere configuratieobjecten.
  • Het beheert wijzigingen en maakt configuratie-items beschikbaar gedurende de softwarelevenscyclus.

Configuratie Status Boekhouding

Configuratiestatusregistratie tracks elke release tijdens het SCM-proces. Deze fase omvat tracLeg uit wat elke versie inhoudt en welke veranderingen tot deze versie hebben geleid.

Activiteiten tijdens dit proces:

  • Houdt een register bij van alle wijzigingen die zijn aangebracht ten opzichte van de vorige basislijn om tot een nieuwe basislijn te komen.
  • Identificeer alle onderdelen die nodig zijn om de softwareconfiguratie te definiรซren.
  • Monitor de status van wijzigingsverzoeken.
  • Een volledig overzicht van alle wijzigingen sinds de laatste nulmeting.
  • Hiermee trackoning van de vooruitgang naar de volgende basislijn.
  • Hiermee kunnen eerdere releases/versies worden geรซxporteerd.tracted 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 normen voor configuratiebeheer te controleren, worden de aangebrachte wijzigingen geaudit en gerapporteerd.
  • SCM-audits zorgen er ook voor dat tracDe geschiktheid blijft tijdens het proces behouden.
  • Zorgt ervoor dat wijzigingen in de basisconfiguratie overeenkomen met de configuratiestatusrapporten.
  • Validatie van volledigheid en consistentie.

Deelnemer aan het SCM-proces

Hieronder volgen de belangrijkste deelnemers aan SCM:

Deelnemer aan het SCM-proces

1. Configuratiemanager

  • De configuratiemanager 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 aanpassen volgens de standaard ontwikkelprocedures of wijzigingsverzoeken. Hij is verantwoordelijk voor het onderhouden van de codeconfiguratie.
  • De ontwikkelaar moet de wijzigingen controleren en conflicten oplossen.

3. revisor

  • De auditor is verantwoordelijk voor SCM-audits en beoordelingen.
  • De consistentie en volledigheid van de publicatie moeten gewaarborgd worden.

4. Projectmanager:

  • Zorg ervoor dat het product binnen een bepaalde termijn wordt ontwikkeld.
  • Houdt de voortgang van de ontwikkeling in de gaten en signaleert problemen in het SCM-proces.
  • Genereer rapporten over de status van het softwaresysteem.
  • Zorg ervoor dat de processen en het beleid voor het aanmaken, wijzigen en testen worden gevolgd.

5. Gebruiker

De eindgebruiker moet de belangrijkste SCM-termen begrijpen om er zeker van te zijn dat hij de meest recente versie van de software heeft.

Beheerplan voor softwareconfiguratie

Het SCMP-proces (Software Configuration Management Planning) begint in de vroege codeerfase van een project. Het resultaat van de planningsfase is het SCM-plan, dat tijdens het project kan worden uitgebreid of herzien.

  • De SCMP kan een openbare standaard volgen, zoals de IEEE 828, of een organisatiespecifieke standaard.
  • Het definieert de typen documenten die beheerd moeten worden en een naamgevingsconventie voor documenten. Voorbeeld: Test_v1.
  • SCMP definieert de persoon die verantwoordelijk zal zijn voor het gehele SCM-proces en het creรซren van baselines.
  • Stel beleidsregels vast voor versiebeheer en wijzigingsbeheer.
  • Definieer de tools die tijdens het SCM-proces gebruikt kunnen worden.
  • Configuratiebeheerdatabase voor het vastleggen van configuratie-informatie.

Beheerprogramma's voor softwareconfiguratie

Elke software voor wijzigingsbeheer moet de volgende 3 belangrijke functies hebben:

Gelijktijdigheidsbeheer:

Wanneer twee of meer taken tegelijkertijd plaatsvinden, spreekt men van een gelijktijdige bewerking. In de context van SCM betekent gelijktijdigheid 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 maakt gebruik van een archiveringsmethode, waarbij elke wijziging in een bestand wordt opgeslagen. Dankzij deze archiverings- of opslagfunctie is het mogelijk om in geval van problemen terug te keren naar een eerdere versie.

Synchronisatie:

Gebruikers kunnen meerdere bestanden of een volledige kopie van de repository uitchecken. Vervolgens werken ze aan het gewenste bestand en checken ze de wijzigingen terug in de repository. Ze kunnen hun lokale kopie synchroniseren om op de hoogte te blijven van de wijzigingen die andere teamleden hebben aangebracht.

Hieronder volgen 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. Ansible: Het is een open source tool voor softwareconfiguratiebeheer. Naast configuratiebeheer biedt het ook mogelijkheden voor applicatie-implementatie en taakautomatisering.

Download link: https://www.ansible.com/

Veelgestelde vragen

Versiebeheer tracMet ks kunt u wijzigingen in bestanden bijhouden en terugkeren naar eerdere versies. SCM is breder: het omvat ook configuratie-identificatie, baselines, wijzigingsbeheer, statusregistratie en audits. Versiebeheer is een belangrijk onderdeel van het bredere SCM-proces.

SCM richt zich op het beheersen en tracKing wijzigt configuratie-items in de software. DevOps is een bredere cultuur en een reeks werkwijzen die ontwikkeling en operations verenigen voor continue levering. SCM-tools en -baselines ondersteunen vaak de automatisering waarop DevOps-pipelines vertrouwen.

IEEE 828 is een erkende standaard die definieert hoe een softwareconfiguratiebeheerplan moet worden opgesteld. Het specificeert de activiteiten, verantwoordelijkheden en documentatie die nodig zijn om configuratie-items consistent te beheren, zodat teams een beproefde structuur kunnen volgen in plaats van hun eigen structuur te bedenken.

AI kan wijzigingsverzoeken beoordelen, de impact van een wijziging voorspellen en risicovolle of tegenstrijdige bewerkingen signaleren voordat ze de basisversie bereiken. Het helpt ook bij het analyseren van statusgegevens en het herkennen van patronen die menselijke beoordelaars mogelijk over het hoofd zien in grote, snel veranderende codebases.

Ja. AI kan routinetaken automatiseren, zoals versiebeheer, het taggen van releases en het genereren van auditrapporten. In combinatie met tools zoals Ansible kan het configuratieafwijkingen detecteren en omgevingen automatisch herstellen, terwijl mensen nog steeds belangrijke basiswijzigingen en beleidsregels goedkeuren.

Vat dit bericht samen met: