Ohjelmistokokoonpanon hallinta ohjelmistosuunnittelussa

⚡ Älykäs yhteenveto

Ohjelmistokonfiguraation hallinta (SCM) on prosessi, jolla hallitaan, organisoidaan ja valvotaan järjestelmällisesti dokumenttien, koodin ja muiden kohteiden muutoksia koko ohjelmistokehityksen elinkaaren ajan. Sen ensisijaisena tavoitteena on lisätä tuottavuutta samalla kunping virheet minimiin.

  • ⚙️ Määritelmä: SCM hallitsee ja valvoo järjestelmällisesti dokumenttien, koodin ja entiteettien muutoksia koko kehityssyklin ajan.
  • 🎯 Miksi sillä on merkitystä: Se koordinoi useita kehittäjiä, versioita ja haaroja samalla kun se hallitsee muutosten kustannuksia.
  • 🗂️ Viisi ydintehtävää: Konfiguraatioiden tunnistaminen, lähtötasot, muutostenhallinta, tilan seuranta ja auditoinnit.
  • 👥 Keskeiset osallistujat: Konfiguraatiopäällikkö, kehittäjä, tilintarkastaja, projektipäällikkö ja loppukäyttäjä.
  • 📋 SCM-suunnitelma: Suunnittelu noudattaa standardeja, kuten IEEE 828, ja määrittelee työkalut, nimeämisen ja vastuut.
  • 🛠️ Suositut työkalut: Git, tiimi Foundation Palvelin ja Ansible tukevat versionhallintaa ja automaatiota.

Ohjelmiston kokoonpanon hallinta

Mikä on ohjelmiston kokoonpanonhallinta?

Ohjelmistosuunnittelussa, Ohjelmistokonfiguraation hallinta (SCM) on prosessi, jolla hallitaan, organisoidaan ja valvotaan systemaattisesti dokumenttien, koodien ja muiden kokonaisuuksien muutoksia ohjelmistokehityksen elinkaaren aikana. Ensisijaisena tavoitteena on lisätä tuottavuutta minimaalisilla virheillä. SCM on osa konfiguraationhallinnan monialaista alaa, ja se voi tarkasti määrittää, kuka teki minkäkin version.

Miksi tarvitsemme konfiguraatioiden hallintaa?

Teknisen ohjelmistokonfiguraation hallintajärjestelmän käyttöönoton tärkeimmät syyt ovat:

  • Ohjelmiston parissa työskentelee useita ihmisiä, ja sitä päivitetään jatkuvasti.
  • Kyseessä voi olla tapaus, jossa ohjelmiston konfigurointiprojektissa on mukana useita versioita, haaroja ja tekijöitä, ja tiimi on maantieteellisesti hajautettu ja työskentelee samanaikaisesti.
  • Käyttäjävaatimusten, käytäntöjen, budjetin ja aikataulun muutokset on otettava huomioon.
  • Ohjelmiston tulisi toimia erilaisilla koneilla ja Operating Systems.
  • Auttaa kehittämään koordinaatiota sidosryhmien välillä.
  • SCM-prosessi on hyödyllinen myös järjestelmään tehtävien muutosten kustannusten hallinnassa.

Tarvitsee kokoonpanonhallinnan

Kaikki ohjelmiston kokoonpanon muutokset vaikuttavat lopputuotteeseen. Siksi konfiguraatiokohteiden muutoksia on valvottava ja hallittava.

Tehtävät SCM-prosessissa

  • Kokoonpanon tunnistus
  • perusviivat
  • Muuta ohjaus
  • Kokoonpanon tilan kirjanpito
  • Kokoonpanon tarkastukset ja Revnäkemykset

Kokoonpanon tunnistus

Konfiguraation tunnistus on menetelmä ohjelmistojärjestelmän laajuuden määrittämiseksi. Tämän vaiheen avulla voit hallita tai ohjata jotakin, vaikka et tietäisi, mitä se on. Se on kuvaus, joka sisältää CSCI-tyypin (Computer Software Configuration Item), projektitunnuksen ja versiotiedot.

