Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen
Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1 Konfiguraationhallinnan ohjekirja... 4 2.2 Versionhallintajärjestelmä... 4 3. Konfiguraationhallinta dtv-projektissa... 5 4. Kokemukset... 5 Viitteet... 6 Menetelmäraportti - Versionhallinta 2
1. Johdanto Konfiguraationhallinta määritellään yleensä systeemin muutoksen hallinnaksi [1]. Sen tarkoituksena on tehdä järjestelmään tehtävistä muutoksista kontrolloitu prosessi, minkä kulku voidaan jälkikäteen todentaa. Lähes kaikki alalla toimivat pitävät tarvetta konfiguraationhallinnalle itsestään selvänä ja se mainitaan usein jopa yhtenä ohjelmistotuotannossa käytettävänä laadunparannusperiaatteena. Sen merkitys korostuu erityisesti järjestelmien koon kasvaessa, mutta jo melko pienessäkin järjestelmässä tapahtuvien muutosten hallinta muodostuu mahdottomaksi ilman niiden järjestelmällistä organisointia. Kuten on tilanne monen muunkin prosessin kohdalla, on konfiguraationhallinnankin suorittamiseen kehitetty aikojen saatossa useita standardoituja lähestymistapoja, joihin pääsee käsiksi vaikkapa jossain internetin hakukoneessa ko. sanaparin kirjoittamalla. 1.1 Tärkeimmät lyhenteet Configuration Management (CM): Vapaa suomennos: Konfiguraation hallinta Järjestelmän muutoksenhallintaprosessi, mikä pitää kirjaa järjestelmään tehdyistä muutoksista, ja minkä tarkoituksena on mm. tuotteen laadun parantaminen ja useiden eri konfiguraatioiden mahdollistaminen. Configuration Object: Vapaa suomennos konfiguraatio-objekti Pienin osa jotain järjestelmää, joka määritellään omana objektina, ja joka voi esiintyä useina eri versioina. Konfiguraatio käsittää tyypillisesti useita konfiguraatio-objekteja. Version control: Vapaa suomennos: versionhallinta Yksi osa konfiguraationhallintaa, mikä pitää kirjaa järjestelmän eri versioista ja määrittelee proseduurit, versioiden luomiseksi ja käyttämiseksi. Tähän liittyy läheisesti tähän tarkoitettu tietokantasovellus. Menetelmäraportti - Versionhallinta 3
2. Konfiguraationhallinnan tärkeimmät välineet 2.1 Konfiguraationhallinnan ohjekirja Jokaisen organisaation tulisi määritellä ohjesääntö, mikä kertoo, kuinka ja miten konfiguraationhallintaa tässä organisaatiossa suoritetaan. Tämän perusteella organisaation jäsenet saavat tiedon organisaatiossa pätevistä periaatteista konfiguraationhallinnalle. 2.2 Versionhallintajärjestelmä Käytännössä tärkeä työkalu on versionhallintakäyttöön tarkoitettu tietokanta. Perusominaisuus tietokannassa on, että siihen voidaan tallentaa useita versioita tietystä tiedostosta, joista mikä tahansa voidaan jälkikäteen palauttaa. Jokaiselle tietokantaan tallennetulle objektiversiolle määritellään yksiselitteinen versionumero, jonka perusteella se voidaan hakea tietokannasta. Perusoperaatioita tietokannalle on uuden objektiversion lisäys (check-in) ja olemassa olevan objektin palautus (check out). Versionhallintatietokantoja on saatavilla useita eri tyyppisiä, joilla kaikilla on samat perusominaisuudet. Yksi suurimmista erottavista tekijöistä on usein hinta. Kaupallisia tuotteita on esimerkiksi Rational ClearCase [3]. Ilmaisista tuotteista kuuluisin on selvästi CVS (Concurrent Versions System) [2], jonka voi ladata ilmaiseksi internetistä. Menetelmäraportti - Versionhallinta 4
3. Konfiguraationhallinta dtv-projektissa Projektissa luotiin yhteiset periaatteet konfiguraationhallinnalle kirjaamalle ne dokumenttiin [4]. Siinä luotiin puitteet eri ohjelmistojen versioiden nimeämiselle ja versioiden luonnille. Versionhallintatietokantana käytettiin CVS-järjestelmää, joka asennettiin siten, että kaikilla ryhmän jäsenillä on pääsy siihen koulun atkkeskuksen kautta. Järjestelmää käytettiin projektin aikana kehitettyjen ohjelmistojen lähdekoodin tallennukseen. Projektin dokumentaatio säilytettiin erikseen kurssia varten perustetussa www-portaalissa [5]. 4. Kokemukset Alkuvaiheessa käytetty CVS-järjestelmä oli uutta monille ryhmän jäsenille ja siten sen omaksumisessa oli pieniä vaikeuksia. Osin tästä johtuen ohjelmistokehityksen aikaansaannokset löysivät tiensä melko hitaasti versionhallintajärjestelmään kaikkien ulottuville. Ongelmaksi koettiin osin sen hankala käyttö sen ollessa atk-keskuksen Unix-koneilla ja projektin ohjelmiston kehityksen tapahtuessa pääosin Windowsjärjestelmässä ja osin projektin jäsenien kotikoneilla, jolloin koodien siirto oli melko työlästä. Kuitenkin projektin viime vaiheissa koodit alkoivat siirtymään sutjakammin CVS-järjestelmään pääasiassa sen takia, koska järkevää testausta ei muuten olisi ollut mahdollista suorittaa. Juuri testauksen kannalta versionhallinnan käytön hyödyllisyys näkyi parhaiten tässä projektissa. Selkeä ja helposti muistettava versionumerointi helpotti testausta ja bugien raportointi- ja korjausmahdollisuuksia. Myös silloin kun periaatteista lipsuttiin ja versionhallinta sivuutettiin, oli sen negatiiviset vaikutukset nopeasti nähtävillä, mikä toimi hyvänä muistutuksena sen tarpeellisuudesta. Lyhyesti sanottuna on vaikea kuvitella, että projektia olisi voinut järkevästi toteuttaa ilman, että olisi määrätietoisesti noudatettu konfiguraationhallinnan periaatteita. Menetelmäraportti - Versionhallinta 5
Viitteet [1] Sommerville Ian, Software engineenring, 6 th ed., Addison Wesley 2001, Ch. 29 [2] CVS versionhallintaohjelmiston kotisivu, viitattu 13.03.2002 <URL: http://www.cvshome.org>, [3] Rational Software, viitattu 13.03.2002 <URL: http://www.rational.com> [4] Vaittinen Ville, Versionhallinta, T-76.115, Teknillinen korkeakoulu, 08.03.2002 [5] Digi-TV synkro, DTV-projektin www-portaali, viitattu 13.03.2002 <URL: http://www.digitv-synkro.org> Menetelmäraportti - Versionhallinta 6