Tik-76.115 Versionhallintasuunnitelma
Teletilojen pohjapiirustukset ja telinekuvat (Telkku)
Sisällysluettelo
0. Dokumentin versiot
1. Johdanto
2. Hallittavat tiedostot
3. Tiedostojen nimeäminen
4. Työmenetelmät
5. Mallipohjat
6. Versionumerointi
7. Muutosten hallinta
0. Dokumentin versiot
Versio |
Pvm |
Muutos |
Muuttaja |
0.1 |
7.10.1999 |
Aloitettu |
Lauri Vuornos |
0.2 |
11.10.1999 |
Lisätty kuvat hakemistorakenteista |
Lauri Vuornos |
1.0 |
19.10.1999 |
Hyväksytty versio (palautuspalaveri 1) |
Lauri Vuornos |
1.1 |
1.11.1999 |
Päivitetty hakemistorakenne kuva |
Lauri Vuornos |
1. Johdanto
Tässä dokumentissa kuvataan projektin suunnitelma versionhallinnaksi.
Erikseen kuvataan muutoshallinnan prosessi, virheilmoitusten hallinta,
versiohallinnan alaiset tiedostot, sekä käytettävä
versionhallinta työkalu.
2. Hallittavat tiedostot
Versionhallinnan piiriin kuuluvat kaikki projektin tuottamat tiedostot,
joita ei voida johtaa muista tiedostoista. Myös johdetut tiedostot
voidaan tarvittaessa ottaa versionhallinnan piiriin. Hallittavat tiedostot
voidaan jakaa kahteen osaan: lähdekooditiedostoihin ja dokumentteihin.
Lähdekooditiedostoihin kuuluvat kaikki lähdekoodit ja konfigurointitiedostot.
Dokumentteihin kuuluvat kaikki projektin tuottamat tekstimuotoiset tiedostot,
myös muutospyynnöt ja virheilmoitukset.
3. Tiedostojen nimeäminen
Dokumenttien nimeämisessä noudatetaan selkeää, mutta
vapaata nimeämistapaa. Dokumentin nimestä on selvästi käytävä
ilmi dokumentin sisältö (esim. projektisuunnitelma.html sisältää
projektisuunnitelman). Virheilmoitukset ja muutospyynnöt nimetään
juoksevalla numeroinnilla: vi_<nro> ja mp_<nro>, jonka avulla ne
linkittyvät virheilmoitusten- ja muutospyyntöjen hallintataulukkoon.
Palaverien esityslistat ja muistiot nimetään palvvvvkkpp_n_xx.html,
missä vvvvkkpp on palaverin päivämäärä, n
on palaverin järjestysnumero sinä päivänä ja xx
on joko 'el' (esityslista), 'pk' (pöytäkirja) tai 'ka' (kalvot).
Lähdekooditiedostojen nimeämiskäytäntö tarkennetaan
projektin teknisen suunnittelun yhteydessä.
4. Hakemistorakenne
Projektin käyttämän hakemistorakenteen avulla erotetaan
toisistaan selkeät kokonaisuudet. Oman kokonaisuutensa muodostavat
dokumentit, tietokantaskriptit, konfigurointitiedostot, lähdekooditiedostot,
sekä tarvittaessa yhteiskäyttöiset tiedostot, kirjastot
ja binääritiedostot. Nämä kokonaisuudet jakautuvat
vielä tarvittaessa pienemmiksi osakokonaisuuksiksi.
Kaikki hakemistorakenteen tiedostot kuuluvat versionhallinnan piiriin.
Hakemistorakenne pidetään samana versionhallintatyökalussa,
sekä projektin henkilöiden työasemilla.
Projektin hakemistorakenne
Dokumenttien hakemistorakenteen tarkempi kuvaus.
5. Mallipohjat
Projektin käytössä on tietyt mallipohjat (templates), joita
on myös käytettävä. Asiakkaan halutessa projekti voi
käyttää myös asiakkaan mallipohjia. Mallipohjat kuuluvat
myös versionhallintaan.
5.1 Dokumenttitiedostojen mallipohjat
Dokumenttien mallipohjan tarkoituksena
on taata tiettyjen perustietojen olemassaolo joka dokumentissa. Samoin
dokumenttien ulkoasu saadaan näin yhdenmukaistettua.
Mallipohjassa on vaadittu seuraavat kokonaisuudet:
- Otsikkokenttä
- Sisällysluettelo
- Dokumentin muutoshistoria
- Johdanto (dokumentin tarkoituksen kuvaus)
- Viitteet muihin dokumentteihin
Dokumentin muutoshistoriaan kirjataan kaikki dokumenttiin tehdyt muutokset
ja muutoksen tekijä. Dokumentin tarkoituksen kuvaus tulee olla sellainen,
että lukija saa siitä nopeasti kuvan dokumentin sisällöstä.
Käytettyjen, mahdollisesti epäselvien termien selitykset ovat
kohdassa käytettyjen termien selvitys. Viitteet muihin dokumentteihin
sisältää kaikki dokumentin kannalta oleelliset viitteet.
Esim. koodikomponentin kuvausdokumentissa on viite lähdekooditiedostoon.
Kokousten esityslistoille ja muistioille
on myös omat mallipohjansa, joita käyteään projektin
palavereissa.
5.2 Kooditiedostojen mallipohjat
Kooditiedostojen kommentoinnissa käytetään JavaDoc:n
pohjalta sovellettuja sääntöjä ja konventioita. Tämä
mahdollistaa Java-sovellusympäristön työkalun käytön
HTML-dokumenttien generoimiseksi kommentoinnista.
Kooditiedostoiden kommentoinnissa vaaditaan kommentointia jokaisen
tiedoston alkuun (ns. header-kommentti), jokaiseen funktioon tai aliohjelmaan
sekä luokkiin (jos olio-ohjelmointia). Jokaisen tiedoston alussa olevaan
header-kommenttiin tulee tiedoston versionumero, nimilista koodin kirjoittajista,
selostus tiedoston sisällöstä ja muutoshistoria. Jokaisessa
funktiossa on oltava selostus funktion toiminnasta, koodin kirjoittaja,
parametrit ja palautusarvot.
Mallipohja kooditiedostoille tarkentuu
teknisen suunnittelun yhteydessä.
6. Versionumerointi
Projektin tiedostot versioituvat julkaisujen ja revisioinnin tasolla. Tiedoston
revisionumero on juokseva numero, joka kasvaa aina muutoksen yhteydessä.
Tämä revisiointi koskee kaikkia tiedostoja, dokumentteja ja lähdekooditiedostoja.
Revisiointi hoidetaan versionhallintatyökalulla.
Julkaisut ovat yhden tai useamman tiedoston hallinnollisia versioita.
tällaisia ovat esimerkiksi dokumenttien hyväksytyt versiot.
Julkaisuun voidaan niputtaa useampia tiedostoja, jotka yhdessä muodostavat
kokonaisuuden. Julkaisuun voi kuulua esimerkiksi kaikki yhteen palautukseen
kuuluvat hyväksytyt dokumentit tai järjestelmän tietyn julkaisuversion
lähdekoodit ja dokumentaatio. Julkaisu tehdään leimaamalla
halutut tiedostot versionhallintatyökalulla.
6.1. Julkaisujen nimeäminen
Julkaisujen leimauksessa käytetään vakionimeämistä.
Palautukset leimataan PALAUTUS_<n>, missä n on palautuksen numero.
Palautuspalaverissa hyväksytyt dokumentit leimataan leimalla KATSELMOINTI_<n>.
Palautukseen liittyville dokumenteille päivitetään palautuksen
numero dokumentin muutoshistoriaan (major)versionnumeroksi (esim. toisen
palautuksen dokumenteille päivitetään versioksi 2.0). Dokumenttien
muutoshistoriaan kasvatetaan versionumeroa aina muutoksia tehtäessä
(esim. ensimmäinen muutos ensimmäisen palautuksen jälkeen
antaa versionumeroksi 1.1).
Järjestelmän versiot (ohjelmakoodi ja dokumentaatio) leimataan
eri tavalla riippuen julkaisun kohteesta. Integraatiotestijulkaisut (sisäiseen
testiin) leimataan leimalla TELKKU_BL_<versio>, missä <versio>
on järjestelmän versionumero. Asiakkaalle toimitettavat julkaisut
(myös prototyypit) leimataan leimalla TELKKU_REL_<versio>.
Versionumerointia tarkennetaan tarvittaessa lähdekooditiedostojen
ja ohjelmakokonaisuuksien osalta teknisen määrittelyvaiheen aikana.
7. Muutosten hallinta
Kaikki muutokset hyväksyttyihin dokumentteihin, määrittelyihin
ja suunnitelmiin tehdään keskitetysti. Kaikki muutospyynnöt
käyvät läpi muutoshallinta prosessin, jossa muutoksen vaatima
työmäärä ja vaikutukset arvioidaan. Tämän
analyysin pohjalta tehdään päätös muutospyynnön
toteuttamisesta tai toteuttamatta jättämisestä. Muutoshallinta
on CCB:n (Change request Control Board) vastuulla, johon kuuluvat projektipäällikkö
ja tilanteesta riippuen 1-n muuta projektilaista. Muutospyynnöt tehdään
sähköpostitse vakiomuotoisella muutospyyntölomakkeella.
Muutostenhallintaprosessi perustuu kolmen perusroolin vuorovaikutukseen
ja muutospyynnön (MP) etenemiseen roolilta toiselle. Nämä
kolme roolia ovat muutospyynnön tekijä, CCB ja toteuttajat. Muutospyynnön
tekijän roolissa voi olla MP:n tyypistä riippuen asiakas, sovelluskehittäjä
tai jokin muu henkilö. CCB:n rooli on muutospyyntöjen hallinnassa
täten hyvin keskeinen. Toteuttajan roolissa on henkilö tai ryhmä,
joka suunnittelee ja toteuttaa muutospyynnön.
Muutospyynnöllä on ominaisuuksia, joilla erilaiset muutokset,
esim. virheilmoitukset, määrittelymuutokset ja kehitysideat,
erotetaan toisistaan. Tämän lisäksi MP:n ominaisuudet identifioivat
sen yksilöllisesti ja kuvaavat MP:n riittävän tarkalla tasolla.
Lisäksi jokaisella MP:llä on tila, jonka avulla eri osapuolet
näkevät tietyn MP:n edistymisen muutoshallintaprosessissa.
Muutostenhallintaprosessi
7.1. Virheilmoitusten hallinta
Virheilmoitukset hallitaan muutospyyntöjä vastaavalla tavalla.
Kaikki virheilmoitukset tehdään sähköpostitse vakiomuotoisella
virheilmoituslomakkeella,
jotka tallennetaan osaksi projektin versionhallintaa. Virheilmoituksista
pidetään yllä listaa, josta nähdään helposti
virheilmoitusten tila ja virheen korjaaja.
7.2. Muutospyyntöjen ja virheilmoitusten tallennus
Muutospyynnöt ja virheilmoitukset tallennetaan osaksi projektin versionhallintaa.
Virheilmoituksista ja muutospyynnöistä pidetään yllä
listaa, jossa on talletettuna tiedot virheilmoituksista ja muutospyynnöistä.
Listasta on linkki tarkempaan virheen tai muutospyynnön kuvaukseen.
Virheilmoitukset ja muutospyynnöt yksilöidään juoksevalla
numeroinnilla.
Muutospyynnöt ja virheilmoitukset tallennetaan samalla tavalla
ja niiden käsittely tehdään samalla tavalla. Muutospyynnöistä
ja virheilmoituksista pidetään kuitenkin yllä erillistä
listaa.
Listassa tulee olla seuraavat tiedot virheestä tai muutospyynnöstä:
- numero
- tila: käsittelemätön, työn alla, hyväksytty,
valmis, odottaa
- (havaitsemis)päivämäärä
- (havaitsijan) nimi
- (havaitsijan) sähköpostiosoite
- (havaitsijan) puhelinnumero
- tyyppi: virhe, muutospyyntö, kehitysehdotus
- kohdealue: mihin järjestelmän osaan muutos / virhe kohdistuu
- kiireelisyys
- vaikutus: virheen / muutospyynnön vaikutuksen arvio
- linkki virheen / muutospyynnön tarkempaan kuvaukseen
- päätös toteuttamisesta tai toteuttamatta jättämisestä
- korjaus- / toteutuspäivämäärä
- korjaamiseen / toteuttamiseen käytetty aika
- korjaan / toteuttajan nimi
- tehdyt korjaukset: mihin ja mitä
virheilmoituksen lisäkentät
- sovelluksen versio
- virheen vakavuusaste: vakavuusaste: vakava virhe, haittaa työskentelyä,
ei merkittävästi haittaa
- virhee liittyy: toiminnallisuuteen, luotettavuuteen, yhteensopivuuteen,
käytettävyyteen, yhdenmukaisuuteen, muuhun (mihin?)
- virheen luokittelu (virheluokat alla)
7.2.2. Virheiden luokittelu
Virheiden luokittelu tehdään kirjan Humphrey, Watts S. A Discipline
for Software Engineering. Reading MA: Addison-Wesley
Publishing Company, 1995. pp 48. pohjalta.
Virheluokat:
10 Documentation comments and messages
20 Syntax
spelling punctuation, typos, instruction formats
30 Build, package change management, library,
version control
40 Assignment
declaration, duplicatenames, scope, limits
50 Interface
procedure calls and references, I/O, user formats
60 Checking
error messages, inadequate checks
70 Data
structure, content
80 Function
logic, pointers, loops, recursion, computation, function defects
90 System
configuration, timing, memory
100 Environment design, compile, test
or other support system problems