Mikä on verkkokurssi?    |   Taustaa    |   Teoriaa

Ohjelmistotuotannon prosessimallit verkkokurssin tuottamisessa

Vesiputousmalli

Vesiputousmalli on on ehkä perinteisin ja jäykin ohjelmistojen suunnittelustrategia. Siinä edetään käytetyn ajan suhteen vaiheesta toiseen lineaarisessa järjestyksessä. Keskeinen idea on, että tietyllä ajanhetkellä keskitytään ainoastaan yhteen prosessivaiheeseen kerrallaan. Kun työ on valmis siittyrään seuraavaan, tai palataan edelliseen mikäli aiempaa työtä on tarpeen muuttaa.

Evoluutiomalli

Evoluutiomallissa ohjelmistosuunnittelun eri vaiheet (vaatimusten määritys, suunnittelu ja toteutus) tapahtuvat samanaikaisesti, ainakin osin rinnakkain. Ajan suhteen ohjelmiston valmiusaste kuitenkin kehittyy, joko etenemällä prototyypistä toiseen tai alkuperäistä prototyyppiä edelleenkehittämällä ja korjaamalla siinä havaittuja puutteita.

Evoluutiomallia voidaan soveltaa monella tavalla. Ohjelman versio tai prototyyppi voidaan kokonaan hylätä ja aloittaa uuden version tekeminen puhtaalta pöydältä, tai prototyyppi voidaan säilyttää kokonaan tai osin seuraavassa versiossa.

Boehmin spiraalimalli

Edelläkuvatut lähestymistavat voidaan myös yhdistää, mistä hyvä esimerkki on nk. Boehmin spiraalimalli. Tässä vaiheet vaatimusten määrityksestä tehdään vesiputousmallin tavoin peräkkäisessä järjestyksessä, mutta myös siten, että ohjelmisto kehittyy peräkkäisissä prototyypitysvaiheissa.

Kaikkia edellämainittuja prosessimalleja voidaan soveltaa riippumatta ohjelmistoprojektin muista näkökulmista, kuten mallinnusmenetelmistä, tai tehtävätyypistä. Käytännössä eveolutionäärinen lähestymistapa sopii parhaiten pieniin projektiehin, joissa työryhmän sisäinen kommunikointi on tehokasta, kun taas vesipuotusmalli on omiaan suuriin ohjelmistohenkkeisiin, jossa työ on jaettu itsenäisiin osaryhmiin.

Käytännössä prosessimallit ovat periaatteita, joista käytäntö poikkeaa enemmän tai vähemmän. Suurin ongelma on kehitystyön kasaantuminen ohjelmointivaiheeseen, jolloin toteutuksen vastuulle siirtyy sekä ohjelmiston suunnittelun, että testauksen tehtäviä. Tämä johtuu osin kokemuksen ja perussuunnittelumenetelmien puutteesta. Usein kokemattomat suunnittelijat pystyvät jäsentämään ohjelmistoa ainoastaan ohjelmoinnin kautta, minkä seurauksena suunnittelun suuret päälinjat hämärtyvät ja erilaiset tekniset ratkaisut syntyvät akuuttiin tarpeeseen, ei niinkään ennakoituun suunnitteluun. Ennakoimaton suunnittelu taas lisää virheiden määrää ja johtaa toteutuksen viivästymiseen, mitkä yhdessä tiukan projektiaikataulun kanssa pakottavat edelleen supistamaan testaamiseen käytettävää aikaa, vaikka sitä todellisuudessa tulisi lisätä - ohjelmistokriisi on valmis.

Aloittelevan projektiryhmän lieneekin hyvä aloittaa ja ottaa oppia kokeneemmasta ryhmästä, tai aloittaa varovasti evoluutio mallin kautta tekemällä ohjelmisto vaiheittaisina prototyyppeinä, joita ensimmäiset varaudutaan jo ennakkosuunnitelmissa hylkäämään.

Lähteet

Koikkalainen, P. (2000) Ohjelmistotekniikan prosessimallit. Saatavilla verkossa: http://erin.mit.jyu.fi/pako/kurssit/ot2000/l1/ot2000L1/node8.html#SECTION00240000000000000000