Toiminnot tämän prosessin aikana:

  • Määrityskohteiden, kuten lähdekoodimoduulien, tunnistaminen, testitapaus, ja vaatimusmäärittely.
  • Kunkin CSCI:n tunnistaminen SCM-arkistossa oliopohjaista lähestymistapaa käyttäen.
  • Prosessi alkaa perusobjekteista, jotka ryhmitellään koosteobjekteiksi. Tiedot siitä, mitä muutoksia testiin tehdään, miksi, milloin ja kuka niitä tekee.
  • Jokaisella objektilla on omat ominaisuutensa, jotka tunnistavat sen nimen, joka on yksiselitteinen kaikille muille objekteille.
  • Tarvittavien resurssien luettelo, kuten asiakirja, tiedosto, työkalut jne.

Esimerkiksi:

Tiedoston nimeksi tulisi antaa login.php sijaan login_v1.2.php, jossa v1.2 tarkoittaa tiedoston versionumeroa.

Kansion nimeämisen sijaan "Code", sen nimeksi pitäisi tulla "Code_D”, jossa D tarkoittaa, että koodi tulisi varmuuskopioida päivittäin.

Lähtötilanne

Perustaso on muodollisesti hyväksytty versio ohjelmistokokoonpanosta. Se nimetään ja kiinnitetään tiettyyn aikaan SCM-prosessin aikana. Sitä voidaan muuttaa vain muodollisilla muutoksenhallintamenettelyillä.

Toiminnot tämän prosessin aikana:

  • Helpottaa sovelluksen eri versioiden rakentamista.
  • Näiden työtuotteiden eri versioiden hallintamekanismien määrittely ja määrittely.
  • Toiminnallinen perustaso vastaa tarkistettuja järjestelmävaatimuksia.
  • Laajalti käytettyihin lähtötasoihin kuuluvat toiminnalliset, kehitykseen liittyvät ja tuotelähtötasot.

Yksinkertaisesti sanottuna lähtötaso tarkoittaa valmis julkaisuun.

Muuta ohjaus

Muutoshallinta on proseduraalinen menetelmä, joka varmistaa laadun ja johdonmukaisuuden, kun konfiguraatio-objektiin tehdään muutoksia. Tässä vaiheessa muutospyyntö lähetetään ohjelmiston konfiguraationhallintaohjelmalle.

Toiminnot tämän prosessin aikana:

  • Hallitse ad-hoc-muutoksia vakaan ohjelmistokehitysympäristön rakentamiseksi. Muutokset tallennetaan arkistoon.
  • Pyyntö tarkistetaan teknisen ansioiden, mahdollisten sivuvaikutusten ja muihin konfiguraatio-objekteihin kohdistuvan kokonaisvaikutuksen perusteella.
  • Se hallitsee muutoksia ja asettaa konfiguraatiokohteet saataville ohjelmiston elinkaaren aikana.

Kokoonpanon tilan kirjanpito

Konfiguraation tilan seuranta tracks jokaisen julkaisun SCM-prosessin aikana. Tämä vaihe sisältää tracmitä kukin versio sisältää ja mitä muutoksia tähän versioon on johtanut.

Toiminnot tämän prosessin aikana:

  • Pitää kirjaa kaikista edelliseen lähtötasoon tehdyistä muutoksista uuden lähtötason saavuttamiseksi.
  • Tunnista kaikki ohjelmistokokoonpanon määrittävät kohteet.
  • Seuraa muutospyyntöjen tilaa.
  • Täydellinen luettelo kaikista muutoksista viimeisimmän lähtötilanteen jälkeen.
  • sallii tracedistymisen kuningas seuraavaan lähtötasoon.
  • Sallii aiempien julkaisujen/versioiden muuttamisentracted testausta varten.

Kokoonpanon tarkastukset ja Revnäkemykset

Ohjelmiston konfigurointitarkastukset varmistavat, että kaikki ohjelmistotuote täyttää perustarpeet. Se varmistaa, että se, mitä rakennetaan, on sitä, mitä toimitetaan.

Toiminnot tämän prosessin aikana:

  • Auditoijat suorittavat konfiguraation auditoinnin tarkistamalla, että määriteltyjä prosesseja noudatetaan ja varmistamalla, että SCM-tavoitteet täyttyvät.
  • Konfiguraatioiden hallintastandardien noudattamisen varmistamiseksi tehtyjen muutosten auditointi ja raportointi.
  • SCM-auditoinnit varmistavat myös, että tractoimintakyky säilyy prosessin aikana.
  • Varmistaa, että perusviivaan tehdyt muutokset ovat konfiguroinnin tilaraporttien mukaisia.
  • Täydellisyyden ja johdonmukaisuuden validointi.

SCM-prosessin osallistuja

Seuraavat ovat SCM:n tärkeimmät osallistujat:

SCM-prosessin osallistuja

1. Configuration Manager

  • Konfiguraatiopäällikkö on johtaja, joka vastaa konfiguraatiokohteiden tunnistamisesta.
  • CM varmistaa, että tiimi noudattaa SCM-prosessia.
  • Hänen on joko hyväksyttävä tai hylättävä muutospyynnöt.

2. Kehittäjä

  • Kehittäjän on muutettava koodia vakiokehitystoimien tai muutospyyntöjen mukaisesti. Hän on vastuussa koodin kokoonpanon ylläpidosta.
  • Kehittäjän tulee tarkistaa muutokset ja ratkaista ristiriidat.

3. tilintarkastaja

  • Tilintarkastaja vastaa SCM-auditoinneista ja -katselmuksista.
  • On varmistettava julkaisun johdonmukaisuus ja täydellisyys.

4. Projektipäällikkö:

  • Varmista, että tuote kehitetään tietyn aikataulun puitteissa.
  • Seuraa kehityksen edistymistä ja tunnistaa SCM-prosessissa ilmenevät ongelmat.
  • Luo raportteja ohjelmistojärjestelmän tilasta.
  • Varmista, että luomisen, muuttamisen ja testaamisen prosesseja ja käytäntöjä noudatetaan.

5. Käyttäjä

Loppukäyttäjän tulee ymmärtää keskeiset SCM-termit varmistaakseen, että hänellä on ohjelmiston uusin versio.

Ohjelmistokokoonpanon hallintasuunnitelma

SCMP-prosessi (Software Configuration Management Planning) alkaa projektin alkuvaiheessa koodausvaiheessa. Suunnitteluvaiheen tuloksena syntyy SCM-suunnitelma, jota voidaan laajentaa tai tarkistaa projektin aikana.

  • SCMP voi noudattaa julkista standardia, kuten IEEE 828:aa, tai organisaatiokohtaista standardia.
  • Se määrittää hallittavien dokumenttien tyypit ja dokumenttien nimeämiskäytännön. Esimerkki: Test_v1.
  • SCMP määrittelee henkilön, joka on vastuussa koko SCM-prosessista ja perustason luomisesta.
  • Korjaa versionhallinnan ja muutostenhallintakäytännöt.
  • Määrittele työkalut, joita voidaan käyttää SCM-prosessin aikana.
  • Kokoonpanon hallintatietokanta kokoonpanotietojen tallentamista varten.

Ohjelmistokokoonpanon hallintatyökalut

Kaikissa muutoshallintaohjelmistoissa tulisi olla seuraavat kolme keskeistä ominaisuutta:

Samanaikaisuuden hallinta:

Kun kaksi tai useampi tehtävä suoritetaan samanaikaisesti, sitä kutsutaan rinnakkaiseksi operaatioksi. Samanaikaisuus SCM:n yhteydessä tarkoittaa, että samaa tiedostoa muokkaa useampi henkilö samanaikaisesti.

