Managementul configurației software în inginerie software
⚡ Rezumat inteligent
Managementul Configurației Software (SCM) este un proces de gestionare, organizare și control sistematic al modificărilor aduse documentelor, codului și altor elemente pe tot parcursul ciclului de viață al dezvoltării software. Scopul său principal este de a crește productivitatea, menținând în același timp...ping greșeli la minimum.

Ce este managementul configurației software?
În inginerie software, Managementul configurării software-ului (SCM) este un proces de gestionare, organizare și control sistematic al modificărilor din documente, coduri și alte entități pe parcursul ciclului de viață al dezvoltării software. Scopul principal este creșterea productivității cu un minim de greșeli. SCM face parte din domeniul interdisciplinar al managementului configurației și poate determina cu precizie cine a efectuat ce revizuire.
De ce avem nevoie de managementul configurației?
Principalele motive pentru implementarea unui sistem de gestionare a configurației software tehnice sunt:
- Există mai multe persoane care lucrează la un software care este actualizat continuu.
- Se poate întâmpla ca într-un proiect de configurare software să fie implicate mai multe versiuni, ramuri și autori, iar echipa să fie distribuită geografic și să lucreze concomitent.
- Modificările cerințelor, politicii, bugetului și programului utilizatorilor trebuie adaptate.
- Software-ul ar trebui să poată rula pe diverse mașini și Operating Systems.
- Ajută la dezvoltarea coordonării între părțile interesate.
- Procesul SCM este, de asemenea, benefic pentru controlul costurilor implicate în efectuarea modificărilor la un sistem.
Orice modificare a elementelor de configurare software va afecta produsul final. Prin urmare, modificările la elementele de configurare trebuie controlate și gestionate.
Sarcini în procesul SCM
- Identificarea configurației
- Linii de bază
- Schimbare de control
- Contabilitatea stării configurării
- Audituri de configurare și Revvederi
Identificarea configurației
Identificarea configurației este o metodă de determinare a domeniului de aplicare al sistemului software. Cu ajutorul acestui pas, puteți gestiona sau controla ceva chiar dacă nu știți ce este. Este o descriere care conține tipul CSCI (Computer Software Configuration Item), un identificator de proiect și informații despre versiune.
Activități în timpul acestui proces:
- Identificarea elementelor de configurare precum modulele codului sursă, caz de testare, și specificația cerințelor.
- Identificarea fiecărui CSCI din depozitul SCM, utilizând o abordare orientată pe obiecte.
- Procesul începe cu obiecte de bază, care sunt grupate în obiecte agregate. Detalii despre ce, de ce, când și de către cine sunt făcute modificările în test.
- Fiecare obiect are propriile caracteristici care îi identifică numele, nume explicit pentru toate celelalte obiecte.
- Lista resurselor necesare, cum ar fi documentul, fișierul, instrumentele etc.
Exemplu:
În loc să numim un fișier login.php, acesta ar trebui să fie numit login_v1.2.php, unde v1.2 reprezintă numărul versiunii fișierului.
În loc să denumiți un folder „Code„, ar trebui să fie numită „Code_D”, unde D reprezintă faptul că codul trebuie copiat zilnic.
De bază
O linie de bază este o versiune acceptată oficial a unui element de configurare software. Este desemnat și fixat la un moment specific în timpul desfășurării procesului SCM. Acesta poate fi modificat numai prin proceduri formale de control al schimbărilor.
Activități în timpul acestui proces:
- Facilitează construirea diferitelor versiuni ale unei aplicații.
- Definirea și determinarea mecanismelor pentru gestionarea diferitelor versiuni ale acestor produse de lucru.
- Linia de bază funcțională corespunde cerințelor de sistem analizate.
- Printre nivelurile de referință utilizate pe scară largă se numără nivelurile de referință funcționale, de dezvoltare și de produs.
Cu cuvinte simple, linia de bază înseamnă gata pentru lansare.
Schimbare de control
Controlul modificărilor este o metodă procedurală care asigură calitatea și consecvența atunci când se fac modificări în obiectul de configurare. În această etapă, cererea de modificare este trimisă managerului de configurare software.
Activități în timpul acestui proces:
- Controlează modificările ad-hoc pentru a construi un mediu de dezvoltare software stabil. Modificările sunt salvate în depozit.
- Cererea va fi verificată pe baza meritului tehnic, a posibilelor efecte secundare și a impactului general asupra altor obiecte de configurație.
- Gestionează modificările și face ca elementele de configurare să fie disponibile pe parcursul ciclului de viață al software-ului.
Contabilitatea stării configurării
Contabilizarea stării configurației tracks fiecare lansare în timpul procesului SCM. Această etapă implică tracregând ce are fiecare versiune și modificările care duc la această versiune.
Activități în timpul acestui proces:
- Păstrează o evidență a tuturor modificărilor aduse nivelului de referință anterior pentru a ajunge la un nou nivel de referință.
- Identificați toate elementele pentru a defini configurația software-ului.
- Monitorizați starea cererilor de modificare.
- Lista completă a tuturor modificărilor de la ultima valoare de referință.
- permite tracrege al progresului către următoarea linie de bază.
- Permite ca versiunile/lansările anterioare să fie extinsetractestat.
Audituri de configurare și Revvederi
Auditurile de configurare software verifică dacă tot produsul software satisface nevoile de bază. Se asigură că ceea ce este construit este ceea ce este livrat.
Activități în timpul acestui proces:
- Auditul configurației este efectuat de auditori prin verificarea faptului că procesele definite sunt urmate și asigurându-se că obiectivele SCM sunt îndeplinite.
- Pentru a verifica conformitatea cu standardele de control al configurației, auditarea și raportarea modificărilor efectuate.
- Auditurile SCM asigură, de asemenea, că tracEabilitatea este menținută pe parcursul procesului.
- Se asigură că modificările aduse unei linii de bază sunt conforme cu rapoartele de stare a configurației.
- Validarea completitudinii și consecvenței.
Participant la procesul SCM
Următorii sunt participanții cheie în SCM:
1. Manager de configurare
- Managerul de configurare este șeful responsabil pentru identificarea elementelor de configurare.
- CM se asigură că echipa respectă procesul SCM.
- El/Ea trebuie să aprobe sau să respingă cererile de modificare.
2. Dezvoltator
- Dezvoltatorul trebuie să modifice codul conform activităților standard de dezvoltare sau solicitărilor de modificare. El este responsabil pentru menținerea configurației codului.
- Dezvoltatorul ar trebui să verifice modificările și să rezolve conflictele.
3. Auditor
- Auditorul este responsabil pentru auditurile și revizuirile SCM.
- Necesită asigurarea consecvenței și completitudinii lansării.
4. Manager de proiect:
- Asigurați-vă că produsul este dezvoltat într-un anumit interval de timp.
- Monitorizează progresul dezvoltării și recunoaște problemele din procesul SCM.
- Generați rapoarte despre starea sistemului software.
- Asigurați-vă că sunt respectate procesele și politicile pentru creare, modificare și testare.
5. Utilizator
Utilizatorul final ar trebui să înțeleagă termenii cheie SCM pentru a se asigura că are cea mai recentă versiune a software-ului.
Planul de management al configurației software
Procesul SCMP (Software Configuration Management Planning - Planificarea Managementului Configurației Software) începe în fazele incipiente de codare ale unui proiect. Rezultatul fazei de planificare este planul SCM, care poate fi extins sau revizuit pe parcursul proiectului.
- SCMP poate urma un standard public precum IEEE 828 sau un standard specific organizației.
- Definește tipurile de documente care urmează să fie gestionate și o convenție de denumire a documentelor. Exemplu: Test_v1.
- SCMP definește persoana care va fi responsabilă pentru întregul proces SCM și crearea liniilor de bază.
- Corectați politicile pentru gestionarea versiunilor și controlul modificărilor.
- Definiți instrumentele care pot fi utilizate în timpul procesului SCM.
- Baza de date de gestionare a configurației pentru înregistrarea informațiilor de configurare.
Instrumente de management al configurației software
Orice software de gestionare a schimbărilor ar trebui să aibă următoarele 3 caracteristici cheie:
Managementul concurenței:
Când două sau mai multe sarcini se desfășoară în același timp, aceasta este cunoscută sub numele de operațiune concurentă. Concurența în contextul SCM înseamnă că același fișier este editat de mai multe persoane în același timp.
Dacă concurența nu este gestionată corect cu instrumentele SCM, atunci poate crea multe probleme presante.
Controlul versiunii:
SCM folosește o metodă de arhivare sau salvează fiecare modificare adusă unui fișier. Cu ajutorul funcției de arhivare sau salvare, este posibilă revenirea la versiunea anterioară în caz de probleme.
Synccronizare:
Utilizatorii pot extrage mai multe fișiere sau o copie întreagă a depozitului. Apoi, utilizatorul lucrează la fișierul necesar și înregistrează modificările în depozit. Aceștia își pot sincroniza copia locală pentru a fi la curent cu modificările făcute de ceilalți membri ai echipei.
Următoarele sunt instrumente populare:
1. Git: Git este un instrument gratuit și open source care ajută la controlul versiunilor. Este conceput pentru a gestiona toate tipurile de proiecte cu rapiditate și eficiență.
Download link: https://git-scm.com/
2. echipă Foundation Server: Echipa PGC Foundation este un grup de instrumente și tehnologii care permit echipei să colaboreze și să se coordoneze pentru construirea unui produs.
Download link: https://azure.microsoft.com/en-us/services/devops/server/
3. Ansible: Este un instrument de gestionare a configurației software open source. Pe lângă gestionarea configurației, oferă și implementare de aplicații și automatizare a sarcinilor.
Download link: https://www.ansible.com/


