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: