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.

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.
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:
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/