Jos samanaikaisuutta ei hallita oikein SCM-työkaluilla, se voi aiheuttaa monia kiireellisiä ongelmia.

Version hallinta:

SCM käyttää arkistointimenetelmää eli tallentaa kaikki tiedostoon tehdyt muutokset. Arkistointi- tai tallennustoiminnon avulla on mahdollista palata edelliseen versioon ongelmien ilmetessä.

Synchronisointi:

Käyttäjät voivat kuitata ulos useamman kuin yhden tiedoston tai koko kopion tietovarastosta. Käyttäjä työskentelee sitten tarvittavan tiedoston parissa ja kirjaa muutokset takaisin tietovarastoon. He voivat synkronoida paikallisen kopionsa pysyäkseen ajan tasalla muiden tiimin jäsenten tekemistä muutoksista.

Seuraavat ovat suosittuja työkaluja:

1.Git: Git on ilmainen ja avoimen lähdekoodin työkalu, joka auttaa versionhallintaa. Se on suunniteltu käsittelemään kaikentyyppisiä projekteja nopeasti ja tehokkaasti.

Download link: https://git-scm.com/

2. Joukkue Foundation Server: Joukkue Foundation on joukko työkaluja ja teknologioita, joiden avulla tiimi voi tehdä yhteistyötä ja koordinoida tuotteen rakentamista.

Download link: https://azure.microsoft.com/en-us/services/devops/server/

3. Mahdollista: Se on avoimen lähdekoodin ohjelmistokonfiguraation hallintatyökalu. Konfiguraation hallinnan lisäksi se tarjoaa myös sovellusten käyttöönoton ja tehtävien automatisoinnin.

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

UKK

Versionhallinta tracks tiedostoihin tehdyt muutokset ja antaa sinun palauttaa aiempiin versioihin. SCM on laajempi: se kattaa myös konfiguraation tunnistamisen, lähtötasot, muutostenhallinnan, tilaseurannan ja auditoinnit. Versioiden hallinta on tärkeä osa laajempaa SCM-prosessia.

SCM keskittyy hallintaan ja tracmuutoksia ohjelmiston kokoonpanokohtiin. DevOps on laajempi kulttuuri ja käytäntöjen joukko, joka yhdistää kehityksen ja toiminnan jatkuvaa toimitusta varten. SCM-työkalut ja -peruslinjat tukevat usein automaatiota, johon DevOps-putket perustuvat.

IEEE 828 on tunnustettu standardi, joka määrittelee ohjelmistokonfiguraation hallintasuunnitelman luomisen. Se määrittelee toiminnot, vastuut ja dokumentaation, joita tarvitaan konfiguraatiokohteiden johdonmukaiseen hallintaan, jotta tiimit voivat noudattaa hyväksi havaittua rakennetta sen sijaan, että he keksisivät oman.

Tekoäly voi tarkistaa muutospyyntöjä, ennustaa muutoksen vaikutuksen ja merkitä riskialttiita tai ristiriitaisia ​​muokkauksia ennen kuin ne saavuttavat perustason. Se auttaa myös analysoimaan tilanneseurantatietoja ja havaitsemaan malleja, joita ihmistarkistajat saattavat olla huomaamatta suurissa, nopeasti liikkuvissa koodikannoissa.

Kyllä. Tekoäly voi automatisoida rutiinitehtäviä, kuten versioinnin, julkaisujen merkitsemisen ja auditointiraporttien luomisen. Yhdessä Ansiblen kaltaisten työkalujen kanssa se voi havaita konfiguraatiopoikkeamat ja korjata itseään ympäristöissä, kun taas ihmiset edelleen hyväksyvät tärkeimmät perusmuutokset ja käytännöt.

Tiivistä tämä viesti seuraavasti: